1.0測(cè)試用例框架
1.1黑盒測(cè)試概述
?黑盒測(cè)試也稱功能測(cè)試或數(shù)據(jù)驅(qū)動(dòng)測(cè)試劈伴,它是在已知產(chǎn)品所應(yīng)具有的功能,通過(guò)測(cè)試來(lái)檢測(cè)每個(gè)功能是否都能正常使用氯窍。
? 在測(cè)試時(shí)拂玻,把程序看作一個(gè)不能打開(kāi)的黑盒子,在完全不考慮程序內(nèi)部結(jié)構(gòu)和內(nèi)部特性的情況下取募,測(cè)試者在程序接口進(jìn)行測(cè)試琐谤,它只檢查程序功能是否按照需求規(guī)格說(shuō)明書(shū)的規(guī)定正常使用.
??? 程序是否能適當(dāng)?shù)亟邮蛰斎霐?shù)據(jù)而產(chǎn)生正確的輸出信息,并且保持外部信息(如數(shù)據(jù)庫(kù)或文件)的完整性玩敏,如圖所示斗忌。
1.2.1黑盒測(cè)試主要用于發(fā)現(xiàn)以下情況
?? 是否有不正確或遺漏了的功能
?? 在接口上,能否正確地接受輸入數(shù)據(jù)旺聚,能否產(chǎn)生正確地輸出信息
?? 訪問(wèn)外部信息是否有錯(cuò)
?? 性能上是否滿足要求
?? 界面是否錯(cuò)誤织阳,是否不美觀
?? 初始化或終止錯(cuò)誤
1.2.2”黑盒”的兩種基本方法
? 黑盒測(cè)試有兩種基本方法,即通過(guò)測(cè)試和失敗測(cè)試砰粹。
???在進(jìn)行通過(guò)測(cè)試時(shí)唧躲,實(shí)際上是確認(rèn)軟件能做什么,而不會(huì)去考驗(yàn)其能力如何。軟件測(cè)試員只運(yùn)用最簡(jiǎn)單弄痹,最直觀的測(cè)試案例饭入。
???在設(shè)計(jì)和執(zhí)行測(cè)試案例時(shí),總是先要進(jìn)行通過(guò)測(cè)試肛真。在進(jìn)行破壞性試驗(yàn)之前谐丢,看一看軟件基本功能是否能夠?qū)崿F(xiàn)。這一點(diǎn)很重要蚓让,否則在正常使用軟件時(shí)就會(huì)奇怪地發(fā)現(xiàn)乾忱,為什么會(huì)有那么多的軟件缺陷出現(xiàn)?
????在確信了軟件正確運(yùn)行之后历极,就可以采取各種手段通過(guò)搞“垮”軟件來(lái)找出缺陷窄瘟。純粹為了破壞軟件而設(shè)計(jì)和執(zhí)行的測(cè)試案例,被稱為失敗測(cè)試或迫使出錯(cuò)測(cè)試趟卸。
1.2.3 黑盒測(cè)試的優(yōu)蹄葱、缺點(diǎn)
黑盒測(cè)試的優(yōu)點(diǎn):
?? 比較簡(jiǎn)單,不需要了解程序內(nèi)部的代碼及實(shí)現(xiàn)衰腌;
?? 與軟件的內(nèi)部實(shí)現(xiàn)無(wú)關(guān);
?? 從用戶角度出發(fā)觅赊,能很容易的知道用戶會(huì)用到哪些功能右蕊,會(huì)遇到哪些問(wèn)題;
?? 基于軟件開(kāi)發(fā)文檔吮螺,所以也能知道軟件實(shí)現(xiàn)了文檔中的哪些功能饶囚;
?? 在做軟件自動(dòng)化測(cè)試時(shí)較為方便。
黑盒測(cè)試的缺點(diǎn):
?? 不可能覆蓋所有的代碼鸠补,覆蓋率較低萝风,大概只能達(dá)到總代碼量的30%;
?? 自動(dòng)化測(cè)試的復(fù)用性較低紫岩。
1.3.1? 測(cè)試用例
?測(cè)試用例就是test case规惰,是為了系統(tǒng)地測(cè)試一個(gè)功能而由測(cè)試工程師寫(xiě)下的文檔或腳本他是為某個(gè)特定測(cè)試目標(biāo)而設(shè)定的,是測(cè)試操作過(guò)程序列泉蝌、條件歇万、期望結(jié)果及相關(guān)數(shù)據(jù)的一個(gè)集合。
1.3.2為什么需要測(cè)試用例(一)
?其實(shí)勋陪,測(cè)試用例不是必須的贪磺。
?如果你是一個(gè)特別有想法的人,或者在軟件測(cè)試方面很有天賦诅愚,每天都能找到其他人幾天時(shí)間才能找到的Bug寒锚,那么你可以不用測(cè)試用例,如果我是Test Manager的話,就會(huì)讓你做一個(gè)Ad-hoc (隨機(jī)測(cè)試刹前、猴子爬桿)Tester泳赋,因?yàn)槲乙呀?jīng)覺(jué)得你足夠好了,不需要測(cè)試用例來(lái)指導(dǎo)你了腮郊,因?yàn)槟愫苡邢敕∧ⅲ凶约旱臏y(cè)試思路。
?但是不幸的是轧飞,你可能不是這樣的人衅鹿,或者你身上存在著幾種情況,就最好使用測(cè)試用例过咬。
1.3.3為什么需要測(cè)試用例(二)
?你工作不主動(dòng)大渤,你需要測(cè)試用例來(lái)催著你去工作;
?你測(cè)試時(shí)總感覺(jué)思維很混亂掸绞,或者總感覺(jué)有些功能沒(méi)有測(cè)到泵三,而一些功能已經(jīng)測(cè)過(guò)好幾遍了,這樣測(cè)試用例能夠幫你理清頭緒衔掸,進(jìn)行比較系統(tǒng)的測(cè)試烫幕,不會(huì)有太多的重復(fù),也不會(huì)讓你的測(cè)試工作產(chǎn)生遺漏敞映;
?在測(cè)試時(shí)間緊迫的情況下较曼,你不知道要測(cè)什么,或者要先測(cè)試那些功能振愿,測(cè)試用例這個(gè)時(shí)候就可以幫你分清重點(diǎn)捷犹,因?yàn)闇y(cè)試用例寫(xiě)完后一定要標(biāo)重要程度和優(yōu)先級(jí),以防止在緊急的情況下有重點(diǎn)的工作冕末。
1.3.4為什么需要測(cè)試用例(三)
?? 你積極的工作狀態(tài)不能持續(xù)萍歉,這個(gè)時(shí)候測(cè)試用例又幫你一個(gè)大忙,因?yàn)闇y(cè)試用例上面操作步驟和預(yù)期結(jié)果都已經(jīng)寫(xiě)好了档桃,你根本不用思考枪孩,只需要照著上面做就行了。
?? 測(cè)試用例是你工作的見(jiàn)證藻肄,也是你每次測(cè)試以后向上級(jí)匯報(bào)的依據(jù)销凑,有了測(cè)試用例,我知道我這次測(cè)試了那些功能仅炊,還有那些功能沒(méi)有測(cè)到斗幼,對(duì)上級(jí)是一個(gè)交代,也做到了自己心中有數(shù)抚垄。
?? 測(cè)試用例可以記錄你的靈感蜕窿。如果靈感突發(fā)谋逻,有一個(gè)新穎的測(cè)試思路,你可以寫(xiě)成測(cè)試用例桐经,或許這個(gè)測(cè)試用例就是挽救整個(gè)軟件的重大功臣毁兆。
?? 測(cè)試用例有助于不斷的改進(jìn)工作。因?yàn)橥ㄟ^(guò)測(cè)試用例阴挣,可以知道哪些測(cè)試用例測(cè)出Bug的機(jī)率比較大气堕,還有那些測(cè)試用例需要改進(jìn),對(duì)我們以后工作的改進(jìn)提供了依據(jù)畔咧。
1.3.5測(cè)試用例設(shè)計(jì)考慮因素 (一)
?測(cè)試用例的基本格式
?? 軟件測(cè)試用例的基本要素包括測(cè)試用例編號(hào)茎芭、測(cè)試標(biāo)題、重要級(jí)別誓沸、測(cè)試輸入梅桩、操作步驟、預(yù)期結(jié)果拜隧,下面逐一介紹:
?? 用例編號(hào):測(cè)試用例的編號(hào)有一定的規(guī)則宿百,比如系統(tǒng)測(cè)試用例的編號(hào)這樣定義規(guī)則:PROJECT1-ST-001,命名規(guī)則是項(xiàng)目名稱+測(cè)試階段類型(系統(tǒng)測(cè)試階段)+編號(hào)洪添。定義測(cè)試用例編號(hào)垦页,便于查找測(cè)試用例,便于測(cè)試用例的跟蹤干奢。
?? 測(cè)試標(biāo)題: 對(duì)測(cè)試用例的描述痊焊,測(cè)試用例標(biāo)題應(yīng)該清楚表達(dá)測(cè)試用例的用途。比如 “
測(cè)試用戶登錄時(shí)輸入錯(cuò)誤密碼時(shí)律胀,軟件的響應(yīng)情況 ” 宋光。
?? 重要級(jí)別:定義測(cè)試用例的優(yōu)先級(jí)別貌矿,可以籠統(tǒng)的分為 “ 高 ” 和 “ 低 ” 兩個(gè)級(jí)別炭菌。一般來(lái)說(shuō),如果軟件需求的優(yōu)先級(jí)為 “ 高 ”逛漫,那么針對(duì)該需求的測(cè)試用例優(yōu)先級(jí)也為 “ 高 ” 黑低;反之亦然。
?? 測(cè)試輸入:提供測(cè)試執(zhí)行中的各種輸入條件酌毡。根據(jù)需求中的輸入條件克握,確定測(cè)試用例的輸入。測(cè)試用例的輸入對(duì)軟件需求當(dāng)中的輸入有很大的依賴性枷踏,如果軟件需求中沒(méi)有很好的定義需求的輸入菩暗,那么測(cè)試用例設(shè)計(jì)中會(huì)遇到很大的障礙。
?? 操作步驟:提供測(cè)試執(zhí)行過(guò)程的步驟旭蠕。對(duì)于復(fù)雜的測(cè)試用例停团,測(cè)試用例的輸入需要分為幾個(gè)步驟完成旷坦,這部分內(nèi)容在操作步驟中詳細(xì)列出。
?? 預(yù)期結(jié)果:提供測(cè)試執(zhí)行的預(yù)期結(jié)果佑稠,預(yù)期結(jié)果應(yīng)該根據(jù)軟件需求中的輸出得出秒梅。如果在實(shí)際測(cè)試過(guò)程中,得到的實(shí)際測(cè)試結(jié)果與預(yù)期結(jié)果不符舌胶,那么測(cè)試不通過(guò)捆蜀;反之則測(cè)試通過(guò)。
?? 軟件測(cè)試用例的設(shè)計(jì)主要從上述 6 個(gè)域考慮幔嫂,測(cè)試用例的因素還有如下項(xiàng)目:
?? 軟件或項(xiàng)目的名稱
?? 軟件或項(xiàng)目的版本(內(nèi)部版本號(hào))
?? 功能模塊名
?? 測(cè)試用例的簡(jiǎn)單描述辆它,即該用例執(zhí)行的目的或方法
?? 測(cè)試用例的參考信息(便于跟蹤和參考)
?? 本測(cè)試用例與其他測(cè)試用例間的依賴關(guān)系
?? 本用例的前置條件,即執(zhí)行本用例必須要滿足的條件婉烟,如對(duì)數(shù)據(jù)庫(kù)的訪問(wèn)權(quán)限
?? 步驟號(hào)娩井、操作步驟描述、測(cè)試數(shù)據(jù)描述
?? 開(kāi)發(fā)人員(必須有)和測(cè)試人員(可有可無(wú))
?? 測(cè)試執(zhí)行日期(舉例)
1.4測(cè)試用例原則(一)
重用同類型項(xiàng)目的測(cè)試用例
?一般來(lái)說(shuō)似袁,每個(gè)軟件公司的項(xiàng)目可以分為固定的幾大類洞辣。可以按業(yè)務(wù)類型劃分昙衅,比如 ERP 軟件扬霜、產(chǎn)品數(shù)據(jù)管理軟件、通信軟件而涉、地理信息系統(tǒng)軟件等等著瓶;可以按軟件結(jié)構(gòu)來(lái)劃分,比如B/S 架構(gòu)的軟件啼县、C/S 架構(gòu)的軟件材原、嵌入式軟件等等。參考同類別軟件的測(cè)試用例季眷,會(huì)有很大的借鑒意義余蟹。
利用已有的軟件 Checklist
?每種類型的軟件都有一定的測(cè)試規(guī)范,比如子刮, WEB 軟件系統(tǒng)在系統(tǒng)測(cè)試過(guò)程中威酒,會(huì)有一系列的范式,比如針對(duì)Cookie 就會(huì)有很多測(cè)試點(diǎn)挺峡。
加強(qiáng)測(cè)試用例的評(píng)審
?測(cè)試用例設(shè)計(jì)完畢后葵孤,最好能夠增加評(píng)審過(guò)程。如果認(rèn)真操作這個(gè)環(huán)節(jié)橱赠,測(cè)試用例中的很多問(wèn)題都會(huì)暴露出來(lái)尤仍,比如用例設(shè)計(jì)錯(cuò)誤、用例設(shè)計(jì)遺漏狭姨、用例設(shè)計(jì)冗余宰啦、用例設(shè)計(jì)不充分等等鲤嫡;如果同行評(píng)審不充分,那么绑莺,在測(cè)試執(zhí)行的過(guò)程中暖眼,上述本應(yīng)在評(píng)審階段發(fā)現(xiàn)的測(cè)試用例相關(guān)問(wèn)題,會(huì)給測(cè)試執(zhí)行帶來(lái)大麻煩纺裁,甚至導(dǎo)致測(cè)試執(zhí)行掛起诫肠。
定義測(cè)試用例的執(zhí)行順序
?在測(cè)試用例執(zhí)行過(guò)程中,你會(huì)發(fā)現(xiàn)每個(gè)測(cè)試用例都對(duì)測(cè)試環(huán)境有特殊的要求欺缘,或者對(duì)測(cè)試環(huán)境有特殊的影響栋豫。因此,定義測(cè)試用例的執(zhí)行順序谚殊,對(duì)測(cè)試的執(zhí)行效率影響非常大丧鸯。
?比如某些異常測(cè)試用例會(huì)導(dǎo)致服務(wù)器頻繁重新啟動(dòng),服務(wù)器的每次重新啟動(dòng)都會(huì)消耗大量的時(shí)間嫩絮,導(dǎo)致這部分測(cè)試用例執(zhí)行也消耗很多的時(shí)間丛肢。那么在編排測(cè)試用例執(zhí)行順序的時(shí)候,應(yīng)該考慮把這部分測(cè)試用例放在最后執(zhí)行剿干,如果在測(cè)試進(jìn)度很緊張的情況下蜂怎,如果優(yōu)先執(zhí)行這部分消耗時(shí)間的異常測(cè)試用例,那么在測(cè)試執(zhí)行時(shí)間過(guò)了大半的時(shí)候置尔,測(cè)試用例執(zhí)行的進(jìn)度依然是緩慢的杠步,這會(huì)影響到測(cè)試人員的心情,進(jìn)而導(dǎo)致匆忙地測(cè)試后面的測(cè)試用例榜轿,這樣測(cè)試用例的漏測(cè)幽歼、誤測(cè)就不可避免,嚴(yán)重影響了軟件測(cè)試效果和進(jìn)度谬盐。因而甸私,合理地定義測(cè)試用例的執(zhí)行順序是很有必要的。
?? 測(cè)試用例執(zhí)行
?測(cè)試用例設(shè)計(jì)完畢后设褐,接下來(lái)的工作是測(cè)試執(zhí)行颠蕴,測(cè)試執(zhí)行中應(yīng)該注意以下幾個(gè)問(wèn)題:
? 搭建軟件測(cè)試環(huán)境泣刹,執(zhí)行測(cè)試用例
?測(cè)試用例執(zhí)行過(guò)程中助析,搭建測(cè)試環(huán)境是第一步。一般來(lái)說(shuō)椅您,軟件產(chǎn)品提交測(cè)試后外冀,開(kāi)發(fā)人員應(yīng)該提交一份產(chǎn)品安裝指導(dǎo)書(shū),在指導(dǎo)書(shū)中詳細(xì)指明軟件產(chǎn)品運(yùn)行的軟硬件環(huán)境掀泳,比如要求操作系統(tǒng)系統(tǒng)是Windows 2000 pack4 版本雪隧,數(shù)據(jù)庫(kù)是 SqlServer 2000 等等西轩,
提交一份優(yōu)秀的問(wèn)題報(bào)告單
?軟件測(cè)試提交的問(wèn)題報(bào)告單和測(cè)試日?qǐng)?bào)一樣,都是軟件測(cè)試人員的工作輸出脑沿,是測(cè)試人員績(jī)效的集中體現(xiàn)藕畔。因此,提交一份優(yōu)秀的問(wèn)題報(bào)告單是很重要的庄拇。軟件測(cè)試報(bào)告單最關(guān)鍵的域就是“ 問(wèn)題描述 ”
注服,這是開(kāi)發(fā)人員重現(xiàn)問(wèn)題,定位問(wèn)題的依據(jù)措近。問(wèn)題描述應(yīng)該包括以下幾部分內(nèi)容:軟件配置溶弟、硬件配置、測(cè)試用例輸入瞭郑、操作步驟辜御、輸出、當(dāng)時(shí)輸出設(shè)備的相關(guān)輸出信息和相關(guān)的日志等屈张。
測(cè)試結(jié)果分析
?? 軟件測(cè)試執(zhí)行結(jié)束后擒权,測(cè)試活動(dòng)還沒(méi)有結(jié)束。測(cè)試結(jié)果分析是必不可少的重要環(huán)節(jié)阁谆,“ 編筐編簍菜拓,全在收口 ” ,測(cè)試結(jié)果的分析對(duì)下一輪測(cè)試工作的開(kāi)展有很大的借鑒意義笛厦。前面的 “ 測(cè)試準(zhǔn)備工作 ”中纳鼎,建議測(cè)試人員走讀缺陷跟蹤庫(kù),查閱其他測(cè)試人員發(fā)現(xiàn)的軟件缺陷裳凸。測(cè)試結(jié)束后贱鄙,也應(yīng)該分析自己發(fā)現(xiàn)的軟件缺陷,對(duì)發(fā)現(xiàn)的缺陷分類姨谷,你會(huì)發(fā)現(xiàn)自己提交的問(wèn)題只有固定的幾個(gè)類別逗宁;
1.5? 測(cè)試用例設(shè)計(jì)的思想?
?正面測(cè)試(PositiveTesting)
?正面測(cè)試的測(cè)試用例用于驗(yàn)證被測(cè)單元能夠執(zhí)行應(yīng)該完成的工作。測(cè)試設(shè)計(jì)者應(yīng)該查閱相關(guān)的設(shè)計(jì)說(shuō)明梦湘;每個(gè)測(cè)試用例應(yīng)該測(cè)試模塊設(shè)計(jì)說(shuō)明中一項(xiàng)或多項(xiàng)陳述瞎颗。如果涉及多個(gè)設(shè)計(jì)說(shuō)明,最好使測(cè)試用例的序列對(duì)應(yīng)一個(gè)模塊單元的主設(shè)計(jì)說(shuō)明捌议。
適合的技術(shù):
?設(shè)計(jì)說(shuō)明導(dǎo)出的測(cè)試
?對(duì)等區(qū)間劃分
?狀態(tài)轉(zhuǎn)換測(cè)試
?負(fù)面測(cè)試(NegativeTesting)
?負(fù)面測(cè)試用于驗(yàn)證軟件不執(zhí)行其不應(yīng)該完成的工作哼拔。這一步驟主要依賴于錯(cuò)誤猜測(cè),需要依靠軟件測(cè)試設(shè)計(jì)者的經(jīng)驗(yàn)判斷可能出現(xiàn)問(wèn)題的位置瓣颅。
?適合的技術(shù)有:
?錯(cuò)誤猜測(cè)
?邊界值分析
?內(nèi)部邊界值測(cè)試
?狀態(tài)轉(zhuǎn)換測(cè)試