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 閱讀(161) 評論(0)  編輯  收藏 所屬分類: 測試學習專欄

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

          導航

          統計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 孟津县| 上高县| 平江县| 石台县| 东乌珠穆沁旗| 肃南| 应城市| 酒泉市| 扶余县| 藁城市| 江山市| 揭东县| 留坝县| 沙坪坝区| 木里| 科技| 舟曲县| 灵武市| 和田县| 旬阳县| 临桂县| 资阳市| 咸宁市| 浙江省| 托克逊县| 柳河县| 油尖旺区| 桂林市| 和林格尔县| 阿拉善左旗| 子洲县| 托克托县| 嘉峪关市| 北安市| 罗定市| 晴隆县| 新竹县| 肃宁县| 滁州市| 二连浩特市| 界首市|