单元测试用例
單元測(cè)試是以程序設(shè)計(jì)說明書為指導(dǎo),測(cè)試模塊范圍內(nèi)的重要控制路徑,以揭露錯(cuò)誤。
當(dāng)程序編好以后,將它錄制在媒體上,或者直接由終端鍵盤輸入到機(jī)中進(jìn)行調(diào)試。測(cè)試的相對(duì)復(fù)雜性和所發(fā)現(xiàn)的錯(cuò)誤受到單元測(cè)試所限定的范圍的限制。它在執(zhí)行的過程中緊密的依照程序框架對(duì)模塊進(jìn)行測(cè)試(調(diào)試),測(cè)試包含入口和出口的參數(shù),輸入和輸出信息,錯(cuò)誤處理信息,部分邊界數(shù)值測(cè)試。需要在6個(gè)方面對(duì)所測(cè)模塊進(jìn)行檢查。
1. 模塊接口測(cè)試
模塊接口測(cè)試是單元測(cè)試的基礎(chǔ),當(dāng)模塊通過外部設(shè)備進(jìn)行輸入/輸出操作時(shí),只有在數(shù)據(jù)能正確流入、流出模塊的前提下,模塊才能完成他的功能。
模塊接口測(cè)試應(yīng)考慮下列因素:
★ 調(diào)用其他模塊時(shí)所給的輸入?yún)?shù)與模塊的形式參數(shù)在個(gè)數(shù)、屬性、順序上是否匹配;
★ 調(diào)用其他模塊時(shí)所給實(shí)際參數(shù)的個(gè)數(shù)是否與被調(diào)模塊的形參個(gè)數(shù)相同;
★ 調(diào)用其他模塊時(shí)所給實(shí)際參數(shù)的屬性是否與被調(diào)模塊的形參屬性匹配;
★ 調(diào)用預(yù)定義函數(shù)時(shí)所用參數(shù)的個(gè)數(shù)、屬性和次序是否正確;
★ 輸入的實(shí)際參數(shù)與形式參數(shù)的個(gè)數(shù)是否相同;
★ 輸入的實(shí)際參數(shù)與形式參數(shù)的屬性是否匹配;
★ 輸入的實(shí)際參數(shù)與形式參數(shù)的量綱是否一致;
★ 是否修改了只做輸入用的形式參數(shù);
★ 是否存在與當(dāng)前入口點(diǎn)無關(guān)的參數(shù)引用;
★ 是否修改了只讀型參數(shù);
★ 對(duì)全程變量的定義各模塊是否一致;
★ 是否把某些約束作為參數(shù)傳遞。
★ 輸出給標(biāo)準(zhǔn)函數(shù)的參數(shù)在個(gè)數(shù)、屬性、順序上是否正確;
★ 限制是否通過形式參數(shù)來傳送;
★ 文件屬性是否正確;
★ OPEN/CLOSE語(yǔ)句是否正確;
★ 格式說明與輸入輸出語(yǔ)句是否匹配;
★ 緩沖區(qū)大小與記錄長(zhǎng)度是否匹配;
★ 文件使用前是否已經(jīng)打開;
★ 是否處理了輸入/輸出錯(cuò)誤;
★ 輸出信息中是否有文字性錯(cuò)誤;
★ 在結(jié)束文件處理時(shí)是否關(guān)閉了文件。
2.局部數(shù)據(jù)結(jié)構(gòu)測(cè)試
局部數(shù)據(jù)結(jié)構(gòu)是為了保證臨時(shí)存儲(chǔ)在模塊內(nèi)的數(shù)據(jù)在程序執(zhí)行過程中完整、正確的基礎(chǔ)。模塊的局部數(shù)據(jù)結(jié)構(gòu)往往是錯(cuò)誤的根源,力求發(fā)現(xiàn)最常見的幾類錯(cuò)誤:
★ 不合適或不相容的類型說明;
★ 變量無初值;
★ 變量初始化或省缺值有錯(cuò);
★ 不正確的變量名(拼錯(cuò)或不正確地截?cái)?#xff09;;
★ 出現(xiàn)上溢、下溢和地址異常。
3.路徑測(cè)試
應(yīng)對(duì)模塊中重要的執(zhí)行路徑進(jìn)行測(cè)試。由于錯(cuò)誤的計(jì)算、不正確的比較或不正常的控制流而導(dǎo)致執(zhí)行路徑的錯(cuò)誤。路徑錯(cuò)誤應(yīng)考慮下列因素:
★ 運(yùn)算的優(yōu)先次序不正確或誤解了運(yùn)算的優(yōu)先次序;
★ 運(yùn)算的方式錯(cuò),即運(yùn)算的對(duì)象彼此在類型上不相容;
★ 算法錯(cuò);
★ 初始化不正確;
★ 浮點(diǎn)數(shù)運(yùn)算精度問題而造成的兩值比較不等;
★ 關(guān)系表達(dá)式中不正確的變量和比較符號(hào)表示不正確;
★ 不正確地多循環(huán)一次或少循環(huán)一次;
★ 錯(cuò)誤的或不可能的循環(huán)終止條件;
★ 當(dāng)遇到發(fā)散的迭代時(shí)不能終止的循環(huán);
★ 不適當(dāng)?shù)匦薷牧搜h(huán)變量等。
4. 邊界條件測(cè)試
邊界條件測(cè)試是單元測(cè)試中最重要的一項(xiàng)任務(wù)。軟件經(jīng)常在邊界上失效,邊界條件測(cè)試是一項(xiàng)基礎(chǔ)測(cè)試,也是后面系統(tǒng)測(cè)試中的功能測(cè)試的重點(diǎn),邊界測(cè)試執(zhí)行的較好,可以大大提高程序健壯性。邊界條件測(cè)試應(yīng)考慮下列因素:
★ 程序內(nèi)有一個(gè)n次循環(huán),n次循環(huán)應(yīng)是1~n, 出錯(cuò)0~n;
★ 小于、小于等于、等于、大于、大于等于、不等于確定的比較值出錯(cuò);
★ 出現(xiàn)上溢、下溢和地址異常。
5.錯(cuò)誤處理測(cè)試
比較完善的模塊設(shè)計(jì)要求能預(yù)見出錯(cuò)的條件,并設(shè)置適當(dāng)?shù)某鲥e(cuò)處理,以便在一旦程序出錯(cuò)時(shí),能對(duì)出錯(cuò)程序重做安排,保證其邏輯上的正確性。這種出錯(cuò)處理也應(yīng)當(dāng)是模塊功能的一部分。錯(cuò)誤處理測(cè)試應(yīng)考慮下列因素:
★ 出錯(cuò)的描述難以理解;
★ 出錯(cuò)的描述不足以對(duì)錯(cuò)誤定位,不足以確定出錯(cuò)的原因;
★ 顯示的錯(cuò)誤與實(shí)際的錯(cuò)誤不符;
★ 對(duì)錯(cuò)誤條件的處理不正確;
★ 異常處理不當(dāng)。
6.代碼書寫規(guī)范
代碼書寫規(guī)范應(yīng)考慮下列因素:
★ 模塊設(shè)計(jì)程序框架流程圖;
★ 代碼書寫規(guī)范,對(duì)齊方式;
★ 代碼的注釋;
★ 參數(shù)類型,數(shù)據(jù)長(zhǎng)度,指針,數(shù)組長(zhǎng)度大小;
★ 輸入輸出參數(shù)和結(jié)果。
單元測(cè)試是對(duì)每個(gè)程序的單體調(diào)試。主要有以下幾步:
程序語(yǔ)法檢查;
程序邏輯檢查。
在程序的邏輯檢查之前,首先需要制作測(cè)試數(shù)據(jù);即假設(shè)一些輸入數(shù)據(jù)和文件數(shù)據(jù)。測(cè)試數(shù)據(jù)直接影響了程序的調(diào)試工作,所以制作的數(shù)據(jù)應(yīng)該滿足以下幾個(gè)條件:
數(shù)據(jù)應(yīng)能滿足設(shè)計(jì)上要求的上下限及循環(huán)次數(shù);
數(shù)據(jù)應(yīng)滿足程序中的各種檢驗(yàn)要求的錯(cuò)誤數(shù)據(jù);
數(shù)據(jù)應(yīng)能適宜于人工對(duì)程序的檢查工作。
測(cè)試數(shù)據(jù)的內(nèi)容包含4個(gè)方面:
正常的數(shù)據(jù)
不同的數(shù)據(jù)
錯(cuò)誤的數(shù)據(jù)
大量的數(shù)據(jù)
通過以上不同角度的數(shù)據(jù)檢驗(yàn),證明程序邏輯是對(duì)的,程序的調(diào)試也就結(jié)束了。
在程序測(cè)試期,評(píng)價(jià)模塊的五個(gè)主要特性是:
★ 模塊接口;
★ 局部數(shù)據(jù)結(jié)構(gòu);
★ “重要”的執(zhí)行路徑;
★ 錯(cuò)誤處理路徑;
★ 影響上述幾點(diǎn)的界限條件。
在其它任何測(cè)試開始之前,需要測(cè)試橫穿模塊接口的數(shù)據(jù)流。如果數(shù)據(jù)不是正確地進(jìn)入和退出,其它的測(cè)試就談不上。
在程序測(cè)試中接口測(cè)試的清單如下:
⑴ 輸入?yún)?shù)的數(shù)目是否等于變?cè)臄?shù)目
⑵ 參數(shù)與變?cè)膶傩允欠衿ヅ?br /> ⑶ 參數(shù)與變?cè)膯挝皇欠衿ヅ?br /> ⑷ 傳送給被調(diào)用模塊的變?cè)獢?shù)是否等于參數(shù)的項(xiàng)目
⑸ 傳送給被調(diào)用模塊的變?cè)獙傩允欠裢瑓?shù)屬性一致
⑹ 傳送給被調(diào)用模塊的變?cè)獑挝皇欠裢瑓?shù)的單位一致
⑺ 屬于內(nèi)部的函數(shù)屬性數(shù)目及變?cè)涡蚴欠裾_
⑻ 對(duì)參數(shù)的任何訪問是否與當(dāng)前的入口點(diǎn)無關(guān)
⑼ 輸入是否改動(dòng)變?cè)?br /> ⑽ 跨模塊的全程量定義是否相容
⑾ 限制是否作為變?cè)獊韨魉?br /> ⑿ 參數(shù)是否被重復(fù)定義
總結(jié)
- 上一篇: android qq轻聊版,Androi
- 下一篇: 计算机视觉入门大全:基础概念、运行原理、