如何寫測試案例

關(guān)于測試用例,我們有太多的疑惑了,測試用例的依據(jù)?好的測試用例評估....等等。我們依據(jù)需求分析,依據(jù)開發(fā)文檔,依據(jù)系統(tǒng)設(shè)計文檔,甚至依據(jù)UI寫測試用例,我們就真的足夠了?不夠,真的不夠。需求在變,開發(fā)文檔跟著變,設(shè)計文檔也在改動,UI也在做變化,那我們的測試用例應(yīng)該怎么寫?

個人認為,一個好的、有效的測試用例,應(yīng)該具備以下幾個特征:

1.覆蓋全面。測試的每個路徑都涉及到,功能測試、界面測試、有性能要求的做性能測試、有安全要求的做安全測試(網(wǎng)絡(luò)安全、通信安全..)等。

2.測試用例的后期維護時間短。測試用例寫出來,不可能一成不變,根據(jù)系統(tǒng)的優(yōu)化,測試用例都應(yīng)該做相應(yīng)的修改。針對需要修改的測試用例,我們修改了測試用例的哪些部分?測試前提、測試過程、測試數(shù)據(jù)、測試結(jié)果?如果四個方面都需要做修改,要么就是該功能完全變了,要么就是測試用例寫的不夠好。在系統(tǒng)做優(yōu)化的時候,一般只需要修改測試數(shù)據(jù)就可以

3.對內(nèi)的測試用例與對外的測試用例不一樣。某些行業(yè),測試用例需要隨著系統(tǒng)一起交付用戶使用。對內(nèi)的測試用例,應(yīng)該以尋求BUG為主,我們可以把過程寫的流暢簡單些,但是測試數(shù)據(jù)一定要充分;對外的測試用例,應(yīng)該以指導用戶參與測試為主,所以過程需要比對內(nèi)的測試用例詳細,但是測試數(shù)據(jù)可以減少。因為用戶主要是想知道,這個系統(tǒng)是否可以使用,他不是真的為了給你找BUG。

4.同一個產(chǎn)品的不同項目,許多的測試用例可以公用的。所以,針對不同的項目編寫測試用例,有許多我們拿以前的測試用例直接黏貼過來用,減少了許多寫測試用例的時間。

針對以上幾個特征,編寫測試用例前,我們應(yīng)該做哪些工作?我一般會花一些時間去看看需求文檔、設(shè)計文檔、開發(fā)文檔;有機會就去找市場部的人交談,在他們抽煙的時候,冒一根不夠,就再冒一根,慢慢的問我想知道的問題;最好也和研發(fā)部的開發(fā)人員了解下情況,這個系統(tǒng)他們怎么看的,打算怎么做,有必要可以說說你的觀點。

當這些前提你都做了,你完全可以寫測試用例了,當然邊寫還是要邊溝通,也許有新的發(fā)現(xiàn)呢?如果邊寫測試用例的時間

不夠,你沒有太多的時間去做這么多的鋪墊工作,也沒有關(guān)系,你可以先把一些通用的測試用例寫出來:登陸、增加數(shù)據(jù)、修改數(shù)據(jù)、查詢數(shù)據(jù)等,然后把業(yè)務(wù)要求

比較強的測試用例放在最后編寫,這樣我們既沒有浪費時間,也可以按時交測試用例。

測試用例寫出來,維護怎么辦?測試用例的維護,寫過測試用例的朋友都知道,大家都去嘟囔修改測試用例很無聊,首先

它沒有太多的技術(shù)含量(這個大家都不喜歡,好多人也認為測試沒有技術(shù)含量),第二這個過程很繁瑣和枯燥。如果想維護簡單,在編寫測試用例的時候你就應(yīng)該考

慮到這點。各項描述應(yīng)該怎么寫,通俗易懂而且是通用的是首選。舉例:

方法一:

測試前提:系統(tǒng)服務(wù)運行正常、,具有xiaoming這個用戶,密碼為999999

測試過程:

1.訪問系統(tǒng)登錄頁面http://localhost:8089/index.jsp

2.輸入用戶名:xiaoming

輸入密碼:999999

3.點擊“登錄”

測試數(shù)據(jù):

用戶名密碼舉例:

系統(tǒng)用戶:xiaoming,密碼999999;xiaohong,密碼666666

用戶名與密碼不匹配:xiaoming,密碼666666;xiaohong,密碼999999

非系統(tǒng)用戶:xiaowang,密碼999999;xiaobai,密碼666666

非法參數(shù):#¥%,密碼HH*&56;yong12%……,密碼**……(

測試結(jié)果:使用正確的用戶名與密碼,可以登錄系統(tǒng);使用錯誤的用戶名和密碼,不能登錄系統(tǒng)

結(jié)果分析:

方法二:

測試前提:系統(tǒng)服務(wù)運行正常、具有系統(tǒng)用戶數(shù)據(jù)

測試過程:

1.訪問系統(tǒng)登錄頁面

2.輸入用戶名和密碼

3.提交數(shù)據(jù)

測試數(shù)據(jù):

用戶名密碼舉例:【假設(shè)xiaoming,密碼999999為系統(tǒng)用戶】

說明:用戶名只能為數(shù)字、字母、下劃線‘_’,首字不能為下劃線

密碼不能為空格

正確格式的用戶名:xiaoming、xiao123、xiao_123、123_xiao等

錯誤格式的用戶名:xiao%、123_xiao+空格、!@等

密碼的輸入?yún)⒄沼脩裘妮斎胍?guī)則

測試結(jié)果:系統(tǒng)用戶能夠登錄系統(tǒng)并具有對應(yīng)的權(quán)限、非系統(tǒng)用戶不能登錄系統(tǒng)

結(jié)果分析:

參照以上兩個測試用例,我們就能很明顯的分辨出用例的優(yōu)劣。第一個測試用例我們至少需要準備xiaoming這一

個測試數(shù)據(jù)、登錄界面如果增加了需要輸入驗證碼,我們就要重新修改測試過程,測試數(shù)據(jù)我們也要做很多修改(就拿用戶名可以輸入數(shù)字、字母、下劃線來說,正

確的組合就有2*3*3=18種),測試結(jié)果,我們登錄系統(tǒng)為了做什么?沒有權(quán)限怎么辦?我們應(yīng)該具有哪些權(quán)限?第一個用例就沒有做說明,可以說,測試結(jié)

果的說明是不全面的。

第二個測試用例,如果系統(tǒng)增加了需要輸入驗證碼,我們在測試過程的第二步,只需要說明輸入用戶名、密碼、驗證碼,測試數(shù)據(jù)我們不需要做變化,在結(jié)果分析里,增加說明:用戶名、密碼、驗證碼正確,準入,否則拒絕。

第二個測試用例,有個不足,就是測試數(shù)據(jù)不全面。我在編寫測試用例時,針對這個測試用例,我有個測試數(shù)據(jù)的附件?!靖郊譃閮刹糠?,手工測試以及自動化測試,手工測試我會有個詳細的數(shù)據(jù)說明,并不是把所有的數(shù)據(jù)組合都列出來,而是詳細的說明組合的方式方法,一共有多少種(包含邊界值法以及特殊值等);自動化測試的數(shù)據(jù)說明簡單很多,寫一個正則表達式搞定】。

按照第二個測試用例,我們的工作就不再是苦力了,而是智慧的苦力。我們不再是點點點,慢慢的我們知道哪些是主要關(guān)注的,哪些是次要關(guān)注的,我們應(yīng)該怎么去設(shè)計數(shù)據(jù)等等。慢慢的,我們學會了思考,我們也真的進步了。

歡迎大家多提意見,我們一起進步。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,590評論 19 139
  • 1.測試與軟件模型 軟件開發(fā)生命周期模型指的是軟件開發(fā)全過程、活動和任務(wù)的結(jié)構(gòu)性框架。軟件項目的開發(fā)包括:需求、設(shè)...
    Mr希靈閱讀 22,407評論 7 278
  • 1.測試與軟件模型 軟件開發(fā)生命周期模型指的是軟件開發(fā)全過程、活動和任務(wù)的結(jié)構(gòu)性框架。軟件項目的開發(fā)包括:需求、設(shè)...
    宇文臭臭閱讀 6,875評論 5 101
  • 文章來自:http://blog.csdn.net/mj813/article/details/52451355 ...
    好大一只鵬閱讀 9,367評論 2 126
  • 誘惑指數(shù):★★★★荒誕指數(shù):★★★★★重口味指數(shù):★★★★★顏值:★★標簽:天才、變態(tài)、香水、少女、重口味、奇書 ...
    芝士閱讀閱讀 1,607評論 0 0

友情鏈接更多精彩內(nèi)容