2023/02/06

Negative Testing

軟體測試有兩種策略:Positive 與 Negative Testing。Positive Testing 可測試軟體是否是依照預期的方式運作,Negative Testing 是確保軟體能處理 invalid input 及 unexpected user behavior,例如使用者在要輸入數字的欄位,填寫文字,正常的狀況是軟體要做警示,Negative Testing 是確保軟體在這些異常狀況下,能夠處理且不會 crash。

Negative Testing 就是刻意在測試中製造錯誤情境,利用這些製造出來的錯誤狀況進行測試,以確保軟體能夠持續運作。因為使用者在使用軟體的過程中,通常會對 crash 非常敏感,如果填寫或操作的錯誤,造成軟體直接中斷 crash,這時候的體驗印象會非常差,會因為這樣的中斷,填滿了整個體驗印象,不管其他地方做得再好都沒有用。但如果出錯了,出現警示,或是軟體沒有出現任何回應,這樣的狀況,還比較能忍受,不會直接因為 crash 被嚇到。

依照 Negative Testing 的定義,是要找出在一些特殊異常的使用狀況下,軟體會不會發生問題的測試,目的是希望軟體能夠更穩定,能夠應付各種特殊的狀況。

臉書APP超耗電不是錯覺!前員工爆料:Meta故意的 這邊提出了一個前 Meta 員工,因為拒絕做 Negative Testing 而被解僱的新聞。但很奇怪,似乎跟 Negative Testing 的用意初衷不一樣。測試也通常會在測試部門以測試手機去做,很少會直接用 end user 的手機做測試。唯一有可能的測試會是 A/B Test,就是實際用兩種不同的實作方式去實驗 end user 在 A/B 哪一種情境的使用下會比較順暢,但 A/B Test 應該不會跟 app 的耗電有關。

Ask HN: What is “negative testing” in a mobile app? | Hacker News 這邊有做討論,有人猜測,有可能是刻意用 user 的手機,測試在低電源的手機狀況下,app 還能不能運作。但就算要這樣測試,也不可能會先故意將 user 的手機電量消耗掉再做測試,這樣做太沒有效率。也有可能是報導內容誤植 Negative Testing 這個測試名詞。

References

Negative testing - Wikipedia

Negative Testing

沒有留言:

張貼留言