專利名稱::基于業務驅動的軟件自動化測試方法
技術領域:
:本發明涉及軟件自動化測試技術,具體為一種基于業務驅動的軟件自動化測試方法。
背景技術:
:傳統的軟件自動化測試方法基本就是以錄制回放為主,加之一些數據驅動,使得測試數據與測試腳本分離。這在軟件自動化測試的初期是比較先進的手段,但是隨著軟件自動化測試工具的發展、完善,被測試系統的實現復雜度增加、業務復雜度的增加,傳統的軟件自動化測試的弊端逐漸暴露出來。主要表現在(1)腳本不夠靈活,不能適應業務的復雜程度;(2)維護成本高,工作量巨大。無法滿足被測試頻繁變更、升級的要求;(3)代碼不易理解,對軟件自動化測試腳本的編寫對人員要求較高;(4)僅僅是數據驅動,業務人員很難介入并對腳本的有效性進行檢查。目前,流行基于數據驅動的軟件自動化測試平臺,是一種數據被包含在輸入測試數據文件中,并且以數據來控制軟件自動化測試腳本執行的流程和動作的測試。輸入測試數據記錄從外部讀入,并且獨立于測試腳本。利用關鍵字驅動的軟件自動化測試框架,是通過設計關鍵字來描述離散功能性業務事件,開始時需建立通用關鍵字庫。關鍵字呈現有關投資的良好回報,因為每一個業務事件都是作為離散的實體設計、自動化和維護的。測試人員不需要錄制測試腳本,而是設計測試腳本。這種模型的開發和實現與傳統的測試流程相比是困難的,最耗時的。以上兩種流行的軟件自動化測試方法,都是關注于測試本身的方法論,沒有關注被測對象。基于業務驅動的軟件自動化測試方法,在關鍵字驅動軟件自動化測試框架基礎上引入業務組件技術,通過對被測對象的組件化,降低軟件自動化測試入門門檻,使得操作者只需要簡單的配置,便可以實現軟件自動化測試,在效率的準確性上效果更好。目前基于業務驅動和業務組件技術的軟件自動化測試方法未見有成熟報導,國內外流行的測試工具像HP公司QTP和LoadRurmer(版本10.0)以及開源工具Ruby等自動化測試工具都是面向工具層面,不具備業務封裝功能。
發明內容本發明的技術方案是基于業務驅動的軟件自動化測試方法,由業務邏輯驅動,將被測軟件對象進行業務組件化,軟件自動化測試功能點細化到業務組件,并形成業務組件化的測試用方法。具體業務組件化實施方案分成單一型組件和組合型組件,其中單一型組件是基于最小粒度的組件、并使用單一型組件,該類型的組件的HTML代碼在組件類中編寫以組件只包含組件類和組件規范;組合型組件,基于一塊頁面區域使用組合型組件,該類型的組件的HTML代碼在組件模板中實現,組合型組件包含組件模板、組件類、組件規范;形成業務組件庫;采用軟件自動化測試工具對業務組件庫的組件進行測試,用關鍵字映射表形式將測試邏輯封裝在數據文件中,關鍵字包括三類被操作對象(Item)、操作(Operation)和值(value).,通過軟件自動化測試工具對關鍵字進行解釋、使用,以實現對被測系統的軟件自3動化測試;根據業務組件抽取業務規則,形成業務規則庫,業務規則庫通過測試用例和測試數據用自動化測試工具進行測試;自動化測試工具調用對象函數庫獲得關鍵字映射表,業務組件庫通過關鍵字映射表用自動化測試工具進行測試。對象函數是對業務組件操作指令的函數,一個業務組件對象的類型對應一個組件的對象函數庫;軟件自動化測試工具提供了這樣的函數,在其中加入額外的代碼來檢測錯誤、糾正錯誤和幫助同步,這類代碼是實現無人職守的軟件自動化測試所必需的;對象函數(庫)是在應用業務組件庫和自動化測試工具之間提供了一個隔離層。業務組件抽取,幫助測試工程師在編寫測試時發現規則、表示規則、管理規則、自動執行規則,建立規則運行機制。業務組件抽取的業務規則分成(1)變量之間關系約束規則,(2)變量屬性值強制性約束規則,(3)變量屬性值之間的關系約束規則。本發明的有益效果是面向業務的軟件自動化測試框架,其技術優勢在于,不僅有傳統的軟件自動化測試的高利用率及高準確性的優點,更因為由業務邏輯驅動測試,在保證基本功能點被測全面的基礎上,更能保證全業務場景的合理測試,以及業務與業務之間的合理貫穿,同時因為采用先進的業務組件技術來管理業務和測試用例,降低測試測試人員業務能力的要求。本發明已在移動、聯通和電信等多個省級運營商的IT支撐系統中得以應用,其中包括湖南移動、天津聯通和江蘇電信等,幫助電信運營商提高其支撐系統的業務支撐能力,加快業務發展。本發明是通過多年的實踐,開發的一套針對GUI的測試框架系統和方法。此系統架構在商用軟件自動化測試工具基礎上,直接面向業務,通過引入業務組件技術,進行軟件自動化測試,加快了開發和測試速度,降低了自動化腳本維護成本,節約測試資源投入成本,降低測試人員操作門檻,便于快速掌握和使用。圖1為本發明邏輯圖。具體實施例方式本發明是架構在開源Ruby工具之上,但又不拘限于該測試工具,本方法也可以封裝并在目前國內外主流的自動化測試工具上應用,如HP公司QTP和LoadRurmer。具體實施實施方案(步驟)如下本發明的基本原則是對業務需求中影響系統業務功能的業務規則進行抽取,得出業務池中的所有業務顆粒和相關的業務對象模型,并在基于定義的業務顆粒形成相對穩定的業務池和業務對象模型基礎上,將影響業務池中各個業務顆粒操作的業務對象集合的因素從應用程序中分離出來作為相應的業務規則進行存儲,通過相應的規則引擎來實現(即根據抽取業務規則形成業務規則庫),根據業務組件化技術要求,按照被測對象相似業務活動、使用類似數據、具有通用處理流程以及相同業務目標等角度進行業務活動歸類,并根據業務組件的作用不同,將業務組件分成公共業務組件和普通業務組件庫;(1)由業務邏輯驅動,將產品組件化,測試功能點細化到業務組件,并形成組件化的測試用方法。具體組件化實施方案分成單一型組件和組合型組件,其中單一型組件,一般基于最小粒度的組件使用單一型組件,該類型的組件的HTML代碼在組件類中編寫,所以組件只包含組件類,組件規范,單一型組件又分為表單型組件和普通單一組件;組合型組件,一般基于一塊頁面區域使用組合型組件,該類型的組件的HTML代碼在組件模板中實現,所以組合型組件包含組件模板,組件類,組件規范。1組件模板組件模板主要是將業務邏輯中獲取的數據展現在頁面中,組件模板結構如下<divclass=〃login〃><tablewidth="100%"border="0"cellspacing="0"cellpadding="0"><tr><tdclass=〃mylf〃>用戶名</td><tdclass="myrt"Xlabel><inputtype="text"name="STAFF_ID"desc="用戶名"nullable=〃no〃equsize=〃8〃datatype=〃text〃onfocus=〃select();〃/></label></td></tr></table><div>〈inputtype=〃submit〃jwcid=〃bsubmit〃value="登陸〃onclick=〃returnverifyAll(this)〃/></div><div>1組件類組件類主要編寫組件模板需要用到的動態數據,如publicabstractclassLoginextendsAppTempletComponent{publicabstractvoidsetSource(IDatasource);protectedvoidrenderComponent(IMarkupWriterwriter,IRequestCyclecycle){super.renderComponent(writer,cycle);ιι1組件規范〈component-specificationclass="com.linkage.quickstart.jwcs.demo.DemoField^allow_body="no"allow-informal-parameters="no"><description>DemoField.</description)〈parametername=〃value〃direction=〃form〃type=//java.lang.String"required=//yes///>〈parametername=〃icon〃direction=〃in〃type=//java.lang.String〃default-value=^'/component/images/daochu.jpgJ〃/>〈parametername=〃disabled〃direction=〃in〃type=〃boolean〃required=〃no〃/>〈property—specificationname=〃name〃type=//java.lang.String〃/>〈property-specificationname=〃form〃type=//org.apache,tapestry.IForm〃/></component-specification)(2)根據業務組件抽取業務規則,形成業務規則庫。業務組件抽取的業務規則模型,幫組測試工程師在編寫測試時發現規則、表示規則、管理規則、自動執行規則,建立規則運行機制。業務組件抽取的業務規則分成三類(1)變量之間關系約束規則(VariableRelationConstraintRuleVRCR)(2)變量屬性值強制性約束規則(AttributeMandatoryConstraintsRuleAMCR)(3)變量屬性值之間的關M^iMMM(AttributeRelationConstraintsRuleARCR)該三類規則的描述如下VRCRl=(Id,Application,Task,Rulesetname,Table,Variable,Order,Level)VRCR2=(Id,Application,Task,Customed,Table,Variable,Value,Orderl,0rder2)VRCRl,VRCR2說明該類規則為VRCRl,VRCR2;Application指明該規則的適用的應用;Task該規則有效的業務顆粒;Rulesetname該規則所屬的規則集名稱,應用調用時使用;Table該規則操作的數據庫中的表格;Variable該規則中涉及的影響因素變量名;Order該規則中影響因素變量屬性值的順序,可以是降序,升序,隨機或用戶定制。如果值為用戶定制,用戶定制按照VRCR2描述形式進行。其余元素含義和VRCRl相同,Value為用戶指定的屬性值,Orderl為指定屬性值的順序,Orderf為同一個Orderl中多個屬性值的順序;Level該規則涉及的影響因素變量在連接中的包含關系;變量屬性值強制性約束規則抽取對業務操作的業務對象實例集合強制要求滿足某些變量的屬性值。該規則的描述如下AMCR=(Application,Task,Rulesetname,Condition,Valid,Sequrence)AMCR說明該類規則為AMCR;Application指明該規則的適用的應用;Task該規則有效的業務顆粒;Rulesetname該規則所屬的規則集;Condition強制性約束條件;Valid該規則的有效性;Sequence該規則的執行順序。(3)確認關鍵字,關鍵字驅動一種獨立于應用程序的自動化框架,支持由不同序列或者多個不同路徑組成的測試,例如Windows的計算器的關鍵字權利要求1.基于業務驅動的軟件自動化測試方法,其特征是由業務邏輯驅動,將被測軟件對象進行業務組件化,軟件自動化測試功能點細化到業務組件,并形成業務組件化的測試用方法;具體業務組件化實施方案分成單一型組件和組合型組件,其中單一型組件是基于最小粒度的組件,該類型的組件的HTML代碼在組件類中編寫以組件只包含組件類和組件規范;組合型組件;基于一塊頁面區域使用組合型組件,該類型的組件的HTML代碼在組件模板中實現,組合型組件包含組件模板、組件類、組件規范,形成業務組件庫;采用軟件自動化測試工具對業務組件庫的組件進行測試,用關鍵字映射表形式將測試邏輯封裝在數據文件中,關鍵字包括三類被操作對象(Item)、操作(Operation)和值(value);通過軟件自動化測試工具對關鍵字進行解釋、使用,以實現對被測系統的軟件自動化測試;根據業務組件抽取業務規則,形成業務規則庫,業務規則庫通過測試用例和測試數據用自動化測試工具進行測試;自動化測試工具調用對象函數庫獲得關鍵字映射表,業務組件庫通過關鍵字映射表用自動化測試工具進行測試。2.根據權利要求1所述的基于業務驅動的軟件自動化測試方法,其特征是對象函數是對業務組件操作指令的函數,一個業務組件對象的類型對應一個組件的對象函數庫;軟件自動化測試工具提供了這樣的函數,在其中加入額外的代碼來檢測錯誤、糾正錯誤和幫助同步,這類代碼是實現無人職守的軟件自動化測試所必需的;對象函數(庫)是在應用業務組件庫和自動化測試工具之間提供了一個隔離層。3.根據權利要求1所述的基于業務驅動的軟件自動化測試方法,其特征是業務組件抽取,幫助測試工程師在編寫測試時發現規則、表示規則、管理規則、自動執行規則,建立規則運行機制;業務組件抽取的業務規則分成(1)變量之間關系約束規則,(2)變量屬性值強制性約束規則,(3)變量屬性值之間的關系約束規則。全文摘要基于業務驅動的軟件自動化測試方法,由業務邏輯驅動,將被測軟件對象進行業務組件化,軟件自動化測試功能點細化到業務組件,并形成業務組件化的測試用方法;單一型組件是基于最小粒度的組件、并使用單一型組件;組合型組件,基于一塊頁面區域使用組合型組件,該類型的組件的HTML代碼在組件模板中實現,組合型組件包含組件模板、組件類、組件規范,形成業務組件庫;采用軟件自動化測試工具對業務組件庫的組件進行測試,用關鍵字映射表形式將測試邏輯封裝在數據文件中;通過軟件自動化測試工具對關鍵字進行解釋、使用;自動化測試工具調用對象函數庫獲得關鍵字映射表,業務組件庫通過關鍵字映射表用自動化測試工具進行測試。文檔編號G06F11/36GK102043716SQ20101060431公開日2011年5月4日申請日期2010年12月24日優先權日2010年12月24日發明者丁慶平,朱玉東,王娟,黃錫偉申請人:南京聯創科技集團股份有限公司