測試軟件是一項艱苦的工作。當對測試用例進行等價劃分時,必然會減少了測試的覆蓋范圍。如果測試員需要做更多的測試,該如何辦?

  方法是開發并使用工具。

  一、工具和自動化的好處

  在大多數軟件的開發模式中,軟件發布之前要多次重復代碼??測試??修復的過程。

  如果要測試某項特性,也許需要不止一次執行測試,而是重復多次。還要檢查確認在前面的測試中發現的軟件缺陷修復沒,同時又沒有引入新的軟件缺陷。重復執行測試的過程稱為回歸測試。

  軟件測試工具和自動化可以在有限的時間內執行多次測試。

  工具和自動化的主要屬性是:

  1)速度;

  2)效率;

  3)準確度和精確度;

  4)節省資源;

  5)仿真和模擬;

  6)堅持不懈。

  注意:軟件測試工具不能代替軟件測試員??它們只能幫助軟件測試員更好地工作。

  一定要注意,使用測試工具不見得總是對的,有時手工測試是不可代替的。

  目前的任務是了解測試工具能做什么以及怎么做,考慮如何用它們來完成測試任務。

  二、測試工具

  使用工具的類型取決于測試的軟件類型,以及是進行黑盒測試還是白盒測試。

  測試工具的好處是使用時并不是總需要深入了解工具在怎樣做或者做什么。

  測試員不必了解工具是怎樣做到的,只要知道它做得到可以了??這是黑盒測試。

  另一方面,測試員要有效使用這些工具,需要具備一些白盒技能以及底層協議的知識。

  1、非入侵式工具和入侵式工具的區別:

  1)非入侵式工具:如果工具僅用于監視和檢查軟件而不對其進行修改,認為是非入侵式工具。

  2)入侵式工具:如果工具以任何方式修改了程序代碼或者控制了操作環境,屬于入侵式工具。

  由于入侵的程度各有不同,測試員通常設法使用侵入性盡量小的工具,以減少工具影響測試結果的可能性。

  2、查看器和監視器

  查看器(viewer)或者監視器(monitor)測試工具能夠看到正常情況下看不到的運行的細節。

     分析器是查看器的一個例子。

  代碼覆蓋率分析器是如何提供一種方式來查看哪些代碼行得以運行、什么函數正在運行、執行測試時所運行的代碼分支的。大多數的代碼覆蓋率分析器是入侵式工具,因為它們需要編譯并鏈接到原程序中才能獲得所需信息。

  2)通信分析器(communicationsanalyzer)是另一種查看器的例子。

  它只是監聽線路,提取經過的數據,在另一臺計算機上顯示。利用該系統可以查看通信數據的正確性以及觀察軟件缺陷為什么會產生。

  通過查看從線上提取的數據,可以確定問題是出于創建數據的機器還是解釋數據的機器。這種類型的系統對軟件是非入侵式的。

  在網絡中,真正監視器被稱為嗅探器(sniffer)。

  3)大多數編譯器所帶的代碼調試器也可以看做是查看器,看到一般用戶看不到的數據的工具都可以歸類為查看測試工具。

  3、驅動程序

  驅動程序是控制和操作被測試軟件的工具。

  簡單的驅動程序的例子是批處理文件(batchfile)。在DOS時代很流行,然而,在現金的操作系統和編程語言下,執行測試程序有更多復雜的方法。如java和perl腳本可以取代老的MS-DOS批處理文件,并且windows任務調度程序可以在全天24小時的任意時刻執行各種測試程序。

  在設法驅動被測試的軟件時,想一想從外部控制程序的所有可行方法,然后,想方法用自動提供測試輸入的方式代替外部控制。