關(guān)于測(cè)試用例,我們有太多的疑惑了,測(cè)試用例的依據(jù)?好的測(cè)試用例評(píng)估....等等。我們依據(jù)需求分析,依據(jù)開(kāi)發(fā)文檔,依據(jù)系統(tǒng)設(shè)計(jì)文檔,甚至依據(jù)UI寫(xiě)測(cè)試用例,我們就真的足夠了?不夠,真的不夠。需求在變,開(kāi)發(fā)文檔跟著變,設(shè)計(jì)文檔也在改動(dòng),UI也在做變化,那我們的測(cè)試用例應(yīng)該怎么寫(xiě)?
個(gè)人認(rèn)為,一個(gè)好的、有效的測(cè)試用例,應(yīng)該具備以下幾個(gè)特征:
1.覆蓋全面。測(cè)試的每個(gè)路徑都涉及到,功能測(cè)試、界面測(cè)試、有性能要求的做性能測(cè)試、有安全要求的做安全測(cè)試(網(wǎng)絡(luò)安全、通信安全..)等。
2.測(cè)試用例的后期維護(hù)時(shí)間短。測(cè)試用例寫(xiě)出來(lái),不可能一成不變,根據(jù)系統(tǒng)的優(yōu)化,測(cè)試用例都應(yīng)該做相應(yīng)的修改。針對(duì)需要修改的測(cè)試用例,我們修改了測(cè)試用例的哪些部分?測(cè)試前提、測(cè)試過(guò)程、測(cè)試數(shù)據(jù)、測(cè)試結(jié)果?如果四個(gè)方面都需要做修改,要么就是該功能完全變了,要么就是測(cè)試用例寫(xiě)的不夠好。在系統(tǒng)做優(yōu)化的時(shí)候,一般只需要修改測(cè)試數(shù)據(jù)就可以
3.對(duì)內(nèi)的測(cè)試用例與對(duì)外的測(cè)試用例不一樣。某些行業(yè),測(cè)試用例需要隨著系統(tǒng)一起交付用戶使用。對(duì)內(nèi)的測(cè)試用例,應(yīng)該以尋求BUG為主,我們可以把過(guò)程寫(xiě)的流暢簡(jiǎn)單些,但是測(cè)試數(shù)據(jù)一定要充分;對(duì)外的測(cè)試用例,應(yīng)該以指導(dǎo)用戶參與測(cè)試為主,所以過(guò)程需要比對(duì)內(nèi)的測(cè)試用例詳細(xì),但是測(cè)試數(shù)據(jù)可以減少。因?yàn)橛脩糁饕窍胫溃@個(gè)系統(tǒng)是否可以使用,他不是真的為了給你找BUG。
4.同一個(gè)產(chǎn)品的不同項(xiàng)目,許多的測(cè)試用例可以公用的。所以,針對(duì)不同的項(xiàng)目編寫(xiě)測(cè)試用例,有許多我們拿以前的測(cè)試用例直接黏貼過(guò)來(lái)用,減少了許多寫(xiě)測(cè)試用例的時(shí)間。
針對(duì)以上幾個(gè)特征,編寫(xiě)測(cè)試用例前,我們應(yīng)該做哪些工作?我一般會(huì)花一些時(shí)間去看看需求文檔、設(shè)計(jì)文檔、開(kāi)發(fā)文檔;有機(jī)會(huì)就去找市場(chǎng)部的人交談,在他們抽煙的時(shí)候,冒一根不夠,就再冒一根,慢慢的問(wèn)我想知道的問(wèn)題;最好也和研發(fā)部的開(kāi)發(fā)人員了解下情況,這個(gè)系統(tǒng)他們?cè)趺纯吹模蛩阍趺醋觯斜匾梢哉f(shuō)說(shuō)你的觀點(diǎn)。
當(dāng)這些前提你都做了,你完全可以寫(xiě)測(cè)試用例了,當(dāng)然邊寫(xiě)還是要邊溝通,也許有新的發(fā)現(xiàn)呢?如果邊寫(xiě)測(cè)試用例的時(shí)間
不夠,你沒(méi)有太多的時(shí)間去做這么多的鋪墊工作,也沒(méi)有關(guān)系,你可以先把一些通用的測(cè)試用例寫(xiě)出來(lái):登陸、增加數(shù)據(jù)、修改數(shù)據(jù)、查詢數(shù)據(jù)等,然后把業(yè)務(wù)要求
比較強(qiáng)的測(cè)試用例放在最后編寫(xiě),這樣我們既沒(méi)有浪費(fèi)時(shí)間,也可以按時(shí)交測(cè)試用例。
測(cè)試用例寫(xiě)出來(lái),維護(hù)怎么辦?測(cè)試用例的維護(hù),寫(xiě)過(guò)測(cè)試用例的朋友都知道,大家都去嘟囔修改測(cè)試用例很無(wú)聊,首先
它沒(méi)有太多的技術(shù)含量(這個(gè)大家都不喜歡,好多人也認(rèn)為測(cè)試沒(méi)有技術(shù)含量),第二這個(gè)過(guò)程很繁瑣和枯燥。如果想維護(hù)簡(jiǎn)單,在編寫(xiě)測(cè)試用例的時(shí)候你就應(yīng)該考
慮到這點(diǎn)。各項(xiàng)描述應(yīng)該怎么寫(xiě),通俗易懂而且是通用的是首選。舉例:
方法一:
測(cè)試前提:系統(tǒng)服務(wù)運(yùn)行正常、,具有xiaoming這個(gè)用戶,密碼為999999
測(cè)試過(guò)程:
1.訪問(wèn)系統(tǒng)登錄頁(yè)面http://localhost:8089/index.jsp
2.輸入用戶名:xiaoming
輸入密碼:999999
3.點(diǎn)擊“登錄”
測(cè)試數(shù)據(jù):
用戶名密碼舉例:
系統(tǒng)用戶:xiaoming,密碼999999;xiaohong,密碼666666
用戶名與密碼不匹配:xiaoming,密碼666666;xiaohong,密碼999999
非系統(tǒng)用戶:xiaowang,密碼999999;xiaobai,密碼666666
非法參數(shù):#¥%,密碼HH*&56;yong12%……,密碼**……(
測(cè)試結(jié)果:使用正確的用戶名與密碼,可以登錄系統(tǒng);使用錯(cuò)誤的用戶名和密碼,不能登錄系統(tǒng)
結(jié)果分析:
方法二:
測(cè)試前提:系統(tǒng)服務(wù)運(yùn)行正常、具有系統(tǒng)用戶數(shù)據(jù)
測(cè)試過(guò)程:
1.訪問(wèn)系統(tǒng)登錄頁(yè)面
2.輸入用戶名和密碼
3.提交數(shù)據(jù)
測(cè)試數(shù)據(jù):
用戶名密碼舉例:【假設(shè)xiaoming,密碼999999為系統(tǒng)用戶】
說(shuō)明:用戶名只能為數(shù)字、字母、下劃線‘_’,首字不能為下劃線
密碼不能為空格
正確格式的用戶名:xiaoming、xiao123、xiao_123、123_xiao等
錯(cuò)誤格式的用戶名:xiao%、123_xiao+空格、!@等
密碼的輸入?yún)⒄沼脩裘妮斎胍?guī)則
測(cè)試結(jié)果:系統(tǒng)用戶能夠登錄系統(tǒng)并具有對(duì)應(yīng)的權(quán)限、非系統(tǒng)用戶不能登錄系統(tǒng)
結(jié)果分析:
參照以上兩個(gè)測(cè)試用例,我們就能很明顯的分辨出用例的優(yōu)劣。第一個(gè)測(cè)試用例我們至少需要準(zhǔn)備xiaoming這一
個(gè)測(cè)試數(shù)據(jù)、登錄界面如果增加了需要輸入驗(yàn)證碼,我們就要重新修改測(cè)試過(guò)程,測(cè)試數(shù)據(jù)我們也要做很多修改(就拿用戶名可以輸入數(shù)字、字母、下劃線來(lái)說(shuō),正
確的組合就有2*3*3=18種),測(cè)試結(jié)果,我們登錄系統(tǒng)為了做什么?沒(méi)有權(quán)限怎么辦?我們應(yīng)該具有哪些權(quán)限?第一個(gè)用例就沒(méi)有做說(shuō)明,可以說(shuō),測(cè)試結(jié)
果的說(shuō)明是不全面的。
第二個(gè)測(cè)試用例,如果系統(tǒng)增加了需要輸入驗(yàn)證碼,我們?cè)跍y(cè)試過(guò)程的第二步,只需要說(shuō)明輸入用戶名、密碼、驗(yàn)證碼,測(cè)試數(shù)據(jù)我們不需要做變化,在結(jié)果分析里,增加說(shuō)明:用戶名、密碼、驗(yàn)證碼正確,準(zhǔn)入,否則拒絕。
第二個(gè)測(cè)試用例,有個(gè)不足,就是測(cè)試數(shù)據(jù)不全面。我在編寫(xiě)測(cè)試用例時(shí),針對(duì)這個(gè)測(cè)試用例,我有個(gè)測(cè)試數(shù)據(jù)的附件。【附件分為兩部分,手工測(cè)試以及自動(dòng)化測(cè)試,手工測(cè)試我會(huì)有個(gè)詳細(xì)的數(shù)據(jù)說(shuō)明,并不是把所有的數(shù)據(jù)組合都列出來(lái),而是詳細(xì)的說(shuō)明組合的方式方法,一共有多少種(包含邊界值法以及特殊值等);自動(dòng)化測(cè)試的數(shù)據(jù)說(shuō)明簡(jiǎn)單很多,寫(xiě)一個(gè)正則表達(dá)式搞定】。
按照第二個(gè)測(cè)試用例,我們的工作就不再是苦力了,而是智慧的苦力。我們不再是點(diǎn)點(diǎn)點(diǎn),慢慢的我們知道哪些是主要關(guān)注的,哪些是次要關(guān)注的,我們應(yīng)該怎么去設(shè)計(jì)數(shù)據(jù)等等。慢慢的,我們學(xué)會(huì)了思考,我們也真的進(jìn)步了。
歡迎大家多提意見(jiàn),我們一起進(jìn)步。