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