qileilove

          blog已經轉移至github,大家請訪問 http://qaseven.github.io/

          各種測試方法的問題

          在 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, 會導致測試程序員小的情況太多, 錯誤時都需要人腦介入, 一一來跟蹤.
            - 可是手動測試很慢, 無法反復使用, 測試步驟可能不一定有規律, 也不一定都能重復.

          posted on 2014-09-18 09:26 順其自然EVO 閱讀(162) 評論(0)  編輯  收藏 所屬分類: 測試學習專欄

          <2014年9月>
          31123456
          78910111213
          14151617181920
          21222324252627
          2829301234
          567891011

          導航

          統計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 漠河县| 北辰区| 荥阳市| 禄劝| 会泽县| 利津县| 通城县| 休宁县| 龙里县| 泰兴市| 上林县| 贡觉县| 绥德县| 兰溪市| 盖州市| 涪陵区| 钟山县| 海丰县| 南宁市| 武宁县| 梁山县| 新密市| 阳信县| 盘锦市| 伊吾县| 乃东县| 璧山县| 恩施市| 巴林左旗| 千阳县| 望谟县| 赣州市| 班玛县| 泗水县| 且末县| 张家港市| 项城市| 吴旗县| 宁夏| 乐业县| 札达县|