這個模型由測試表、核心數據驅動引擎、成員函數庫、支持庫、應用映射表組成,分別介紹如下:
測試表(Test Tables):保存測試數據和關鍵字,分為高層測試表、中層測試表、低層測試表。其中,下層的測試表被上層的測試表所調用。
核心數據驅動引擎(Core Data Driven Engine):與測試表對應,分為高層驅動器(也叫循環驅動器)、中層驅動器(也叫組裝驅動器)和低層驅動器(也叫步驟驅動器)。上層的驅動器讀取相應測試表的關鍵字逐級傳遞給下層的驅動器,最后由低層驅動器調用關鍵字庫中的指令對應的組件函數來執行。
組件函數庫(Component Function):組件函數實現了用戶對界面對象的各種操作指令,它在被測應用和自動化工具之間提供了一個隔離層。
支持庫(Support Libraries):通用的程序和工具庫,提供諸如數據庫訪問、字符串操作、文件訪問、日志記錄等基礎性的支持功能。
應用映射表(Application Map):對應用中的對象定義一套命名規范,將這些實際對象的名字和自動化工具識別的對象名聯系起來,形成映射表,從而使應用對象元素和測試對象名分離,提高了腳本的可維護性。
SAFS基于數據驅動和關鍵字驅動的思想設計,對各種商用測試工具的開發產生了深遠的影響。早在1999年就為Rational 實現了自動化框架RRAFS (Rational Robot Automation Framework Support),后來為Mercury Interactive WinRunner 實現的框架叫WRAFS,還開發了一系列引擎。目前正在實現一個在多平臺上測試Java應用的引擎SAFS/Abbot,這也是一個開源項目(http://abbot.sourceforge.net/doc/overview.shtml)。另外一個開源框架STAF:Software Testing Automation Framework(http://staf.sourceforge.net/index.php)也值得研究。
Carl J. Nagle的著名觀點是:在構建測試策略時,必須將被測應用的變化和測試工具的變化所造成的影響降低到最?。?When developing our test strategy, we must minimize the impact caused by changes in the applications we are testing, and changes in the tools we use to test them.")。軟件企業如果要構建自己的自動化測試平臺,可以將SAFS模型作為參考,并吸取其中的思想。
原文轉自:http://www.anti-gravitydesign.com