2. 如果完全不知道哪些是主要的功能該怎么辦?
報告給測試經理,不要隨意的選擇。測試經理會和需求方溝通,確定相關文檔,或者會建議你去做什么。
3. 該以什么樣的格式來記錄這些功能呢?
要簡單。使用2-3級的概要記錄。有時一個功能并沒有官方的名稱或標記。也可以列出一些原始功能組。
如果要定義貢獻性的功能,將它和主要的功能做清晰的區別。
例如:如下是一個關于微軟書簽的功能概要:
筆記…..
新增當前文章
刪除
轉到
評注
搜索所有…..
關于文章….
文章內容包括文字….
查找媒體
所有媒體
圖像
動漫
高級搜索
書籍
媒體
文章
1.3 Identify areas of potential instability
在探索這個產品的時候,注意到有些功能很有可能威脅這個產品的穩定標準。選擇5-10個功能或功能組特別實施不穩定性測試。我們也許會選擇貢獻性的功能,如果它們特別容易失敗,但主要的功能的不穩定才是我們最關注的。確認那些會引起產品不穩定的功能該如何測試??紤]超大的,復雜的或者有挑戰性的輸入。用列表將我們選擇的那些不穩定的地方列出來,并且寫出一些在測試他們的過程中使用到的數據或策略。
一些潛在的不穩定的因素:
與其他產品進行交互的功能
那些會消耗大量內存的功能
那些與操作系統交互特別緊密的功能
那些非一般復雜的功能
那些需要改變一些操作參數配置的功能
那些需要改變操作系統配置的功能
那些獲取錯誤的和從錯誤中恢復的功能
那些替代了基本的操作系統功能的功能
那些涉及了多線程工作的功能
那些同時操作多個文件的功能
那些需要從網絡上打開文件的功能
關于挑戰性的數據的一些想法:
文檔:大的文檔;同時打開許多文檔;或文檔中包含許多不同的對象
記錄:長的記錄;很大數量的記錄;或復雜的記錄
列表:長的列表;空的列表;多列的列表
字段:輸入大量字符,非常大的值
變化:新增和刪除一些東西;編輯但沒有保存或編輯
負載:使大量進程同時運行;大量進行批處理;在很短時間做很多事
無推斷:在窗口隨意點擊;隨意輸入字符;輸入無期望的值
異常和恢復:多次破壞進程;取消操作;使用錯誤數據觸發錯誤處理
產出 |
退出標準 |
潛在的不穩定功能和挑戰性數據列表問題/爭論點 | 像上述那樣完成任務這里每個定義的都是我們將要測試或已經測試的對于定義好的不穩定功能,可以說明原因和來源 |
常見的問題:
1. 為啥這個任務重要呢?
我們可以關注最有可能出現不穩定的地方并進行測試,這是個不錯的想法。而且有時候我們使用到的輸入數據也很有可能觸發不穩定。
2. 什么是不穩定性?
任何威脅穩定性標準的行為都是產品的不穩定性。常見的不穩定就是系統掛了。而功能失敗和不穩定最基本的區別:就是后者功能有時候可以正常工作,但有時候又不能。這個功能是不可靠的,但又不是完全不可操作的。當一個功能在某些方式下可以正確工作,但又有不好的方面(破壞其他功能或產品),這就叫不穩定。
3. 我們該怎么知道這里有潛在的不穩定呢?
我們不可能非常確定的知道。我們需要用到的是使用基本的線索去探索。我們在探索性的使用這個產品的時候,會有些感覺哪里會可能有潛在的不穩定。這是我們可以快速的測試來驗證我們最初的猜疑. 假設我們懷疑某個特殊的功能存在不穩定的因素,因為這個功能非常復雜而且看起來會消耗大量的內存。這時我們可以通過查看可見的輸入和輸出的復雜度和操作行為的變化來驗證其功能的復雜度。一旦我們確定了這個功能可能會不穩定,我們可以對這個功能進行覆蓋和加壓測試。一旦是測試穩定性,就可以不要使用普通的輸入參數。
參考自James Bach 的《General Functionality and Stability Test Procedures》
原文轉自:http://www.anti-gravitydesign.com