999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于python的軟件測(cè)試平臺(tái)研究與應(yīng)用

2020-11-30 09:02:22文婷何中全
軟件 2020年9期
關(guān)鍵詞:網(wǎng)絡(luò)通信

文婷 何中全

摘? 要: 計(jì)算機(jī)技術(shù)的快速發(fā)展,使軟件在通信、交通、電子以及軍工等各個(gè)領(lǐng)域都發(fā)揮著越來(lái)越重要的作用,軟件測(cè)試作為保障軟件質(zhì)量的重要手段,也引起了各領(lǐng)域廣泛的關(guān)注。本文針對(duì)軍用軟件測(cè)試過(guò)程中的測(cè)試環(huán)境局限性、測(cè)試效率低等問(wèn)題,提出一種基于python的軟件測(cè)試平臺(tái)實(shí)現(xiàn)方法,實(shí)現(xiàn)被測(cè)軟件與外部對(duì)象的網(wǎng)絡(luò)通信模擬、接口數(shù)據(jù)自動(dòng)生成及解析、測(cè)試結(jié)果自動(dòng)判定等功能,能夠降低對(duì)測(cè)試環(huán)境的依懶性,提高測(cè)試效率及充分性,有效保障測(cè)試質(zhì)量。

關(guān)鍵詞: 軟件測(cè)試;python;測(cè)試平臺(tái);網(wǎng)絡(luò)通信

中圖分類(lèi)號(hào): TP3? ? 文獻(xiàn)標(biāo)識(shí)碼: A? ? DOI:10.3969/j.issn.1003-6970.2020.09.042

本文著錄格式:文婷,何中全. 基于python的軟件測(cè)試平臺(tái)研究與應(yīng)用[J]. 軟件,2020,41(09):158161

【Abstract】: With the rapid development of computer technology, software is playing an increasingly important role in various fields such as communications, transportation, electronics, and military industry. Software testing is important to ensure software quality, and it has aroused widespread concern in various fields. In order to solve the problems of the limitation of the test environment and the lower test efficiency in the software testing process, this paper proposes a python-based software testing platform implementation method. It has realized functions such as simulation of network communication between software and external objects, automatic generation and analysis of interface data, and automatic determination of test results. The testing platform based on python can reduce dependence on the test environment, improve test efficiency and adequacy, and ensure test quality.

【Key words】: Software test; Python; Testing platform; Network communication

0? 引言

隨著計(jì)算機(jī)技術(shù)的迅猛發(fā)展,在人們的工作、生活等各個(gè)領(lǐng)域都承載著各種軟件,軟件在人們生活、工作中發(fā)揮著越來(lái)越重要的作用。同樣,在我國(guó)的軍工行業(yè),軟件的規(guī)模以及覆蓋范圍也與日俱增[1]。隨著軟件的廣泛應(yīng)用,軟件質(zhì)量也引起了廣泛的關(guān)注。軟件測(cè)試作為控制軟件質(zhì)量的重要手段,也成為當(dāng)前的研究熱點(diǎn)之一[2-5]。在軍用軟件測(cè)試過(guò)程中,動(dòng)態(tài)測(cè)試通常以人工測(cè)試為主,測(cè)試效率較低[6]。同時(shí)會(huì)受測(cè)試環(huán)境的限制,比如軟件測(cè)試相關(guān)的硬件設(shè)備不齊套、技術(shù)狀態(tài)不穩(wěn)定、異常數(shù)據(jù)產(chǎn)生困難等限制,進(jìn)一步降低軟件測(cè)試效率,甚至影響軟件測(cè)試效果。為解析測(cè)試效率低、測(cè)試環(huán)境限制等問(wèn)題,本文提出一種基于python的軟件測(cè)試平臺(tái)實(shí)現(xiàn)方法,能夠模擬外部對(duì)象與被測(cè)軟件間的網(wǎng)絡(luò)通信,向被測(cè)軟件提供測(cè)試數(shù)據(jù),以支撐對(duì)被測(cè)軟件的功能、性能、接口、強(qiáng)度等類(lèi)型的測(cè)試,有效擺脫測(cè)試環(huán)境的限制。同時(shí)與其他外部通信對(duì)象模擬軟件(如:網(wǎng)絡(luò)調(diào)試工具等)相比[7],本平臺(tái)除了對(duì)外部通信對(duì)象的模擬,還能夠自動(dòng)生成測(cè)試數(shù)據(jù),并支持測(cè)試結(jié)果自動(dòng)判定,能夠有效提高測(cè)試效率,保障測(cè)試質(zhì)量。

1? 基于python的軟件測(cè)試平臺(tái)概述

python是一種面向?qū)ο蟆⒔忉屝偷哪_本語(yǔ)言,同時(shí)也是一種功能強(qiáng)大而完善的通用型語(yǔ)言,其提供了通信、文件操作、文件I/O等許多功能強(qiáng)大的類(lèi)庫(kù),能夠支持測(cè)試平臺(tái)的實(shí)現(xiàn)[8-9]。本文基于python內(nèi)置的socket、struct、csv等模塊,構(gòu)建軟件測(cè)平臺(tái),向用戶(hù)提供網(wǎng)絡(luò)通信接口模擬、接口數(shù)據(jù)生成、接口數(shù)據(jù)解析、測(cè)試結(jié)果自動(dòng)判定相關(guān)接口。使用戶(hù)能夠擺脫測(cè)試環(huán)境的限制,按照測(cè)試要求,快速模擬外部對(duì)象與被測(cè)軟件的網(wǎng)絡(luò)通信,實(shí)現(xiàn)對(duì)被測(cè)軟件的功能、性能、接口等類(lèi)型的測(cè)試。該平臺(tái)由網(wǎng)絡(luò)通信模塊、接口數(shù)據(jù)生成模塊、接口數(shù)據(jù)解析模塊、測(cè)試結(jié)果自動(dòng)判定模塊四大功能模塊組成,如圖1所示。各模塊主要功能見(jiàn)表1。

2? 基于python的軟件測(cè)試平臺(tái)實(shí)現(xiàn)過(guò)程

2.1? 網(wǎng)絡(luò)通信模塊

TCP/IP協(xié)議是最常見(jiàn)的網(wǎng)絡(luò)通信協(xié)議之一,傳輸控制協(xié)議(TCP)和用戶(hù)數(shù)據(jù)報(bào)協(xié)議(UDP)是TCP/IP協(xié)議的核心[10]。python 內(nèi)置socket模塊中提供了大量TCP、UDP通信相關(guān)的函數(shù)接口可實(shí)現(xiàn)TCP、UDP通信[11]。本平臺(tái)基于socket,實(shí)現(xiàn)網(wǎng)絡(luò)通信模塊,向用戶(hù)提供TCP、UDP通信功能。

(1)TCP通信接口模擬

考慮到被測(cè)軟件與外部對(duì)象進(jìn)行TCP通信時(shí),可能作為服務(wù)端,也可能作為客戶(hù)端,所以本平臺(tái)基于python socket,分別構(gòu)建Tcp_client、Tcp_Server兩個(gè)類(lèi),向用戶(hù)提供鏈路初始化、啟動(dòng)鏈路、連接處理、發(fā)送數(shù)據(jù)等接口,實(shí)現(xiàn)被測(cè)軟件與外部對(duì)象的TCP通信模擬。并結(jié)合實(shí)際場(chǎng)景加入異常保護(hù)、線程處理以及接收回調(diào)函數(shù)機(jī)制,以提高程序的穩(wěn)定性,并支持鏈路數(shù)據(jù)同發(fā)同收以及多鏈路收發(fā)等復(fù)雜測(cè)試場(chǎng)景。Tcp_client、Tcp_Server提供的主要接口及描述如下,接口的使用方法如圖2所示。

a)Init:獲取配置的服務(wù)器、客戶(hù)端初始化信息,并創(chuàng)建socket;

b)Tcp_Sever_Start:按照初始化中獲取的ip、port綁定socket(bind),設(shè)置socket相關(guān)屬性,并對(duì)服務(wù)器創(chuàng)建失敗等異常進(jìn)行監(jiān)控及處理;

c)Tcp_client_start:連接服務(wù)器,設(shè)置socket相關(guān)屬性;

d)SendData:調(diào)用send函數(shù)進(jìn)行數(shù)據(jù)發(fā)送,并對(duì)發(fā)送異常進(jìn)行檢測(cè)及處理;

e)ReadData:調(diào)用recv函數(shù)進(jìn)行數(shù)據(jù)接收,并對(duì)接收異常進(jìn)行檢測(cè)及處理;

f)Accep:客戶(hù)端連接及處理。

(2)UDP通信接口模擬

經(jīng)分析,被測(cè)軟件與外部對(duì)象進(jìn)行UDP通信時(shí),通信方式包括UDP組播以及UDP點(diǎn)對(duì)點(diǎn)通信,本平臺(tái)基于python socket,分別構(gòu)建UDP_MultiCast、UDP_Unicast兩個(gè)類(lèi),向用戶(hù)提供鏈路初始化、接收數(shù)據(jù)、發(fā)送數(shù)據(jù)等接口,實(shí)現(xiàn)被測(cè)軟件與外部對(duì)象的UDP通信模擬。同時(shí),與TCP通信類(lèi)似,也加入異常保護(hù)、線程處理以及接收回調(diào)函數(shù)機(jī)制,提高程序的穩(wěn)定性,且適應(yīng)復(fù)雜的測(cè)試場(chǎng)景。UDP_MultiCast、UDP_Unicast提供的主要接口及其描述如下,接口的使用方法與Tcp_client、Tcp_Server類(lèi)似,包含數(shù)據(jù)接收函數(shù)定義、鏈路初始化及啟動(dòng),發(fā)送數(shù)據(jù)等步驟,此處不再贅述。

a)Init:獲取配置的UDP組播、點(diǎn)對(duì)點(diǎn)通信初始化信息,創(chuàng)建并綁定socket;

b)SendData:調(diào)用sendto函數(shù)進(jìn)行數(shù)據(jù)發(fā)送,并對(duì)發(fā)送異常進(jìn)行檢測(cè)及處理;

c)ReadData:調(diào)用recvfrom函數(shù)進(jìn)行數(shù)據(jù)接收,并對(duì)發(fā)送異常進(jìn)行檢測(cè)及處理。

2.2? 接口數(shù)據(jù)生成模塊

為實(shí)現(xiàn)按照用戶(hù)定義的數(shù)據(jù)結(jié)構(gòu),快速生成接口數(shù)據(jù),本平臺(tái)基于python內(nèi)置的csv、struct等模塊,實(shí)現(xiàn)數(shù)據(jù)接口文件的讀取及處理,并基于數(shù)據(jù)接口文件中定義的數(shù)據(jù)結(jié)構(gòu)自動(dòng)生成數(shù)據(jù)打包的代碼,用戶(hù)以自動(dòng)生成的數(shù)據(jù)打包代碼為模板,可快速生成符合測(cè)試場(chǎng)景的接口數(shù)據(jù)。具體的實(shí)現(xiàn)流程如圖3所示。

2.3? 接口數(shù)據(jù)解析模塊

為實(shí)現(xiàn)按照用戶(hù)定義的數(shù)據(jù)結(jié)構(gòu),對(duì)被測(cè)軟件輸出的接口數(shù)據(jù)進(jìn)行解析,本平臺(tái)基于python內(nèi)置的csv、struct模塊,實(shí)現(xiàn)數(shù)據(jù)接口文件的讀取及處理,并按照讀取的數(shù)據(jù)結(jié)構(gòu)完成對(duì)被測(cè)軟件輸出的接口數(shù)據(jù)的解析,具體的實(shí)現(xiàn)流程如圖4所示。

2.4? 測(cè)試結(jié)果自動(dòng)判定模塊

完成接口數(shù)據(jù)解析后,本平臺(tái)可按照人工設(shè)置的判斷準(zhǔn)則,對(duì)接口的數(shù)據(jù)正確性進(jìn)行檢查,并顯示檢查結(jié)果,具體實(shí)現(xiàn)流程如下。

3? 平臺(tái)應(yīng)用及效果

3.1? 被測(cè)軟件概述

選取某軍用設(shè)備系統(tǒng)控制軟件基于本平臺(tái)開(kāi)展配置項(xiàng)測(cè)試,該系統(tǒng)控制軟件主要功能為與各設(shè)備建立通信連接(通信方式包括TCP,UDP通信),向各設(shè)備發(fā)送控制指令,控制各設(shè)備完成自檢、校準(zhǔn)、數(shù)據(jù)處理等各項(xiàng)任務(wù),并實(shí)時(shí)接收設(shè)備工作狀態(tài)、處理結(jié)果等設(shè)備上報(bào)數(shù)據(jù)進(jìn)行展示,其基本信息如表2所示。

基于本平臺(tái)對(duì)被測(cè)軟件開(kāi)展配置項(xiàng)測(cè)試的流程與基于實(shí)裝環(huán)境的測(cè)試流程基本一致,都包含測(cè)試需求分析及策劃、測(cè)試用例設(shè)計(jì)、測(cè)試環(huán)境搭建、測(cè)試用例執(zhí)行及測(cè)試總結(jié)5個(gè)階段,如圖6所示。其中測(cè)試需求分析及策劃、測(cè)試用例設(shè)計(jì)、測(cè)試總結(jié)階段的活動(dòng)二者完全相同,在測(cè)試環(huán)境搭建、測(cè)試用例執(zhí)行階段二者有所不同,具體區(qū)別在于:

a)測(cè)試環(huán)境搭建階段:基于實(shí)裝的測(cè)試需要獲取所有與被測(cè)軟件通信的設(shè)備,而基于本平臺(tái)的測(cè)試則不需要提供任何設(shè)備,但需編寫(xiě)腳本調(diào)用本平臺(tái)提供的接口模擬與被測(cè)軟件通信的外部對(duì)象以及自動(dòng)生成測(cè)試數(shù)據(jù),可大大降低對(duì)測(cè)試環(huán)境依賴(lài)性。

b)測(cè)試執(zhí)行階段:基于實(shí)裝的測(cè)試需要人工解析被測(cè)軟件輸出數(shù)據(jù),以及對(duì)測(cè)試結(jié)果進(jìn)行人工判斷,而基于本平臺(tái)的測(cè)試可編寫(xiě)腳本調(diào)用相應(yīng)接口實(shí)現(xiàn)被測(cè)軟件輸出數(shù)據(jù)的自動(dòng)解析及測(cè)試結(jié)果自動(dòng)判定,可提高測(cè)試執(zhí)行效率。

3.3? 測(cè)試結(jié)果及分析

基于本平臺(tái)可支持對(duì)被測(cè)軟件的功能、接口、性能、強(qiáng)度等類(lèi)型的測(cè)試,相比實(shí)裝環(huán)境,基于本平臺(tái)可更加便捷、高效的生成正常、異常、邊界等各類(lèi)測(cè)試數(shù)據(jù),提高測(cè)試效率、充分性及測(cè)試深度,以發(fā)現(xiàn)更多的軟件缺陷。對(duì)基于本平臺(tái)的測(cè)試與同類(lèi)型軟件在實(shí)裝環(huán)境下的測(cè)試結(jié)果數(shù)據(jù)進(jìn)行比較,可發(fā)現(xiàn):

a)測(cè)試用例執(zhí)行方面:基于實(shí)裝的測(cè)試時(shí)會(huì)受限于設(shè)備狀態(tài)(如:設(shè)備無(wú)法產(chǎn)生部分異常數(shù)據(jù)、設(shè)備不齊套),導(dǎo)致部分用例無(wú)法執(zhí)行,用例執(zhí)行無(wú)法達(dá)到100%;而基于本平臺(tái)的測(cè)試可支持用戶(hù)按測(cè)試場(chǎng)景構(gòu)造任何測(cè)試數(shù)據(jù),測(cè)試執(zhí)行率可達(dá)到100%;

b)測(cè)試效率方面:基于實(shí)裝的測(cè)試時(shí)會(huì)受限于設(shè)備狀態(tài)(如:設(shè)備狀態(tài)不穩(wěn)定或者出現(xiàn)故障),且測(cè)試數(shù)據(jù)準(zhǔn)備及測(cè)試執(zhí)行以人工操作為主,測(cè)試效率較低;而基于本平臺(tái)的測(cè)試雖然編制測(cè)試腳本會(huì)占用一定時(shí)間,但由于本平臺(tái)提供數(shù)據(jù)打包代碼自動(dòng)生成、測(cè)試結(jié)果自動(dòng)判定等自動(dòng)化手段,其測(cè)試效率也優(yōu)于實(shí)裝測(cè)試(測(cè)試周期縮短約20%);

c)缺陷發(fā)現(xiàn)方面:基于本平臺(tái)的測(cè)試可生成更加豐富的測(cè)試數(shù)據(jù),提高測(cè)試充分性及深度,相比實(shí)裝測(cè)試,能夠發(fā)現(xiàn)更多的軟件問(wèn)題(軟件問(wèn)題增加約為15%)。

4? 結(jié)論與展望

本平臺(tái)基于python內(nèi)置的socket、csv、struct等模塊,實(shí)現(xiàn)網(wǎng)絡(luò)通信接口模擬、接口數(shù)據(jù)自動(dòng)生成、接口數(shù)據(jù)自動(dòng)解析以及測(cè)試結(jié)果自動(dòng)判定功能,能夠有效解決軟件測(cè)試過(guò)程中測(cè)試效率低、測(cè)試環(huán)境限制等問(wèn)題,提高測(cè)試效率及質(zhì)量。但本平臺(tái)也具有一定局限性,如:本平臺(tái)目前僅支持對(duì)TCP、UDP類(lèi)型網(wǎng)絡(luò)通信的模擬,在后續(xù)應(yīng)對(duì)通信類(lèi)型進(jìn)行拓展。同時(shí),本平臺(tái)在測(cè)試結(jié)果自動(dòng)判定方面僅支持對(duì)輸出類(lèi)接口的自動(dòng)判定,自動(dòng)化程度較低,在后續(xù)也可以進(jìn)一步優(yōu)化,提高測(cè)試的自動(dòng)化程度。

參考文獻(xiàn)

[1]劉國(guó)棟, 王艷, 龐瀾, 等. 集成與敏捷開(kāi)發(fā)在軍用光電系統(tǒng)軟件開(kāi)發(fā)中的應(yīng)用[J]. 計(jì)算機(jī)應(yīng)用與軟件, 2020, 37(06): 9-13.

[2]張琪. 大數(shù)據(jù)背景下軟件測(cè)試的挑戰(zhàn)與展望[J]. 軟件, 2018, 39(6): 181-183.

[3]尹榕慧, 馮軼華. 信息軟件自動(dòng)化性能測(cè)試方法關(guān)鍵技術(shù)研究[J]. 電子世界, 2020(12): 208-209.

[4]薛巖, 姜鑫, 陳坤喬. 指揮信息系統(tǒng)軟件測(cè)試研究[J]. 工業(yè)控制計(jì)算機(jī), 2020, 33(06): 25-27.

[5]楊燕, 劉釗, 蔡久濤. 基于探索性測(cè)試的軟件測(cè)試研究與實(shí)踐[J]. 計(jì)算機(jī)應(yīng)用與軟件, 2020, 37(06): 29-33.

[6]許禛, 王勇利. 淺談裝備軟件測(cè)試[J]. 甘肅科技, 2015, 31(14): 11-13.

[7]劉飛. 航空電子系統(tǒng)MIL-STD-1553通信網(wǎng)絡(luò)接口驗(yàn)證測(cè)試[J]. 航空電子技術(shù), 2006(02): 31-37.

[8]Lutz M. Programming Python[M]. 3rd ed. New York, USA:? O'Reilly Press, 2006.

[9]王聰穎. 基于Python的自動(dòng)化測(cè)試框架的分析與設(shè)計(jì)[D]. 北京郵電大學(xué), 2017: 7-8.

[10]楊小凡. TCP/IP相關(guān)協(xié)議及其應(yīng)用[J]. 通訊世界, 2019, 26(01): 27-28.

[11]王麗. 運(yùn)用Python進(jìn)行網(wǎng)絡(luò)編程[J]. 電腦編程技巧與維護(hù), 2010(12): 86-87.

猜你喜歡
網(wǎng)絡(luò)通信
海上軍用網(wǎng)絡(luò)通信的安全控制技術(shù)
基于網(wǎng)絡(luò)通信的智能照明系統(tǒng)設(shè)計(jì)
電子制作(2019年15期)2019-08-27 01:11:48
計(jì)算機(jī)網(wǎng)絡(luò)通信常見(jiàn)問(wèn)題與技術(shù)發(fā)展研究
電子制作(2018年10期)2018-08-04 03:24:46
網(wǎng)絡(luò)通信中信息隱藏技術(shù)的應(yīng)用
基于網(wǎng)絡(luò)通信的校園智能音箱設(shè)計(jì)
電子制作(2018年1期)2018-04-04 01:48:30
談?dòng)?jì)算機(jī)網(wǎng)絡(luò)通信常見(jiàn)問(wèn)題及技術(shù)發(fā)展
電子制作(2017年17期)2017-12-18 06:41:06
主站蜘蛛池模板: 97免费在线观看视频| 欧美a在线看| 狠狠操夜夜爽| 中文字幕佐山爱一区二区免费| 欧美国产中文| 日韩在线欧美在线| 青草国产在线视频| 国内精品91| 国产欧美日韩va| 国产亚洲高清视频| 国产精品午夜福利麻豆| 久久精品国产999大香线焦| 国产一区二区三区在线无码| 999精品视频在线| www.精品国产| AV天堂资源福利在线观看| 国产不卡一级毛片视频| 无码免费试看| 免费看的一级毛片| 国产精欧美一区二区三区| 国产午夜不卡| 五月婷婷伊人网| 欧美一级专区免费大片| 91蜜芽尤物福利在线观看| 四虎永久在线视频| 国产精品九九视频| 91热爆在线| 欧美一区二区啪啪| 91亚洲免费视频| 国产毛片基地| 久久国产精品夜色| 国产自视频| 波多野结衣一区二区三区AV| 视频一区亚洲| 免费国产一级 片内射老| 国产精品手机在线观看你懂的| 久久夜色精品国产嚕嚕亚洲av| 久久精品一卡日本电影| 亚洲无码视频喷水| 91麻豆国产在线| 成年人免费国产视频| 亚洲高清无在码在线无弹窗| 一区二区自拍| 亚洲一区网站| 精品国产污污免费网站| 大陆国产精品视频| 国产中文一区a级毛片视频| 久996视频精品免费观看| 精品人妻无码中字系列| 欧美成人精品高清在线下载| 久久国语对白| 毛片在线播放网址| 亚洲精品无码专区在线观看| 国产91蝌蚪窝| 欧美色视频日本| 国产一区二区色淫影院| 91麻豆精品国产91久久久久| 亚洲天堂久久久| 欧美一道本| 亚洲欧美日本国产综合在线| 爆乳熟妇一区二区三区| 欧美日韩福利| 国产精品亚洲片在线va| 欧美成人看片一区二区三区| 伊人网址在线| 少妇人妻无码首页| 国产乱论视频| 国产精品亚洲专区一区| 久久国产精品嫖妓| 午夜丁香婷婷| 婷婷综合在线观看丁香| 久久天天躁夜夜躁狠狠| 日本国产在线| 亚洲综合色婷婷中文字幕| 亚洲视频色图| 久热中文字幕在线| 中文国产成人久久精品小说| 国产精品爆乳99久久| 国产青榴视频| 日韩中文字幕免费在线观看| 日韩久草视频| 亚洲成人精品久久|