測(cè)試軟件是一項(xiàng)艱苦的工作。當(dāng)對(duì)測(cè)試用例進(jìn)行等價(jià)劃分時(shí),必然會(huì)減少了測(cè)試的覆蓋范圍。如果測(cè)試員需要做更多的測(cè)試,該如何辦?

  方法是開發(fā)并使用工具。

  一、工具和自動(dòng)化的好處

  在大多數(shù)軟件的開發(fā)模式中,軟件發(fā)布之前要多次重復(fù)代碼??測(cè)試??修復(fù)的過程。

  如果要測(cè)試某項(xiàng)特性,也許需要不止一次執(zhí)行測(cè)試,而是重復(fù)多次。還要檢查確認(rèn)在前面的測(cè)試中發(fā)現(xiàn)的軟件缺陷修復(fù)沒,同時(shí)又沒有引入新的軟件缺陷。重復(fù)執(zhí)行測(cè)試的過程稱為回歸測(cè)試。

  軟件測(cè)試工具和自動(dòng)化可以在有限的時(shí)間內(nèi)執(zhí)行多次測(cè)試。

  工具和自動(dòng)化的主要屬性是:

  1)速度;

  2)效率;

  3)準(zhǔn)確度和精確度;

  4)節(jié)省資源;

  5)仿真和模擬;

  6)堅(jiān)持不懈。

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

  一定要注意,使用測(cè)試工具不見得總是對(duì)的,有時(shí)手工測(cè)試是不可代替的。

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

  二、測(cè)試工具

  使用工具的類型取決于測(cè)試的軟件類型,以及是進(jìn)行黑盒測(cè)試還是白盒測(cè)試。

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

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

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

  1、非入侵式工具和入侵式工具的區(qū)別:

  1)非入侵式工具:如果工具僅用于監(jiān)視和檢查軟件而不對(duì)其進(jìn)行修改,認(rèn)為是非入侵式工具。

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

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

  2、查看器和監(jiān)視器

  查看器(viewer)或者監(jiān)視器(monitor)測(cè)試工具能夠看到正常情況下看不到的運(yùn)行的細(xì)節(jié)。

     分析器是查看器的一個(gè)例子。

  代碼覆蓋率分析器是如何提供一種方式來查看哪些代碼行得以運(yùn)行、什么函數(shù)正在運(yùn)行、執(zhí)行測(cè)試時(shí)所運(yùn)行的代碼分支的。大多數(shù)的代碼覆蓋率分析器是入侵式工具,因?yàn)樗鼈冃枰幾g并鏈接到原程序中才能獲得所需信息。

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

  它只是監(jiān)聽線路,提取經(jīng)過的數(shù)據(jù),在另一臺(tái)計(jì)算機(jī)上顯示。利用該系統(tǒng)可以查看通信數(shù)據(jù)的正確性以及觀察軟件缺陷為什么會(huì)產(chǎn)生。

  通過查看從線上提取的數(shù)據(jù),可以確定問題是出于創(chuàng)建數(shù)據(jù)的機(jī)器還是解釋數(shù)據(jù)的機(jī)器。這種類型的系統(tǒng)對(duì)軟件是非入侵式的。

  在網(wǎng)絡(luò)中,真正監(jiān)視器被稱為嗅探器(sniffer)。

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

  3、驅(qū)動(dòng)程序

  驅(qū)動(dòng)程序是控制和操作被測(cè)試軟件的工具。

  簡(jiǎn)單的驅(qū)動(dòng)程序的例子是批處理文件(batchfile)。在DOS時(shí)代很流行,然而,在現(xiàn)金的操作系統(tǒng)和編程語言下,執(zhí)行測(cè)試程序有更多復(fù)雜的方法。如java和perl腳本可以取代老的MS-DOS批處理文件,并且windows任務(wù)調(diào)度程序可以在全天24小時(shí)的任意時(shí)刻執(zhí)行各種測(cè)試程序。

  在設(shè)法驅(qū)動(dòng)被測(cè)試的軟件時(shí),想一想從外部控制程序的所有可行方法,然后,想方法用自動(dòng)提供測(cè)試輸入的方式代替外部控制。