案例分享:如何使用AutoTCG設(shè)計測試模型
應(yīng)用案例:如何使用AutoTCG設(shè)計測試模型
AutoTCG是一款模型驅(qū)動的測試腳本生成工具。使用本工具,測試人員能夠?qū)Ρ粶y件的使用流程進行業(yè)務(wù)建模,描述使用軟件各個步驟;然后配置每個動作的操作內(nèi)容和參數(shù);軟件能夠自動將各個動作和參數(shù)進行組合,生成執(zhí)行的測試腳本。
測試人員使用AutoTCG創(chuàng)建的模型,是從開始節(jié)點到結(jié)束節(jié)點之間的一系列動作。每個動作代表對被測件的一次操作或者從被測件獲取的一次反饋。動作節(jié)點之間用連線進行連接。如果執(zhí)行的動作需要用到參數(shù),則在動作之前的連線上設(shè)置參數(shù),然后動作節(jié)點上使用參數(shù)。
當模型創(chuàng)建完成后,AutoTCG根據(jù)流程圖計算從開始節(jié)點到任何一個結(jié)束節(jié)點之間的路徑,并且把路徑上的動作一個個接續(xù)起來,形成該測試路徑(用例)的測試腳本。
有些路徑的參數(shù)取值有一些要求。為了避免無效路徑,需要在路徑(連線)上設(shè)置約束條件。所有不滿足約束條件的路徑都不會被產(chǎn)生。
同時,所有參數(shù)的各種取值也會進行組合,從而在每一條有效路徑上使用不同的參數(shù)組合產(chǎn)生不同的測試用例來進行測試。
AutoTCG可以和不同的測試腳本執(zhí)行平臺進行集成,比如Selenium,Etest等。集成完成后,可以用該執(zhí)行平臺的操作原語來完成(實現(xiàn))每個動作;同時自動生成的測試用例也可以在該平臺上運行,完成自動化測試。
總之,AutoTCG就是一款結(jié)合了相鄰路徑深度和參數(shù)組合的模型驅(qū)動的自動化測試用例生成平臺。
下面我們用一個例子來看如何進行模型的設(shè)計。
應(yīng)用場景:某軟件具有密碼輸入界面。用戶需要輸入密碼;如果密碼正確,則提示成功,進入操作界面;如果密碼錯誤,則提示失敗。
設(shè)計測試模型如圖1所示。
圖 1 密碼檢查測試模型
每個動作模型,我們都設(shè)置一些對應(yīng)的操作。在這里可以調(diào)用集成的自動化測試運行平臺的操作原語,進行控制操作和結(jié)果判讀。比如,“輸入密碼”動作可以調(diào)用輸入框原語輸入password變量的值作為密碼值,然后調(diào)用提交按鈕的點擊原語發(fā)送密碼(假設(shè)集成了selenium平臺)。在這里我們暫且使用注釋文本來表達動作。如圖2所示。
圖 2 輸入密碼動作
同理,我們配置其他幾個動作“提示密碼正確,進入操作界面”、“提示密碼錯誤”相應(yīng)的動作內(nèi)容。這里我們都用文本來描述。
圖 3 提示密碼正確動作
圖 4提示密碼錯誤動作
其中“輸入密碼”動作包含了參數(shù)password。這個參數(shù)設(shè)置在這個動作之前的連線上,如圖5所示。
圖 5 設(shè)置參數(shù)
點擊“參數(shù)”界面,設(shè)置password參數(shù)的取值范圍。如圖6所示。
圖 6 參數(shù)設(shè)置
假設(shè)參數(shù)password的取值有四個值:"aaa","bbb","ccc","abcd",其中"abcd"為正確的密碼。
當輸入正確的密碼時和輸入錯誤的密碼時,程序走的路徑是不一樣的。為了讓生成的測試腳本按照參數(shù)取值不同走不同的路徑,我們需要在路徑上設(shè)置約束條件:向上的路徑,密碼為"abcd";向下的路徑,密碼為"aaa","bbb","ccc"。如圖7所示。
圖 7 密碼正確的路徑約束條件
同理可以設(shè)置密碼錯誤的路徑的約束條件。
這個簡單的模型就建立完成了。我們來看一下生成的測試用例。點擊“生成”按鈕。
軟件會彈出信息提示,我們選擇“相鄰路徑深度”為2,“輸入組合配對數(shù)”也為2。
點擊“確定”后,顯示了生成的測試路徑。如圖8所示。
圖 8 生成的測試用例
一共生成了兩條測試用例。第一條測試用例走的是包含了正確密碼的路徑,輸入的參數(shù)使用的是正確的密碼。將鼠標點擊到第二條用例上,會顯示第二條路徑。如圖9所示。
圖 9 生成的測試用例2
第二條測試用例走的是包含了錯誤密碼的路徑,輸入的參數(shù)使用的是錯誤的密碼。
點擊藍色的“運行”按鈕,可以顯示執(zhí)行代碼。如果已經(jīng)集成了自動化腳本運行平臺,則可以直接運行腳本。
執(zhí)行代碼支持Lua、python、Javascript、C++、C#語言。
使用Python語言的執(zhí)行代碼如下。
小結(jié):
本文通過一個簡單的例子介紹了使用AutoTCG設(shè)計被測軟件模型,自動生成測試腳本的方法。下一期我們會使用更復(fù)雜的模型,介紹AutoTCG在路徑深度覆蓋和參數(shù)組合方面強大的功能。