使用testing tool會讓測試變得更簡單,更有效率,更有生產力
很多種computer-aided software testing(CAST) tools可以取得,並且對付不同的testing process

分類test tools

下面有幾種方法來分類:
    1. 根據test activity 或者 他負責的task: 這裡面所說的activity包含 code verficationm, test planning, test excution
    2. 根據描述的(descriptive) function keyword: tool所執行特定的function, 像 capture/playback, logic coverage, comparator
    3. 根據分類主要的領域: 一些high-level classes 或 groups of tools

每一個class 所包含工具都是功能上或者特徵上相似, 像 test management tools, static analysis tools, 和 模擬器 (simulator)
以下會介紹這些tools相關的activities:
        - review and inspection
        - test planning
        - test design and development
        - test execution and evaluation
        - test support

我們這個分類方法根據兩個理由,第一,和tester的觀點相近, 第二, 和testing 標準一致

Tools for review and inspection
此類工具主要是拿來做reviews, walkthrough, 檢查需求, 功能設計, 內部設計, 和code, 有些工具是設計來在spec 工作, 但是,有很多主要是和code工作
這一類tools須要:
    - 複雜度分析
    - code comprehension
    - syntax and semantic analysis
* complexity analysis
      有經驗的程式設計師會知道20%的code 會造成 80%的問題, complexity analysis 幫助找到這個20%
      complexity matrics 辨認risk, complex 區域, 對於tester很重要因為它提供一個necessarry testing amount 指標 來避免defects.
* code comprehenesion
     幫助我們暸街unfamilar code, 幫助我們知道dependencies, trace program logic, 看程式圖形的表示, 找出無用的code,他可以成功地哪個區域需要得到特別的關注
* syntax and semantic analysis 
      執行extension error checking 來找出compiler 遺失的, 有時在正式測試時, 標記可能的defect
      這些都和語言相依

tools for test planning
    主要是 界定 approach, resource 和 schedules, test plan 提供整個測試流程的基礎, tools don't eliminate the need to think.
    這一類:
        1. templates for the test ducnuments
    2. test schedule and staffing estimates
        3. complexity analyzer

tools for test design and development
     test design 是一個詳細描述方法的流程, 在test plan 中針對software feature and combination of features, 並且辨認和排出test case的優先順序
     test development是將test design 轉換成 test cases
     很少test tools來幫助最重要,最需要心智的流程, 然而, 這一類的的tool, 像capture/playboack幫助test development
     這一類有:
         1. test data generator
         2. requirement-based test design tool
         3. capture/playback
         4. coverage analysis

最有用的的是 test data generator, 根據使用者定義的格式產生test data

test exection and evaluation tools

test exection and evaluation 主要是執行case和分析結果, 包含選擇什麼test case去執行,設定環境, 執行選定的case, 紀錄執行活動, 分析可能產生的失敗,評估有效性
evaluation tools幫忙執行case和評估結果
          1.capture/playback
          2.coverage analysis
          3.memory testing
          4.模擬和performance

*Capture/playback
     測試者透過 capture / playback 工具去自動執行tests
     Capture/playback 擷取使用者操作鍵盤,滑鼠的行為, 顯示結果, 讓測試者可以免於手動去跑test
     可以分成native 和 non-instrsive
     native和被測的軟體在同一個系統下, 會打斷軟體運作
     non-instrusive 需要額外的hardware system
      可以分成幾類:
            1. native/software instrusive (distortion at software level within the sysytem under test)
            2. native/hardware instrusive (distortion at hardware only)
            3. non-instursive (no distortion)

*Coverage analysis
     提供qulity of tests 數量化, 可以告訴我們哪個部份還沒測, 需要更多的測試

*Memory testing
    又可以稱為 bounds-checker, memory testers, run-time detection, 或 leak detectors
    包含哪些能力:
           1.memory problems
           2.overwriting and/or overreading array bounds
           3.memory allocated but not freed
           4.reading and using uninitialized memory
     錯誤可以在造成嚴重問題之前被發現,  雖然memory testing工具傾向於和語言和平台相關, 不過還是有廠商在最popular的環境下開發tool

*Test case management
    我們使用capture/playback工具幫我們自動測試, 可是, 我們起床卻發現成千的散亂的tests必須要整理~
    最好的test case managers:
        1. 提供user interface來管理test
        2. 組織tests,方便使用和維護
        3. 開始並且管理執行選定好的tests' session
        4. 提供良好的和capture/playback和coverage analysis整合
        5. 提供自動化test reporting和文件

*Simulators and performance
    simulator發生在當software或者hardware和被測的software互動時,常用在測試telecommunications app, communication access networks, control programs 和networks
    simulators  允許我們去檢查系統的performance

Software testing support tools

並不是在測試過程的核心
   - problem management : (defect tracking tool, bug management tools, incident control system) 用來記錄,追蹤和幫助管理defects
   - configuration management : version control

 

Roddick 發表在 痞客邦 PIXNET 留言(0) 人氣()