必學的軟件快速測試方法,現在學還不晚!

前言:

大家好,我是一菲,最近很多小夥伴給我留言:怎麼能快速的進行軟件測試呢?有哪些方法呢?今天特意給大家總結了這篇文章,希望能夠給大家帶來幫助。

正文:
一些快速測試方法,這裏進行補充和調整,並同步更新到我們的測試知識共享庫中,使用時可靈活增刪改查。

1.用戶界面

若軟件在應用商店中銷售,界面很可能成爲用戶是否安裝或購買的重要因素

a.漫遊用戶界面 ,發現是否有任何令人厭煩的界面設計。

b.可參考受歡迎的界面設計,以發現被測產品的可改進之處"

2.邊界

軟件在處理數值邊界時可能出錯

a.發現業務的範圍和邊界,測試邊界上的值和臨近邊界的值

b.測試超出範圍的值

c.令數值計算產出超出範圍的值

.令一個模塊輸出其他模塊不能接受的值,如界面字段只能顯示10個字符的字符串,測試人員讓後臺產生11個字符的字符串。後臺DB的字段是8位整數,測試人員讓前臺網頁傳遞大於255的整數"

3.溢出

整數和浮點數運算可能溢出,會導致計算錯誤和安全漏洞

留意軟件的數值計算,若覺得某個計算有溢出的風險,就傳入極大值或極小值去觸發潛在的溢出

4.計算和操作

數據轉換和數值計算有些典型錯誤

a.輸入錯誤的數據以測試數據轉換,如軟件期望輸入整數,測試輸入浮點數、無效字符串、空字符串

b.除0

c.除很接近0的極小數值,會產生很大的計算結果,有可能導致數值越界或溢出

d.將高精度數值強制賦給低精度數值,可能導致精度丟失,甚至計算錯誤

e.浮點數運算很可能產生誤差,一些小的誤差會累積出嚴重的偏差,所以測試要關注涉及多個變量或步驟的數值計算,仔細檢查其結果的精度"

5.初始狀態

一段程序在使用一個變量時,可能對該變量的狀態有不正確的假設,這會導致軟件故障

變量通常有5個狀態,測試要檢查程序的對變量狀態的假設是否總是正確的:

a.未初始化

b.已初始化

c.默認值

d.已經被賦予當前計算需要的值

e.帶有其他計算的結果

f.被修改的值

軟件可能不能偵測到它所依賴的事物發生了變化 ,這會導致錯誤

爲一個變量設置值,讓一些功能依賴於該變量,然後修改該變量的值,並檢查相應功能是否正確。

eg.用圖片應用瀏覽圖片,切換到OS界面下刪除正在顯示的圖片,返回圖片應用,看被刪的圖片如何顯示

6.控制流

控制流的意外跳轉可能暴露隱藏的問題

測試要想辦法打亂軟件的控制流,如觸發異常、輸入異常數據、造成環境失敗等

7.序列

有些軟件錯誤會在漫長的操作序列中暴露

考慮反覆執行以下操作:

a.產生錯誤消息的操作

b.令任務被迫中斷的操作

c.會執行遞歸計算的操作

另外, 測試可編寫測試程序,用隨機的順序調用已有的自動化測試用例,實施長序列的測試"

8.消息

軟件與外界的通訊可能中斷

若軟件與網絡服務、DB、其他軟件有任何形式的交互 ,測試要破壞它們之間的通訊。

可編寫測試程序來監聽並篡改信息,或強制被依賴的軟件返回錯誤信息,以測試軟件如何處理破損的消息

9.時序和競態條件

軟件可能對操作的時序有不正確地假設

測試異步調用時,測試讓軟件先後啓動A和B兩個計算,並讓B先完成計算。有些軟件不能處理後提交的在計算先返回的情況,會發生故障。

測試可同時啓動多個操作去訪問共享的數據或功能,以檢查併發計算是否造成數據損壞。"

10.錯誤處理

軟件的錯誤處理代碼需要應對意外情況,有較高的編寫難度,故易出錯

測試嘗試觸發軟件的錯誤信息,然後反覆執行導致 錯誤消息的操作,以檢查錯誤處理代碼是否產生了資源泄漏問題。

強力測試軟件,來檢查錯誤處理代碼是否將軟件恢復到正確狀態。"

11.失敗處理

軟件的失敗恢復可能包含錯誤,使得損失加重

測試要檢查失敗處理代碼的正確性。如,文檔崩潰重啓後,是否顯示用戶最近的編輯成果,避免或降低了用戶的損失。

12.文件系統 文件系統的異常情況會影響軟件的運行

a.用調試工具令OS的文件讀寫API返回錯誤,可模擬出磁盤損壞等異常情況

b.刪除正在被使用的文件

c.刪除即將被使用的文件

d.鎖住即將被使用的文件

e.竊取軟件持有的文件句柄

f.修改一個需要更高權限才能修改的文件

g.令文件名和文件路徑的長度超過OS支持的最大路徑長度

h.令文件名包含OS禁止的字符

i.修改文件名後綴爲大寫或其他無效的後綴名

j.將文件名修改對OS有特殊含義的單詞

k.讀寫尺寸巨大的文件

l.將文件寫入只讀的磁盤

m.將文件寫入容量即將耗盡的磁盤

n.將文件寫入網絡磁盤,在寫入過程中,斷開網絡

o.將文件寫入移動硬盤,在寫入過程中,拔出移動硬盤

二、嘗試各種輸入以觸發軟件的所有錯誤消息

一、軟件處理錯誤輸入的常見方式有三種:

a.輸入過濾:濾除錯誤的數據

b.輸入檢查:檢查輸入並報告錯誤

c.異常處理:當錯誤輸入產生故障時,異常處理代碼會捕獲異常並加以補救。

正確編寫以上代碼需周密思考和反覆測試,稍有不慎就可能引入缺陷 "

採用極限值測試、邊界值測試、非法值測試、壓力測試等方法來測試用戶輸入

二、強制讓軟件使用默認值

不同模塊由不同程序員編寫,他們可能期望不同的默認值 ,這種不一致性會導致錯誤

a.接受所有默認值,然後提交

b.使用空值

c.將默認值改爲另一個值,然後再改回來

d.將默認值改爲另一個值,然後改爲空值"

三、探索允許的字符集和數據類型

常見問題:

a.字符集:有些軟件只支持特定編碼的字符集,輸入其他編碼的字符會導致錯誤

b.編程語言:有些軟件會將用戶輸入作爲程序來執行,這導致了許多問題,如SQL注入

c.OS:OS會禁止創建一些特定名字的文件。一些軟件在西文OS上不能正確顯示中文字符

測試瞭解軟件、編程語言、實現技術、OS對字符集和數據的期望與限制,然後使用對它們而言具有特殊含義的字符串或數據進行***

四、令輸入緩衝區溢出

軟件未考慮輸入值超長、超大的情況,導致數值計算溢出或緩衝區溢出
常見測試想法:

a.輸入超長的字符串,字符串最好類似於“中文中文數字1234567中文…”有助於定位導致錯誤的長度

b.輸入極大值(針對加法和乘法計算)、負的極大值(針對減法計算)、很接近0的值(針對除法計算)等"

==五、測試一組相關變量的取值組

當多個程序員共同開發一段代碼時,他們的代碼所產生的數值可能不能正常協作。

此外,程序員還會用複雜的嵌套if語句來檢查多個變量,這些代碼不容易編寫,更容易在維護時出錯。

測試人員通過調查軟件需求和實現,以識別真正相關的變量,它們通常屬於同一個數據結構或參與到同一項計算中。

然後,根據軟件使用它們的方式設計Case。

也可使用組合測試工具來產生Case

六、重複輸入多次

軟件可能不瞭解它在空間和時間上的限制,當重複操作耗盡其資源時,它會失敗

測試反覆執行一些消耗較多資源的操作,或反覆執行一些大量數據的操作。如,在測試在線商城時,測試持續向購物車中添加貨品,創建出一個包含許多商品的“超級訂單”。該訂單可能導致提交失敗,或令未來的訂單處理遇到困難。

補充:
必學的軟件快速測試方法,現在學還不晚!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章