正面測試主要根據需求,功能說明書,設計文檔等相關參考文檔來執行測試,而負面測試則主要根據錯誤猜測,逆向思維來測試系統,一定程序上的的依賴測試人員的經驗積累。
執行負面測試時,不單單要測試系統是否處理了用戶的異常操作,還要檢查系統對于這些異常操作是否給予了正確的錯誤提示。它是系統對用戶進行繼續正確操作的指引。
簡言之負面測試的三部曲就是:
1. 檢查程序中的屏幕或頁面是否給出了清晰且充分的提示或約束;
2. 測試系統是否處理了用戶的異常操作;
3. 檢查系統的錯誤提示是否清晰且充分。
以下是Steve Miller的《Top 10 Negative Test Cases》,概括性的提到了一些做負面測試時經常需要注意的測試。
負面測試用例被設計于用軟件未意欲被使用的方式測試軟件,它也應該是測試工作的一部分。以下就是在設計測試工作量時你應該考慮的10大負面測試用例。
1.植入的單引號。大多數基于SQL的數據庫系統在用戶存儲包含一個單引號的信息時會出現問題,例如John's car。每一個可以接受文字數字型數據條目的屏幕都要試試輸入包含一個或多個單引號的文本。
【Kiki補充】其實不只是單引號,基本上測試人員應該測試所有的特殊字符和空/空格(單純的空格和文本前后的空格)。單引號,逗號,/,<,>(對于web的應用程序)都是很容易引發錯誤的。在開發早期測試組就可以建議開發組寫一個通用的函數來處理這些特殊字符,然后在處理用戶的輸入時套用這個函數就可以避免此類錯誤了。
2.必需輸入的數據條目。功能說明書上應該清楚的指出屏幕上必須輸入數據條目的字段。測試屏幕上每一個被說明為必須輸入的字段以保證它強制要求你在字段中輸入數據。
【Kiki補充】對于強制輸入的字段,在屏幕上最好有些標識以說明其為必須輸入的字段。一般在字段前或后用紅色的*號表示。測試時必須要檢查有標識的字段是否和功能說明書或其他參考文檔一致,錯誤信息提示是否正確,強制輸入的字段是否真的必須輸入。
3.字段類型測試。功能說明書上應該清楚的指出要求特定數據輸入要求(日期字段,數字字段,電話號碼,郵編等等)的字段。測試屏幕上每一個被指出有特定類型的字段以保證你輸入了基于字段類型的符合正確格式的數據(數字型字段應該不允許字符或特殊字符,日期型的字段應該允許輸入一個正確的日期等等)
【Kiki補充】其實這里還有一個字段格式和字段內容的測試。有些字段對輸入的格式有要求,這些字段的格式一般在屏幕上也有相應的提示。所以在測試時需要測試提示的格式是否合理(和功能說明書或其他參考文檔相一致)以及系統是否正確識別輸入的格式。有些字段對字段的內容有限制,如常見的用戶名,不能包含特殊字符,首字不能未數字等要求。所以在測試時需要測試提示的格式是否合理(和功能說明書或其他參考文檔相一致)還有不符合內容要求的數據輸入時系統是否正確的處理。
4.字段長度測試。功能說明書上應該清楚的指出可以在字段中輸入的字符數(例如,first name必須是50個或更少的字符)。寫測試用例以保證你只可以輸入特定的字符數。防止用戶輸入比允許范圍更多的字符比因用戶已輸入過多的字符而給出的錯誤信息更加的文雅些。
延伸閱讀
文章來源于領測軟件測試網 http://www.kjueaiud.com/