天天看點

自動化測試-提高測試效率的途徑(1)

              自動化測試-提高測試效率的途徑  長期以來,軟體測試給人的一種印象是一門”手藝活”,就是跑跑開發者寫出來的程式,點點滑鼠之類,然後大喊一聲,“哇,你這個有個錯别字”。實際上真正的測試并不是這樣的。在真正的測試中,手動操作的測試被稱為Manual Testing,在整個測試流程中隻占一小部分。        想想現在的商用程式都是那麼龐大的,動辄幾百萬行幾千萬行代碼,這麼多的功能依靠于人手工的測試是不現實的而且是對人力資源的極大浪費。因為這些簡單的事情本來可以由程式來做,而且自動做。而且有的事情靠人工也是幹不了的,比如測一下某個程式打開關掉1000次會不會有記憶體洩漏。讓人幹,非瘋了不可。是以開發和使用自動化測試軟體是測試工作中很大的一部分。讓程式自動可以做的事情交給程式去做,這樣才能提高測試的效率和産出。        在一個項目剛開始的時候,負責測試的人也知道自動化測試很重要,但是需要确定那些東西是需要自動化測試的那些東西是不需要自動化測試的。需要确定哪些自動化測試的軟體是現成的那些自動化測試工具是需要自己開發的。是以在開始執行測試之前,在測試計劃中就要對測試用例進行一個評估,将測試用例分成自動化和手工測試兩類。然後根據測試的内容選擇對應的測試工具,或者自己開發。在評估的過程當中一般依據這樣的規則: 可以自動化測試的: 1. 具有良好定義的測試政策和測試計劃(知道要測試什麼,知道什麼時候測試) 2. 對于自動化測試你擁有一個能夠被識别的測試架構和候選者 3. 能夠確定多個測試運作的建構政策 4. 多平台環境需要被測試 5. 每個版本都要測的 6. 擁有運作測試的硬體 7. 擁有關注在自動化過程上的資源等 需要手工測試的: 1. 隻需要執行一次或者執行次數相當少的測試 2. 自動化成本太高的測試 3. 易用性測試 4. 測試結果不确定的測試 5. ADhoc   另外根據測試用例需要選擇測試工具,現在在市場上确實也有很多自動測試軟體。但是這些測試軟體都是針對于一些軟體中常用的、公用的功能提供一些測試。在市場上很難找到一種完全滿足你開發流程的測試軟體。對于一些稍微大一些的軟體項目,除了利用現有的一些商用測試軟體外,還得自己根據自己的實際情況開發一些自己的自動化測試軟體。    下表是一些自動化測試工具類型的描述,

類型 描述
測試用例生成 從設計文檔和對象模型中自動生成測試用例
Code (Test) Coverage Analyzers and Code Instrumentors 找到沒有測試覆寫到的代碼和支援動态測試
Memory-Leak Detection 測試一個程式是不是記憶體洩漏
Metrics-Reporting Tools 分析代碼給出資料流、資料結構和控制流圖。并分析出各個子產品代碼的各方面資訊。
Usability-Measurement Tools 衡量易用性
Test-Data Generators 自動生成測試資料
Test-Management Tools 提供測試用例的管理
Network-Testing Tools 監視、測量診斷在網絡環境下程式的性能
GUI-Testing Tools (Capture/Playback) 錄制使用者的操作然後回放進行自動測試。一次錄制多次回訪
Load, Performance, and Stress Testing Tools 性能,負載,壓力測試
Specialized Tools 依賴于特定體系結構的特殊測試工具,常見于嵌入式環境

  這些類型的軟體對一些大型的軟體來講并不完全能滿足要求,是以在這樣情況下,在經費和時間允許的條件下,測試團隊還需要根據自己的需求開發适合自己産品的自動化測試腳本或測試工具。如何開發自己的測試工具将在後續文章中講述.