楊娜
(天津津微首佳軟件有限公司 天津300061)
跨平臺系統(tǒng)中測試用例復用技術研究
楊娜
(天津津微首佳軟件有限公司 天津300061)
針對跨平臺系統(tǒng)中的測試用例復用問題,提出了一種解決思路和方法。首先論述了可復用測試用例應具備的四個基本特性,并討論了在跨平臺系統(tǒng)中可復用測試用例的主要類型。文章圍繞著測試用例庫的建立和使用,分別從設計測試用例、使用測試用例、可復用測試用例的維護3個方面對測試用例復用的流程進行了論述。
軟件測試;跨平臺;測試用例;復用
在軟件開發(fā)過程中,測試做為一種保障產品質量的有效手段,被越來越多的人所重視。測試通常需要依據(jù)若干已經設計好的測試用例逐步展開,使用測試用例可以盡量減少測試的盲目性并提高測試過程的系統(tǒng)性。但是由于在設計用例過程中缺乏全局性的考量,設計出的測試用例普遍缺少復用性,導致很多相同或相似場景的測試用例無法重復利用,只能根據(jù)實際測試場景重新設計用例。尤其在跨平臺系統(tǒng)中,由于存在大量相同或相似的場景,這種情況將會更加明顯。這樣的重復勞動不僅增加了開發(fā)成本,同時也使測試用例的質量無法得到保障。
如何設計可復用的測試用例已經是軟件行業(yè)面臨的一個問題。文中針對跨平臺系統(tǒng)提出一種設計可復用測試用例的方法,分別從建立用例庫、測試可復用的測試用例、測試用例的復用、可復用測試用例的維護4個方面進行論述,從而形成一套完整的設計、使用、維護模型。
可復用測試用例與普通用例相比,通常應具有通用性、獨立性、粗粒度、易維護性等特征。
1)通用性
通用性是指測試用例盡量不與具體測試場景相關聯(lián),也不體現(xiàn)出具體場景的“個性化”的內容,而只是從眾多相似用例中抽象出具有一般意義的屬性。只有測試用例具有高度的通用性,才能在更大范圍內被復用。例如,不同系統(tǒng)的登陸頁面,都需要輸入用戶名和密碼做為驗證條件,這種普遍適用的輸入原則應被保留,而不同系統(tǒng)對密碼的構成要素則有不同的要求,此類與具體場景相關的測試信息應被去除。依據(jù)這種方法設計的測試用例,才具有更大范圍的通用性。
2)獨立性
測試用例的獨立性是指每個用例不能依賴于其它用例而存在,也不能和其它用例產生邏輯上的關聯(lián)關系。如測試用例A的成立必須以用例B的測試通過為自己的先決條件,或者測試用例A必須以用例B的存在為前提。諸如此類的依賴關系都會破壞測試用例的獨立性,也會降低測試用例的復用性。
3)粗粒度
如果希望測試用例具有較高的可復用性,就要盡量使用粗粒度的測試用例。因為測試用例的粒度越小,則越和具體實踐方法相關聯(lián),此時的測試用例也越依賴于具體的測試場景。而粗粒度則意味著測試用例只與功能模塊甚至用戶需求相對應,此時的測試用例抽象程度較高,易于在其它相同或相似場景中復用。
4)易維護性
可復用的測試用例不是一成不變的,它會隨著復用量的增加而逐漸暴露出一些問題,或隨著測試場景的變化而不再適應實際實用,此時就需要對測試庫中的用例進行相應的調整和維護。測試用例是否易于維護直接關系到測試庫的可持續(xù)使用性,因此必須使測試用例易于修改和維護。
跨平臺系統(tǒng)通常是指一個應用系統(tǒng)會涉及多個平臺,各平臺上的應用程序互相配合,共同完成系統(tǒng)功能。如設計一套醫(yī)院使用的電子病歷系統(tǒng),其中包括醫(yī)生使用的PC端的C/S架構應用程序,也包括移動設備端的應用程序,還可能包括患者在互聯(lián)網上使用的基于B/S架構的應用程序,這些系統(tǒng)各自針對不同的用戶群體提供不同的功能。
在此類系統(tǒng)上可復用的測試用例通過包括UI元素測試用例、功能測試用例和性能測試用例。
1)UI測試用例
UI測試用例也稱為“用戶界面”測試用例,它包括界面控件樣式、布局風格、色調、用戶操作習慣等內容。在跨平臺系統(tǒng)中,應盡量保證用戶界面具有較高的一致性,因此不同系統(tǒng)中的UI測試用例具有很大程度的相似性。
2)黑盒測試用例
跨平臺系統(tǒng)中同一功能需求通常會在不同的系統(tǒng)中出現(xiàn),雖然它們之間可能存在著微小的差別,但整體上卻體現(xiàn)出較高的相似性。如:在PC端和PDA端都需要查詢住院患者信息,或都需要顯示患者某次檢查結果,這些測試點可以抽象出通用程度很高的可復用測試用例。
3)性能測試用例
性能測試用例也是跨平臺系統(tǒng)中復用程度很高的一組用例類型,在不同平臺應用里出現(xiàn)的同一功能需求,通常會有相同或相似的性能要求。如:在PC端和PDA端查詢一位患者的基本信息,都要求服務器響應時間不能大于500ms。這種情況在跨平臺系統(tǒng)中大量出現(xiàn),因此也可以通過復用測試用例來解決此類問題。
3.1建立用例庫
1)用例庫的作用
在實際測試工作中,依據(jù)系統(tǒng)的復雜程度來區(qū)分,會有不同數(shù)量的測試用例,通常一個中等復雜程度的模塊就會涉及到成百甚至上千個測試用例。這些測試用例如果使用人工的方式管理,不僅效率低下,而且也極容易出現(xiàn)錯誤,此時最好的解決方法就是建立一套功能完整、使用方便的測試用例管理系統(tǒng)。
用例庫就是此類系統(tǒng)的典型代表,它是用來存儲測試用例的倉庫,將測試用例分門別類的進行歸檔,實現(xiàn)對測試用例的統(tǒng)一存儲、管理和維護,方便后期測試時使用。
2)用例庫的重要性
用例庫對于軟件測試工作非常重要,主要體現(xiàn)在3個方面。一是,用例庫能夠減輕測試用例管理的工作量,減少人工管理測試用例的弊端。二是,提高測試用例檢查的工作效率,用戶可以使用簡單的檢索條件快速查找到自己需要的測試用例,可以節(jié)省大量時間。三是,便于測試用例生命周期的管理和維護,測試用例的每次修改都會有相應的歷史記錄,方便查看和跟蹤,長期積累的數(shù)據(jù)可以做為組織過程資產為后續(xù)測試工作提供相應的支持和依據(jù)。
3)用例庫包含的數(shù)據(jù)項和主要功能
用例庫應包括測試用的基本信息,如:測試用例編號、標題、簡要介紹、功能描述、測試要點、預置條件、輸入內容、期望結果、變更版本等數(shù)據(jù)項。
同時用例庫還要具有歷史版本記錄的功能,每次修改測試用例時都需要更新當前版本號,并保存歷史數(shù)據(jù)。
3.2設計可復用測試用例
設計可復用的測試用例通常要經過篩選、修改、評審、入庫等幾個重要環(huán)節(jié)(圖1)。
圖1 設計測試用例流程圖
在前文中已經提到設計可復用的測試用例盡量保證“粗粒度”的層面設計,通常我們可以基于需求分析過程產生的用例圖(Use Case)為基礎設計測試用例。因為用例圖主要反映用戶的需求,還沒有涉及到具體的設計和實現(xiàn)層面,具有更大的靈活性的普適性,能夠實現(xiàn)最大范圍的復用。此時需要判斷測試用例是否具有復用價值,將通用性較小的用例排除在用例庫之外。如:某些測試場景中體現(xiàn)出特定的業(yè)務流程,而這些業(yè)務流程在軟件系統(tǒng)的其它部分很少出現(xiàn),這些測試用例由于失去了通用性,則不能做為復用的測試用例。
對于可復用的測試用例,接下來需要判斷其是否滿足前文中提到的4個特性,即:通用性、獨立性、粗粒度和易維護性。如果這些特性在當前的測試用例中不存在或不明顯,則需要修改測試用例使這些特性更為突出,最終符合可復用測試用例的評價標準。
修改后的測試用例不能立即添加到用例庫,為了確保用例庫中的測試用例都滿足質量要求,在入庫前必須要經過評審階段,只有評審通過的測試用例才能正式加入到用例庫。評審階段應由領域專家、軟件需求分析人員、軟件設計師、程序開發(fā)員和測試人員等多個不同角色組成,以確保盡可能客觀、全面的執(zhí)行測試用例的評審流程。在評審過程中除了驗證測試用例是否符合可復用的特性外,還要對測試用例本身的正確性進行評價,包括預置條件是否正確、輸入與期望輸出是否匹配等。對于沒有通過評審的測試用例需要返回修改步驟進行適當調整后,再重新執(zhí)行評審過程,通過評審的用例才能最終被記錄到用例庫。
3.3測試用例復用
由于在跨平臺系統(tǒng)中,很多模塊都會涉及相同或相似的處理邏輯,因此存在大量的測試用例復用場景。在復用測試用例的過程程,涉及到選擇用例、提取用例、修改用例和復用用例4個過程(圖2)。
圖2 復用測試用例流程圖
首先根據(jù)當前測試場景的用例圖(Use Case)確定需要設計的具體用例,接下來需要到測試用例用例庫中查找是否存在與當前所測場景相同或相似的測試用例,即確定當前需要測試的業(yè)務流程與用例庫中存在用例的相似度。如:在測試PC端登陸功能模塊時,曾將輸入用戶名和密碼并核對其正確性的測試用例做為復用用例加入到測試庫,現(xiàn)在需要設計在PDA端用戶登陸的測試用例,則可以通過用例庫的檢索功能查找到之前相似的測試用例并進行提取。
提取的用例并不能立即應用在設計文件中,由于用例庫中的測試用例并不是針對具體測試場景來設計的,而是去掉了與具體測試場景有關的“個性化”屬性,僅保留了最通用的特性。此時需要根據(jù)當前的測試場景對已提取的測試用例進行適當修改,以滿足當前測試場景的具體特性。如:對于已提取的使用用戶名和密碼來確認當前登陸用戶合法身份的測試用例,需要根據(jù)當前的測試場景,重新指定用例中的部分屬性內容,包括:用戶名的長度、是否允許包含特殊字符、密碼的構成規(guī)則等。對于已修改完成的測試用例,就可以將其添加到測試設計文檔中,至此完成測試用例的復用流程。
3.4可復用測試用例的維護
用例庫中的測試用例并不是一成不變的,隨著時間的推移有些用例逐漸失去應用場景,不適合再繼續(xù)存放在用例庫中,或者在多次復用過程中會發(fā)現(xiàn)測試庫中的某些用例存在缺陷,此時必須對庫中的用例進行定期維護,才能保證測試用例的持續(xù)有效性。維護過程通常包括獲取用例、評審用例的有效性、修改用例、測試用例入庫等幾個環(huán)節(jié)(圖3)。
圖3 維護測試用例流程圖
具體流程為從用例庫中循環(huán)取出待評審的測試用例,根據(jù)每次復用時的修改記錄,評價當前測試用例是否需要修改或從庫中移除,主要從用例的有效性、復用率、歷次復用的修改工作量、是否存在缺陷等幾個方面對當前用例進行評審。如果發(fā)現(xiàn)測試用例存在某些缺陷,則需要對其進行適當修正后再次評價,直到測試用例滿足條件后才可再次入庫。此時需要注意的是原有的測試用例也需要保留,歷次的評審過程最終會形成測試用例的生命周期,對未來測試用例的入庫和維護工作提供必要的參考數(shù)據(jù)。
對測試用例的定期維護是用例庫保持其生命力的重要措施和手段,也是確保用例庫中可復用測試用例良性發(fā)展的重要途徑,因此必須重視定期維護工作。
文中提出了一種對跨平臺系統(tǒng)中如何復用測試用例的基本思路,涵蓋了建立用例庫、設計可復用的測試用例、復用測試用例、維護測試用例等環(huán)節(jié),貫穿了測試用例復用的生命周期。并歸納總結了可復用測試用例應具有通用性、獨立性、粗粒度、易維護性的特性,為測試用例復用的流程化、工程化提供了一個可以借鑒的思路。
[1]儲海華.計算機維護類軟件測試用例的設計及復用研究[J].軟件產業(yè)與工程,2013(5):51-56.
[2]尹平.可復用測試用例研究[J].計算機應用,2010,30(5): 1309-1311.
[3]芮素娟.可復用測試用例研究[J].電腦知識與技術,2013,9(14):3308-3310.
[4]邵正隆.面向復用的測試設計模型的研究與實現(xiàn)[J].小型微型計算機系統(tǒng),2006,27(11):2150-2155.
[5]王明珠.軟件測試中測試用例復用的研究[J].信息系統(tǒng)工程,2014:136.
[6]尚冬娟.軟件測試中的測試用例及復用研究[J].計算機技術與發(fā)展,2006,16(1):69-72.
[7]Myers G J.軟件測試的藝術[M].3版.北京:機械工業(yè)出版社,2012.
[8]Patton,R..軟件測試[M].2版.北京:機械工業(yè)出版社,2006.
[9]朱少民.全程軟件測試[M].2版.北京:電子工業(yè)出版社,2014.
[10]楊莉等.軟件自動化測試[M].北京:電子工業(yè)出版社,2012.
[11]李龍等.軟件測試實用技術與常用模板[M].北京:機械工業(yè)出版社,2010.
[12]張江河.軟件測試用例復用研究[D].西安:西北大學,2005.
[13]張娟.軟件測試中測試用例復用的研究[D].上海:上海大學, 2012.
[14]趙瑞蓮.軟件測試方法研究[D].北京:中國科學院大學, 2001.
[15]胡正芳.測試用例復用技術研究[D].哈爾濱:哈爾濱工程大學,2009.
[16]楊凌燕.可復用的測試用例管理系統(tǒng)的開發(fā)[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—),女,天津人,助理工程師。研究方向:軟件測試,測試流程改進。