文/鄧紹偉
測試管理工具作為軟件測試不可或缺的重要組成部分之一,是軟件測試開發(fā)工作人員數(shù)據(jù)交互順利進(jìn)行的關(guān)鍵。軟件開發(fā)測試人員通過將測試流程程序化的方式,跟蹤、監(jiān)測軟件測試計劃、流程以及執(zhí)行過程中出現(xiàn)的各種問題,以便于工作人員及時的制定解決問題的措施,確保軟件測試工作的高效進(jìn)行。目前,常用的軟件測試管理工具主要包括了:TrackRecord、TestDirector、TestManager等幾種。比如,HPMercury公司質(zhì)量中心(QC)使用的測試管理工具,不但達(dá)到了覆蓋測試核心的目的,同時還具備了數(shù)據(jù)處理的功能。
軟件測試中的功能測試工具,就是運(yùn)用自動檢測、回訪用戶操作等形式,對比、分析檢測系統(tǒng)中輸出的預(yù)先設(shè)定的數(shù)據(jù),以便于測試人員對軟件的可靠性做出準(zhǔn)確的判斷。
負(fù)載壓力測試工具實(shí)際上是一種的度量應(yīng)用系統(tǒng)可擴(kuò)展性與其他相關(guān)性能常用的工具,借助這種自動化工具對系統(tǒng)的功能與行為進(jìn)行預(yù)測,測試人員可以通過數(shù)以萬計的用戶執(zhí)行關(guān)鍵的任務(wù),并利用實(shí)時檢測的性能來對問題進(jìn)行確認(rèn)和查找。這種類型的工具主要包括了:E-TestSuite、SilkPerformav、LoadRunner、QALoad等幾種。
白盒測試工具實(shí)際上就是人們常說的代碼測試,軟件測試工作人員使用白盒測試工具測試軟件,不但能夠及時發(fā)現(xiàn)軟件中存在的漏洞和缺陷,同時也為其準(zhǔn)確定位代碼級別提供了技術(shù)支持。白盒測試方法作為一種以靜態(tài)測試工具和動態(tài)測試工具為原理的測試方法,這種測試工具的推廣和應(yīng)用,對于軟件測試水平的提高有著極大的促進(jìn)作用。測試人員使用靜態(tài)測試工具可以在不掃描運(yùn)行代碼的情況下完成軟件運(yùn)行情況的測試,像PRQA、Logiscope都是常用的靜態(tài)測試工具。當(dāng)前常用的Klocwork測試工具,不但可以通過掃描C及Java項目代碼的方式測試軟件,同時還可以通過對代碼缺陷嚴(yán)重程度的分析,對所屬文件類型進(jìn)行詳細(xì)的分類,促進(jìn)了軟件檢測質(zhì)量和效果的有效提升。軟件測試工作人員在使用動態(tài)測試工具測試系統(tǒng)運(yùn)行狀態(tài)時,主要典型的測試工具有RationalPurify、DevPartner。比如,在運(yùn)用單元測試工具進(jìn)行檢測時,主要采取的插裝式的軟件測試方法,將檢測的代碼插入一些可執(zhí)行的文件中,比如JUnit、C++Test、GoogleTest等。
雖然輔助測試工具不具備執(zhí)行測試程序的功能,但是其可以通過生成測試數(shù)據(jù)的方式,為軟件測試工作的順利開展提供數(shù)據(jù)依據(jù)。主要有TestcaseMaster,在測試的過程中,采用域測試法、逐級細(xì)分法、錯誤猜測法、因果圖分析法等測試方法,為測試提供更好的測試用例,從而讓測試更加順利的進(jìn)行。
當(dāng)前,我國軟件自動化測試技術(shù)應(yīng)該具備一下優(yōu)勢:
(1)測試效率的大幅度提高。因?yàn)檐浖y試是一項工作量大且出錯頻率較高的工作,所以,使用傳統(tǒng)測試技術(shù)取得的測試效果已經(jīng)無法滿足計算機(jī)信息技術(shù)發(fā)展的要求。引進(jìn)自動化測試技術(shù)之后,可以將原本繁瑣的測試步驟代替,軟件測試人員通過引進(jìn)高效測試技術(shù)的方式,不僅有效的縮短了軟件測試的工作時間,減輕了軟禁測試的工作量,同時也提高了軟件測試的效率。
(2)軟件自動化測試多樣化。自動化測試技術(shù)最顯著的特點(diǎn)就是可以在完成手工測試工作的基礎(chǔ)上,完成很多手工無法完成的測試工作。比如,在開展大數(shù)據(jù)測試、壓力測試、崩潰性測試等非功能性測試工作時,如果使用手工測試方法,不僅需要投入大量的人力、物力和時間成本,而且測試結(jié)果的準(zhǔn)確性也無法保證,所以,這些測試工作都必須采用自動化測試的方法進(jìn)行測試。
(3)降低了軟件測試的風(fēng)險,促進(jìn)了資源利用率的有效提升。在軟件自動化技術(shù)應(yīng)用中可以降低風(fēng)險,還可以增加軟件的信任度,體改資源的有效利用。
(4)資源利用率高。在測試的過程中,將一些復(fù)雜的工作交給自動化測試系統(tǒng)完成,不但降低了軟件測試的人工成本,將測試人員徹底解放出來,使其可以將主要精力放在手工測試與案例的分析設(shè)計工作中,從而降低人員的浪費(fèi),提高工作人員的利用,提高工作效率。
自動化軟件測試技術(shù)是上世紀(jì)九十年代出現(xiàn)的一種取代傳統(tǒng)人工測試的一種全新的軟件測試技術(shù)。這一技術(shù)在最初使用時,主要是借助相關(guān)的硬件來著錄制輸入和操作的,但是不能對某個點(diǎn)進(jìn)行檢查,不能對某個點(diǎn)的功能和屬性進(jìn)行檢查。這種操作模式下記錄操作的腳本和操作的數(shù)據(jù)是混在一起的,在維護(hù)的時候需要很高的成本。不僅如此,如果界面出現(xiàn)變化導(dǎo)致腳本沒有辦法使用,測試人員必須重新進(jìn)行錄制,才能確保軟件測試的順利完成,所以,這種測試方法在實(shí)際應(yīng)用過程中不僅使用效率低,而且使用成本較高。
在計算機(jī)信息技術(shù)迅速發(fā)展的推動下,軟件測試技術(shù)已經(jīng)由以往的硬件模式轉(zhuǎn)變?yōu)檐浖J?,測試人員在開展軟件測試工作時,只需要按照測試工作的要求,進(jìn)行各個檢查點(diǎn)參數(shù)值、屬性值、預(yù)期值的檢測,即可斷定這些功能是否可以實(shí)現(xiàn)。與最初的自動化測試有所不同的是,這種技術(shù)可以實(shí)現(xiàn)文件中數(shù)據(jù)的讀取,將數(shù)據(jù)的讀取和操作進(jìn)行分離,因此可以稱之為鯽魚數(shù)據(jù)的自動化測試技術(shù)。這種技術(shù)可以將輸入數(shù)、預(yù)期輸出組織成表,然后將表中的數(shù)據(jù)進(jìn)行一一測試,在測試過程中可以進(jìn)行一行一行讀數(shù),然后再將事先錄制好的或者是工作人員手工編寫的測試腳本用變量的方式傳入,就可以將不同類型的輸入、輸出數(shù)據(jù)進(jìn)行組合。這樣可以更有效的對被測系統(tǒng)進(jìn)行測試。
自2001年開始,基于關(guān)鍵字驅(qū)動的自動化測試技術(shù)開始進(jìn)行應(yīng)用,然后通過對數(shù)據(jù)驅(qū)動技術(shù)的有效擴(kuò)展。測試人員在進(jìn)行關(guān)鍵字的驅(qū)動自動化測試工作時,需要利用語言描述進(jìn)行測試用例,還要將測試腳本進(jìn)行抽象化,讓不懂代碼的人員可以利用工具進(jìn)行測試。因?yàn)殛P(guān)鍵字驅(qū)動自動化測試比較抽象,邏輯性比較強(qiáng),其主要的思想是腳本與數(shù)據(jù)的分離,在測試中描述與具體的現(xiàn)實(shí)細(xì)節(jié)進(jìn)行分離。
所謂領(lǐng)域驅(qū)動自動化測試技術(shù),實(shí)際上就是從以往的關(guān)鍵字測試技術(shù)上發(fā)展衍生而來的。該測試技術(shù)最顯著的特點(diǎn)就是:從領(lǐng)域模型中利用被測軟件的領(lǐng)域語言描述測試用例,還要對測試的用例和關(guān)鍵字進(jìn)行有效的設(shè)計、分析、開發(fā)和組織管理,這樣可以使得測試更有效。領(lǐng)域驅(qū)動自動化的優(yōu)勢主要有:
(1)在測試的過程中利用領(lǐng)域描述可以使得測試更好理解。
(2)在進(jìn)行軟件測試時,工作人員可以根據(jù)要求隨意的進(jìn)行關(guān)鍵字和設(shè)置參數(shù)的整合,確保軟件測試工作的順利進(jìn)行。
(3)假如被測試軟件產(chǎn)品發(fā)生變化的話,還要將領(lǐng)域驅(qū)動進(jìn)行更新,從而可以更加適應(yīng)這種變化,而對測試用例不用修改。
這種自動化測試技術(shù)首先要將整個系統(tǒng)進(jìn)行劃分,從而形成多個獨(dú)立的模塊,每個模塊都可以作為測試的載體,還要包含相應(yīng)的數(shù)據(jù)信息和測試函數(shù),是一個獨(dú)立的測試用例,在需要的時候可以根據(jù)不同的需要調(diào)用相應(yīng)的測試模塊進(jìn)行應(yīng)用,從而將模塊中的數(shù)據(jù)進(jìn)行讀取。雖然應(yīng)用模塊將計算機(jī)系統(tǒng)中的所有系統(tǒng)界面、操作以及輸入等封裝整合在一起,但是,由于這些模塊是相對獨(dú)立存在的,因此,工作人員在進(jìn)行計算機(jī)軟件的維護(hù)時,也必須根據(jù)要求對其進(jìn)行單獨(dú)的維護(hù)。
以指令驅(qū)動為基礎(chǔ)的自動化測試實(shí)際上是一種以數(shù)據(jù)驅(qū)動自動化技術(shù)為基礎(chǔ)改進(jìn)優(yōu)化而來的軟件測試技術(shù),這一技術(shù)主要是在軟件測試的過程中,通過響鈴的指令驅(qū)動系統(tǒng),進(jìn)行軟件的測試。
總而言之,軟件測試是非常重要的,是不可忽視的重要環(huán)節(jié),軟件的測試影響著產(chǎn)品的質(zhì)量和用戶的體驗(yàn)感。目前軟件的功能越來越多,規(guī)模也會更加大、環(huán)境更復(fù)雜,這對軟件測試提出更高的挑戰(zhàn)。因此要不斷的完善軟件測試技術(shù),不斷創(chuàng)新和改進(jìn),從而提高測試的效率,滿足用戶的需求。