測試人員必學的軟件快速測試方法(二)
1.用戶界面
若軟件在應用商店中銷售,界面很可能成為用戶是否安裝或購買的重要因素
1).漫遊用戶界面 ,發現是否有任何令人厭煩的界面設計。
2).可參考受歡迎的界面設計,以發現被測產品的可改進之處"
2.邊界
軟件在處理數值邊界時可能出錯
1).發現業務的範圍和邊界,測試邊界上的值和臨近邊界的值
2).測試超出範圍的值
3).令數值計算產出超出範圍的值
4).令一個模塊輸出其他模塊不能接受的值,如界面字段只能顯示10個字符的字符串,測試人員讓後臺產生11個字符的字符串。後臺DB的字段是8位整數,測試人員讓前臺網頁傳遞大於255的整數"
3.溢出
整數和浮點數運算可能溢出,會導致計算錯誤和安全漏洞
留意軟件的數值計算,若覺得某個計算有溢出的風險,就傳入極大值或極小值去觸發潛在的溢出
4.計算和操作
數據轉換和數值計算有些典型錯誤
1).輸入錯誤的數據以測試數據轉換,如軟件期望輸入整數,測試輸入浮點數、無效字符串、空字符串
2).除0
3).除很接近0的極小數值,會產生很大的計算結果,有可能導致數值越界或溢出
4).將高精度數值強制賦給低精度數值,可能導致精度丟失,甚至計算錯誤
5).浮點數運算很可能產生誤差,一些小的誤差會累積出嚴重的偏差,所以測試要關註涉及多個變量或步驟的數值計算,仔細檢查其結果的精度"
5.初始狀態
一段程序在使用一個變量時,可能對該變量的狀態有不正確的假設,這會導致軟件故障
變量通常有5個狀態,測試要檢查程序的對變量狀態的假設是否總是正確的:
1).未初始化
2).已初始化
3).默認值
4).已經被賦予當前計算需要的值
5).帶有其他計算的結果
6.被修改的值
軟件可能不能偵測到它所依賴的事物發生了變化 ,這會導致錯誤
為一個變量設置值,讓一些功能依賴於該變量,然後修改該變量的值,並檢查相應功能是否正確。
eg.用圖片應用瀏覽圖片,切換到OS界面下刪除正在顯示的圖片,返回圖片應用,看被刪的圖片如何顯示
7.控制流
控制流的意外跳轉可能暴露隱藏的問題
測試要想辦法打亂軟件的控制流,如觸發異常、輸入異常數據、造成環境失敗等
8.序列
有些軟件錯誤會在漫長的操作序列中暴露
考慮反復執行以下操作:
1).產生錯誤消息的操作
2).令任務被迫中斷的操作
3).會執行遞歸計算的操作
另外, 測試可編寫測試程序,用隨機的順序調用已有的自動化測試用例,實施長序列的測試"
9.消息
軟件與外界的通訊可能中斷
若軟件與網絡服務、DB、其他軟件有任何形式的交互 ,測試要破壞它們之間的通訊。
可編寫測試程序來監聽並篡改信息,或強制被依賴的軟件返回錯誤信息,以測試軟件如何處理破損的消息
10.時序和競態條件
軟件可能對操作的時序有不正確地假設
測試異步調用時,測試讓軟件先後啟動A和B兩個計算,並讓B先完成計算。有些軟件不能處理後提交的在計算先返回的情況,會發生故障。
測試可同時啟動多個操作去訪問共享的數據或功能,以檢查並發計算是否造成數據損壞。"
11.錯誤處理
軟件的錯誤處理代碼需要應對意外情況,有較高的編寫難度,故易出錯
測試嘗試觸發軟件的錯誤信息,然後反復執行導致 錯誤消息的操作,以檢查錯誤處理代碼是否產生了資源泄漏問題。
強力測試軟件,來檢查錯誤處理代碼是否將軟件恢復到正確狀態。"
12.失敗處理
軟件的失敗恢復可能包含錯誤,使得損失加重
測試要檢查失敗處理代碼的正確性。如,文檔崩潰重啟後,是否顯示用戶最近的編輯成果,避免或降低了用戶的損失。
13.文件系統 文件系統的異常情況會影響軟件的運行
1).用調試工具令OS的文件讀寫API返回錯誤,可模擬出磁盤損壞等異常情況
2).刪除正在被使用的文件
3).刪除即將被使用的文件
4).鎖住即將被使用的文件
5).竊取軟件持有的文件句柄
6).修改一個需要更高權限才能修改的文件
7).令文件名和文件路徑的長度超過OS支持的最大路徑長度
8).令文件名包含OS禁止的字符
9).修改文件名後綴為大寫或其他無效的後綴名
10).將文件名修改對OS有特殊含義的單詞
11).讀寫尺寸巨大的文件
12).將文件寫入只讀的磁盤
13).將文件寫入容量即將耗盡的磁盤
14).將文件寫入網絡磁盤,在寫入過程中,斷開網絡
15).將文件寫入移動硬盤,在寫入過程中,拔出移動硬盤
測試人員必學的軟件快速測試方法(二)