專利名稱:一種測試用例的執(zhí)行方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種測試方法,尤其是一種涉及一種測試用例的執(zhí)行方法。
背景技術(shù):
設(shè)計和編寫測試用例可以避免盲目測試并提高測試效率,使用測試用例對產(chǎn) 品進行測試是一種普遍應用的測試方法。通常在測試一件產(chǎn)品時會有幾十個甚 至上百個測試用例需要執(zhí)行,某一個測試用例也可用于其它的同類產(chǎn)品的測試, 這樣就涉及到如何使用戶能夠快速選擇并執(zhí)行感興趣的測試用例。
現(xiàn)在測試用例管理專欠件普遍的做法是,對一個測試項目管理2個文件腳本 文件和配置文件。其中腳本文件存儲了測試項目中所有的測試用例代碼,配置 文件則存儲了當前測試項目的相關(guān)信息。這種設(shè)計的特點是寫一個很全面的 腳本文件,包含所有該種類型測試的測試用例。這樣在針對具體的測試項目時, 都使用相同的腳本文件,只需修改相應的配置文件。在進行測試時,各具體項 目根據(jù)其測試目的選擇執(zhí)行其感興趣的測試用例即可。這種采用單一腳本文件 設(shè)計的管理方法顯得不夠靈活,無法按照測試項目的需求進行測試用例組合,使 得每個測試項目中包含了其不感興趣的測試用例,造成了資源的浪費。
執(zhí)行測試用例時,目前普遍的做法就是對測試項目中待執(zhí)行的測試用例逐個 選取,這種選擇執(zhí)行的效率很低,上述測試用例管理方法中腳本文件還包含了 項目中不感興趣的測試用例,這樣導致選擇待執(zhí)行的測試用例效率會更低。
200510034535.1號中國專利公開了 一種測試用例的執(zhí)行方法,提出了對測試用例使用關(guān)鍵字的組合來命名,從而通過讓用戶輸入一些關(guān)鍵字來執(zhí)行測試用 例名字中包含所有關(guān)鍵字的測試用例,這種方法較之以前手工將需要執(zhí)行的測 試用例逐個選中來執(zhí)行確實提高了效率。但是使用測試用例名字來標識測試用 例的特征并不安全, 一個測試項目中存在眾多的測試用例文件,文件名^艮容易 拼錯并且容易被他人修改,此時使用關(guān)鍵字來搜索欲執(zhí)行測試用例,則會找不 到這些測試用例。此外,具有相同特征的測試用例可能不止一個,將它們命為 相同的名字在操作系統(tǒng)中的同 一個文件夾下是不允許的。
發(fā)明內(nèi)容
1、 發(fā)明目的
本發(fā)明針對現(xiàn)有測試用例管理中缺乏靈活性和選擇執(zhí)行測試用例效率低的 缺點,提出了 一種新的測試用例執(zhí)行的方法,對不同的測試項目可以靈活組合 其感興趣的測試用例,在執(zhí)行測試用例時,可直接指定待執(zhí)行的測試用例的類 型來執(zhí)行該類型的全部測試用例,或者使用測試用例的類型篩選后,從而快速 選擇待執(zhí)行的測試用例。
2、 技術(shù)方案
本發(fā)明所提出的測試用例執(zhí)行方法要求測試項目采用多腳本文件設(shè)計,一 個具體的測試項目中包含一個項目文件和多個腳本文件,其中 一個腳本文件即 對應一個測試用例,首先對測試用例進4亍以下2步處理 (l)給測試用例定義屬性
給測試用例定義一些屬性,比如測試用例的類型、超時時間、是否自動執(zhí) 行、是否執(zhí)行過、是否通過等等,這些屬性均采用腳本語言的注釋形式存儲在測試用例文件中。
一個測試用例可以具有多個類型屬性,因為可以-使用多種分類方法對測試 用例進行分類,比如可以按功能對測試用例進行分類,也可以按測試優(yōu)先級 對測試用例進行分類,測試用例在每種分類方法下都有一個類型值。
(2)測試用例的屬性劃分
按照測試用例的屬性和具體測試項目聯(lián)系的緊密程度劃分成測試項目 無關(guān)屬性和測試項目相關(guān)屬性。比如測試用例的類型、超時時間等屬性可以 歸為測試項目無關(guān)屬性,而測試用例是否執(zhí)行過、是否通過測試等這些與具 體測試項目的測試進程相關(guān)的屬性可以歸為測試項目相關(guān)屬性。
將測試項目無關(guān)屬性存儲在測試用例文件中,而測試項目相關(guān)屬性存儲 在具體的測試項目的項目文件中。
測試用例文件中不僅存儲了測試用例代碼,還增加了測試用例的測試項 目無關(guān)屬性。這樣設(shè)計的測試用例文件與測試項目獨立,并且每個測試用例 用單獨的文件存儲,從而可以方便的共享測試用例,靈活的根據(jù)需要來創(chuàng)建 測試項目。
基于以上(1)和(2)中對測試用例的處理,測試用例文件中包含有測試用例的 類型屬性,可以讀取測試用例文件中的各類型屬性,按照用戶指定的分類方法, 對測試用例進行分組整理并提供樹形-f見圖,這樣就可以方便用戶選取執(zhí)行某類 型的全部和部分測試用例,從而提高測試用例執(zhí)行效率。
本方法支持多層次分組,例如測試用例按功能分組后,可以再進一步按優(yōu)先 級分組,對應的樹形視圖也增加一個層次,這樣測試用例被分得更細,更便于 用戶控制和選擇執(zhí)行。隨著測試項目的進行,項目文件中會記錄測試用例的項目相關(guān)屬性,比如測試用例是否執(zhí)行過、是否通過執(zhí)行,這樣下次測試時用戶 可以選擇"是否執(zhí)行已經(jīng)通過的測試用例,,的選項,從而可以跳過已經(jīng)執(zhí)行過 并通過的測試用例的執(zhí)4亍,使用戶更細致地控制測試用例的4丸行,提高測試用 例的執(zhí)行效率。
此外,因為測試用例與測試項目獨立,所以建立新測試項目時,從測試用例 庫中導入所需要的測試用例,新建的測試用例也可以方Y(jié)更導出用于其它測試項 目中,這樣測試用例可以在多個測試項目之間共享,具有^f艮強的重用性。
3、有益效杲
本發(fā)明中提出的測試用例執(zhí)行方法能夠根據(jù)用戶的需要高效細致的控制測 試用例的執(zhí)行。
圖1是本發(fā)明中測試用例文件和測試項目文件的結(jié)構(gòu)示意圖。 圖2是測試用例的扭乂f亍方法的流程圖。
具體實施例方式
將所有的測試用例按照某種分類方法進行分類,將每個測試用例所屬類型值 及分類方法都作為測試用例的類型屬性寫入測試用例代碼后面。如果對測試用 例在多種分類方法下分類,將每種分類結(jié)果依次寫入測試用例文件中。測試用 例屬性中除了包含類型屬性外,還可以包含測試用例的其它項目無關(guān)屬性,如 測試用例描述、測試用例的超時時間等。
屬性以注釋形式寫入測試用例文件中,這樣在測試用例文件中增加的屬性信息并不影響其正常運行,如圖1所示有測試用例文件的結(jié)構(gòu)。測試用例中只存 儲與具體測試項目無關(guān)的屬性,使得測試用例獨立于測試項目,使之可以方便
地在測試項目中導入導出,在測試項目之間共享。
以Python語言寫腳本程序為例,測試用例屬性以如下才各式寫入測試用例文 件中,#號在Python中表示注釋, 〃符號后面文字是對該行解釋說明,在腳本 中不存在
#—-Beg i nCa s ePr ope r t y〃測試用例屬性開始 #功能=通信測試 〃等號前面表示分類方法,等號后面表示類型值 #優(yōu)先級=1 〃此分類方法下該測試用例所屬類型 #描述向被測裝置發(fā)送通信數(shù)據(jù) 〃測試用例的其它屬性 #超時時間3000
#-—EndCaseProper ty 〃這一行是測試用例屬性結(jié)束標志
對^^皮測裝置進行測試時,首先建立一個測試項目。對應的在硬盤上創(chuàng)建一個 測試項目文件夾,文件夾下創(chuàng)建一個測試項目文件,根據(jù)測試目標將需要用到 的測試用例依次導入測試項目中。在每個測試用例導入時,將測試用例文件復 制到測試項目文件夾下,測試項目文件中記錄下該測試用例的名稱、存儲該測 試用例是否自動執(zhí)行、是否測試過、是否通過等項目無關(guān)屬性。如圖1所示有 測試項目文件的結(jié)構(gòu)。
以0++語言為例,測試用例的執(zhí)行步驟如下,如圖2所示
首先,用戶輸入對測試用例進行分類的分類方法。程序依次打開欲分類的每 個測試用例,讀取其中的類型屬性,并統(tǒng)計該分類方法下的所有可能的類型值, 如圖2中的①處,將這些類型值存儲在一個名為vTypeName的vector〈string〉類型的變量中,將該分類方法下的類型個數(shù)存儲在整型變量iTypeCount中。
然后,設(shè)置循環(huán)變量iTypelndex為0,從vTypeName中取出序號為0的類型 值,存儲在字符串變量strType中,遍歷^:分類的所有測試用例將在該分類方 法下類型值為strType的測試用例名存儲在名為aCaselnfo的類型為 CaseTypelnfo的數(shù)組中,如圖2中的②處。
類型CaseTypelnfo如下^殳計 struct CaseTypelnfo{
string strTypeName; 〃存?zhèn)€者該分類方法下的序號為iTypelndex的類 型值
vector<string> vCaseName; 〃存<諸該類型4直下的聲斤有測-逸用例名
接著,循環(huán)變量iTypelndex增加,并與iTypeCoimt比較判斷是否已經(jīng)處理 了全部的類型值,若iTypelndex小于iTypeCount表明還有剩余類型值未處理, 則從vTypeName中取出新的類型值,繼續(xù)遍歷欲分類的測試用例,找出并儲存 該類型的所有用例。若iTypelndex大于iTypeCount表明已經(jīng)處理完了該分類 方法下的所有類型值。
最后,根據(jù)上面得到的CaseTypelnfo數(shù)組,按類型名給用戶提供一個樹形 視圖,將各測試用例作為其對應類型名的子項顯示給用戶。用戶根據(jù)樹形視圖 來選擇執(zhí)行某類型名下的全部或部分測試用例。
上面敘述了對測試用例的一次分類,用戶可以再次輸入第二個分類方法。這 樣在第一次分類結(jié)果的基礎(chǔ)上,按照上述的完全相同的方法,針對第一次分類 的各類型測試用例再進行第二次分類,從而得到更詳細的測試用例分類,^是供兩層的樹形視圖,使得用戶更細致的選擇感興趣的測試用例執(zhí)行,提高測試用 例的執(zhí)行效率。隨著測試項目的進行,可以記錄測試用例的執(zhí)行情況,如測試用例是否通過 等。這樣用戶下次執(zhí)行測試用例時,可以選擇跳過已經(jīng)通過的測試用例。
權(quán)利要求
1、一種測試用例的執(zhí)行方法,其特征在于,包括以下步驟1)給所有的測試用例定義屬性;2)按照待測試項目與測試用例的屬性聯(lián)系的緊密程度將測試例屬性劃分為測試項目無關(guān)屬性和測試項目相關(guān)屬性;3)將測試項目無關(guān)屬性存儲在測試用例文件中,而測試項目相關(guān)屬性存儲在具體的測試項目的項目文件中。
2、 根據(jù)權(quán)利要求1所述的一種測試用例的執(zhí)行方法,其特征在于,步驟l)中定 義的屬性的種類至少為兩種。
3、 根據(jù)權(quán)利要求1所述的一種測試用例的執(zhí)行方法,其特征在于,可以進一步 包括,對已經(jīng)分組測試用例按照不同的屬性再次分組。
全文摘要
本發(fā)明公開了一種測試用例執(zhí)行方法,測試項目采用多腳本文件設(shè)計,一個具體的測試項目中包含一個項目文件和多個腳本文件,其中一個腳本文件即對應一個測試用例,包括以下步驟一種測試用例的執(zhí)行方法,其特征在于,包括以下步驟1)給所有的測試用例定義屬性;2)按照待測試項目與測試用例的屬性聯(lián)系的緊密程度將測試例屬性劃分為測試項目無關(guān)屬性和測試項目相關(guān)屬性;3)將測試項目無關(guān)屬性存儲在測試用例文件中,而測試項目相關(guān)屬性存儲在具體的測試項目的項目文件中。
文檔編號G06F11/36GK101599044SQ20081012382
公開日2009年12月9日 申請日期2008年6月5日 優(yōu)先權(quán)日2008年6月5日
發(fā)明者周鄴飛, 丹 孫, 張祥文, 楊洪濤, 繆文貴, 陳愛林, 雨 雷 申請人:國網(wǎng)南京自動化研究院;南京南瑞集團公司