?

自動化基礎案例庫研究

2013-09-03 06:32李霄郭彤朱博
中國信息化·學術版 2013年7期
關鍵詞:案例庫中海油腳本

李霄 郭彤 朱博

【摘 要】本文從建設中海油基礎案例庫必要性入手,提出案例庫設計引入分層結構的測試框架來提高軟件測試代碼編寫及運行工作效率,并根據中海油SAP系統特點對案例庫中業務流程進行組件化、參數化、分類化?;A案例庫中流程的選擇,結合了中海油SAP系統特點及中海油業務復雜的實際情況,從經濟性方面考慮,最終采用基于操作剖面選擇測試的原則實現了選取20%的流程數覆蓋到80%的業務范圍的“二八效應”,為中海油的自動化測試工作打下堅實的基礎。

【關 鍵 詞】 QC平臺;QTP;回歸測試;測試框架;業務組件;業務流程

【中圖分類號】F407.67【文獻標識碼】A【文章編號】1672-5158(2013)07-0219-03

【Abstract】This paper starts from the necessity of CNOOC case library construction, propose that the hierarchical structure testing framework is used to improve software test code compiling and running efficiency,and according to the business process of CNOOC SAP system ,we make case library components, parametric, classification. The process of operation flow select is combined with the actual situation and characteristics of complex CNOOC ‘SAP system , considered from the economic aspect, we realize that to select 20% coverage to 80% business "two eight effect" , CNOOC case library is a solid foundation for the automation of CNOOCsoftwaretest..

【Key words】QC Platform; QTP; Regression Test;Test Framework; Business Component; Business Process

0 引言

中國海洋石油總公司(以下簡稱“中海油”)于2006年成功上線SAP系統,SAP系統已從全面建設向持續的系統運維和深化應用轉變。伴隨著對SAP系統持續的配置變更、新功能開發及新單位上線,這些需求的實現對大集中模式的SAP系統的正常運行帶來了一定的沖擊,使系統存在風險,為避免這些變更對集團SAP系統造成的沖擊,從保證系統的穩定運行角度來講,對于系統的測試工作凸顯出了其重要性。而由人工完成的測試工作面臨著測試時間緊迫、人力資源緊張、測試效率及質量較低等問題,為此,中海油希望引入“自動化腳本基礎案例庫”的方式完成自動化測試工作,利用基礎案例庫來完成自動化腳本的開發、存儲、管理、運行等操作,為自動化測試工作打下堅實的基礎。

1 基礎案例庫建設的必要性

近幾年,中海油發展較快,不斷有新公司成立及新業務領域的增加,特別是在海外業務領域的擴展等,公司業務的發展使得近幾年每年都有較大規模SAP實施項目,與此同時原有公司組織結構的取消和重組,導致公司利潤中心和成本中心的經常變更。SAP系統還需日常的維護,如:SAP系統打補丁、升級及啟用SAP新功能等。用戶在使用SAP系統的過程中對其有新的認識,也提出了對現有系統變更的需求。而中海油SAP系統是集團統一運維、管理的,這些個性需求的實現及升級等操作無不對整個系統的穩定運行造成沖擊。其次,遵循SAP公司ASAP方法論,在新公司上線前會對現運行SAP系統進行回歸測試,保證在新公司配置進入SAP系統時原有系統功能正常運行,防范了新公司配置進入系統對原有系統的沖擊,規避了系統不穩定運行的風險。綜上所述,為了保證SAP系統正常運行,中國海油運維團隊將系統回歸測試和系統巡檢測試的工作提到議事日程。就中國海油SAP系統應用現狀對進行人工回歸測試的工作量進行了評估,但遇到以下幾個方面的挑戰。

1) 時間挑戰:回歸測試通常選取跨模塊集成流程、模塊內重要集成流程進行測試,這其中最長的流程有94個步驟,涉及4個模塊,包括了采購、收貨、發票校驗、銷售、發貨、開票、收付款、生產、月結等主要業務流程,需要大約20個崗位的人員進行協同操作,若一切順利,完成一個這樣的流程大約需要2天左右的時間。

2) 人力資源挑戰:中海油的二級單位組織層級較多,以一家二級單位有9家三級單位為例,做回歸測試就需對9家單位進行組織和協調工作,以9家單位平均實施了6個模塊、每個模塊至少動用2個關鍵用戶或最終用戶計,那么對于此二級單位一次回歸測試至少需要動用108個人員,按通常的做法,給所屬單位回歸測試的時間都在5個工作日。由此可見,在SAP系統大規模實施后的今天若再組織全集團的回歸測試,其組織的工作量已是巨大的了。

3) 質量挑戰:在執行回歸測試的過程中,用戶要翻看大量的手工測試腳本并將測試結果保存在其中,結果的共享及準確性是對測試人員耐心及敬業精神的考驗,回歸測試工作重復性較強,手工測試更容易使測試者感到疲勞和厭倦,增加了錯誤率;

綜上所述,手工測試的挑戰是巨大的,中海油希望引入與SAP系統結合緊密的HP解決方案來完成測試工作,在測試過程中我們需要將手工測試腳本利用QTP自動化,然后定期維護、運行自動化腳本來完成對SAP系統的回歸測試、巡檢測試等基礎工作,所以中海油希望建立自動化基礎案例庫來完成自動化腳本的存儲、分類,利用分層的框架結構簡化腳本開發,提高開發效率并將測試數據與業務流程分離開來。

2 基礎案例庫的設計

基礎案例庫主要完成以下幾個功能:1:提供公用的函數和框架結構提高開發效率2:分類存儲測試人員利用QTP開發的自動化腳本 3:將業務邏輯和測試數據等分層管理。所以,開發人員必須將業務流程分拆成業務組件,利用自動化框架和公用函數根據一定的業務邏輯串寫成自動化腳本,并在編寫過程中將數據和流程分離開來完成流程的參數化,并根據SAP系統的特性及流程的所屬單位將腳本分類存儲,下面我們將各個步驟擴展開來介紹。

2.1業務流程組件化

業務組件是組成流程測試的基本單元,組合不同的業務組件可以實現不同的業務流程測試。如將信息系統的“登錄”做為一個組件,“添加用戶”做為另一個組件等。這樣可以實現組件的復用,下次登錄直接調用腳本即可,提高了開發效率。

業務組件化的優點

1) 相關業務人員可以在沒有腳本的環境下組合業務組件,實現業務流程。

2) 對業務人員的編程能力沒有太高要求,業務人員只需了解系統的業務流程,不用關心具體的腳本實現。這一點也實現了業務層和腳本層的分離。

3) 一旦某個組件開發完畢,即可在不同的流程中使用該組件,實現高可復用性,從而加快業務流程測試的速度。

4) 明確的角色分工,業務人員負責流程的開發、組織;測試工程師負責腳本的開發、維護以及相應函數庫的開發、維護。

5) 因為實現了腳本的復用,提高了自動化開發的效率,無形中就降低了測試過程中維護的時間和成本。

2.2業務流程參數化

業務流程腳本是一組測試工具執行的指令集合,也是計算機程序的一種形式。腳本可以通過錄制測試的操作產生,然后再做修改,這樣可以減少腳本編程的工作量。當然,也可以直接用腳本語言編寫腳本。腳本技術可以分為以下幾類:

1) ――線性腳本是錄制手工執行的測試用例得到的腳本。

2) ――結構化腳本類似于結構化程序設計,具有各種邏輯結構(順序,分支,循環),而且具有函數調用功能。

3) ――共享腳本是指某個腳本可被多個測試用例使用,即腳本語言允許一個腳本調用另一個腳本。

4) ――數據驅動腳本將測試輸入存儲在獨立的數據文件中。

自動化測試對錄制和編輯好的測試步驟進行回放,這種是線性的自動化測試方式,其缺點是明顯的,就是其測試覆蓋面比較低。測試回放的只是錄制時做出的界面操作,以及輸入的測試數據,或者是腳本編輯時指定的界面操作和測試數據。如何讓測試腳本執行時,不僅僅局限于測試錄制或編輯時的測試數據呢?數據驅動的測試方式是解決這個問題的最佳方案。數據驅動測試把測試腳本中的測試數據提取出來,存儲到外部文件或數據庫中,在測試過程中,從文件動態讀入測試數據。

這樣測試用例需要數據輸入完成操作。數據驅動設計能夠分離代碼和數據,并充分重用代碼,測試人員能夠簡單地編輯數據矩陣來設計不同的用例組合。如果用戶界面變化了,也只需要稍稍修改命令序列,這時測試人員通過修改電子表格中數據要比重新編寫代碼來修改測試用例要方便一些。

2.3業務流程分類化

SAP作為世界重要的ERP實施軟件,其突出的特點就是業務拆分細致而全面。SAP是一個基于客戶/服務機結構和開放系統的、集成的企業資源計劃系統【1】。其功能覆蓋企業的財務、后勤(工程設計、采購、庫存、生產銷售和質量等)和人力資源管理、SAP業務工作流系統。那么基礎案例庫中的業務流程分類同樣要按照SAP模塊的功能區分,分為FI 財務會計、CO管理會計、PP 生產計劃、MM 物料管理、QM 品質管理、SD 銷售與分銷、HR 人力資源管理等七個模塊。所以中海油根據一下幾種維度將流程進行分類。

(1) 功能模塊分類:因大型國有企業的SAP業務系統比較復雜,所以我們選擇在測試計劃中,按照業務模塊不同存儲業務流程。

(2) 測試功能分類:按測試功能進行劃分,將流程分為性能測試、自動化測試等

(3) 所屬單位分類:中海油所屬子公司大部分實施了SAP系統,按照單位進行流程分類有利于按照單位來開展測試工作。(見圖1)

2.4業務框架

測試框架的搭建是直接影響功能自動化測試成功與否的關鍵??蚣茏龅暮每梢允箿y試事半功倍,反之輕則很難看到工作的成果重則會使整個測試失敗。目前我們討論HP公司為我們設計好的一個測試體系,業務組件測試。他是利用QTP與QC的完美結合組成的一個體系架構。它可以輕易實現目前比較流行的三層測試架構:腳本層,業務層,數據層相分離,提供了一個開放的、可擴展的測試管理框架,可以將測試依據、測試用的數據、測試執行及測試后的結果有效結合起來[2]。

結構化框架通過共享函數庫中的函數把被測試應用程序和測試腳本分離。共享函數的主要分為:

(1) 定義每個應用程序的功能特征。類似于函數的重用,隱藏每一個組裝的函數。

(2) 定義命令或者測試工具語言的特征。封裝函數是把其他函數封裝在里面,可以通過修改封裝函數,添加或者修改功能解決測試工具的缺陷,或者增強腳本語言的優勢。

(3) 定義小的、頻繁操作的統一目標。它實現了一個操作的命令集合。腳本開發者不用關心其過程,只需要關注輸入和輸出。

(4) 定義實用函數??梢詣摻ㄒ粋€用標準方法生成測試報告的函數,在開發腳本的時候把他作為標準,在每個測試用例后邊調用這個函數。

3 基礎案例庫腳本的選取

基礎案例庫腳本的選取,實際上是對中海油SAP系統回歸測試范圍的確定,即選取哪些流程來進行測試工作,業界有幾種策略包括測試全部流程、基于風險選擇、基于操作剖面選擇、測試修改及所影響部分等,中海油根據自身單位的復雜程度及SAP系統特點做出了相應的策略選擇,力求能夠選取20%的流程數,覆蓋到80%的業務范圍,也就是實現“二八效應”。

3.1 回歸測試定義

回歸測試是指修改了舊代碼后,重新進行測試以確認修改沒有引入新的錯誤或導致其他代碼產生錯誤。自動回歸測試將大幅降低系統測試、維護升級等階段的成本?;貧w測試作為軟件生命周期的一個組成部分,在整個軟件測試過程中占有很大的工作量比重,軟件開發的各個階段都會進行多次回歸測試。在漸進和快速迭代開發中,新版本的連續發布使回歸測試進行的更加頻繁,而在極端編程方法中,更是要求每天都進行若干次回歸測試。因此,通過選擇正確的回歸測試策略來改進回歸測試的效率和有效性是非常有意義的。

3.2、常用回歸測試策略

選擇回歸測試策略應該兼顧效率和有效性兩個方面。常用的選擇回歸測試的方式包括:

1)再測試全部用例

選擇基線測試用例庫中的全部測試用例組成回歸測試包,這是一種比較安全的方法,再測試全部用例具有最低的遺漏回歸錯誤的風險,但測試成本最高。全部再測試幾乎可以應用到任何情況下,基本上不需要進行分析和重新開發,但是,隨著開發工作的進展,測試用例不斷增多,重復原先所有的測試將帶來很大的工作量,往往超出了我們的預算和進度。

2)基于風險選擇測試

可以基于一定的風險標準來從基線測試用例庫中選擇回歸測試用例。首先運行最重要的、關鍵的和風險較大的測試用例,而跳過那些非關鍵的、優先級別低的或者高穩定的測試用例,這些用例即便可能測試到缺陷,這些缺陷的嚴重性也僅有三級或四級。一般而言,測試從主要特征到次要特征。

3)基于操作剖面選擇測試

如果基線測試用例庫的測試用例是基于軟件操作剖面開發的,測試用例的分布情況反映了系統的實際使用情況?;貧w測試所使用的測試用例個數可以由測試預算確定,回歸測試可以優先選擇那些針對最重要或最頻繁使用功能的測試用例,釋放和緩解最高級別的風險,有助于盡早發現那些對可靠性有最大影響的故障。這種方法可以在一個給定的預算下最有效的提高系統可靠性,但實施起來有一定的難度。

4)測試修改及所影響部分

當測試者對修改的局部化有足夠的信心時,可以通過相依性分析識別軟件的修改情況并分析修改的影響,將回歸測試局限于被改變的模塊和它的接口上。通常,一個回歸錯誤一定涉及一個新的、修改的或刪除的代碼段。在允許的條件下,回歸測試盡可能覆蓋受到影響的部分。每當軟件發生變化時,就必須重新測試現有的功能,以便確定修改是否達到了預期的目的,檢查修改是否損害了原有的正常功能。同時,還需要補充新的測試用例。

3.3、中國海油自動化回歸測試方案

基于中海油業務復雜,所屬單位較多這種情況,從經濟性方面考慮沒有必要將所有的業務流程都錄制成自動化測試腳本。 我們將流程分為以下幾類,對于各個分類有著不同的處理方式:(見圖2)

1) 跨模塊的流程:跨模塊的流程選取策略充分保障了選取的業務范圍覆蓋到中海油跨模塊集成業務流程,足夠能代表中海油此業務流程的特點和操作步驟。a: 共性流程:選取最具代表性的公司代碼進行測試 b:個性流程:個性流程選取相關所屬單位測試

2) 模塊內流程:選取的原則是規避查詢報表等影響較小的T-CODE。以MM為例,模塊內重點流程39個,其中XI接口17個;查詢報表和表單TCODE數量為93個。去除查詢報表和表單、XI接口,剩余的22個模塊內重點流程全部納入了自動化測試腳本。

3) 接口測試:根據接口程序的優先級來制定接口自動化流程編制順序。

“二八效應”即選擇百分之二十的流程能夠有百分之八十的測試覆蓋率,以跨模塊SD06共性流程來說,單獨拿出一家單位的流程共有14個流程步驟,六家單位所有的不同步驟是18步(各個單位有一兩個步驟差異),那么我們選取一家單位即可以覆蓋到14/ 17=80%的步驟,即達到了僅將百分之二十的流程制作為自動化腳本但覆蓋到了百分之八十的流程的“二八效應”。根據以上的策略,回歸測試策略最終確認為:選擇38個跨模塊集成流程,以及49個模塊內重點流程。 該策略有以下幾個特性:

1) 集成性:選取集成流程(包括跨模塊集成流程和模塊內集成流程)作為自動化回歸測試對象,不單單因為集成流程包含了絕大部分常用的T-CODE、關鍵控制點,更重要的是集成流程貫穿了整個業務流程,可以從業務流、系統本身集成性來考量“變更”帶來的影響和潛在風險;

2) 全面性:38個跨模塊集成流程包含了中海油所有二級單位的所有共性流程和個性流程,49個模塊內集成流程的選取覆蓋了FICO、MM、SD、HR等模塊,流程的選取覆蓋了所有所屬單位的業務;

3) 理論性:數據的選取兼顧有效性和效率兩個方面,同時又符合“基于操作剖面選擇測試”原則,奠定了自動化回歸測試選取的基礎。

誠然,該方案數據的選取也有自己的局限性,方案重點測試集成流程的功能,共性流程選取單個公司代碼,難以充分測試公司間字段差異化等。

4 結束語

基礎案例庫作為中海油應用系統測試平臺建設的一部分,引入國際先進的測試理念,并在石油石化央企中率先實現了軟件測試專業化和集中化。結合SAP被測系統特點制定出了適合海油的測試解決方案,為SAP的測試提供了基礎案例庫來完成回歸測試、巡檢測試等基礎測試工作。

在實際的應用中,中海油基礎案例庫初期包含了256個業務流程,共計2800個業務組件,覆蓋到了中海油所有的二級單位,在過去的一年內,完成11次集團的回歸測試任務?;A案例庫的應用使得自動化的回歸測試效率大大提高,縮短回歸測試時間,同時提高準確性,將測試技術人員從重復工作中解脫出來投入更多精力設計更好的測試用例。測試具有一致性和可重復性。由于測試是自動執行的,每次測試的結果和執行的內容的一致性是可以得到保障的,從而達到測試的可重復的效果。

參考文獻

[1] SAP從入門到精通.北京 :人民郵電出版社,2010:07-01

[2] 張立德. Rational TeamTest 在軟件測試流程管理中的應用 河北:中國傳媒科技,2004:10

猜你喜歡
案例庫中海油腳本
案例教學在“高等油藏工程”課程的實踐及應用
自動推送與網站匹配的腳本
會計制度設計案例庫建設研究
現代《農學概論》課程教學方法改革與探索
刑事科學技術綜合模擬實訓的改革
舉一反三新編
捕風捉影新編
愚公移山
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合