国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

軟件自動(dòng)化測(cè)試技術(shù)研究

2020-09-29 07:51:13鄭文鈺廖圣龍
電腦知識(shí)與技術(shù) 2020年17期
關(guān)鍵詞:測(cè)試用例軟件測(cè)試數(shù)據(jù)庫(kù)

鄭文鈺 廖圣龍

摘要:為了提高軟件測(cè)試的效率,降低軟件測(cè)試的成本,針對(duì)具有穩(wěn)定軟件架構(gòu)的樣本程序進(jìn)行自動(dòng)化測(cè)試技術(shù)的研究。通過(guò)分析軟件的數(shù)據(jù)流程和用戶需求,結(jié)合行業(yè)或領(lǐng)域的歷史數(shù)據(jù),構(gòu)建軟件測(cè)試平臺(tái)和相關(guān)工具庫(kù),以此為基礎(chǔ),實(shí)現(xiàn)自動(dòng)生成測(cè)試用例和測(cè)試腳本,進(jìn)而完成自動(dòng)化測(cè)試。自動(dòng)化測(cè)試平臺(tái)具有可繼承性和可擴(kuò)展性,對(duì)于不斷變化的用戶需求和軟件版本,更新維護(hù)更加靈活方便。

關(guān)鍵詞:軟件測(cè)試;數(shù)據(jù)庫(kù);測(cè)試用例; Selenium; Python

中圖分類號(hào):TP311.56 ? ? ? ?文獻(xiàn)標(biāo)識(shí)碼:A

文章編號(hào):1009-3044(2020)17-0033-02

Abstract:In order to improve the efficiency of software testing and reduce the cost of software testing, the automatic testing technology was studied for the sample program with stable software architecture. By analyzing the data flow and user requirements of the software, and combining with the historical data of the industry or field, the software test platform and relevant tool library are built. On this basis, test cases and test scripts are automatically generated to complete automated tests. The automation test platform has the inheritability and the extensibility, the software maintenance is more flexible and convenient.

Key words: software testing; database; test case; Selenium; Python

1 引言

在互聯(lián)網(wǎng)技術(shù)的快速發(fā)展背景下,社會(huì)的各行各業(yè)對(duì)軟件產(chǎn)品的需求都在不斷地增加,并且對(duì)軟件的功能要求也越來(lái)越多,軟件的版本迭代的越來(lái)越快,因此軟件測(cè)試的時(shí)間就會(huì)被壓縮,也就是面臨測(cè)試工作量加大和測(cè)試時(shí)間縮短的壓力。考慮人工測(cè)試的時(shí)間成本,軟件自動(dòng)化測(cè)試將在現(xiàn)代軟件測(cè)試行業(yè)中扮演更加重要的角色。

為了提高軟件總體開(kāi)發(fā)效率,相同行業(yè)或相同領(lǐng)域的軟件研發(fā)在發(fā)展過(guò)程中將趨于成熟,開(kāi)發(fā)過(guò)程也越來(lái)越規(guī)范,軟件的架構(gòu)也愈加穩(wěn)定,成熟穩(wěn)定的軟件架構(gòu)是軟件測(cè)試自動(dòng)化的基礎(chǔ),這種軟件程序也可以被稱為樣本程序[1]。除了穩(wěn)定的軟件架構(gòu),自動(dòng)化軟件測(cè)試的實(shí)現(xiàn)還需要各行業(yè)軟件運(yùn)行過(guò)程中積累的海量行業(yè)數(shù)據(jù)[2],并從中提取有效的樣本數(shù)據(jù)作為生成測(cè)試用例的樣本庫(kù),結(jié)合軟件架構(gòu)和相對(duì)應(yīng)的樣本庫(kù)構(gòu)建自動(dòng)化測(cè)試平臺(tái)。

目前,軟件自動(dòng)化測(cè)試工具的類型有很多,例如Selenium[3]、QTP[4]等。這些測(cè)試工具本身就具有很強(qiáng)功能,但對(duì)于不斷的用戶需求變化和軟件產(chǎn)品更新迭代,其并不能提供便捷的自動(dòng)化腳本編寫方案,為了自動(dòng)化測(cè)試工具更加專業(yè)化[5],因此本文研究了一種基于成熟穩(wěn)定軟件架構(gòu)的樣本程序的自動(dòng)化測(cè)試平臺(tái)框架,利用穩(wěn)定的軟件架構(gòu)和行業(yè)數(shù)據(jù),自動(dòng)提取測(cè)試用例和生成測(cè)試腳本,對(duì)軟件進(jìn)行自動(dòng)化測(cè)試。

2 軟件自動(dòng)化測(cè)試平臺(tái)框架

自動(dòng)化測(cè)試平臺(tái)構(gòu)建首先要確定該行業(yè)或領(lǐng)域軟件的數(shù)據(jù)流程,即細(xì)化各個(gè)功能模塊之間的數(shù)據(jù)流以及數(shù)據(jù)的行為參數(shù)(用戶需求);然后以數(shù)據(jù)流和行為參數(shù)為基礎(chǔ)從該行業(yè)或領(lǐng)域數(shù)據(jù)中提取各個(gè)模塊的測(cè)試數(shù)據(jù);最后建立相應(yīng)的工具庫(kù)。軟件自動(dòng)化測(cè)試平臺(tái)工作框圖如圖1 所示。

2.1 數(shù)據(jù)流

軟件是由多個(gè)模塊組成,數(shù)據(jù)流就是各個(gè)模塊之間的輸入輸出關(guān)系,每個(gè)數(shù)據(jù)流可以定義成一個(gè)由數(shù)據(jù)元素和數(shù)據(jù)關(guān)系組成的結(jié)構(gòu)體,包括模塊、輸入來(lái)源模塊、輸出接收模塊、輸入數(shù)據(jù)元素、輸出數(shù)據(jù)元素、功能關(guān)鍵字以及行為參數(shù)關(guān)鍵字,其中行為參數(shù)關(guān)鍵字是根據(jù)用戶需求定義的規(guī)則參數(shù)。

以軟件系統(tǒng)中基本的增刪改查模塊中的修改功能為例(系統(tǒng)中有修改權(quán)限限制)。輸入來(lái)源模塊是系統(tǒng)菜單中的“操作界面”,輸入數(shù)據(jù)包括“操作人員信息”“操作對(duì)象”和“操作內(nèi)容”,輸出接收模塊是“顯示界面”和“后臺(tái)數(shù)據(jù)庫(kù)”,輸出數(shù)據(jù)包括“操作對(duì)象”“操作內(nèi)容”和“操作結(jié)果”,功能描述的關(guān)鍵字為“修改”,行為參數(shù)關(guān)鍵字是“人員權(quán)限級(jí)別”。該數(shù)據(jù)流結(jié)構(gòu)表示為:

{“增刪改查”;“操作界面”;“顯示界面”,“后臺(tái)數(shù)據(jù)庫(kù)”;“操作人員信息”,“操作對(duì)象”,“操作內(nèi)容”;“操作對(duì)象”,“操作內(nèi)容”,“操作結(jié)果”;“修改”;“人員權(quán)限級(jí)別”}。

2.2 行為參數(shù)

行為參數(shù)主要是從用戶需求中提取出來(lái),用于約束軟件的數(shù)據(jù)流,就是輸入各種數(shù)據(jù)后輸出的結(jié)果都必須滿足用戶需求,否則即測(cè)試不合格。行為參數(shù)用于反推出對(duì)應(yīng)模塊的數(shù)據(jù)流具有幾種輸入數(shù)據(jù),以此覆蓋所有測(cè)試用例,達(dá)到充分測(cè)試的目的。

同樣以修改功能為例,該模塊數(shù)據(jù)流中的行為參數(shù)是“人員權(quán)限級(jí)別”,從輸入數(shù)據(jù)中“操作人員信息”中獲取“人員權(quán)限級(jí)別”,如果操作人員的“人員權(quán)限級(jí)別”具有修改的權(quán)限,操作成功并將“操作內(nèi)容”和“操作結(jié)果”發(fā)送“顯示界面”和“后臺(tái)數(shù)據(jù)庫(kù)”;如果沒(méi)有權(quán)限,則操作不成功,將“操作結(jié)果”發(fā)送“顯示界面”。此數(shù)據(jù)流可以生成2種測(cè)試用例,也就是至少需要2組測(cè)試數(shù)據(jù)來(lái)進(jìn)行充分測(cè)試。

此外,數(shù)據(jù)流可能包含多個(gè)行為參數(shù),生成的測(cè)試用例數(shù)量就由各個(gè)行為參數(shù)排列組合種類數(shù)決定。

2.3 測(cè)試數(shù)據(jù)

測(cè)試的流程就是通過(guò)輸入各類測(cè)試數(shù)據(jù)后,判斷得到的輸出數(shù)據(jù)是否正確或者滿足需求。因此在確定整個(gè)軟件的數(shù)據(jù)流和行為參數(shù)后,以此為基礎(chǔ)從大量的實(shí)際數(shù)據(jù)中提取具有代表性并能完全覆蓋各類輸入輸出情況的數(shù)據(jù)作為最終的測(cè)試數(shù)據(jù)。

以修改功能為例,至少可以提取出2組測(cè)試數(shù)據(jù)。如輸入數(shù)據(jù):操作人員信息(張三,等級(jí)1),操作對(duì)象(顯示界面),操作內(nèi)容(顏色)。輸出數(shù)據(jù):操作對(duì)象(顯示界面),操作內(nèi)容(顏色),操作結(jié)果(成功);輸入數(shù)據(jù):操作人員信息(李四,等級(jí)7),操作對(duì)象(顯示界面),操作內(nèi)容(顏色),輸出數(shù)據(jù):操作對(duì)象(無(wú)),操作內(nèi)容(無(wú)),操作結(jié)果(失?。?/p>

2.4 工具庫(kù)

由軟件自動(dòng)化測(cè)試平臺(tái)工作框圖中可以看出,通過(guò)軟件架構(gòu)、用戶需求和行業(yè)數(shù)據(jù)可以依次提取數(shù)據(jù)流庫(kù)、行為參數(shù)庫(kù)和測(cè)試數(shù)據(jù)庫(kù),這三種庫(kù)組成了自動(dòng)化測(cè)試平臺(tái)的工具庫(kù)。其中數(shù)據(jù)流庫(kù)和行為參數(shù)庫(kù)是需要根據(jù)軟件的版本更新和用戶需求的變化進(jìn)行同步更新,然后再以新的數(shù)據(jù)流庫(kù)和行為參數(shù)庫(kù)為依據(jù)從行業(yè)數(shù)據(jù)提取測(cè)試數(shù)據(jù)并更新測(cè)試數(shù)據(jù)庫(kù)。

數(shù)據(jù)庫(kù)采用了MySQL數(shù)據(jù)庫(kù),作為一種開(kāi)源的結(jié)構(gòu)化查詢語(yǔ)言(SQL)數(shù)據(jù)庫(kù)管理系統(tǒng),它還具有性能卓越、服務(wù)穩(wěn)定、安裝簡(jiǎn)單、易于維護(hù)、支持多種開(kāi)發(fā)語(yǔ)言和平臺(tái)以及維護(hù)成本低等優(yōu)點(diǎn)[6]。

3 自動(dòng)化測(cè)試工具

本文實(shí)現(xiàn)自動(dòng)化測(cè)試工具的腳本開(kāi)發(fā)是基于Python語(yǔ)言[7],測(cè)試工具以Selenium為基礎(chǔ)框架。通過(guò)從工具庫(kù)抽取待測(cè)試模塊的數(shù)據(jù)流和行為參數(shù),匹配出測(cè)試數(shù)據(jù),生成測(cè)試用例,然后組裝出自動(dòng)化測(cè)試腳本,配置測(cè)試工具的參數(shù),調(diào)用測(cè)試程序,輸出測(cè)試結(jié)果和相應(yīng)的測(cè)試問(wèn)題報(bào)告,完成自動(dòng)化測(cè)試。整個(gè)自動(dòng)化測(cè)試的流程如圖2所示。

3.1 腳本語(yǔ)言

可用于實(shí)現(xiàn)自動(dòng)化測(cè)試的編程語(yǔ)言有很多種,目前軟件測(cè)試工程師使用的語(yǔ)言主要有Python、Java等。其中Java語(yǔ)言開(kāi)發(fā)應(yīng)用最為廣泛,目前在各個(gè)領(lǐng)域的軟件開(kāi)發(fā),Java都是比較主流的選擇,它具有很好兼容性的優(yōu)點(diǎn),因此很多主流的測(cè)試工具都是用Java開(kāi)發(fā)出來(lái)的。

本文采用的是Python語(yǔ)言,作為一種語(yǔ)法簡(jiǎn)單、適合初學(xué)編程者的編程語(yǔ)言,近幾年來(lái)Python生態(tài)的發(fā)展很迅猛,在數(shù)據(jù)分析、Web開(kāi)發(fā)、人工智能以及自動(dòng)化測(cè)試等領(lǐng)域都有涉及。Python語(yǔ)言優(yōu)勢(shì)在于靈活,而測(cè)試行業(yè)就是用戶需求不斷變化,可以充分利用Python廣泛的第三方庫(kù)來(lái)快速靈活的開(kāi)發(fā)或更新自動(dòng)化測(cè)試工具,提高測(cè)試效率。Python語(yǔ)言的劣勢(shì)是執(zhí)行效率比較慢,在測(cè)試行業(yè)中這一點(diǎn)并不明顯。

3.2 測(cè)試工具

采用Selenium作為自動(dòng)化測(cè)試工具主要看重其強(qiáng)于其他測(cè)試工具的四個(gè)優(yōu)點(diǎn)。第一,它支持多種語(yǔ)言(Python、PHP、Java等)、平臺(tái)(windows、Linux等)以及各類瀏覽器(Firefox、IE、Safari等);第二,它可集成各種開(kāi)發(fā)平臺(tái),如TestNG、SauceLabs和Jenkins等;第三,可移動(dòng)測(cè)試;第四,具有大型插件庫(kù),可通過(guò)各種插件擴(kuò)展其更多功能[8]。

4 結(jié)論

目前使用的軟件自動(dòng)化測(cè)試的各類工具,在每次進(jìn)行新的測(cè)試項(xiàng)目時(shí),都需要耗費(fèi)大量的時(shí)間和人力成本進(jìn)行測(cè)試用例提取和測(cè)試腳本編寫。針對(duì)這一情況,本文研究了一種可以自動(dòng)化提取測(cè)試用例和生成測(cè)試腳本的軟件自動(dòng)化測(cè)試平臺(tái)框架,以行業(yè)或領(lǐng)域軟件的數(shù)據(jù)流程、用戶需求和測(cè)試數(shù)據(jù)為基礎(chǔ),建立相應(yīng)的工具庫(kù),最后實(shí)現(xiàn)自動(dòng)化測(cè)試腳本的組裝,完成自動(dòng)化測(cè)試。而且同一行業(yè)或領(lǐng)域的自動(dòng)化測(cè)試平臺(tái)具有很好可繼承性和可擴(kuò)展性,便于后期用戶需求變更后的更新維護(hù),進(jìn)而提高整個(gè)自動(dòng)化測(cè)試流程的效率。

參考文獻(xiàn):

[1] 王致富.基于樣本程序和規(guī)則庫(kù)的代碼自動(dòng)化檢查工具[D].北京:中國(guó)科學(xué)院研究生院,2011.

[2] 周惠群,左春,蔡玉寶. 特定領(lǐng)域的數(shù)據(jù)參考模型建模方法研究[J]. 計(jì)算機(jī)工程與設(shè)計(jì), 2009, 30(3): 605-609.

[3] 莊文龍,陳惠娟. 基于Selenium2的自動(dòng)化測(cè)試應(yīng)用[J]. 福建電腦, 2019, 15(8): 21-24.

[4] 李玉,尉雙梅,汪添生. 基于QTP的企業(yè)級(jí)應(yīng)用軟件自動(dòng)化測(cè)試方法[J]. 計(jì)算機(jī)系統(tǒng)應(yīng)用, 2016, 25(6): 219-224.

[5] 王津,左春,張正. 基于樣本程序的自動(dòng)化測(cè)試工具[J]. 計(jì)算機(jī)工程, 2019, 25(6): 211-218.

[6] 劉曉光. 基于MySQL的分布式SQL數(shù)據(jù)庫(kù)的設(shè)計(jì)與實(shí)現(xiàn)[D]. 北京:中國(guó)科學(xué)院大學(xué),2016.

[7] 孟聰. 基于Python的軟件測(cè)試自動(dòng)化平臺(tái)研究[J]. 信息與電腦(理論版), 2019, 5(16): 45-51.

[8] 姜文,劉立康. 基于Selenium的web軟件自動(dòng)化測(cè)試[J]. 計(jì)算機(jī)技術(shù)與發(fā)展, 2018, 6(9): 29-32.

【通聯(lián)編輯:代影】

猜你喜歡
測(cè)試用例軟件測(cè)試數(shù)據(jù)庫(kù)
基于SmartUnit的安全通信系統(tǒng)單元測(cè)試用例自動(dòng)生成
基于OBE的軟件測(cè)試課程教學(xué)改革探索
EXCEL和VBA實(shí)現(xiàn)軟件測(cè)試記錄管理
電子制作(2018年16期)2018-09-26 03:27:18
基于混合遺傳算法的回歸測(cè)試用例集最小化研究
關(guān)于軟件測(cè)試技術(shù)應(yīng)用與發(fā)展趨勢(shì)研究
數(shù)據(jù)庫(kù)
軟件測(cè)試工程化模型及應(yīng)用研究
數(shù)據(jù)庫(kù)
數(shù)據(jù)庫(kù)
數(shù)據(jù)庫(kù)
西吉县| 扎鲁特旗| 女性| 隆昌县| 民县| 彰化县| 湖州市| 三穗县| 舟曲县| 台北市| 襄垣县| 罗田县| 射洪县| 康定县| 浦北县| 隆回县| 汉源县| 邛崃市| 盐边县| 德保县| 南城县| 成安县| 普安县| 上蔡县| 平陆县| 丹巴县| 鸡西市| 宁强县| 龙口市| 香港| 岱山县| 循化| 荣昌县| 淮南市| 贵州省| 阿坝| 静乐县| 涞水县| 普兰店市| 农安县| 晴隆县|