各種測試方法的問題

2021-09-30 22:17:14 字數 1356 閱讀 4379

在 exploratory software testig 一書中, james whittaker在第二章中, 提到各種測試方法的不足:

defect preventation

從開發人員的角度來說, 他們希望藉由 design review, code review, static analysis tool, 和 unit test, 來增加軟體的質量.

但是作者覺得這些方法都有些根本的問題:

(1) 開發人員通常不是個好的測試人員

- 開發人員想的是"如何才能實現這個功能", 而測試人員則是從"如何才能攻破這個功能" 來思考.

- 因此開發人員會有盲點, 需要有另一組人從不同觀點來思考

- 但是不代表開發人員不用作測試, 像是 formatting, data validation 和 error handling 等等都需要及時處理和驗證. 等到測試人員發現, 時間會花得很長, 也修正的代價也很高

(2) 靜止狀態的程式不能完全代表真的測試目標

- 有很多錯誤是和執行環境有關係, 通常在開發環境這些錯誤不會發生的

(3) 缺乏客戶真正資料

- 有些錯誤是和客戶真實的資料有關, 或者需要實行一段時間後, 累積效果出現後才會有問題

- 可是開發人員通常沒有這些資料, 並且也沒有這麼長的測試時間, 所以無法找出這型別的錯誤

defect detection

通常分成手動測試和自動化測試兩種:

自動化測試

- 測試人員不一定會是好的開發人員, 有些人可以, 有些人可能不行.

- 測試程式也是會有 bug, 一旦出現後, 測試人員需要更多時間來除錯, 維護它的正確性和強固性. 所以你要花在測試的時間多, 還是應該花在維護測試程式的時間多?

- 此外測試程式所在的執行環境, 以及所用的測試資料, 不是客戶的資料, 所以效果還是有限. 並且客戶可能也沒有勇氣, 讓你在他的 production 執行.

- oracle problem 的問題是最難處理的, 也就是當你執行完測試時, 你無法確認是否真的實行正確. 像是 install 完畢, 甚麼叫做 install 成功, 是所有 service 都啟動, 是所有檔案都複製完畢, 還是所有 registry 寫正確. 你可能無法列的出來, spec 也不會寫甚麼叫做功能運作正確.

手動測試

- 也是由人來進行測試, 需要充分發聰明才智, 設計出真實客戶環境的資料和使用狀況. 尤其是有關 business logic 更是需要人腦介入.

- 手動測試比自動化測試強的地方, 是因為現實狀況有太多不確定的因素, 有太多 scenario, 會導致測試程式設計師小的情況太多, 錯誤時都需要人腦介入, 一一來跟蹤.

- 可是手動測試很慢, 無法反覆使用, 測試步驟可能不一定有規律, 也不一定都能重複.

測試flex的各種屬性

測試 flex direction屬性決定主軸的方向 即專案的排列方向 box 1234預設情況下,專案都排在一條線 又稱 軸線 上。flex wrap屬性定義,如果一條軸線排不下,如何換行。box nowrap 預設 不換行。12 3456 7 wrap 換行,第一行在上方。12 3456 7 w...

sql的各種問題

1.case遇到符合條件的表示式就返回,即只有乙個返回值。例如 select sal,case whenempno 7369 then when sal 1000 then 低 when sal 2000 then 較低 when sal 3000 then 中 when sal 4000 then...

專案中解決小問題的各種方法

一 獲取html標籤中的文字內容 去除html標記 包括html的原始碼 已經去除後的文字 public static string nohtml string htmlstring 二 擷取字串 擷取字串 按全形長度,乙個全形等於兩個半形 字串 擷取長度 全形 public static stri...