国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

如何設(shè)計好的測試用例

2020-02-02 04:00蘇春莉曹新淼
價值工程 2020年3期
關(guān)鍵詞:邊界值測試用例軟件測試

蘇春莉 曹新淼

摘要:測試用例是軟件測試必須遵守的準則。本文從測試用例概念談起,介紹了測試用例概念、設(shè)計目的、以及所具備的特征,通過舉例說明了常用的測試用例設(shè)計方法,最后著重介紹了如何設(shè)計好的測試用例。良好的測試用例將大大減少項目執(zhí)行時間,提高測試效率。

Abstract: Test case is the guideline that software testing must adhere to. This article starts with the concept of test case, introduces the concept, the design purpose and the features of test case. It illustrates the common test case design methods by examples, and finally focuses on how to design good test cases. Good test cases will greatly reduce project execution time and improve testing efficiency.

關(guān)鍵詞:軟件測試;測試用例;等價類;邊界值

Key words: software testing;test case;equivalence classes;boundary value

中圖分類號:TP31? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 文獻標識碼:A? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 文章編號:1006-4311(2020)03-0219-02

0? 引言

軟件測試是軟件生命周期的重要組成部分,與軟件的質(zhì)量密切相關(guān),是驗證軟件質(zhì)量特性的重要手段。測試用例作為軟件測試過程的一個重要角色,它是測試執(zhí)行環(huán)節(jié)的主要依據(jù),是測試過程必須遵守的準則,更是保證軟件測試質(zhì)量的關(guān)鍵所在。

1? 什么是好的測試用例

測試用例(Test Case)是指對一個特定的軟件產(chǎn)品進行測試任務(wù)的描述,是為特定的測試目標而設(shè)計的一組數(shù)據(jù)信息,包括測試輸入、執(zhí)行條件和預(yù)期結(jié)果的集合,用以測試軟件或程序的某個方面是否達到用戶的特定需求[1]。

在測試之前,不僅要設(shè)計測試用例,還要設(shè)計“好的”測試用例。通常,人們認為“發(fā)現(xiàn)了軟件缺陷的測試用例就是好的用例”,那么“如果說測試用例發(fā)現(xiàn)了缺陷就是好用例,那么在該缺陷被修復(fù)后,同樣的用例難道就不是好用例了嗎?”。還有人經(jīng)常說“發(fā)現(xiàn)至今未被發(fā)現(xiàn)的軟件缺陷的測試用例就是好用例”,那么:如何評估是否還存在未被發(fā)現(xiàn)的缺陷?如果軟件中根本就沒有錯誤了呢?

所以“好的”測試用例一定是一個完備的集合,它能夠覆蓋所有等價類以及各種邊界值,而跟能否發(fā)現(xiàn)缺陷無關(guān)。

2? 設(shè)計測試用例的目的

眾所周知,軟件測試的窮舉往往是不可能的,局限于測試時間和所需的資源。測試用例設(shè)計就是將軟件測試的行為活動,作一個科學(xué)化的組織歸納。為了提高測試效率,在具體測試過程中,通常是從眾多的可用測試數(shù)據(jù)中采用不同的方法篩選出典型的和特別的測試數(shù)據(jù)來進行測試。

設(shè)計測試用例主要有以下幾個目的:①在開始實施測試之前,設(shè)計好測試用例可以避免盲目測試,以便提高測試效率。②使用測試用例進行測試,使得測試的目的比較明確,重點比較突出,同時減少對軟件功能的漏測現(xiàn)象。③在對不同版本軟件進行重復(fù)測試時,測試用例會被再次用到,這時只需修正少部分的測試用例便可展開測試工作,降低工作強度,縮短項目周期。④功能模塊的通用性和復(fù)用性使軟件易于開發(fā),而測試用例的通用性和復(fù)用性則會使軟件測試易于開展,所以隨著測試的不斷精化其效率不斷攀升[2]。

3? 測試用例具備的特征

測試用例是測試過程中的重要參考依據(jù),設(shè)計好的測試用例將大大減少項目執(zhí)行時間,提高測試效率。好的測試用例具有以下特征:

①整體完備性:“好的”測試用例一定是一個完備的整體,是有效測試用例組成的集合,能夠完全覆蓋測試需求。

②等價類劃分的準確性:指的是對于每個等價類都能保證只要其中一個輸入測試通過,其他輸入也一定測試通過。

③等價類集合的完備性:需要保證所有可能的邊界值和邊界條件都已經(jīng)正確識別。做到了以上三點,就可以肯定測試是充分且完備的,即做到了完整的測試需求覆蓋。

4? 設(shè)計測試用例的方法

測試用例的設(shè)計方法比較多,通常有等價類劃分法、邊界值分析法、錯誤推測方法、判定表驅(qū)動分析法、場景設(shè)計方法、正交實驗設(shè)計方法和功能圖法等,但是真正具有實用價值且常用的是前三種方法。

①等價類劃分方法。等價類中任意一個輸入數(shù)據(jù)對于揭露程序中潛在錯誤都具有同等效果。劃分好等價類后,只要從每個等價類中選取其中的一個值進行測試,就可以代表此等價類的數(shù)據(jù)進行測試,從而取得較好的測試覆蓋結(jié)果。例如:學(xué)生信息系統(tǒng)中有一個“考試成績”的輸入項,成績的取值范圍是0~100之間的整數(shù),考試成績及格的分數(shù)線是60。為了測試這個輸入項,顯然不可能用0~100的每一個數(shù)去測試。在考慮了有效等價類和無效等價類后,設(shè)計的測試用例為:

有效等價類 1:0~59之間的任意整數(shù);

有效等價類 2:60~100之間的任意整數(shù);

無效等價類 1:小于0的負數(shù);

無效等價類 2:大于100的整數(shù);

無效等價類 3:0~100之間的任何浮點數(shù);

無效等價類 4:其他任意非數(shù)字字符。

②邊界值分析方法。它是對輸入或輸出的邊界值進行測試的一種方法,不是從某等價類中隨便挑一個作為代表,而是使這個等價類的每個邊界都要作為測試條件,同時不僅考慮輸入條件,還要考慮輸出空間產(chǎn)生的測試情況[3]。再看學(xué)生信息系統(tǒng)中“考試成績”的例子,選取的邊界值數(shù)據(jù)應(yīng)該包括這些邊界值:-1,0,1,59,60,61,99,100,101。

③錯誤推測方法。錯誤推測方法是指基于對被測試軟件系統(tǒng)設(shè)計的理解、過往經(jīng)驗以及個人直覺,推測出軟件可能存在的缺陷,從而有針對性地設(shè)計測試用例的方法。錯誤推測法和目前非常流行的“探索式測試方法”的基本思想和理念是不謀而合的,這類方法在目前的敏捷開發(fā)模式下的投入產(chǎn)出比很高,因此被廣泛應(yīng)用。

比如,Web界面的GUI功能測試,需要考慮瀏覽器在有緩存和沒有緩存下的表現(xiàn);對于代碼級的單元測試,需要考慮被測函數(shù)的輸入?yún)?shù)為空情況下的內(nèi)部處理邏輯等。類似這些都是基于曾經(jīng)遇到的問題而進行的錯誤推測,很大程度上取決于個人能力。

5? 如何設(shè)計好的測試用例

在實際的測試實踐中,不同的軟件項目在研發(fā)生命周期的各個階段都會有不同的測試類型。對于每一種不同的測試類型,設(shè)計的測試用例的關(guān)注點和方法論可能會有很大的差異。要設(shè)計出好的測試用例,需要做到以下幾點:

①從軟件功能需求出發(fā),全面地、無遺漏地識別出測試需求是至關(guān)重要的,這將直接關(guān)系到用例的測試覆蓋率。在具體的用例設(shè)計時,先搞清楚每一個業(yè)務(wù)需求所對應(yīng)的多個軟件功能需求點,然后分析出每個軟件功能需求點對應(yīng)的多個測試需求點,最后再針對每個測試需求點設(shè)計測試用例[4]。

②對于識別出的每個測試需求點,需要綜合運用等價類劃分、邊界值分析和錯誤推測方法來全面地設(shè)計測試用例。要綜合運用這三種方法,并針對每個測試需求點的具體情況,進行靈活選擇。

以“用戶登錄”的功能性測試需求為例,首先應(yīng)該對“用戶名”和“密碼”這兩個輸入項分別進行等價類劃分,列出對應(yīng)的有效等價類和無效等價類,對于無效等價類的識別可以采用錯誤猜測法,然后基于兩者可能的組合,設(shè)計出第一批測試用例。等價類劃分完后,需要補充“用戶名”和“密碼”這兩個輸入項的邊界值的測試用例,比如用戶名為空(NULL)、用戶名長度剛剛大于允許長度等。

③除了功能性需求以外,非功能性需求也是極其關(guān)鍵的。什么是非功能性需求呢?從軟件測試的維度來看,非功能性需求主要涉及安全性、性能以及兼容性等三大方面。這些非功能性需求對軟件系統(tǒng)的質(zhì)量有著舉足輕重的作用。

同樣以“用戶登錄”為例,非功能性的測試用例比如有:1)安全性測試用例:用戶密碼后臺存儲是否加密;用戶密碼在網(wǎng)絡(luò)傳輸過程中是否加密;密碼輸入框是否不支持復(fù)制和粘貼;用戶名和密碼的輸入框中分別輸入典型的“SQL注入攻擊”字符串,驗證系統(tǒng)的返回頁面等;2)性能壓力測試用例:單用戶登錄的響應(yīng)時間是否小于3秒;單用戶登錄時,后臺請求數(shù)量是否過多;高并發(fā)場景下服務(wù)端的監(jiān)控指標是否符合預(yù)期;3)兼容性測試用例:不同瀏覽器下,驗證登錄頁面的顯示以及功能正確性;相同瀏覽器的不同版本下,驗證登錄頁面的顯示以及功能正確性;不同移動設(shè)備終端的不同瀏覽器下,驗證登錄頁面的顯示以及功能正確性等。

④深入理解被測試軟件的架構(gòu),設(shè)計出“有的放矢”的測試用例集,去發(fā)現(xiàn)系統(tǒng)邊界以及系統(tǒng)集成上的潛在缺陷。作為測試人員,必須對被測系統(tǒng)內(nèi)部的架構(gòu)有清楚的認識,比如數(shù)據(jù)庫連接方式、數(shù)據(jù)庫的讀寫分離、消息中間件的配置、緩存系統(tǒng)的層級分布、第三方系統(tǒng)的集成等等[5]。

⑤深入理解被測軟件的設(shè)計與實現(xiàn)細節(jié)、以及內(nèi)部的處理邏輯。單單根據(jù)測試需求點設(shè)計的用例,只能覆蓋“表面”的一層,往往會覆蓋不到內(nèi)部的處理流程、分支處理,而沒有覆蓋到的部分就很可能出現(xiàn)缺陷遺漏。

⑥引入需求覆蓋率和代碼覆蓋率來衡量測試執(zhí)行的完備性,并以此為依據(jù)來找出遺漏的測試點。在具體實踐中,通過代碼覆蓋率指標找出可能的測試遺漏點。同時,切忌不要以開發(fā)代碼的實現(xiàn)為依據(jù)設(shè)計測試用例。因為開發(fā)代碼實現(xiàn)的錯誤會導(dǎo)致測試用例也出錯,所以應(yīng)該根據(jù)原始需求設(shè)計測試用例。

6? 結(jié)語

軟件測試用例設(shè)計的質(zhì)量和效果,直接關(guān)系到測試過程的開展、測試效率以及最終的測試結(jié)果。設(shè)計測試用例是為了更有效地發(fā)現(xiàn)缺陷,本文在測試用例概念特征的基礎(chǔ)上,通過舉例介紹了設(shè)計測試用例常用的三種方法,著重介紹了如何設(shè)計好的測試用例,這對于實際的測試分析與設(shè)計具有一定的參考意義。

參考文獻:

[1]朱少民.軟件測試[M].上海:人民郵電出版社,2016.

[2]張倩倩,趙星漢,高湘飛.軟件測試用例設(shè)計方法[J].電子技術(shù)與軟件工程,2018.

[3]陳能技.軟件測試技術(shù)大全[M].北京:人民郵電出版社,2011.

[4]馬均飛,鄭文強.軟件測試設(shè)計[M].北京:電子工業(yè)出版社,2011.

[5]柳純錄.軟件測評師教程[J].清華大學(xué)出版社,2012.

[6]翟燕.探討計算機軟件測試的相關(guān)技術(shù)應(yīng)用[J].價值工程,2018,37(06):181-182.

猜你喜歡
邊界值測試用例軟件測試
基于SmartUnit的安全通信系統(tǒng)單元測試用例自動生成
基于OBE的軟件測試課程教學(xué)改革探索
巧用洛必達法則速解函數(shù)邊界值例讀
EXCEL和VBA實現(xiàn)軟件測試記錄管理
基于混合遺傳算法的回歸測試用例集最小化研究
關(guān)于軟件測試技術(shù)應(yīng)用與發(fā)展趨勢研究
軟件測試工程化模型及應(yīng)用研究
極坐標下薄板彎曲問題的重心有理插值法
基于依賴結(jié)構(gòu)的測試用例優(yōu)先級技術(shù)
一類帶有Dirichlet邊界值條件的橢圓型方程正解的存在性
泸西县| 万山特区| 兴隆县| 泽州县| 略阳县| 昌乐县| 民丰县| 徐州市| 金寨县| 垦利县| 武冈市| 四子王旗| 荣成市| 南华县| 和政县| 堆龙德庆县| 金湖县| 高安市| 东辽县| 滦南县| 栾城县| 辉南县| 墨竹工卡县| 梧州市| 淄博市| 巧家县| 罗源县| 罗城| 铜陵市| 鲁甸县| 隆尧县| 天台县| 醴陵市| 苏尼特右旗| 大渡口区| 阿鲁科尔沁旗| 黔江区| 周至县| 仪陇县| 常宁市| 繁昌县|