什么是測試用例
測試用例(Test Case)是為某個特殊目標而編制的一組測試輸入、執行條件以及預期結果,以便測試某個程序路徑或核實是否滿足某個特定需求。
測試用例(Test Case)是將軟件測試的行為活動做一個科學化的組織歸納,目的是能夠將軟件測試的行為轉化成可管理的模式;同時測試用例也是將測試具體量化的方法之一,不同類別的軟件,測試用例是不同的。
測試用例是軟件測試的核心
軟件測試的重要性是毋庸置疑的。但如何以最少的人力、資源投入,在最短的時間內完成測試,發現軟件系統的缺陷,保證軟件的優良品質,則是軟件公司探索和追求的目標。每個軟件產品或軟件開發項目都需要有一套優秀的測試方案和測試方法。
測試用例
影響軟件測試的因素很多,例如軟件本身的復雜程度、開發人員(包括分析、設計、編程和測試的人員)的素質、測試方法和技術的運用等等。因為有些因素是客觀存在的,無法避免。有些因素則是波動的、不穩定的,例如開發隊伍是流動的,有經驗的走了,新人不斷補充進來;一個具體的人工作也受情緒等影響,等等。如何保障軟件測試質量的穩定?有了測試用例,無論是誰來測試,參照測試用例實施,都能保障測試的質量。可以把人為因素的影響減少到最小。即便最初的測試用例考慮不周全,隨著測試的進行和軟件版本更新,也將日趨完善。
因此測試用例的設計和編制是軟件測試活動中最重要的。測試用例是測試工作的指導,是軟件測試的必須遵守的準則。更是軟件測試質量穩定的根本保障。
設計說明
參考百度百科:https://baike.baidu.com/item/%E6%B5%8B%E8%AF%95%E7%94%A8%E4%BE%8B/1928697
功能用例的自動生成法則
下面是設計一個測試登陸功能是否必填的Model文件的例子。輸入條件有登錄名、密碼、驗證碼。各項輸入條件分別有不同的參數選擇。
username:? ??填寫登錄名,?不填登錄名
psw:? ??????????填寫密碼,?不填密碼
yzm:? ??????????填寫驗證碼,?不填驗證碼
則可產生下面的測試用例:
username????????psw?????????????yzm
填寫登錄名??????不填密碼????????填寫驗證碼
填寫登錄名??????填寫密碼????????不填驗證碼
不填登錄名??????不填密碼????????不填驗證碼
不填登錄名??????填寫密碼????????填寫驗證碼
填寫登錄名? ? ? 填寫密碼? ? ? 填寫驗證碼
不填登錄名? ? ? 不填密碼? ? ? 填寫驗證碼
從上面的例子不難看出,用例自動生成的總量依賴于信息維度數量和維度條件數量。
什么是信息維度數量?
信息維度:? ??指的是完成一個測試鏈路(比方說:登錄),需要經歷的步驟(一個步驟可稱為一個維度),以上面例子來看,算法中包含三個維度即:username,psw,yzm
因此:信息維度數量是 3
什么是維度條件數量?
維度條件:? ??指的是各個維度中條件的個數;舉個栗子:維度username中包含了【填寫登錄名】,【 不填登錄名】兩類條件(真實場景中考慮邊界值、等價類情況等,條件種類會大于2)
因此:維度“username”的條件數量是2
用例總量 = C21 * C21 *C21 = 6, 因此會出現6種不同路徑的測試用例
這種思路等同于接口用例的自動生成法則,站在白盒測試的角度對開發代碼的路徑進行全覆蓋,需要設計出最小cover用例數。
功能用例的自動生成的代碼實現
Case類:?? ? ????顧名思義,測試用例類,是上述6條用例的統稱
Action類:? ? ? 動作,是Case攜帶的屬性之一;一個Case包含N個Action
Step類:? ? ? ? ?步驟,Action在執行過程中最終使用了哪種的步驟;一個Action包含N種Step,但是一個Action一次執行實例化和執行一種Step
FullCaseRoad類:? ? 生成用例總量 的方法類,缺點是:將無關的用例路徑也一并生成出來,對測試人員造成了極大的時間浪費去做排查
AnalysisTest類:? ? 用例步驟信息采集的初始化類
部分代碼如下:
上面是小編根據面向對象Java管理用例的思想和實際用例步驟前后的邏輯關系特性而編寫的一個十分輕量化的框架,根據這個框架可以做很多衍生,例如:
1. 數據信息輸入采集通過Excel表錄制、線上數據分析和采集等思路對接
2. 生成的實際用例與決策樹綁定建立圖像化邏輯樹圖的對接
3. 邏輯用例和數據用例的轉化等等
該框架現已經開源到百度云盤上,歡迎下載使用和繼續貢獻:
鏈接:https://pan.baidu.com/s/13wbNBjvCCKaoMgpKzidykQ
提取碼:nxtx