一種用于軟件單元的自動化驗證及回歸測試方法
【技術(shù)領域】
[0001]本發(fā)明涉及一種軟件單元測試技術(shù),尤其是涉及一種用于軟件單元的自動化驗證及回歸測試方法。
【背景技術(shù)】
[0002]軟件單元測試是對最小可測試的單元進行檢查和驗證的過程,在整個軟件測試過程中占有很大的工作量比重,并且單元回歸測試活動充盈著每輪軟件迭代開發(fā)過程,是軟件開發(fā)生命周期中的一個重要組成部分。目前,市場上已有很多單元測試工具,例如,支持C/C++語言的C++Test, Visual Unit, TestBed等等;支持Java語言的JUnit等。借助這些工具,雖然不再需要編寫大量的粧函數(shù)和驅(qū)動函數(shù),使得單元測試的過程得到了較大程度的簡化,但這也只是一個個測試用例的單獨執(zhí)行,僅能被稱為半自動化測試,仍會極大地影響回歸測試的效率,甚至不能滿足夜間自動執(zhí)行的特殊要求。此外,不同測試人員所使用環(huán)境的差異,也會降低腳本的可維護性。
【發(fā)明內(nèi)容】
[0003]本發(fā)明的目的就是為了克服上述現(xiàn)有技術(shù)存在的缺陷而提供一種用于軟件單元的自動化驗證及回歸測試方法,旨在克服現(xiàn)有技術(shù)自動化程度低,回歸測試效率低的問題和缺陷,實現(xiàn)方便地支持自動化回歸測試。
[0004]本發(fā)明的目的可以通過以下技術(shù)方案來實現(xiàn):
[0005]一種用于軟件單元的自動化驗證及回歸測試方法,其特征在于,包括以下步驟:
[0006]I)用例設計過程,用于構(gòu)建測試用例集;
[0007]2)用例執(zhí)行過程,利用構(gòu)建的測試用例集,自動對軟件單元進行測試。
[0008]所述的步驟I)用例設計過程具體為:
[0009]以詳細設計文檔,測試源代碼以及上一輪的測試用例集為輸入,通過關(guān)鍵字檢索比較來驗證詳細設計文檔和測試用例,并利用自動化回歸的工具確認測試用例是否符合源代碼設計,以此檢查測試用例設計是否合理以及源代碼設計是否與詳細設計文檔一致。
[0010]所述的檢查測試用例設計是否合理以及源代碼設計是否與詳細設計文檔一致具體為:
[0011]形參邊界測試是否完整;
[0012]全局變量輸出是否檢查;
[0013]源代碼形參有效范圍是否與詳細設計文檔一致。
[0014]若測試用例不滿足設計時,進行重新設計測試用例,直至測試一致性驗證通過后,構(gòu)成最終的測試用例集。
[0015]所述的用例執(zhí)行過程具體為:
[0016]首先,通過Python腳本,遍歷進行單元測試的測試用例文件所在的各目錄,根據(jù)測試用例文件名,生成與測試用例一一對用的映射信息文件;
[0017]然后,根據(jù)生成的測試用例的映射信息及待測源文件目錄,通過Python腳本輸出測試文件;
[0018]最后,執(zhí)行測試文件,對被測試對象進行單元測試,輸出測試結(jié)果。
[0019]若用例執(zhí)行失敗或者覆蓋率未達到規(guī)定的要求,分析測試結(jié)果,反饋給測試人員或開發(fā)人員進行修改。
[0020]與現(xiàn)有技術(shù)相比,本發(fā)明具有以下優(yōu)點:
[0021]I)充分利用軟硬件資源,提高工作效率;
[0022]用自動化測試工具取代機械性的人工回歸測試工作,不僅可充分利用硬件資源,滿足單元回歸測試工作可在夜間自動執(zhí)行的要求,還使得員工可高效利用工作時間,提高軟件產(chǎn)品質(zhì)量。
[0023]此外,無論產(chǎn)品迭代開發(fā)中,代碼更改率多少,自動化回歸測試均可一鍵式完成,確認產(chǎn)品代碼的正確性之余,還大大提高了工作效率。
[0024]2)保證測試環(huán)境的穩(wěn)定性,增強測試腳本的可維護性;
[0025]在同一機器上自動測試,保證各測試用例使用相同的測試環(huán)境,從而提高了腳本的可維護性,使其不依賴測試環(huán)境。
[0026]3)保證測試用例的完善性,以及詳細設計與代碼的一致性;
[0027]詳細設計文檔,測試源代碼以及測試用例集一致性驗證方法在單元回歸測試中可一鍵式發(fā)現(xiàn)修改的代碼和測試用例,詳細設計之間的不一致,還可以省去比對代碼的工作。
[0028]4)降低產(chǎn)品測試、維護成本;
[0029]在漸進或者快速迭代開發(fā)中,新版本的連續(xù)發(fā)布使得回歸測試進行的異常頻繁,自動化測試可更加有效且有力的完成單元回歸測試,降低產(chǎn)品的測試和維護成本
【附圖說明】
[0030]圖1為本發(fā)明的具體流程圖;
[0031]圖2為本發(fā)明用例執(zhí)行過程的流程圖;
[0032]圖3為本發(fā)明實現(xiàn)自動化回歸測試的裝置的結(jié)構(gòu)示意圖。
【具體實施方式】
[0033]下面結(jié)合附圖和具體實施例對本發(fā)明進行詳細說明。
[0034]實施例
[0035]如圖1為本方法的流程圖,由用例設計和用例執(zhí)行兩個階段組成,具體說明如下:
[0036]—、用例設計階段:
[0037]以詳細設計文檔,測試源代碼以及上一輪的測試用例集為輸入,通過關(guān)鍵字檢索比較來驗證詳細設計文檔和測試用例,并利用自動化回歸的工具確認測試用例是否符合源代碼設計,以此可檢查測試用例設計是否合理以及源代碼設計是否與詳細設計文檔一致,如:形參邊界測試是否完整,全局變量輸出是否檢查,源代碼形參有效范圍是否與詳細設計文檔一致等等。以上如有發(fā)現(xiàn)缺陷,根據(jù)需要分別反饋給測試人員或開發(fā)人員,而后測試人員根據(jù)開發(fā)人員修改后的詳細設計文檔和測試源代碼,重新設計測試用例,修改直至測試一致性驗證通過后,構(gòu)成最終的測試用例集。
[0038]二、用例執(zhí)行階段:
[0039]利用上述測試用例集,自動執(zhí)行測試腳本,輸出測試結(jié)果。如有用例執(zhí)行失敗或者覆蓋率未達到規(guī)定的要求,分析測試結(jié)果,反饋給測試人員或開發(fā)人員進行修改。其中,自動化回歸的方法如圖2中所示:
[0040]首先,通過Python腳本,遍歷進行單元測試的測試用例文件所在的各目錄,根據(jù)測試用例文件名,生成與測試用例一一對用的映射信息文件;然后,根據(jù)生成的測試用例的映射信息及待測源文件目錄,通過Python腳本輸出測試文件;最后,執(zhí)行測試文件,對被測試對象進行單元測試,輸出測試結(jié)果。
[0041]圖3為本方法實現(xiàn)自動化回歸測試的裝置的結(jié)構(gòu)圖,包括:
[0042]遍歷單元:用于遍歷進行單元測試的測試用例文件的各目錄,根據(jù)測試用例文件名,生成與測試用例一一對應的映射信息文件。
[0043]生成測試文件單元:根據(jù)生成的測試用例的映射信息,輸出測試文件
[0044]測試執(zhí)行單元:根據(jù)測試文件,對被測對象進行單元測試,輸出測試結(jié)果。
[0045]該方法已經(jīng)被應用于卡斯柯信號有限公司TSP軌旁安全平臺產(chǎn)品,ECID計算機聯(lián)鎖驅(qū)動子系統(tǒng),iTS智能列車監(jiān)控系統(tǒng)等項目軟件迭代開發(fā)過程的單元回歸測試中。
[0046]從軟件迭代開發(fā)過程看,使用該發(fā)明后,單元回歸測試的效率得到了很大的提高,節(jié)約了迭代開發(fā)的時間。從測試使用的角度看,不再需要機械的人工回歸測試,測試人員正真將精力花在提高軟件產(chǎn)品質(zhì)量本身。
【主權(quán)項】
1.一種用于軟件單元的自動化驗證及回歸測試方法,其特征在于,包括以下步驟: 1)用例設計過程,用于構(gòu)建測試用例集; 2)用例執(zhí)行過程,利用構(gòu)建的測試用例集,自動對軟件單元進行測試。2.根據(jù)權(quán)利要求1所述的一種用于軟件單元的自動化驗證及回歸測試方法,其特征在于,所述的步驟I)用例設計過程具體為: 以詳細設計文檔,測試源代碼以及上一輪的測試用例集為輸入,通過關(guān)鍵字檢索比較來驗證詳細設計文檔和測試用例,并利用自動化回歸的工具確認測試用例是否符合源代碼設計,以此檢查測試用例設計是否合理以及源代碼設計是否與詳細設計文檔一致。3.根據(jù)權(quán)利要求2所述的一種用于軟件單元的自動化驗證及回歸測試方法,其特征在于,所述的檢查測試用例設計是否合理以及源代碼設計是否與詳細設計文檔一致具體為: 形參邊界測試是否完整; 全局變量輸出是否檢查; 源代碼形參有效范圍是否與詳細設計文檔一致。4.根據(jù)權(quán)利要求2或3所述的一種用于軟件單元的自動化驗證及回歸測試方法,其特征在于,若測試用例不滿足設計時,進行重新設計測試用例,直至測試一致性驗證通過后,構(gòu)成最終的測試用例集。5.根據(jù)權(quán)利要求1所述的一種用于軟件單元的自動化驗證及回歸測試方法,其特征在于,所述的用例執(zhí)行過程具體為: 首先,通過Python腳本,遍歷進行單元測試的測試用例文件所在的各目錄,根據(jù)測試用例文件名,生成與測試用例一一對用的映射信息文件; 然后,根據(jù)生成的測試用例的映射信息及待測源文件目錄,通過Python腳本輸出測試文件; 最后,執(zhí)行測試文件,對被測試對象進行單元測試,輸出測試結(jié)果。6.根據(jù)權(quán)利要求1所述的一種用于軟件單元的自動化驗證及回歸測試方法,其特征在于,若用例執(zhí)行失敗或者覆蓋率未達到規(guī)定的要求,分析測試結(jié)果,反饋給測試人員或開發(fā)人員進行修改。
【專利摘要】本發(fā)明涉及一種用于軟件單元的自動化驗證及回歸測試方法,包括以下步驟:1)用例設計過程,用于構(gòu)建測試用例集;2)用例執(zhí)行過程,利用構(gòu)建的測試用例集,自動對軟件單元進行測試。與現(xiàn)有技術(shù)相比,本發(fā)明具有充分利用軟硬件資源、提高工作效率等優(yōu)點。
【IPC分類】G06F11/36
【公開號】CN105117335
【申請?zhí)枴緾N201510530834
【發(fā)明人】顧文華, 宋贏碩, 張立鵬, 王曉瓊, 王卉
【申請人】卡斯柯信號有限公司
【公開日】2015年12月2日
【申請日】2015年8月26日