本發明實施例涉及信號處理領域,尤其涉及一種測試用例的生成方法及裝置。
背景技術:
隨著軟件功能的不斷增強,版本更替越來越快,自動化測試作為軟件測試的一個重要一環的地位也隨之水漲船高,逐漸形成一股在測試行業中的風潮,越來越多的軟件企業在他們的測試計劃中加入了自動化測試的時間表,而對于測試人員,是否具備一種或者多種自動化測試能力也逐漸的成為晉升和評判的重要評判依據。
自動化工具的開發如圖1所示,有如下的流程:在文檔接收階段進行需求接收的工作,并進行設計,產生設計文檔。在代碼編譯和控制階段進行自動化工具的開發工作,產生自動化腳本及用戶指導手冊,在代碼走查階段進行自動化工具的測試,輸出測試結果,最后在代碼提交階段,將修改后的bug代碼合并,形成最終的自動化工具,完成需求。
目前自動化工具的設計和使用過程中,是需要測試人員同時具備編碼能力的,但在我國,自動化測試還處于一個蹣跚學步的時期,測試人員的技術水平,尤其是對語言的掌握普遍偏低,選擇測試工作的從業者往往是因為不懂代碼,無法承擔開發工作才退而求其次,因此傳統的自動化測試存在開發人員不懂業務,使用人員不懂代碼的尷尬問題,測試用例稍有變動就需要開發人員修改代碼,加大了開發人員的工作量,使得自動化測試實際用起來并不高效。
技術實現要素:
本發明實施例提供一種測試用例的生成方法及裝置,以解決在進行測試時,測試用例需要重新編寫代碼,導致測試低效的問題。
第一方面,本發明實施例提供了一種測試用例的生成方法,該方法包括:
獲取用戶根據測試計劃制定的測試用例所需的RA(Reusable Action,可重用行為)列表;
接收用戶指定的所述RA列表中的RA對應的代碼的路徑;
根據所述路徑,獲取所述RA列表中的RA對應的代碼;
根據所述RA列表,將所述RA對應的代碼拼裝為所述測試用例。
進一步的,在將所述RA對應的代碼拼裝為所述測試用例之后,還包括:
接收用戶創建的由至少一個所述測試用例組成的測試用例集。
進一步的,在接收用戶創建的由至少一個所述測試用例組成的測試用例集之后,還包括:
接收用戶設定的至少一個所述測試用例集的執行時間;
按照所述執行時間,執行所述至少一個所述測試用例集。
進一步的,在執行所述至少一個所述測試用例集之后,還包括:
在接收到用戶的查看測試結果的指令時,顯示執行所述測試用例集得到的測試結果。
進一步的,該方法還包括:
記錄在所述測試用例集的執行過程中的日志文件。
第二方面,本發明實施例還提供了一種測試用例的生成裝置,該裝置包括:
RA列表獲取模塊,用于獲取用戶根據測試計劃制定的測試用例所需的RA列表;
路徑接收模塊,用于接收用戶指定的所述RA列表中的RA對應的代碼的路徑;
代碼獲取模塊,用于根據所述路徑,獲取所述RA列表中的RA對應的代碼;
測試用例拼裝模塊,用于根據所述RA列表,將所述RA對應的代碼拼裝為所述測試用例。
進一步的,該裝置還包括:
測試用例集接收模塊,用于在將所述RA對應的代碼拼裝為所述測試用例之后,接收用戶創建的由至少一個所述測試用例組成的測試用例集。
進一步的,該裝置還包括:
執行時間接收模塊,用于在接收用戶創建的由至少一個所述測試用例組成的測試用例集之后,接收用戶設定的至少一個所述測試用例集的執行時間;
測試用例集執行模塊,用于按照所述執行時間,執行所述至少一個所述測試用例集。
進一步的,該裝置還包括:
測試結果顯示模塊,用于在執行所述至少一個所述測試用例集之后,在接收到用戶的查看測試結果的指令時,顯示執行所述測試用例集得到的測試結果。
進一步的,該裝置還包括:
日志文件記錄模塊,用于記錄在所述測試用例集的執行過程中的日志文件。
本發明實施例通過獲取用戶根據測試計劃制定的測試用例所需的可重用行為RA列表,根據用戶指定的所述RA列表中的RA對應的代碼的路徑,獲取所述RA列表中的RA對應的代碼,根據所述RA列表,將所述RA對應的代碼拼裝為所述測試用例,實現了根據RA對應的代碼進行測試用例的靈活拼裝,完成自動化測試,簡化測試流程,提高測試效率。
附圖說明
為了更清楚地說明本發明實施例中的技術方案,下面將對實施例描述中所需要使用的附圖做一簡單地介紹,顯而易見地,下面描述中的附圖是本發明的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。
圖1是現有技術中自動化工具的開發流程圖;
圖2是本發明實施例一提供的一種測試用例的生成方法的流程示意圖;
圖3是本發明實施例一提供的一種測試流程圖;
圖4是本發明實施例二提供的一種測試用例的生成方法的流程示意圖;
圖5是本發明實施例提供的一種測試的架構圖;
圖6是本發明實施例提供的一種自動化測試的流程圖;
圖7是本發明實施例三提供的一種測試用例的生成裝置的結構示意圖。
具體實施方式
為使本發明的目的、技術方案和優點更加清楚,以下將參照本發明實施例中的附圖,通過實施方式清楚、完整地描述本發明的技術方案,顯然,所描述的實施例是本發明一部分實施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。
實施例一
圖2是本發明實施例一提供的一種測試用例的生成方法的流程圖。本實施例的技術方案可以適用于根據測試計劃生成測試用例進行自動化測試的情況。該方法可以由本發明實施例提供的一種測試用例的生成裝置來執行,該裝置可以采用軟件和/或硬件的方式實現。該方法具體包括如下操作:
S110、獲取用戶根據測試計劃制定的測試用例所需的RA列表。
其中,RA是可重用行為,在執行測試任務時,可以實現某一功能,并且可以重復執行的步驟。RA列表是篩選得到的測試用例中適合進行自動化測試的用例中按功能劃分的不同RA按照順序排列的列表。
測試人員即所述用戶在接到一個測試任務時,制定測試計劃,根據測試計劃制定測試用例,測試用例對應有需要的RA列表。測試用例的生成裝置獲取該RA列表,以便對RA列表中的RA進行相應操作。
圖3示出了一種測試流程圖,如圖所示,根據測試計劃制定的測試用例可以是測試人員從手工測試用例中篩選出適合進行自動化測試的用例,根據篩選出的自動化測試用例的步驟編寫出RA列表,用來標注自動化測試用例需要哪些RA和所需RA的排列順序,為后續的拼裝做準備。根據RA列表編寫RA設計文檔,該文檔為對RA進行編碼時的需求文檔,規定了RA的行為和輸入輸出參數,RA設計文檔在進行評審合格后提交。一般該階段過程在第一輪手工測試前完成,之后測試人員進入第一輪手工測試階段,自動化流轉到第二階段,即開發階段。
在將手工測試用例中的每一步分解成為可重用的RA時,需要記錄每個RA的行為描述,行為描述即具體步驟。示例性的,若RA是實現登錄網站的功能,那么該RA的行為就是打開瀏覽器,登錄某個網頁,然后輸入用戶名密碼等,每一步要分開寫,對應腳本里的每一個動作,這樣開發人員通過該文檔就能了解都有哪些行為需要實現。
可以采用任何腳本工具進行編碼得到RA對應的代碼,優選采用QTP(Quick Test Professional,自動化測試工具)編碼。
標準的QTP腳本是在test文件中進行編程的,好處是可以在編寫完成后直接運行腳本進行調試,直接而簡便,但是軟件規模大,模塊多,會需要幾百個RA進行覆蓋。如果幾百個RA都各自編寫自己的執行邏輯,存放于各自的test文件中,那么一旦版本變更,有相關的模塊功能發生了變化,那么就需要分別到對應的test文件下去修改代碼,但是RA的數量如此巨大的前提下,很容易在修改的過程中遺漏腳本或者產生錯誤,這樣就大大降低了自動化工作的靈活性。因此,將每個RA分為參數設定和邏輯處理兩個部分,采用QTP的庫文件的功能,參數設定部分放在test文件中,而邏輯處理功能根據模塊的劃分統一放在和邏輯處理功能相關的模塊下,如搜索相關的RA邏輯都被寫入search這個庫文件中,這樣當對應模塊的功能版本發生更替的時候,僅需要修改這一個文件就可以起到變更腳本的目的,有效提升效率。
S120、接收用戶指定的所述RA列表中的RA對應的代碼的路徑。
在進行自動化測試時,用戶可以指定RA列表中的每個RA對應的代碼所在的存儲路徑。接收用戶指定的RA列表中的RA對應的代碼的路徑,以方便調用RA對應的代碼。RA對應的代碼的存放路徑,同時也是RA設計文檔的存放路徑。示例性的,所述路徑可以是:
C:\Transfer_automation\qtp\reusable\Transfer\common\login
其中“common”表示RA設計文檔所屬的分類,“login”代表行為的名稱。
S130、根據所述路徑,獲取所述RA列表中的RA對應的代碼。
根據接收到的用戶指定的RA列表中的RA對應的代碼的路徑,則可以獲取到RA列表中的RA對應的代碼。
如圖3所示,開發人員接到測試人員提交的RA設計文檔,并開始根據文檔進行QTP代碼的編碼工作,在完成后進行對應的評審工作,校驗代碼中的參數及行為是否完全按照設計文檔進行編碼,單元測試結果是否通過,之后將代碼入庫并提交回測試人員手中,該階段與第一輪手工測試同時進行,在第一輪測試結束前提交到測試人員手中,此時自動化流轉到第三階段,即測試階段。
經過QTP編碼之后的RA需要對應該RA的自身功能進行概述。示例性的,若RA是訪問91助手網站,對某一版本的軟件進行版本獲取,對應這個RA是登錄網站的RA,那么在概述時,直接寫這個RA是登錄91助手網站功能即可。
RA對應有前置條件,所述前置條件包括硬件條件和步驟條件,其中硬件條件表示該操作需要某些設備的調通或者硬件支持,比如需要萬兆網卡,步驟條件包括搜索網站使用前可能需要先登錄等。執行完RA之后,用后置條件列出后置狀態。
RA對應的輸入和輸出參數中,每個參數必須要有“必選”或者“可選”的標記,“必選”表示該參數的值不能為空;“可選”表示該參數可以為空,或者有默認值。每個參數后面還需要描述該參數功能,默認值,取值范圍等也是必填的。示例性的:超時(可選,創建鏈接超時時長,默認為“3”);用戶名(必選,登錄用戶名,默認為空)。
S140、根據所述RA列表,將所述RA對應的代碼拼裝為所述測試用例。
根據所述RA列表中的RA順序將所述RA對應的代碼拼裝為所述測試用例。其中,RA對應的代碼可以在已有的RA代碼中根據每個RA的邏輯功能進行搜索得到。如果RA列表中所有RA對應的代碼均在已有的RA代碼中存在,就不再需要開發人員進行編碼,而可以直接使用已有代碼,可以大大簡化測試流程,提高測試效率;只有在RA列表中的RA對應的代碼在已有代碼中不存在時,才返回給開發人員進行該RA的編碼。
如圖3所示,測試人員在網管軟件開發人員修改第一輪測試提交的bug的時間內進行對RA的拼裝工作,由此可以保證測試和開發的并行處理,彼此不會相互干擾。按照RA列表的順序將對應的RA拼裝成對應的用例并進行評審,評審內容為是否按照要求拼裝用例。在完成評審后提交用例并進行用例的自動化執行,每個用例至少連續執行三次并沒有任何問題為執行通過標準,對QTP代碼本身或者EMS(Electro Magnetic Susceptibility,電磁抗干擾能力)的問題進行bug的提交,最終產生測試報告,QTP開發人員對問題進行對應代碼的修改和驗證工作。
本實施例的技術方案,通過獲取用戶根據測試計劃制定的測試用例所需的可重用行為RA列表,根據用戶指定的所述RA列表中的RA對應的代碼的路徑,獲取所述RA列表中的RA對應的代碼,根據所述RA列表,將所述RA對應的代碼拼裝為所述測試用例,實現了根據RA對應的代碼進行測試用例的靈活拼裝,完成自動化測試,簡化測試流程,提高測試效率。在測試用例發生變化的時候,如果這個用例不需要新的RA支持(沒有新的操作方法),測試人員就可以不需要開發人員,自己重新拼裝RA,完成自動化測試用例的修改,大大提高了效率。
在本實施例的一個優選實施方式中,在將所述RA的代碼拼裝為所述測試用例之后,還包括:
接收用戶創建的由至少一個所述測試用例組成的測試用例集。
每個測試任務可以對應至少一個測試用例,所有的測試用例組成測試用例集,測試工具接收用戶創建的由至少一個測試用例組成的測試用例集,由此可以實現,對應相同的測試任務,由測試用例集進行測試,保證了測試的充分性。
實施例二
圖4是本發明實施例二提供的一種測試用例的生成方法的流程圖。本發明實施例在上述實施例的基礎上,在接收用戶創建的由至少一個所述測試用例組成的測試用例集之后,進一步增加了接收用戶設定的至少一個所述測試用例集的執行時間;按照所述執行時間,執行所述至少一個所述測試用例集的操作。
相應的,本實施例的方法包括:
S210、獲取用戶根據測試計劃制定的測試用例所需的RA列表。
S220、接收用戶指定的所述RA列表中的RA對應的代碼的路徑。
S230、根據所述路徑,獲取所述RA列表中的RA對應的代碼。
S240、根據所述RA列表,將所述RA對應的代碼拼裝為所述測試用例。
S250、接收用戶設定的至少一個所述測試用例集的執行時間。
S260、按照所述執行時間,執行所述至少一個所述測試用例集。
所述執行時間即測試時間。所述執行至少一個測試用例集即應用測試用例集對待測軟件進行測試。針對不同的測試任務,設定不同的測試用例集,可以為每個測試用例集設定進行測試的時間,測試工具接收用戶設定的至少一個所述測試用例集的執行時間。由此可以保證,用戶根據需要自主設定對應不同的測試任務的測試用例集進行測試的時間,提升了用戶體驗,保證了測試任務的有序進行。
在執行所述至少一個測試用例集的過程中需要進行錯誤處理,即應對出現的錯誤定位錯誤的消息并且給出處理錯誤的行為。示例性的:如果登錄失敗,則顯示的錯誤信息為:“該用戶登錄失敗”,對應的后續行為為:“FAIL”數加1。
本發明實施例通過接收用戶設定的至少一個所述測試用例集的執行時間,按照所述執行時間,執行所述至少一個所述測試用例集,實現了按照測試用例集的執行時間有序進行自動測試,保證了測試的效率。
在本實施例的一個優選實施方式中,在執行所述至少一個所述測試用例集之后,還包括:
在接收到用戶的查看測試結果的指令時,顯示執行所述測試用例集得到的測試結果。
測試結果可以以HTTP文件的形式存儲在某一預設的文件夾下。測試結果可以用餅狀圖、柱狀圖或折線圖等形式顯示。
在本實施例的一個優選實施方式中,本方法還包括:記錄在所述測試用例集的執行過程中的日志文件。
所述日志文件可以包括組成測試用例的RA對應的代碼存在的bug。如果RA對應的代碼存在bug,則需要返回給開發人員進行修改。
圖5中示出了一種測試的架構圖。其中,TLI(Transport Layer Interface,傳輸層接口)控制臺和CLI(Command Line Interface,命令行接口)控制臺支持測試對象為輸入的字符串的形式,EMS GUI(Graphical User Interface,圖形用戶界面)支持測試對象為GUI的形式,由此可以保證測試對象的全面。從圖中可以看出,層3部分就是測試人員進行RA拼裝的界面,優選TK操作界面,T是一個利用TCL腳本語言來編寫GUI的工具箱。所述TK操作界面的功能包括測試用例管理,測試用例拼裝,測試用例安排,查看測試結果和記錄log。其中,測試用例拼裝用于將測試用例所需的RA進行拼裝,測試用例管理用于控制測試用例的執行與不執行,測試用例安排用于設定測試用例的執行時間。整個界面可以用任意支持GUI的腳本語言完成,這里選用的是TCL(Tool Command Language,腳本語言),用戶通過使用該功能,可以不接觸QTP和TCL的代碼就能完成用例管理,拼裝等工作,每個用戶可以創建獨立的測試用例集,加載不同的測試用例,還可以按照自己需要的順序來拼裝和調試他們,最后可以通過直觀的測試報告來監控執行結果。
層2完成的是拼裝工具的后臺部分,實現測試用例管理,測試用例拼裝,測試用例安排,查看測試結果和記錄log的功能,并且向RA進行參數傳遞的工作。TCL自身的函數庫包含了TCL腳本管理器所需的所有函數庫和數據文件,TCL通過他們對QTP進行操作和通信,傳遞參數和邏輯處理。完成從TK層下發的命令,這層的代碼是TCL腳本管理工具的核心部分。
層1是RA的實體部分,這部分選用的是QTP進行編寫,QTP通過執行這些RA直接對下面的管理對象進行操作,每個RA實際就是測試用例中的一個或者一組動作,這些動作連接在一起才組成了測試用例,可以看出,QTP的主要工作就是構建出這些測試用例的零件,用來完成自動化測試。
圖6示出了一種自動化測試的流程圖。當開始一個測試任務時,首先進入需求階段,測試人員需要檢測是否有新增用例,當有新增用例時,編寫用例,并篩選用例,編寫用例對應的RA列表,提交并評審RA列表是否通過,當通過時,編寫RA設計文檔,提交并評審RA設計文檔是否通過,當通過時,RA設計文檔利用CC文檔管理器入庫。然后進入編碼階段,開發人員對RA設計文檔進行QTP編碼,評審代碼是否通過,當通過時,利用CC文檔管理器將代碼入庫。最后進入測試階段,測試人員輸入RA拼裝命令將RA拼裝為對應的自動化測試用例,評審通過時,運行該自動化測試用例,并驗證RA代碼是否有bug,當有bug時,返回開發人員進行代碼修改,修改之后的代碼需要經過測試并通過,然后利用CC文檔管理器將修改后的代碼入庫;當無bug時,完成測試,并發布測試報告。
實施例三
圖7是本發明實施例三提供的一種測試用例的生成裝置的結構框圖。該裝置用于執行上述任意實施例所提供的一種測試用例的生成方法。該裝置包括:
RA列表獲取模塊310,用于獲取用戶根據測試計劃制定的測試用例所需的RA列表;
路徑接收模塊320,用于接收用戶指定的所述RA列表中的RA對應的代碼的路徑;
代碼獲取模塊330,用于根據所述路徑,獲取所述RA列表中的RA對應的代碼;
測試用例拼裝模塊340,用于根據所述RA列表,將所述RA對應的代碼拼裝為所述測試用例。
進一步的,該裝置還包括:
測試用例集接收模塊,用于在將所述RA對應的代碼拼裝為所述測試用例之后,接收用戶創建的由至少一個所述測試用例組成的測試用例集。
進一步的,該裝置還包括:
執行時間接收模塊,用于在接收用戶創建的由至少一個所述測試用例組成的測試用例集之后,接收用戶設定的至少一個所述測試用例集的執行時間;
測試用例集執行模塊,用于按照所述執行時間,執行所述至少一個所述測試用例集。
進一步的,該裝置還包括:
測試結果顯示模塊,用于在執行所述至少一個所述測試用例集之后,在接收到用戶的查看測試結果的指令時,顯示執行所述測試用例集得到的測試結果。
進一步的,該裝置還包括:
日志文件記錄模塊,用于記錄在所述測試用例集的執行過程中的日志文件。
本發明實施例三提供的測試用例的生成裝置,實現了根據RA對應的代碼進行測試用例的靈活拼裝,完成自動化測試,簡化測試流程,提高測試效率。
本發明實施例所提供的測試用例的生成裝置可執行本發明任意實施例所提供的測試用例的生成方法,具備執行方法相應的功能模塊和有益效果。
注意,上述僅為本發明的較佳實施例及所運用技術原理。本領域技術人員會理解,本發明不限于這里所述的特定實施例,對本領域技術人員來說能夠進行各種明顯的變化、重新調整和替代而不會脫離本發明的保護范圍。因此,雖然通過以上實施例對本發明進行了較為詳細的說明,但是本發明不僅僅限于以上實施例,在不脫離本發明構思的情況下,還可以包括更多其他等效實施例,而本發明的范圍由所附的權利要求范圍決定。