?

業務持續演進過程中全生命周期測試方法的研究與實踐

2015-05-13 23:25陳伯慧周文斌
信息通信技術 2015年3期
關鍵詞:測試用例聯通遼寧

王 昊 陳伯慧 周文斌 郭 軍

1 中國聯通遼寧省分公司 沈陽 110041

2 東北大學信息科學與工程學院 沈陽 110819

引言

復雜業務系統的持續演進已經成為中國聯通信息化建設的常態。中國電信業進入到了全業務運營時代[1-2],聯通同時經營移動、固定、數據網絡,全方位開展接入服務、通信業務、增值業務、內容應用等,用戶量和數據量非常龐大,這使得現有業務越發復雜。在這當中,聯通經營業務不斷重組、2G、3G、4G多次升級,計費業務頻繁變更,系統融合和集中一體化持續推進等,使得對復雜業務系統進行更敏捷的在線演進、持續升級成為常態。

如何在業務系統演進過程中確保質量,已經成為聯通信息化建設中的關鍵問題。演進過程中常常出現功能失效、流程漏洞、性能較差等各種各樣的情況[3-4],導致演進成本較高、開發周期較長、社會影響較大。

傳統的由開發商主導的測試過程不能滿足聯通業務持續演進的需求。首先,集成測試效果較差。遼寧聯通業務支撐系統由營業、計費、號線資源、服務開通、融合客服等20余套子系統構成,分別由不同的開發商進行開發,開發商往往聚焦自己分包任務的質量,而對集成后的效果分析和質量問題關注較少,導致集成測試效率較低,一旦出現問題,常?;ハ嗤普?。其次,測試技術水平較低。開發商在測試技術方面不夠專業,既缺少掌握測試標準、測試體系、專業技術的測試技術人員,也缺乏價格昂貴的測試工具,并且在可復用測試用例庫、大并發性能測試、運營性能優化等聯通迫切需要的高端檢測技術方面能力不足。最后,質量掌控能力較弱:對于聯通而言,開發商主導的測試過程如同灰盒一樣不透明,測試的完整性、可信度、完成度、缺陷等級等,都不能清晰掌握。

為解決上述問題,遼寧聯通在過去的幾年中,一直探索業務持續演進過程中多方驅動的全生命周期測試方法。

1 業務全生命周期測試過程

根據聯通業務演進特點,將各個復雜的質量活動科學、合理、規范地管理起來是確保業務演進質量的基礎。遼寧聯通參考IBM RUP(Rational Unify Process)的定義[5],針對業務演進的迭代特點[6],制定了業務全生命周期測試過程UUP(Unicom Unify Process),如圖1所示。業務生命周期可以分為初始、精化、構建、交付和運維等5個階段,每個階段都有各自的使命和里程碑,以及一系列的迭代。質量活動包括測試策略制定、計劃評審、需求評審、風險控制、代碼審查、單元測試、集成測試、配置審計、缺陷跟蹤和分析、運行監控、問題評估等,它們共同構成了質量活動集。每個質量活動都相對獨立,并有明確的任務、流程和交付物。與質量相關的活動可以貫穿整個生命周期,在不同的階段執行不同的任務。

圖1 聯通業務全生命周期測試過程UUP

1) 初始階段。提升問題定義、可行性分析以及需求分析質量。包括評審標書、概念文檔、可行性分析報告和需求文檔等,以縮短軟件開發項目的落地周期、降低落地風險。

2) 精化階段。提升軟件架構質量。包括確保理解用戶需求(可基于UML建立需求分析模型);審查開發計劃;評估設計文檔,確保架構的可靠性、可擴展性、可實施性和可理解性等;制定集成測試方案。

3) 構建階段。提升實施質量。包括從第三方的角度,和開發商實現迭代式的互動,發現軟件缺陷;識別開發過程中的風險;控制需求變更;控制實施進度,保證項目如期完成等。

4) 交付階段。提升上線質量。包括對集成的系統進行功能、性能、安全等測試,以降低系統上線風險;對交付的開發文檔、用戶手冊、代碼、可執行系統等進行審查。

5) 運營階段。提升運營質量。包括對業務支撐系統進行持續的遠程監控,偵測系統缺陷、老化狀態和安全漏洞,對問題、缺陷和新增需求進行收集和管理,分析原因并制定應對策略,以確保系統穩定、可靠并滿足業務發展的需要;在系統的演進過程中設計并執行完整的、嚴謹的測試方案,制定風險管理機制和應急響應策略,以確保系統演進效果。

為更有效地支持業務全生命周期測試過程,遼寧聯通建立“全流程需求變更和測試管理系統”,加強了對整個生命周期各個環節的管控,獲得良好的實踐應用效果。

2 敏捷協作模式

如何將聯通業務演進過程的各參與方緊密組織在一起,為共同的產品質量目標沖刺,以更快的速度達到更高的質量,這是測試管理的關鍵問題。遼寧聯通從2009年起,引入第三方測試,即在開發商測試的基礎上,增加第三方測試環節。并且基于Scrum思想[7],探索由聯通、開發團隊、第三方測試團隊共同組成的多方測試驅動的聯通業務系統持續演進的敏捷協作模式(如圖2所示),三方形成了緊密互動關系。

1)三方都有迭代,每一輪迭代都有各自的任務。由于職責不同,任務也不同。2)三方以產品質量目標為核心。聯通定義產品質量目標,開發團隊實現這個目標,而第三方測試團隊則負責驗證和保障這一目標。3)聯通將需求文檔與需求變更交付給開發團隊,從開發團隊和第三方測試團隊活動項目狀態,并以此為參考對項目進行控制。4)開發團隊定期向聯通提交項目狀態,并在迭代過程中向第三方測試團隊持續交付待測模塊。5)第三方測試團隊以持續驗證為核心,將質量問題快速反饋給開發團隊,配合開發團隊進行協同開發;同時將測試結果、建議以及項目狀態反饋給聯通。6)第三方測試團隊與開發團隊都對項目狀態進行反饋,其不同點在于:前者的反饋數據源于測試結果,并經過統計分析,是客觀、公正、清晰、可度量和可信的;而后者的反饋則往往是主觀、避重就輕、模糊、不可度量和可信性較低的。

圖2 聯通質量保證敏捷協作模式

遼寧聯通通過“全流程需求變更和測試管理系統”,將聯通、開發商和第三方測試機構緊密組織在一起,有效提升需求透明度、并行開發效率、集成測試質量,提高了遼寧聯通的進度掌控能力、系統需求變更管理能力。

3 可復用測試資產

多年來,聯通龐雜的業務知識和測試經驗都集中在專業人員的大腦當中,或者復雜、無規范和厚重的文檔里。如何在業務演進過程中梳理、提煉、積累并有效地繼承和復用測試資產,以達到更快的測試響應、更低的測試成本和更成熟的測試方案,這是聯通在測試技術上面臨的重要問題。遼寧聯通在長期業務演進過程中,逐步積累起來的可復用測試資產,包括業務模型庫和測試用例庫,它們是高效率測試的重要基礎。

1) 業務模型庫。業務模型是對聯通業務對象、業務流程的可視化表示。它專注于分析業務領域本身,發掘重要的業務領域概念,并建立業務領域概念之間的關系。

在特定領域里,面向業務流程的聯通深度應用和面向業務活動的作業處理成為系統核心,系統中領域知識的廣度和復雜度也隨之成幾何級數增長,對于測評人員而言,軟件復雜度、彈性、可靠性和效率等都受到前所未有的挑戰。即測評人員僅從某個單獨的應用軟件理解業務,通常存在理解不完整、理解歧義,甚至理解錯誤等情況,并且分析業務所需要的時間較長。然而,特定領域中的軟件產品存在共性需求,將其業務流程抽象出來,可以復用各領域業務經驗,減少業務理解的偏差,提高測試效率。

遼寧聯通基于UML(Unif i ed Modeling Language,統一建模語言),主要采用部署圖、用例圖、活動圖和時序圖等構建ESS、BSS等核心業務的模型庫,形成重要的可復用資產。目前,已經形成業務模型1256個。

2) 測試用例庫。測試用例的復用可以有效提高軟件系統的維護效率并降低維護的成本[8]。遼寧聯通建立軟件測試用例庫的目的是為了通過復用測試經驗、加快業務演進的驗證速度。在功能測試實施過程中,直接復用成熟的測試用例所付出的代價要遠遠小于重新開發測試用例,因此,測試用例的可復用程度直接關系到回歸測試的實施效率。復用和共享軟件測試過程中最重要的知識資產——測試用例,是降低軟件測試費用的一個重要途徑。

遼寧聯通參考UML類圖的建模思想[9],創新性地提出測試用例建模方法,如圖3所示。

圖3 測試用例模型圖(登錄)

①每個類是一個測試用例套,用例套中的屬性是測試數據集的抽象表示,方法則是測試用例的抽象表示。前綴F、S、P分別表示功能、安全和性能類的測試用例。②所有測試用例套都包含在某個用例庫里。③子測試用例套可以繼承父測試用例套中的所有測試用例和測試數據集。④每個測試用例都有一份測試用例文檔與之配套。⑤測試用例庫分為可復用測試用例庫和領域業務測試用例庫。

4 性能監測預警平臺

近年來,隨著聯通業務的迅速發展,保證業務系統在運營過程中的性能穩定性和可靠性已經成為信息化建設亟需解決的主要共性問題之一。特別是隨著中國聯通系統融合和集中一體化的推進,各省聯通在性能測試方面,由傳統的負載能力測試,逐步轉為以客戶感知為主要目標的性能測試。在系統上線前進行軟件性能測試的傳統方法已經無法保證系統運營時的可靠性和穩定性,這是由于:①用戶行為難以預知;②軟件老化造成系統性能下降;③部署環境動態伸縮隨需而變;④業務系統常常在線演進;⑤系統缺陷幾乎無法窮盡。變化和缺陷是系統運營過程中的常態,而傳統的上線前測試不能模擬系統運營過程中各種變化,并無法發現系統的所有缺陷。

在系統運營過程中進行性能監控和預測、提出性能調優建議是解決這些問題的可行之道。遼寧聯通與遼寧北方實驗室有限公司和東北大學進行產學研合作,研究在線業務性能監測和預警平臺,通過持續監測業務狀態,預測可能發生的并發情況;通過評估系統的負載能力,判斷系統性能衰減趨勢;通過分析性能指標,指導部署環境的配置策略;通過自動執行測試用例,支持系統在線演進;通過分析性能瓶頸,發現系統深層缺陷。

平臺部署在云計算環境下,邏輯架構如圖4所示,主要包括5個功能。1)并發模擬器。面向多應用多業務,模擬用戶行為持續發出并發請求。2)并發控制器。制定并發測試策略,分發測試腳本,分解并發請求任務,控制各虛擬機時間同步,控制并發過程。3)監控數據收集器。收集用戶請求訪問日志,分析用戶訪問行為,形成性能狀態數據庫。4)性能分析和預警模塊。采用多種算法分析系統性能狀態、運行趨勢,在必要時發出預警信號;5)性能狀態和趨勢可視化界面。采用多種圖表動態呈現業務系統性能狀態和趨勢,以及可能的瓶頸位置。

5 測試實踐

遼寧聯通在長期的業務運營實踐當中,不斷探索業務演進過程中的全生命周期測試方法?!吧驌徼F升位并網項”是一個典型的實踐案例。

2010年5月,遼寧省通信管理局組織召開了沈撫鐵本地網共用024升位并網工作啟動會,要求于2011年8月完成項目。這個項目要改造的系統較多,業務功能覆蓋面很大,系統間關聯關系密切,涉及多個部門,溝通、協調復雜度高,存在信息不對稱和不確定性等風險。這些情況對軟件測試工作提出了非常高的要求。遼寧聯通按照業務持續演進過程中全生命周期測試方法,對該項目測試工作的組織和實施如下。

圖4 遼寧聯通業務系統性能監測和預警平臺邏輯架構

1) 在過程方面,按照項目全生命周期測試過程來組織。明確內部各個相關部門、外部各個開發分包商以及第三方測試機構的迭代計劃、任務、里程碑,確定了集成測試的組織者、責任人,提出并網后運營過程中的各種風險應對預案,包括在線演進過程中的應急響應、測試準備、方案評審、入場時機、執行單位、問題發布、缺陷管理、回歸測試等管理機制。這些工作使得測試過程變得有條不紊、秩序井然,項目控制能力迅速提升,保證了項目的順利實施。

2) 在管理方面,運用敏捷協作模式。各個參與方的工作包括:①遼寧聯通負責向開發商提出業務需求,向第三方測試機構提出測試需求。②開發商負責產品開發并向運營商通報開發風險與進度,向第三方測試分別提供待測系統的測試案例。③第三方測試機構負責測試工作并向開發商提供測試缺陷、測試案例整改意見、缺陷跟蹤情況,向運營商提供測試業務模型、第三方測試用例、測試總結與分析、開發商測試案例評價、測試日報、周報、月報。④考慮到這個項目的復雜性,省公司又抽調各市公司業務骨干到測試現場執行測試,盡可能地保證測試質量、降低演進風險。

每天早上,遼寧聯通都組織“測試站會”,由測試工作的各個參與方匯報進展和當日計劃,及時溝通協作內容。在每個迭代(大約每半個月為一個演進迭代周期)中,遼寧聯通聯合各個測試參與方召開“沖刺規劃會議”,制定迭代計劃,確定本輪迭代的測試任務列表、優先級、執行單位、執行時間等。在迭代結束時,召開“沖刺回顧會議”,總結測試任務的完成情況。運用敏捷協作模式,使得測試工作變得非常高效,縮短了測試周期。

3) 在技術方面,積累和使用可復用測試資產。在沈撫鐵024并網測試項目中,面對復雜、龐大的業務內容以及來自聯通、開發商和第三方測試機構的業務掌握能力和技術水平參差不齊的測試人員,遼寧聯通提出必須通過建立業務模型庫和測試用例庫,充分整合業務人員和測試人員的經驗與知識,以提高測試的科學性、完整性,并通過復用測試用例提高測試效率。在該項目中共積累測試業務模型205套,積累可復用測試用例1 245個。根據第三方測試機構統計,基于業務模型庫和測試用例庫,測試人員平均測試效率由過去的每人每天執行125個測試用例,提高到256個。積累和使用可復用測試資產,在業務演進過程中大幅提高了測試效率。

4) 在工具方面,采用性能在線監測和預警平臺。性能是沈撫鐵024并網項目測試的一個關注重點。遼寧聯通除在上線前進行周密的性能測試外,還首次在該項目中使用性能在線監測和預警平臺。①性能監測。技術人員根據聯通業務性能需求,設計自動化性能監測腳本,然后部署到云平臺上并啟動監測程序,定期向業務系統發出多個請求;根據系統反饋回來的響應時間、失敗事務數等指標、平臺分析性能狀態,并根據分析結果以可視化的方式呈現。②性能預警。平臺不斷獲取業務系統的性能數據,根據相關的性能預測模型,判斷業務系統在未來一段時間可能存在的性能風險;如存在風險,平臺將在監控界面上閃爍并發聲報警,同時,向各個相關方發出Email報警消息,提醒相關方盡快采取措施解決問題。

在沈撫鐵升位并網項目中,性能在線監測和預警平臺通過實時性能監控與預測來預知性能趨勢,共發出32次預警通知,使開發方和遼寧聯通在性能瓶頸發生之前能夠有盡量多的時間進行調整、優化,從而大幅降低了項目的運營風險。

6 展望

隨著聯通信息化建設的飛速發展,聯通的測試管理、過程組織、技術方法和工具平臺也在不斷演進??v觀歷史,展望未來,可將聯通的測試能力歸納為3個階段。1)第1階段:開發商主導的測試。對于聯通而言,測試過程為灰盒,測試質量較低,存在問題較多。2)第2階段:多方共同驅動的業務全生命周期測試。聯通、開發團隊和第三方測試團隊敏捷協作,能夠建立可復用的測試資產,能夠研發適用的測試工具提高效率和效果。這一階段測試過程為準白盒,測試質量較高,存在問題較少。3)第3階段:自主的自動化的測試。隨著業務知識和測試經驗不斷被提煉,可復用測試資產日趨豐富和完善,并且由自動化測試工具執行的比例不斷加大,聯通不再過度依賴開發商或第三方測試機構提供的測試服務。同時,面對聯通的大數據和云計算趨勢,將使用更多的自動化測試和自優化技術,如超大并發性能測試工具、性能自適應優化平臺等。這一階段測試過程為白盒,測試質量和效率極高,測試成本極低,存在問題極少。

遼寧聯通目前處于第2階段水平。未來,將朝著第3階段的目標持續演進。

參考文獻

[1]Fei Kang,Janice A.Hauge,Ting-Jie Lu.Competition and mobile network investment in China's telecommunications industry[J].Telecommunications Policy.2012,36(11):901-913

[2]Yongwoon Shim,Dong-Hee Shin.Analyzing the development of 4th generation mobile network in China:actor network theory perspective[J].Info.2015,17(1):22-38

[3]Norman Wilde,SikhaBagui,John Coffey,et al.Interoperable Systems and Software Evolution:Issues and Approaches[J].Digital Enterprise Design and Management.Springer Berlin Heidelberg,2013,205:45-56

[4]Thomas Stephen W,Adams Bram,Hassan Ahmed E,et al.Studying software evolution using topic models[J].Science of Computer Programming.Part B,2014,80:457-479

[5]PhilippeKruchten.The rational unified process:an introduction[M].Boston,MA,USA:Addison-Wesley Longman Publishing Co.,Inc.,2003

[6]Daniel Stahla,Jan Boschb. Modeling continuous integration practice differences in industry software development [J].Journal of Systems and Software.2014,87:48-59

[7]Ken Schwaber.Agile Project Management with Scrum[M].Microsoft Press,2004

[8]GuoShaojie,Tong Weiqin,Zhang Juan,et al.An application of ontology to test case reuse[C]//Mechatronic Science, Electric Engineering and Computer (MEC),2011 International Conference on,2011:775 - 778

[9]Soh Z,Sharafi Z,Van Den Plas B,et al.Professional status and expertise for UML class diagram comprehension:An empirical study[C]//Program Comprehension(ICPC),2012 IEEE 20th International Conference on,2012:163-172

猜你喜歡
測試用例聯通遼寧
遼寧之光
回歸測試中測試用例優化技術研究與探索
風起軒轅——聯通五千年民族血脈
基于SmartUnit的安全通信系統單元測試用例自動生成
讀遼寧 愛遼寧
讀遼寧 愛遼寧
一張圖讀懂聯通兩年混改
微信搭臺“聯通” 代表履職“移動”
遼寧艦
5G:電信聯通的生死攸關之時
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合