測試用例(功能測試框架)
測試用例的編寫需要按照一定的思路進行,而不是想到哪寫到哪,一般測試機制成熟的公司都會有公司自己自定義的測試用例模板,以及一整套的測試流程關(guān)注點,當(dāng)然我們自己在測試生涯中也應(yīng)當(dāng)積累一套自己的測試框架,所有功能性的測試都可以依據(jù)框架的思路來進行,達到事半功倍的效果。
功能測試框架可以包括:界面友好性測試、功能測試、鏈接測試、容錯測試、穩(wěn)定性測試、常規(guī)性能測試、配置測試、算法測試等等。
1.1.1?界面友好性測試
1.?風(fēng)格、樣式、顏色是否協(xié)調(diào)
2. 界面布局是否整齊、協(xié)調(diào)(保證全部顯示出來的,盡量不要使用滾動條
3. 界面操作、標題描述是否恰當(dāng)(描述有歧義、注意是否有錯別字)
4. 操作是否符合人們的常規(guī)習(xí)慣(有沒有把相似的功能的控件放在一起,方便操作)
5. 提示界面是否符合規(guī)范(不應(yīng)該顯示英文的cancel、ok,應(yīng)該顯示中文的確定等)
6. 界面中各個控件是否對齊
7. 日期控件是否可編輯
8. 日期控件的長度是否合理,以修改時可以把時間全部顯示出來為準
9. 查詢結(jié)果列表列寬是否合理、標簽描述是否合理
10. 查詢結(jié)果列表太寬沒有橫向滾動提示
11. 對于信息比較長的文本,文本框有沒有提供自動豎直滾動條
12. 數(shù)據(jù)錄入控件是否方便
13. 有沒有支持Tab鍵,鍵的順序要有條理,不亂跳
14. 有沒有提供相關(guān)的熱鍵
15. 控件的提示語描述是否正確
16. 模塊調(diào)用是否統(tǒng)一,相同的模塊是否調(diào)用同一個界面
17. 用滾動條移動頁面時,頁面的控件是否顯示正常
18. 日期的正確格式應(yīng)該是XXXX-XX-XX或XXXX-XX-XXXX:XX:XX
19. 頁面是否有多余按鈕或標簽
20. 窗口標題或圖標是否與菜單欄的統(tǒng)一
21. 窗口的最大化、最小化是否能正確切換
22. 對于正常的功能,用戶可以不必閱讀用戶手冊就能使用
23. 執(zhí)行風(fēng)險操作時,有確認、刪除等提示嗎
24. 操作順序是否合理
25. 正確性檢查:檢查頁面上的form, button, table, header, footer,提示信息,還有其他文字拼寫,句子的語法等是否正確。
26. 系統(tǒng)應(yīng)該在用戶執(zhí)行錯誤的操作之前提出警告,提示信息.
27. 頁面分辨率檢查,在各種分辨率瀏覽系統(tǒng)檢查系統(tǒng)界面友好性。
28. 合理性檢查:做delete, update, add, cancel, back等操作后,查看信息回到的頁面是否合理。
29. 檢查本地化是否通過:英文版不應(yīng)該有中文信息,英文翻譯準確,專業(yè)。
30.?背景灰度凍結(jié)
1.1.2?功能測試
1.?使用所有默認值進行測試
2.?根據(jù)所有產(chǎn)品文檔、幫助文檔中描述的內(nèi)容要進行遍歷測試
3.?輸入判斷
4.?所有界面出現(xiàn)是和否的邏輯,要測試
5.?異常處理
6.?敏感詞
7.?根據(jù)需求文檔的流程圖遍歷所有流程圖路徑
8.?根據(jù)程序內(nèi)容,遍歷if elif else switch的邏輯點要遍歷
9.?界面各種控件測試
如對于輸入框測試:
一、字符型輸入框:
1.?字符型輸入框:英文全角、英文半角、數(shù)字、空或者空格、特殊字符“~!@#¥%……&*?[]{}”特別要注意單引號和&符號。禁止直接輸入特殊字符時,使用“粘貼、拷貝”功能嘗試輸入。
2.?長度檢查:最小長度、最大長度、最小長度-1、最大長度+1、輸入超工字符比如把整個文章拷貝過去。
3.?空格檢查:輸入的字符間有空格、字符前有空格、字符后有空格、字符前后有空格
4.?多行文本框輸入:允許回車換行、保存后再顯示能夠保存輸入的格式、僅輸入回車換行,檢查能否正確保存(若能,檢查保存結(jié)果,若不能,查看是否有正常提示)、
5.?安全性檢查:輸入特殊字符串
(null,NULL,,javascript,,,,<html>,<td>)、輸入腳本函數(shù)(<script>alert("abc")</script>)、doucment.write("abc")、<b>hello</b>)
二、數(shù)值型輸入框:
1.?邊界值:最大值、最小值、最大值+1、最小值-1
2.?位數(shù):最小位數(shù)、最大位數(shù)、最小位數(shù)-1最大位數(shù)+1、輸入超長值、輸入整數(shù)
3.異常值、特殊字符:輸入空白(NULL)、空格或"~!@#$%^&*()_+{}|[]\:"<>?;',./?;:'-=等可能導(dǎo)致系統(tǒng)錯誤的字符、禁止直接輸入特殊字符時,嘗試使用粘貼拷貝查看是否能正常提交、word中的特殊功能,通過剪貼板拷貝到輸入框,分頁符,分節(jié)符類似公式的上下標等、數(shù)值的特殊符號如∑,㏒,㏑,∏,+,-等、
輸入負整數(shù)、負小數(shù)、分數(shù)、輸入字母或漢字、小數(shù)(小數(shù)前0點舍去的情況,多個小數(shù)點的情況)、首位為0的數(shù)字如01、02、科學(xué)計數(shù)法是否支持1.0E2、全角數(shù)字與半角數(shù)字、數(shù)字與字母混合、16進制,8進制數(shù)值、貨幣型輸入(允許小數(shù)點后面幾位)、
4.?安全性檢查:不能直接輸入就copy
三、日期型輸入框:
1.?合法性檢查:(輸入0日、1日、32日)、月輸入[1、3、5、7、8、10、12]、日輸入[31]、月輸入[4、6、9、11]、日輸入[30][31]、輸入非閏年,月輸入[2],日期輸入[28、29]、輸入閏年,月輸入[2]、日期輸入[29、30]、月輸入[0、1、12、13]
考慮開始日期與結(jié)束日歷的比較,特別是在查詢的時候.
2.?異常值、特殊字符:輸入空白或NULL、輸入~!@#¥%……&*(){}[]等可能導(dǎo)致系統(tǒng)錯誤的字符
3.?安全性檢查:不能直接輸入,就copy,是否數(shù)據(jù)檢驗出錯?
1.1.3?業(yè)務(wù)流程測試(主要功能測試)
業(yè)務(wù)流程,一般會涉及到多個模塊的數(shù)據(jù),所以在對業(yè)務(wù)流程測試時,首先要保證單個模塊功能的正確性,其次就要對各個模塊間傳遞的數(shù)據(jù)進行測試,這往往是容易出現(xiàn)問題的地方,測試時一定要設(shè)計不同的數(shù)據(jù)進行測試。
如某一功能模塊具有最基本的增刪改查功能,則需要進行以下測試:
1.?單項功能測試(增加、修改、查詢、刪除)
2.?增加——>增加——>增加 (連續(xù)增加測試)
3.?增加——>刪除
4.?增加——>刪除——>增加 (新增加的內(nèi)容與刪除內(nèi)容一致)
5.?增加——>修改——>刪除
6.?修改——>修改——>修改 (連續(xù)修改測試)
7.?修改——>增加(新增加的內(nèi)容與修改前內(nèi)容一致)
8.?修改——>刪除
9.?修改——>刪除——>增加 (新增加的內(nèi)容與刪除內(nèi)容一致)
10.?刪除——>刪除——>刪除 (連續(xù)刪除測試)
1.1.4?鏈接測試
主要是保證鏈接的可用性和正確性,它也是網(wǎng)站測試中比較重要的一個方面。
可以使用特定的工具如XENU來進行鏈接測試。
1.1.5?容錯測試
1.?輸入系統(tǒng)不允許的數(shù)據(jù)作為輸入
2.?把某個相關(guān)模塊或者子系統(tǒng)停掉,驗證對當(dāng)前系統(tǒng)的影響
3.?配置文件刪除或者配置錯誤
4.?數(shù)據(jù)庫注入錯誤數(shù)據(jù)
1.1.6?穩(wěn)定性測試
1.?系統(tǒng)不間斷運行(7*24),驗證是否內(nèi)存泄露、系統(tǒng)其他資源是否存在泄露
2.?如果很緊急上線,可以跑一晚上或者周末跑兩天。
一般壓力很大的情況下,數(shù)據(jù)庫連接數(shù)問題、內(nèi)存泄露問題會曝露的比較快但是死鎖可能不能體現(xiàn),所以要看系統(tǒng)重要性,如12306穩(wěn)定性則最好7*24小時
1.1.7?常規(guī)性能測試
1.?連接速度測試
用戶連接到Web應(yīng)用系統(tǒng)的速度根據(jù)上網(wǎng)方式的變化而變化,他們或許是電話撥號,或是寬帶上網(wǎng)。當(dāng)下載一個程序時,用戶可以等較長的時間,但如果僅僅訪問一個頁面就不會這樣。如果Web系統(tǒng)響應(yīng)時間太長(例如超過5秒鐘),用戶就會因沒有耐心等待而離開。
另外,有些頁面有超時的限制,如果響應(yīng)速度太慢,用戶可能還沒來得及瀏覽內(nèi)容,就需要重新登陸了。而且,連接速度太慢,還可能引起數(shù)據(jù)丟失,使用戶得不到真實的頁面。
2. 負載測試
負載測試是為了測量Web系統(tǒng)在某一負載級別上的性能,以保證Web系統(tǒng)在需求范圍內(nèi)能正常工作。負載級別可以是某個時刻同時訪問Web系統(tǒng)的用戶數(shù)量,也可以是在線數(shù)據(jù)處理的數(shù)量。例如:Web應(yīng)用系統(tǒng)能允許多少個用戶同時在線?如果超過了這個數(shù)量,會出現(xiàn)什么現(xiàn)象?Web應(yīng)用系統(tǒng)能否處理大量用戶對同一個頁面的請求?
3. 壓力測試
負載測試應(yīng)該安排在Web系統(tǒng)發(fā)布以后,在實際的網(wǎng)絡(luò)環(huán)境中進行測試。因為一個企業(yè)內(nèi)部員工,特別是項目組人員總是有限的,而一個Web系統(tǒng)能同時處理的請求數(shù)量將遠遠超出這個限度,所以,只有放在Internet上,接受負載測試,其結(jié)果才是正確可信的。
進行壓力測試是指實際破壞一個Web應(yīng)用系統(tǒng),測試系統(tǒng)的反映。壓力測試是測試系統(tǒng)的限制和故障恢復(fù)能力,也就是測試Web應(yīng)用系統(tǒng)會不會崩潰,在什么情況下會崩潰。黑客常常提供錯誤的數(shù)據(jù)負載,直到Web應(yīng)用系統(tǒng)崩潰,接著當(dāng)系統(tǒng)重新啟動時獲得存取權(quán)。
壓力測試的區(qū)域包括表單、登陸和其他信息傳輸頁面等
1.1.8?易用性測試
1.?系統(tǒng)界面的控件是否可以通過tab鍵遍歷,并且順序合理
2.?主要功能的入口和操作是否易于理解
3.?界面是否布局合理,功能是否易于查找和使用
4.?操作步驟
5.?操作習(xí)慣
6.?有足夠的提示信息,且信息文字描述準確
1.1.9?兼容性測試
兼容性測試不只是指界面在不同操作系統(tǒng)或瀏覽器下的兼容,有些功能方面的測試,也要考慮到兼容性,
包括操作系統(tǒng)兼容和應(yīng)用軟件兼容,可能還包括硬件兼容
比如涉及到ajax、jquery、javascript等技術(shù)的,都要考慮到不同瀏覽器下的兼容性問題。
除了上面所說的這些測試以外,還有算法測試、配置測試、安全性測試等等,在工作中不斷總結(jié)和分析,形成自己的功能測試框架,當(dāng)你把這份工作做起來以后,對于你自己對于測試團隊而言都是一份很有價值的事情,你的測試思路也會變得更全面。