摘要:為了提高軟件自動化測試腳本的可復用性,提出了一種基于關鍵字驅動的自動化測試框架(LKDT)。首先對目前現有自動化測試框架進行了歸納分析;然后提出了LKDT的系統架構,給出了其中所包含的關鍵技術;最后以實際的Linux桌面應用程序為例對LKDT框架與現有框架進行實際對比驗證,結果表明該框架具有降低測試腳本規模、提高整體測試效率等優越性。
關鍵詞:關鍵字驅動; 自動化測試; Linux GUI測試
0 引言
軟件測試是保障和提高軟件質量的重要手段[1]。軟件開發者和使用者必須對軟件進行充分的測試,以確保其正常工作。統計表明,在典型的軟件開發項目中,軟件測試工作量往往占軟件開發總工作量的40%以上[2,3]。因此提高軟件測試過程的效率至關重要。
為了提高測試效率,越來越多的測試工作引入了自動化測試的思想和方法。實踐證明,軟件自動化測試技術提高了軟件測試的速度和效率,節省了軟件測試成本,縮短了產品發布周期。同時,自動化測試技術也完成了許多手工測試無法實現的工作。所以,采用自動化測試方法和相應的測試框架成為了軟件開發組織測試工作的重要支撐手段。例如,采用自動化測試工具能在測試活動中減少一部分開銷,同時,有些測試活動是靠手工方式難以實現和度量的;自動化測試框架能夠提高測試效率,快速定位測試軟件各版本中的功能、性能缺陷。
目前的自動化測試框架主要可以分為三種:錄制/回放測試框架、數據驅動的自動化測試框架、關鍵字驅動的自動化測試框架。通過比較,發現關鍵字驅動的測試框架較前兩者具有更好的可復用性,而且隨著測試量的增加,測試代碼的不斷累積,其優越性愈加明顯。但當前基于關鍵字驅動的測試框架研究尚未給出直接可用于Linux桌面測試的框架。而 Linux下支持GUI自動化測試的測試框架對于Linux的應用程序的豐富與成熟具有至關重要的保障作用。因此為了彌補理論和實踐的差距,本文給出了一種實用、有效的關鍵字驅動的測試框架 LKDT,并驗證了LKDT在自動化測試領域的實用性和優越性。
1 自動化測試框架概述
1.1 自動化測試框架定義
一個自動化測試框架就是一個由假設、概念以及為自動化測試提供支持的實踐的集合[4]。自動化測試框架可以減少測試腳本實現和維護的成本,使測試人員把精力集中在測試用例的設計上。自動化測試框架的好壞直接影響到自動化測試的成功與否[2]。
1.2 自動化測試框架開發原則
一個優秀的自動化測試框架應該滿足以下特點:
a) 測試框架與被測應用程序獨立。雖然測試的應用程序不一樣,但被測應用程序之間卻會有相同的地方,測試框架應聚焦在不同測試應用程序中共同的部分,把與具體應用程序有關的部分從框架中移除。
b) 測試框架應易于擴展、維護。測試框架應被高度模塊化,這樣可以提高框架的維護性。各個模塊之間相互獨立,對模塊內部的修改不應該影響其他模塊。除此之外,系統應該有充足、詳細的文檔,與軟件開發一樣,這也是必不可少的。設計文檔可以幫助開發人員擴展、維護測試框架,而使用文檔則可以告訴用戶要怎么使用該框架。
c) 測試腳本所使用的測試語言應該是與框架獨立的。不同的測試框架可能在不同的應用領域有不同的表現,有些適用于Java應用程序的測試, 有些可能適用于Web應用程序的測試,如果測試腳本所采用的語言是私有的、與測試框架綁定的,那么當需要從一個測試框架遷移到另外一個測試框架時,所有的測試腳本都需要重寫。
d) 測試框架不應該讓框架的復雜性影響到測試人員。在大多數情況下,測試人員就是測試人員而不是開發人員,甚至有的時候,他們不是專業的測試人員,可能只是具有很少軟件開發經驗的某個應用領域的專家。對于這些使用者來說,測試框架的使用要簡單、測試語言要易于理解,這樣可以使他們專注于業務相關內容的編寫。
文章來源于領測軟件測試網 http://www.kjueaiud.com/