什么是測試用例
任意的測試用例都含有:
用例編號 (項目名字—模塊名字_用例編號)
所屬模塊
執(zhí)行條件
測試輸入(具體的執(zhí)行步驟 )
預(yù)期結(jié)果
實際結(jié)果
用例是否通過
測試人(執(zhí)行測試用例的人)
版本
備注
測試用例是執(zhí)行測試的依據(jù),把測試系統(tǒng)的操作步驟用文檔的形式描述出來
(1)測試用例是為達到最佳的測試效果或高效的揭露隱藏的錯誤蚯斯,而精心設(shè)計的少量測試數(shù)據(jù),包括測試輸入、執(zhí)行條件和預(yù)期的結(jié)果绅络,實際結(jié)果
(2)測試用例是執(zhí)行的最小實體邑滨。
(3)測試用例是測試工作的指導(dǎo)砸西,是軟件測試的必須遵守的準則力喷,更是軟件測試質(zhì)量穩(wěn)定的根本保障
測試用例的特征:
1、正確性:測試用例最好是要求輸入用戶實際數(shù)據(jù)已驗證系統(tǒng)是否滿足需求規(guī)格說明書的需求眷昆,并且測試用例中的測試的應(yīng)保證至少覆蓋需求規(guī)格說明書中的各項功能蜒秤。
2、完整性:一些基本功能亚斋,如有遺漏作媚,那是不可原諒的。
3伞访、準確:按測試用例輸入實施測試后掂骏,要能根據(jù)測試用例描述的輸出得出正確的結(jié)論,不能出現(xiàn)模糊不清的語言厚掷。
4弟灼、清晰、簡潔:好的測試用例描述清晰冒黑,每一步都應(yīng)有相應(yīng)的作用田绑,有很強的的針對性,不應(yīng)出現(xiàn)一些無用的操作步驟抡爹。
5掩驱、可維護性:由于軟件開發(fā)過程中需求變更等原因的影響,常常對測試用例進行修改冬竟、增加欧穴、刪除等,以便測試用符合相應(yīng)測試要求泵殴。
6涮帘、適應(yīng)性:測試用例應(yīng)該適合特定的測試環(huán)境以及符合整個團隊的測試水平。
7笑诅、可重復(fù)性:要求不同測試者在同樣的測試環(huán)境下使用同樣測試用例都能得出相應(yīng)結(jié)論调缨。
8、可追溯性吆你、可移植性
測試用例的作用
1 可以避免盲目測試并提高測試效率弦叶。
2 令軟件測試的實施重點突出、目的明確妇多。
3 版本更新后只需修正少部分的測試用例便可展開測試工作伤哺,降低工作強度、縮短項目周期砌梆。
4 體現(xiàn)一個測試人員的工作量默责、展現(xiàn)測試用例的設(shè)計思路贬循。(檢驗軟件是否滿足客戶需求)
5 相對于功能模塊的測試用例的通用化和復(fù)用化則會使軟件測試易于開展咸包,并隨著測試用例的不斷精化其效率也不斷攀升桃序。
需求分析
什么是需求?
客戶的需要的東西以及對東西的要求烂瘫。
需求的種類有什么媒熊?
1.用戶需求:(關(guān)注系統(tǒng)是否滿足用戶習(xí)慣)
2.行業(yè)業(yè)務(wù)需求(界面提示信息為行業(yè)術(shù)語,處理和操作模式為行業(yè)從業(yè)人員習(xí)慣模式等)
3.實際使用環(huán)境需求(網(wǎng)絡(luò)帶寬坟比,速率芦鳍,斷電數(shù)據(jù)備份,軟件部署設(shè)置等)
4.操作使用需求(類似快捷鍵葛账,緊急關(guān)閉柠衅,數(shù)據(jù)恢復(fù)保護,回退機制籍琳,安裝兼容性菲宴,語言環(huán)境等)
5.用戶需求引發(fā)的測試需求(按軟件測試質(zhì)量模型進行劃分)
6.功能需求:(關(guān)注系統(tǒng)是否滿足功能要求)
測試用例的設(shè)計方法和編寫
如何設(shè)計測試用例
對各個功能模塊進行測試點分析提取測試點
例:
①正常登陸
②賬號為空時點擊登錄
③密碼為空時點擊登錄
④賬號密碼都為空時點擊 登錄
⑤密碼錯誤時點擊登錄
⑥找回密碼功能是否有效
⑦記住密碼功能是否有效
⑧ 自動登錄功能是否有效
⑨ 多個qq號登錄
⑩二維碼掃描登錄
編寫測試用例該注意什么?
根據(jù)產(chǎn)品規(guī)格趋急,測試基本功能喝峦;
考慮設(shè)計一般用戶(非專業(yè)人員)的使用方案;
考慮設(shè)計稀有或特殊的使用方案呜达;
與系統(tǒng)其他組成部分的配合(如FAX和上網(wǎng)可能要用到MODEM谣蠢,?測試中考慮對設(shè)備的共享)查近;
考慮特殊情況(如內(nèi)存和硬件的沖突等)眉踱;
設(shè)計極端情況(如內(nèi)存泄漏、破壞性測試等)霜威;
好的測試用例集能花費最小的代價(人力谈喳、物力、財力侥祭、時間)做最好的測試叁执。
測試用例的4個特性
1 代表性:能夠代表并覆蓋各種合理的和不合理、合法的和不合法的矮冬、邊界的和越界的以及極限的輸入數(shù)據(jù)谈宛、操作等。
2 針對性:對程序中的可能存在的錯誤有針對性地測試胎署。
3 可判定性:測試執(zhí)行結(jié)果的正確性是可判定的吆录,每一個測試用例都應(yīng)有相應(yīng)的期望結(jié)果
4 可重現(xiàn)性:對同樣的測試用例,系統(tǒng)的執(zhí)行結(jié)果應(yīng)當(dāng)是相同的琼牧。
測試用例通常包括以下幾個組成元素
① 測試用例編號 ② 測試用例名稱 ③ 測試用例設(shè)計者④ 軟件版本號 ⑤測試目的
⑥ 參考信息 ⑦ 測試環(huán)境 ⑧ 輸入數(shù)據(jù) ⑨ 操作步驟 ⑩ 預(yù)期結(jié)果 ?測試結(jié)果 ? 測試功能模塊
測試用例示例
你用到的測試方法/測試策略有哪些恢筝?
等價類劃分 邊界值 因果圖 場景法 正交表
編寫測試用例的基本方法
等價類劃分法
概念:
有效哀卫,無效
等價類劃分是指分步驟地把海量(無限)的測試用例集減得很小,但過程同樣有效撬槽。
等價類 :何為等價類此改,某個輸入域的集合,在這個集合中每個輸入條件都是等效的侄柔。
一般可分為有效等價類和無效等價類
示例
計算兩個1~100之間整數(shù)的和共啃。
如果要進行完全測試,一共要設(shè)計多少個測試用例呢暂题?
加數(shù)1有1~100共計100個取值移剪,加數(shù)2也有1~100共計100個取值,所以他們之間的組合就有100*100=10000種組合可能薪者,但這只是測試了正常范圍內(nèi)的取值纵苛。如果用戶輸入的數(shù)據(jù)不在1~100之間呢,窮舉測試肯定不可能的言津。由此引入了等價類劃分思想攻人。
等價類劃分為:
有效等價類:指符合《需求規(guī)格說明書》,輸入合理的數(shù)據(jù)集合
無效等價類:指不符合《需求規(guī)格說明書》纺念,輸入不合理的數(shù)據(jù)集合
我們將輸入域分成了一個有效等價類(1~100)和兩個無效等價類(<1,>100)贝椿,并為每一個等價類進行編號,然后我們就可以從每一個等價類中選取一個代表性的數(shù)據(jù)來測試陷谱,設(shè)計如下表所示的測試用例
在任意文本輸入框中可以填寫的 字符類型 中文 英文 特殊符號 空格 數(shù)字
練習(xí)案例
劃分等價類并編號,下表為等價類劃分的結(jié)果
確定邊界值的方法
確定邊界情況(輸入或輸出等價類的邊界)
選取正好等于烙博、剛剛大于或剛剛小于邊界值作為測試數(shù)據(jù)
輸入要求是1 ~ 100之間的整數(shù),因此自然產(chǎn)生了1和100兩個邊界烟逊,我們在設(shè)計測試用例的時渣窜,要重點考慮這兩個邊界問題。
因果圖法
概念:
因果圖法比較適合輸入條件比較多的情況宪躯,測試所有的輸入條件的排列組合乔宿。所謂的原因就是輸入,所謂的結(jié)果就是輸出访雪。
因果圖基本圖形符號
恒等:若原因出現(xiàn)详瑞,則結(jié)果出現(xiàn);若原因不出現(xiàn)臣缀,則結(jié)果不出現(xiàn)坝橡。
非(~):若原因出現(xiàn),則結(jié)果不出現(xiàn)精置;若原因不出現(xiàn)计寇,則結(jié)果出現(xiàn)。
或(∨):若幾個原因中有一個出現(xiàn),則結(jié)果出現(xiàn)番宁;若幾個原因都不出現(xiàn)元莫,則結(jié)果不出現(xiàn)。
與(∧):若幾個原因都出現(xiàn)蝶押,結(jié)果才出現(xiàn)踱蠢;若其中有一個原因不出現(xiàn),則結(jié)果不出現(xiàn)播聪。
因果圖的約束符號
E(互斥):表示兩個原因不會同時成立朽基,兩個中最多有一個可能成立
I(包含):表示三個原因中至少有一個必須成立
O(惟一):表示兩個原因中必須有一個布隔,且僅有一個成立
R(要求):表示兩個原因离陶,a出現(xiàn)時,b也必須出現(xiàn)衅檀,a出現(xiàn)時招刨,b不可能不出現(xiàn)
M(屏蔽):兩個結(jié)果,a為1時哀军,b必須是0沉眶,當(dāng)a為0時,b值不定
因果圖測試用例
例如:有一個處理單價為2.5元的盒裝飲料的自動售貨機軟件杉适。若投入2.5元硬幣谎倔,按“可樂”、“啤酒”猿推、或“奶茶”按鈕片习,相應(yīng)的飲料就送出來。若投入的是3元硬幣蹬叭,在送出飲料的同時退還5角硬幣藕咏。
分析這一段說明,我們可列出原因和結(jié)果
原因(輸入):
投入2.5元硬幣秽五;
投入3元孽查;
按“可樂”按鈕;
按“啤酒”按鈕坦喘;
按“奶茶”按鈕盲再。
中間狀態(tài): ① 已投幣;②已按鈕
結(jié)果(輸出):
退還5角硬幣瓣铣;
送出“可樂”飲料答朋;
送出“啤酒”飲料;
送出“奶茶”飲料坯沪;
判定表法
場景法
測試用例設(shè)計的思想
現(xiàn)在的軟件幾乎都是用事件觸發(fā)來控制流程的绿映,事件觸發(fā)時的情景便形成了場景,而同一事件不同的觸發(fā)順序和處理結(jié)果就形成事件流。這種在軟件設(shè)計方面的思想也可以引入到軟件測試中叉弦,可以比較生動地描繪出事件觸發(fā)時的情景丐一,有利于測試設(shè)計者設(shè)計測試用例,同時使測試用例更容易理解和執(zhí)行淹冰。
用例場景是通過描述流經(jīng)用例的路徑來確定的過程库车,
這個流經(jīng)過程要從用例開始到結(jié)束遍歷其中所有基本流和備選流。
基本流和備選流
如圖所示樱拴,圖中經(jīng)過用例的每條路徑都用基本流和備選流來表示柠衍,直黑線表示基本流,是經(jīng)過用例的最簡單的路徑晶乔。備選流用不同的色彩表示珍坊,一個備選流可能從基本流開始,在某個特定條件下執(zhí)行正罢,然后重新加入基本流中(如備選流1和3)阵漏;也可能起源于另一個備選流(如備選流2),或者終止用例而不再重新加入到某個流(如備選流2和4)翻具。
遵循上圖中每個經(jīng)過用例的可能路徑履怯,可以確定不同的用例場景。從基本流開始裆泳,再將基本流和備選流結(jié)合起來叹洲,可以確定以下用例場景:
場景 1 基本流
場景 2 基本流 備選流 1
場景 3 基本流 備選流 1 備選流 2
場景 4 基本流 備選流 3
場景 5 基本流 備選流 3 備選流 1
場景 6 基本流 備選流 3 備選流 1 備選流 2
場景 7 基本流 備選流 4
場景 8 基本流 備選流 3 備選流 4
注:為方便起見,場景 5工禾、6 和 8 只描述了備選流 3 指示的循環(huán)執(zhí)行一次的情況运提。
正交表法
正交實驗法就是利用排列整齊的表 -正交表來對試驗進行整體設(shè)計、綜合比較帜篇、統(tǒng)計分析糙捺,實現(xiàn)通過少數(shù)的實驗次數(shù)找到較好的生產(chǎn)條件,以達到最高生產(chǎn)工藝效果笙隙,這種試驗設(shè)計法是從大量的試驗點中挑選適量的具有代表性的點洪灯,利用已經(jīng)造好的表格—正交表來安排試驗并進行數(shù)據(jù)分析的方法。正交表能夠在因素變化范圍內(nèi)均衡抽樣竟痰,使每次試驗都具有較強的代表性签钩,由于正交表具備均衡分散的特點,保證了全面實驗的某些要求坏快,這些試驗往往能夠較好或更好的達到實驗的目的铅檩。正交實驗設(shè)計包括兩部分內(nèi)容:第一,是怎樣安排實驗莽鸿;第二昧旨,是怎樣分析實驗結(jié)果拾给。
應(yīng)用場景:在一個界面中有多個控件,每個控件有多個取值兔沃,控件之間可以相互組合蒋得,不可能(也沒有必要)為每一種組合編寫一條用例,如何使用最少最優(yōu)的組合進行測試乒疏《钛茫——正交排列法
判定表,因果圖也是考慮控件組合怕吴,但是組合數(shù)量較少(一般不會超過20中)
公式:Ln(mk)
k是表的列數(shù)窍侧,表示控件的個數(shù)(因數(shù)個數(shù))
m是每個控件的取值個數(shù)(因數(shù)水平)
n是表的行數(shù),也就是需要測試組合的次數(shù)
正交表查詢地址:https://www.york.ac.uk/depts/maths/tables/orthogonal.htm
正交排列法:http://support.sas.com/techsup/technote/ts723_Designs.txt