功能測試就是對產(chǎn)品的各功能進(jìn)行php?name=%D1%E9%D6%A4">驗證,根據功能測試用例,逐項測試,檢查產(chǎn)品是否達到用戶(hù)要求的功能。針對web系統的常用測試方法如下:
1. 頁(yè)面鏈接檢查:每一個(gè)鏈接是否都有對應的頁(yè)面,并且頁(yè)面之間切換正確?梢允褂靡恍工具,如LinkBotPro、File-AIDCS、HTML Link Validater、Xenu等工具。LinkBotPro不支持中文,中文字符顯示為亂碼;HTML Link Validater只能測試以Html或者htm結尾的網(wǎng)頁(yè)鏈接;Xenu無(wú)需安裝,支持asp、do、jsp等結尾的網(wǎng)頁(yè),xenu測試鏈接包括內部鏈接和外部鏈接,在使用的時(shí)候應該注意,同時(shí)能夠生成html格式的測試報告。如果系統用QTP進(jìn)行自動(dòng)化測試,也可以使用QTP的頁(yè)面檢查點(diǎn)檢查鏈接。
2. 相關(guān)性檢查:功能相關(guān)性:刪除/增加一項會(huì )不會(huì )對其他項產(chǎn)生影響,如果產(chǎn)生影響,這些影響是否都正確,常見(jiàn)的情況是,增加某個(gè)數據記錄以后,如果該數據記錄某個(gè)字段內容較長(cháng),可能會(huì )在查詢(xún)的時(shí)候讓數據列表變形。
數據相關(guān)性:下來(lái)列表默認值檢查,下來(lái)列表值檢查,如果某個(gè)列表的數據項依賴(lài)于其他模塊中的數據,同樣需要檢查,比如,某個(gè)數據如果被禁用了,可能在引用該數據項的列表中不可見(jiàn)。
3. 檢查按鈕的功能是否正確:如新建、編輯、刪除、關(guān)閉、返回、保存、導入,上一頁(yè),下一頁(yè),頁(yè)面跳轉,重置等功能是否正確。常見(jiàn)的錯誤會(huì )出現在重置按鈕上,表現為功能失效。
4. 字符串長(cháng)度檢查: 輸入超出需求所說(shuō)明的字符串長(cháng)度的內容, 看系統是否檢查字符串長(cháng)度。還要檢查需求規定的字符串長(cháng)度是否是正確的,有時(shí)候會(huì )出現,需求規定的字符串長(cháng)度太短而無(wú)法輸入業(yè)務(wù)數據。
5. 字符類(lèi)型檢查: 在應該輸入指定類(lèi)型的內容的地方輸入其他類(lèi)型的內容(如在應該輸入整型的地方輸入其他字符類(lèi)型),看系統是否檢查字符類(lèi)型。
6. 標點(diǎn)符號檢查: 輸入內容包括各種標點(diǎn)符號,特別是空格,各種引號,回車(chē)鍵?聪到y處理是否正確。常見(jiàn)的錯誤是系統對空格的處理,可能添加的時(shí)候,將空格當作一個(gè)字符,而在查詢(xún)的時(shí)候空格被屏蔽,導致無(wú)法查詢(xún)到添加的內容。
7.特殊字符檢查:輸入特殊符號,如@、#、$、%、!等,看系統處理是否正確。常見(jiàn)的錯誤是出現在% ‘ " 這幾個(gè)特殊字符
8. 中文字符處理: 在可以輸入中、英文的系統輸入中文,看會(huì )否出現亂碼或出錯。
9. 檢查信息的完整性: 在查看信息和更新信息時(shí),查看所填寫(xiě)的信息是不是全部更新,更新信息和添加信息是否一致。要注意檢查的時(shí)候每個(gè)字段都應該檢查,有時(shí)候,會(huì )出現部分字段更新了而個(gè)別字段沒(méi)有更新的情況。
10. 信息重復: 在一些需要命名,且名字應該唯一的信息輸入重復的名字或ID,看系統有沒(méi)有處理,會(huì )否報錯,重名包括是否區分大小寫(xiě),以及在輸入內容的前后輸入空格,系統是否作出正確處理。
11. 檢查刪除功能:在一些可以一次刪除多個(gè)信息的地方,不選擇任何信息,按“delete”,看系統如何處理,會(huì )否出錯;然后選擇一個(gè)和多個(gè)信息,進(jìn)行刪除, 看是否正確處理。如果有多頁(yè),翻頁(yè)選,看系統是否都正確刪除,并且要注意,刪除的時(shí)候是否有提示,讓用戶(hù)能夠更正錯誤,不誤刪除。
12. 檢查添加和修改是否一致: 檢查添加和修改信息的要求是否一致,例如添加要求必填的項,修改也應該必填;添加規定為整型的項,修改也必須為整型.
13. 檢查修改重名:修改時(shí)把不能重名的項改為已存在的內容,看會(huì )否處理,報錯.同時(shí),也要注意,會(huì )不會(huì )報和自己重名的錯.
14. 重復提交表單:一條已經(jīng)成功提交的紀錄,返回后再提交,看看系統是否做了處理。對于Web系統來(lái)說(shuō),可以通過(guò)瀏覽器返回鍵或者系統提供的返回功能。
15. 檢查多次使用返回鍵的情況: 在有返回鍵的地方,返回到原來(lái)頁(yè)面,重復多次,看會(huì )否出錯。
16. 搜索檢查: 有搜索功能的地方輸入系統存在和不存在的內容,看搜索結果是否正確.如果可以輸入多個(gè)搜索條件,可以同時(shí)添加合理和不合理的條件,看系統處理是否正確,搜索的時(shí)候同樣要注意特殊字符,某些系統會(huì )在輸入特殊字符的時(shí)候,將系統中所有的信息都搜索到。
17. 輸入信息位置: 注意在光標停留的地方輸入信息時(shí),光標和所輸入的信息會(huì )否跳到別的地方。
18. 上傳下載文件檢查:上傳下載文件的功能是否實(shí)現,上傳文件是否能打開(kāi)。對上傳文件的格式有何規定,系統是否有解釋信息,并檢查系統是否能夠做到。下載文件能否打開(kāi)或者保存,下載的文件是否有格式要求,如需要特殊工具才可以打開(kāi)等。上傳文件測試同時(shí)應該測試,如果將不能上傳的文件后綴名修改為可以上傳文件的后綴名,看是否能夠上傳成功,并且,上傳文件后,重新修改,看上傳的文件是否存在。
19. 必填項檢查:應該填寫(xiě)的項沒(méi)有填寫(xiě)時(shí)系統是否都做了處理,對必填項是否有提示信息,如在必填項前加“*”;對必填項提示返回后,焦點(diǎn)是否會(huì )自動(dòng)定位到必填項。
20. 快捷鍵檢查:是否支持常用快捷鍵,如Ctrl+C、 Ctrl+V、 Backspace等,對一些不允許輸入信息的字段,如選人,選日期對快捷方式是否也做了限制。
21. 回車(chē)鍵檢查: 在輸入結束后直接按回車(chē)鍵,看系統處理如何,會(huì )否報錯。這個(gè)地方很有可能會(huì )出現錯誤。
22.刷新鍵檢查:在Web系統中,使用瀏覽器的刷新鍵,看系統處理如何,會(huì )否報錯。
23.回退鍵檢查:在Web系統中,使用瀏覽器的回退鍵,看系統處理如何,會(huì )否報錯。對于需要用戶(hù)驗證的系統,在退出登錄后,使用回退鍵,看系統處理如何;多次使用回退鍵,多次使用前進(jìn)鍵,看系統如何處理。
24.直接URL鏈接檢查:在Web系統中,直接輸入各功能頁(yè)面的URL地址,看系統如何處理,對于需要用戶(hù)驗證的系統更為重要。如果系統安全性設計的不好,直接輸入各功能頁(yè)面的URL地址,很有可能會(huì )正常打開(kāi)頁(yè)面。
25.空格檢查:在輸入信息項中,輸入一個(gè)或連串空格,查看系統如何處理。如對于要求輸入整型、符點(diǎn)型變量的項中,輸入空格,既不是空值,又不是標準輸入。
26.輸入法半角全角檢查:在輸入信息項中,輸入半角或全角的信息,查看系統如何處理。如對于要求輸入符點(diǎn)型數據的項中,輸入全角的小數點(diǎn)(“!被颉埃,如4.5);輸入全角的空格等。
27.密碼檢查:一些系統的加密方法采用對字符Ascii碼移位的方式,處理密碼加密相對較為簡(jiǎn)單,且安全性較高,對于局域網(wǎng)系統來(lái)說(shuō),此種方式完全可以起到加密的作用,但同時(shí),會(huì )造成一些問(wèn)題,即大于128的Ascii對應的字符在解密時(shí)無(wú)法解析,嘗試使用“uvwxyz”等一些碼值較大的字符作為密碼,同時(shí),密碼盡可能的長(cháng),如17位密碼等,造成加密后的密碼出現無(wú)法解析的字符。
28.用戶(hù)檢查:任何一個(gè)系統,都有各類(lèi)不同的用戶(hù),同樣具有一個(gè)或多個(gè)管理員用戶(hù),檢查各個(gè)管理員之間是否可以相互管理,編輯、刪除管理員用戶(hù)。同時(shí),對于一般用戶(hù),嘗試刪除,并重建同名的用戶(hù),檢查該用戶(hù)其它信息是否重現。同樣,提供注銷(xiāo)功能的系統,此用戶(hù)再次注冊時(shí),是否作為一個(gè)新的用戶(hù)。而且還要檢查該用戶(hù)的有效日期,過(guò)了有效日期的用戶(hù)是不能登錄系統的。容易出現錯誤的情況是,可能有用戶(hù)管理權限的非超級管理員,能夠修改超級管理員的權限。
29.系統數據檢查:這是功能測試最重要的,如果系統數據計算不正確,那么功能測試肯定是通不過(guò)的。數據檢查根據不同的系統,方法不同對于業(yè)務(wù)管理平臺,數據隨業(yè)務(wù)過(guò)程、狀態(tài)的變化保持正確,不能因為某個(gè)過(guò)程出現垃圾數據,也不能因為某個(gè)過(guò)程而丟失數據。
30.系統可恢復性檢查:以各種方式把系統搞癱,測試系統是否可正常迅速恢復。
31.確認提示檢查:系統中的更新、刪除操作,是否提示用戶(hù)確認更新或刪除,操作是否可以回退(即是否可以選擇取消操作),提示信息是否準確。事前或事后提示,對于Update或Delete操作,要求進(jìn)行事前提示。
32.數據注入檢查:數據注入主要是對數據庫的注入,通過(guò)輸入一些特殊的字符,如“’”,“/”,“-”等或字符組合,完成對SQL語(yǔ)句的破壞,造成系統查詢(xún)、插入、刪除操作的SQL因為這些字符而改變原來(lái)的意圖。如select * from table where id = ‘ ’ and name = ‘ ’,通過(guò)在id輸入框中輸入“12’-”,會(huì )造成查詢(xún)語(yǔ)句把name條件注釋掉,而只查詢(xún)id=12的記錄。同樣,對于update和delete的操作,可能會(huì )造成誤刪除數據。當然還有其它一些SQL注入方法,具體可以參考《SQL應用高級SQL注入.doc》,很多程序都是基于頁(yè)面對輸入字符進(jìn)行控制的,可以嘗試跳過(guò)界面直接向數據庫中插入數據,比如用Jmeter,來(lái)完成數據注入檢查。
33.刷新檢查:web系統中的WebForm. 控件實(shí)時(shí)刷新功能,在系統應用中有利有弊,給系統的性能帶來(lái)較大的影響。測試過(guò)程中檢測刷新功能對系統或應用造成的影響(白屏),檢查控件是否回歸默認初始值,檢查是否對系統的性能產(chǎn)生較大影響(如每次刷新都連接數據庫查詢(xún)等)。
34.事務(wù)檢查:對于事務(wù)性操作,斷開(kāi)網(wǎng)絡(luò )或關(guān)閉程序來(lái)中斷操作,事務(wù)是否回滾。
35.時(shí)間日期檢查:時(shí)間、日期驗證是每個(gè)系統都必須的,如2006-2-29、2006-6-31等錯誤日期,同時(shí),對于管理、財務(wù)類(lèi)系統,每年的1月與前一年的12月(同理,每年的第1季度與前一年的第4季度)。另外,對于日期、時(shí)間格式的驗證,如2006年2月28日、2006-2-28、20060228等。日期檢查還要檢查日期范圍是否符合實(shí)際的業(yè)務(wù),對于不符合時(shí)間業(yè)務(wù)的日期,系統是否會(huì )有提示或者有限制。
36.多瀏覽器驗證:越來(lái)越多的各類(lèi)瀏覽器的出現,用戶(hù)訪(fǎng)問(wèn)Web程序不再單單依賴(lài)于Microsoft Internet Explorer,而是有了更多的選擇:Maxthon、Firefox、Tencent Traveler等,考慮使用多種瀏覽器訪(fǎng)問(wèn)系統,驗證效果。
37.安裝測試:對于C/S架構的系統,安裝程序的測試是一個(gè)重要方面,安裝程序自動(dòng)化程度、安裝選項和設置(驗證各種方案是否都能正常安裝)、安裝過(guò)程中斷測試、安裝順序測試(分布式系統)、修復安裝及卸載測試。
38.文檔測試:主要是對用戶(hù)使用手冊、產(chǎn)品手冊進(jìn)行測試,校驗是否描述正確、完整,是否與當前系統版本對照,是否易理解,是否二義性等。
39.測試數據檢查:事實(shí)告訴我們,測試數據比代碼更有可能是錯的,因此,當測試結果顯示有錯誤發(fā)生的時(shí)候,懷疑代碼錯誤前要先對測試數據檢查一遍。
40.請讓我的機器來(lái)運行:在某些項目中,出現一個(gè)病態(tài)的問(wèn)題:系統沒(méi)有問(wèn)題呀,它在我的機器上是能夠通過(guò)的。這就說(shuō)明了其中存在著(zhù)和環(huán)境相關(guān)的BUG!笆欠袼械囊磺卸际艿搅版本控制工具的管理?”、“本機的開(kāi)發(fā)環(huán)境和服務(wù)器的環(huán)境是否一樣?”、“這里是否存在一個(gè)真正的BUG,只不過(guò)是在其他的機器里偶然出現?”。所有的測試必須在所有系統要求的機器上運行通過(guò),否則的話(huà),代碼就可能存在問(wèn)題。
41.Ajax技術(shù)的應用:Ajax有很多優(yōu)點(diǎn),但也有很多缺點(diǎn),如果利用優(yōu)點(diǎn)、避免缺點(diǎn),是我們對新的Web2.0應用的一個(gè)挑戰。而Ajax的應用最直接的問(wèn)題就是用戶(hù)體驗,用戶(hù)體驗的效果直接關(guān)系到是否使用Ajax技術(shù)!皶(huì )做,并不意味著(zhù)應該做、必須做”,這就是對Ajax技術(shù)的很重要的注解。
42.Ajax技術(shù)的應用:Ajax采用異步調用的機制實(shí)現頁(yè)面的部分刷新功能,異步調用存在異常中斷的可能,嘗試各種方法異常中斷異步的數據調用,查看是否出現問(wèn)題。在這里遇到的一個(gè)問(wèn)題就是對日期控件的操作,已經(jīng)如果頁(yè)面數據較多的時(shí)候的刷新。
43.腳本錯誤:隨著(zhù)Ajax、IFrame等異步調用技術(shù)的發(fā)展,Javascrīpt技術(shù)也越來(lái)越受到開(kāi)發(fā)人員的重視,但Javascrīpt存在調試困難、各瀏覽器存在可能不兼容等問(wèn)題,因此在Web系統中
文章來(lái)源于領(lǐng)測軟件測試網(wǎng) http://kjueaiud.com/