?

跨平臺系統中測試用例復用技術研究

2016-11-09 07:31楊娜
電子設計工程 2016年19期
關鍵詞:跨平臺用例測試用例

楊娜

(天津津微首佳軟件有限公司 天津300061)

跨平臺系統中測試用例復用技術研究

楊娜

(天津津微首佳軟件有限公司 天津300061)

針對跨平臺系統中的測試用例復用問題,提出了一種解決思路和方法。首先論述了可復用測試用例應具備的四個基本特性,并討論了在跨平臺系統中可復用測試用例的主要類型。文章圍繞著測試用例庫的建立和使用,分別從設計測試用例、使用測試用例、可復用測試用例的維護3個方面對測試用例復用的流程進行了論述。

軟件測試;跨平臺;測試用例;復用

在軟件開發過程中,測試做為一種保障產品質量的有效手段,被越來越多的人所重視。測試通常需要依據若干已經設計好的測試用例逐步展開,使用測試用例可以盡量減少測試的盲目性并提高測試過程的系統性。但是由于在設計用例過程中缺乏全局性的考量,設計出的測試用例普遍缺少復用性,導致很多相同或相似場景的測試用例無法重復利用,只能根據實際測試場景重新設計用例。尤其在跨平臺系統中,由于存在大量相同或相似的場景,這種情況將會更加明顯。這樣的重復勞動不僅增加了開發成本,同時也使測試用例的質量無法得到保障。

如何設計可復用的測試用例已經是軟件行業面臨的一個問題。文中針對跨平臺系統提出一種設計可復用測試用例的方法,分別從建立用例庫、測試可復用的測試用例、測試用例的復用、可復用測試用例的維護4個方面進行論述,從而形成一套完整的設計、使用、維護模型。

1 可復用測試用例的特征

可復用測試用例與普通用例相比,通常應具有通用性、獨立性、粗粒度、易維護性等特征。

1)通用性

通用性是指測試用例盡量不與具體測試場景相關聯,也不體現出具體場景的“個性化”的內容,而只是從眾多相似用例中抽象出具有一般意義的屬性。只有測試用例具有高度的通用性,才能在更大范圍內被復用。例如,不同系統的登陸頁面,都需要輸入用戶名和密碼做為驗證條件,這種普遍適用的輸入原則應被保留,而不同系統對密碼的構成要素則有不同的要求,此類與具體場景相關的測試信息應被去除。依據這種方法設計的測試用例,才具有更大范圍的通用性。

2)獨立性

測試用例的獨立性是指每個用例不能依賴于其它用例而存在,也不能和其它用例產生邏輯上的關聯關系。如測試用例A的成立必須以用例B的測試通過為自己的先決條件,或者測試用例A必須以用例B的存在為前提。諸如此類的依賴關系都會破壞測試用例的獨立性,也會降低測試用例的復用性。

3)粗粒度

如果希望測試用例具有較高的可復用性,就要盡量使用粗粒度的測試用例。因為測試用例的粒度越小,則越和具體實踐方法相關聯,此時的測試用例也越依賴于具體的測試場景。而粗粒度則意味著測試用例只與功能模塊甚至用戶需求相對應,此時的測試用例抽象程度較高,易于在其它相同或相似場景中復用。

4)易維護性

可復用的測試用例不是一成不變的,它會隨著復用量的增加而逐漸暴露出一些問題,或隨著測試場景的變化而不再適應實際實用,此時就需要對測試庫中的用例進行相應的調整和維護。測試用例是否易于維護直接關系到測試庫的可持續使用性,因此必須使測試用例易于修改和維護。

2 跨平臺系統中,可復用測試用例范圍

跨平臺系統通常是指一個應用系統會涉及多個平臺,各平臺上的應用程序互相配合,共同完成系統功能。如設計一套醫院使用的電子病歷系統,其中包括醫生使用的PC端的C/S架構應用程序,也包括移動設備端的應用程序,還可能包括患者在互聯網上使用的基于B/S架構的應用程序,這些系統各自針對不同的用戶群體提供不同的功能。

在此類系統上可復用的測試用例通過包括UI元素測試用例、功能測試用例和性能測試用例。

1)UI測試用例

UI測試用例也稱為“用戶界面”測試用例,它包括界面控件樣式、布局風格、色調、用戶操作習慣等內容。在跨平臺系統中,應盡量保證用戶界面具有較高的一致性,因此不同系統中的UI測試用例具有很大程度的相似性。

2)黑盒測試用例

跨平臺系統中同一功能需求通常會在不同的系統中出現,雖然它們之間可能存在著微小的差別,但整體上卻體現出較高的相似性。如:在PC端和PDA端都需要查詢住院患者信息,或都需要顯示患者某次檢查結果,這些測試點可以抽象出通用程度很高的可復用測試用例。

3)性能測試用例

性能測試用例也是跨平臺系統中復用程度很高的一組用例類型,在不同平臺應用里出現的同一功能需求,通常會有相同或相似的性能要求。如:在PC端和PDA端查詢一位患者的基本信息,都要求服務器響應時間不能大于500ms。這種情況在跨平臺系統中大量出現,因此也可以通過復用測試用例來解決此類問題。

3 測試用例復用過程

3.1建立用例庫

1)用例庫的作用

在實際測試工作中,依據系統的復雜程度來區分,會有不同數量的測試用例,通常一個中等復雜程度的模塊就會涉及到成百甚至上千個測試用例。這些測試用例如果使用人工的方式管理,不僅效率低下,而且也極容易出現錯誤,此時最好的解決方法就是建立一套功能完整、使用方便的測試用例管理系統。

用例庫就是此類系統的典型代表,它是用來存儲測試用例的倉庫,將測試用例分門別類的進行歸檔,實現對測試用例的統一存儲、管理和維護,方便后期測試時使用。

2)用例庫的重要性

用例庫對于軟件測試工作非常重要,主要體現在3個方面。一是,用例庫能夠減輕測試用例管理的工作量,減少人工管理測試用例的弊端。二是,提高測試用例檢查的工作效率,用戶可以使用簡單的檢索條件快速查找到自己需要的測試用例,可以節省大量時間。三是,便于測試用例生命周期的管理和維護,測試用例的每次修改都會有相應的歷史記錄,方便查看和跟蹤,長期積累的數據可以做為組織過程資產為后續測試工作提供相應的支持和依據。

3)用例庫包含的數據項和主要功能

用例庫應包括測試用的基本信息,如:測試用例編號、標題、簡要介紹、功能描述、測試要點、預置條件、輸入內容、期望結果、變更版本等數據項。

同時用例庫還要具有歷史版本記錄的功能,每次修改測試用例時都需要更新當前版本號,并保存歷史數據。

3.2設計可復用測試用例

設計可復用的測試用例通常要經過篩選、修改、評審、入庫等幾個重要環節(圖1)。

圖1 設計測試用例流程圖

在前文中已經提到設計可復用的測試用例盡量保證“粗粒度”的層面設計,通常我們可以基于需求分析過程產生的用例圖(Use Case)為基礎設計測試用例。因為用例圖主要反映用戶的需求,還沒有涉及到具體的設計和實現層面,具有更大的靈活性的普適性,能夠實現最大范圍的復用。此時需要判斷測試用例是否具有復用價值,將通用性較小的用例排除在用例庫之外。如:某些測試場景中體現出特定的業務流程,而這些業務流程在軟件系統的其它部分很少出現,這些測試用例由于失去了通用性,則不能做為復用的測試用例。

對于可復用的測試用例,接下來需要判斷其是否滿足前文中提到的4個特性,即:通用性、獨立性、粗粒度和易維護性。如果這些特性在當前的測試用例中不存在或不明顯,則需要修改測試用例使這些特性更為突出,最終符合可復用測試用例的評價標準。

修改后的測試用例不能立即添加到用例庫,為了確保用例庫中的測試用例都滿足質量要求,在入庫前必須要經過評審階段,只有評審通過的測試用例才能正式加入到用例庫。評審階段應由領域專家、軟件需求分析人員、軟件設計師、程序開發員和測試人員等多個不同角色組成,以確保盡可能客觀、全面的執行測試用例的評審流程。在評審過程中除了驗證測試用例是否符合可復用的特性外,還要對測試用例本身的正確性進行評價,包括預置條件是否正確、輸入與期望輸出是否匹配等。對于沒有通過評審的測試用例需要返回修改步驟進行適當調整后,再重新執行評審過程,通過評審的用例才能最終被記錄到用例庫。

3.3測試用例復用

由于在跨平臺系統中,很多模塊都會涉及相同或相似的處理邏輯,因此存在大量的測試用例復用場景。在復用測試用例的過程程,涉及到選擇用例、提取用例、修改用例和復用用例4個過程(圖2)。

圖2 復用測試用例流程圖

首先根據當前測試場景的用例圖(Use Case)確定需要設計的具體用例,接下來需要到測試用例用例庫中查找是否存在與當前所測場景相同或相似的測試用例,即確定當前需要測試的業務流程與用例庫中存在用例的相似度。如:在測試PC端登陸功能模塊時,曾將輸入用戶名和密碼并核對其正確性的測試用例做為復用用例加入到測試庫,現在需要設計在PDA端用戶登陸的測試用例,則可以通過用例庫的檢索功能查找到之前相似的測試用例并進行提取。

提取的用例并不能立即應用在設計文件中,由于用例庫中的測試用例并不是針對具體測試場景來設計的,而是去掉了與具體測試場景有關的“個性化”屬性,僅保留了最通用的特性。此時需要根據當前的測試場景對已提取的測試用例進行適當修改,以滿足當前測試場景的具體特性。如:對于已提取的使用用戶名和密碼來確認當前登陸用戶合法身份的測試用例,需要根據當前的測試場景,重新指定用例中的部分屬性內容,包括:用戶名的長度、是否允許包含特殊字符、密碼的構成規則等。對于已修改完成的測試用例,就可以將其添加到測試設計文檔中,至此完成測試用例的復用流程。

3.4可復用測試用例的維護

用例庫中的測試用例并不是一成不變的,隨著時間的推移有些用例逐漸失去應用場景,不適合再繼續存放在用例庫中,或者在多次復用過程中會發現測試庫中的某些用例存在缺陷,此時必須對庫中的用例進行定期維護,才能保證測試用例的持續有效性。維護過程通常包括獲取用例、評審用例的有效性、修改用例、測試用例入庫等幾個環節(圖3)。

圖3 維護測試用例流程圖

具體流程為從用例庫中循環取出待評審的測試用例,根據每次復用時的修改記錄,評價當前測試用例是否需要修改或從庫中移除,主要從用例的有效性、復用率、歷次復用的修改工作量、是否存在缺陷等幾個方面對當前用例進行評審。如果發現測試用例存在某些缺陷,則需要對其進行適當修正后再次評價,直到測試用例滿足條件后才可再次入庫。此時需要注意的是原有的測試用例也需要保留,歷次的評審過程最終會形成測試用例的生命周期,對未來測試用例的入庫和維護工作提供必要的參考數據。

對測試用例的定期維護是用例庫保持其生命力的重要措施和手段,也是確保用例庫中可復用測試用例良性發展的重要途徑,因此必須重視定期維護工作。

4 結束語

文中提出了一種對跨平臺系統中如何復用測試用例的基本思路,涵蓋了建立用例庫、設計可復用的測試用例、復用測試用例、維護測試用例等環節,貫穿了測試用例復用的生命周期。并歸納總結了可復用測試用例應具有通用性、獨立性、粗粒度、易維護性的特性,為測試用例復用的流程化、工程化提供了一個可以借鑒的思路。

[1]儲海華.計算機維護類軟件測試用例的設計及復用研究[J].軟件產業與工程,2013(5):51-56.

[2]尹平.可復用測試用例研究[J].計算機應用,2010,30(5): 1309-1311.

[3]芮素娟.可復用測試用例研究[J].電腦知識與技術,2013,9(14):3308-3310.

[4]邵正隆.面向復用的測試設計模型的研究與實現[J].小型微型計算機系統,2006,27(11):2150-2155.

[5]王明珠.軟件測試中測試用例復用的研究[J].信息系統工程,2014:136.

[6]尚冬娟.軟件測試中的測試用例及復用研究[J].計算機技術與發展,2006,16(1):69-72.

[7]Myers G J.軟件測試的藝術[M].3版.北京:機械工業出版社,2012.

[8]Patton,R..軟件測試[M].2版.北京:機械工業出版社,2006.

[9]朱少民.全程軟件測試[M].2版.北京:電子工業出版社,2014.

[10]楊莉等.軟件自動化測試[M].北京:電子工業出版社,2012.

[11]李龍等.軟件測試實用技術與常用模板[M].北京:機械工業出版社,2010.

[12]張江河.軟件測試用例復用研究[D].西安:西北大學,2005.

[13]張娟.軟件測試中測試用例復用的研究[D].上海:上海大學, 2012.

[14]趙瑞蓮.軟件測試方法研究[D].北京:中國科學院大學, 2001.

[15]胡正芳.測試用例復用技術研究[D].哈爾濱:哈爾濱工程大學,2009.

[16]楊凌燕.可復用的測試用例管理系統的開發[D].上海:華東師范大學,2009.

Research on test case reuse technology in cross platform system

YANG Na
(Tianjin Jin Wei Shou Jia Software Co.,Ltd.,Tianjin 300061,China)

In this paper,a new method is proposed to solve the problem of test case reuse in cross platform system.Firstly,the four basic characteristics of the reusable test case are discussed,and themain types of reusable test cases are discussed. This article is about the establishment and use of the test case library,and discusses the process of the test case reuse in 3 aspects:the design testcase,the use of testcase,and themaintenance of reusable testcase.

software testing;cross platform;test case;reuse

TN7

A

1674-6236(2016)19-0076-03

2015-10-28稿件編號:201510207

楊 娜(1983—),女,天津人,助理工程師。研究方向:軟件測試,測試流程改進。

猜你喜歡
跨平臺用例測試用例
跨層級網絡、跨架構、跨平臺的數據共享交換關鍵技術研究與系統建設
UML用例間包含關系與泛化關系的比較與分析
UML用例模型中依賴關系的比較與分析
一款游戲怎么掙到全平臺的錢?
回歸測試中測試用例優化技術研究與探索
基于SmartUnit的安全通信系統單元測試用例自動生成
聯鎖軟件詳細設計的測試需求分析和用例編寫
從出土文獻用例看王氏父子校讀古書的得失
基于C++語言的跨平臺軟件開發的設計
基于依賴結構的測試用例優先級技術
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合