自動化測試是把以人為驅動的測試行為轉化為機器執行的一種過程。通常,在設計了測試用例并通過評審之后,由測試人員根據測試用例中描述的規程一步步執行測試,得到實際結果與期望結果的比較。在此過程中,為了節省人力、時間或硬件資源,提高測試效率,便引入了自動化測試的概念。
針對本文探討的軟件自動化測試項目,挑選工具的重要評判標準有如下幾點:
1.工具成熟性,復雜工作流軟件白動化測試方法的研究第二章軟件測試理論與技術基礎成熟性指工具是否有著足夠廣泛的使用度,是否經歷過足夠的時間考驗,是否經過足夠實踐的檢驗。
由于WOA軟件自動化測試項目并非一個短期的、試驗性的項目,而是一個需要長期進行并推廣的項目。因此,冷門或是新穎的工具并不合適此項目。此類工具的穩定性以及未來的發展性沒有保障。對于長期的軟件自動化測試項目,風險過大。
2.資料全面性,由于在軟件自動化測試項目的進行過程中,必然會遇到各類問題。若工具的資料不夠全面,沒有足夠好的產品服務,沒有強大的社區交互支持,那么,每次問題的解決過程都將變得非常艱苦,容易造成時間的大量浪費。項目進度難以評估,成本難以控制。
3.工具對象識別能力,雖然自動化工具未必是基于Gu一 (Graphieuser,s一nterfaee,用戶圖形界面)進行的,但基于GUI進行的自動化測試有其明顯的好處—能夠更好的模擬真實的用戶操作。不但可以測試到底層的問題,還能測到表層問題,如頁面的巧錯誤等。
因此,一個自動化測試工具的識別對象能力非常重要。一個優秀的自動化測試工具應當擁有良好的控件識別機制,并有快速準確的識別能力。自動化測試工具不但應該能夠良好識別頁面上的各種常見對象:如文字、超鏈接、圖片、文本框、密碼框、單選框、下拉框、頁面彈出框等等。對于一些系統自定義控件,也應該支持自定義描述,提供對象映射功能等。由于對象在頁面上的表現不同,并不是所有的工具和框架都能處理好各種情況,因此控件識別方面需要進行仔細的評估。
4.腳本語言支持能力,不同的自動化工具使用的編程語言不盡相同,常見的有vBseriPt、Javaseript、Java、e#、Rubv等。
對于腳本語合首先應考慮其功能是否可以滿足需求,是否足夠強大。Java、c#之類的高級語言功能上優勢明顯,vBscriPt、」avascriPt等腳本語言則需進行仔細評估。
5.工具的集成開發環境,(Integratedoeve一oping〔nvironment,集成開發環境)對于腳本開發非常重要,一個良好的舊〔對于生產效率的提升是巨大的。舊〔應提供智能提示、自動完成、快速編譯查錯、方便而又強大的調試等基本功能。
6.團隊協作與版本控制,復雜工作流軟件自動化測試方法的研究第二章軟件測試理論與技術纂礎在軟件自動化測試過程中,需要團隊協作。因此,一個良好的版本控制環境非常重要。能夠使用遷出、遷入機制將自動化內容管理起來。保存每個遷入的版本,在需要回退的時候能夠方便的找到歷史版本并進行回退。這樣能避免誤操作帶來的損失,才能讓工作中的協作更為出色。
7.執行控制與執行報告,自動化測試與功能測試一樣,需要進行多次的“執行”,測試執行能力對于自動化測試工具而言非常重要。由于自動化測試的優勢之一便是可以進行無人值守的“自動”執行。因此,工具提供的執行方式應當多種多樣,不但需要能夠方便的進行手動驅動,還需提供自動驅動,定時驅動等功能。此外,自動化工具還應一記錄每次運行的詳情,能夠自動生成內容詳細的,可以定制的測試報告。
8.工具容錯處理能力,自動化腳本運行中,會有多種不確定的因素的干擾,如常見的網絡和服務器穩定性問題等。工具應提供恢復機制,能夠讓測試人員對于意外情況進行自定義配置,關聯特定的恢復清理腳本。測試用例的編寫與自動化工具的選擇都是決定軟件自動化項目成敗的重要環節,下一章將結合本文著重介紹的WOA項目,具體闡述該項目的需求、工具選擇、設計與具體實現。
文章來源于領測軟件測試網 http://www.anti-gravitydesign.com/