摘 要:在整個(gè)軟件開發(fā)行業(yè),軟件的測(cè)試工作容易被忽視,導(dǎo)致我國(guó)很多軟件在進(jìn)行測(cè)試時(shí)候缺少專業(yè)技術(shù)支持,軟件測(cè)試質(zhì)量和效率不足以滿足市場(chǎng)需求。只有擁有更加專業(yè)化和自動(dòng)化的軟件測(cè)試技術(shù),建立一套完備的測(cè)試體系,才能滿足各個(gè)行業(yè)對(duì)軟件系統(tǒng)的需求,促進(jìn)我國(guó)軟件行業(yè)的發(fā)展。文章針對(duì)基于Python的軟件測(cè)試自動(dòng)化平臺(tái)進(jìn)行了研究,希望能為軟件測(cè)試行業(yè)發(fā)展提供一些幫助。
關(guān)鍵詞:Python;軟件測(cè)試;自動(dòng)化平臺(tái)
0? 引言
在完整的軟件開發(fā)過程中,軟件測(cè)試是貫穿整個(gè)過程的重要環(huán)節(jié),不論是系統(tǒng)編寫、框架構(gòu)建還是系統(tǒng)編碼等,每一環(huán)節(jié)的有效性都離不開軟件測(cè)試工作,只有通過可靠的軟件測(cè)試平臺(tái)才能確保軟件的可實(shí)用性。在歐美等一些軟件開發(fā)巨頭企業(yè)中,軟件測(cè)試的工作量和成本投入幾乎占了整個(gè)軟件開發(fā)過程的一大半,足以看出國(guó)外企業(yè)對(duì)軟件測(cè)試的重視程度。在傳統(tǒng)的軟件測(cè)試工作中,由于其技術(shù)和自動(dòng)化不足,所以在測(cè)試過程中有許多問題和不足尚待改進(jìn)[1]。比如,測(cè)試周期時(shí)間過長(zhǎng),而且一旦開始測(cè)試就必須一直進(jìn)行下去,即使在測(cè)試過程中發(fā)現(xiàn)了問題并進(jìn)行改正之后,也很難再繼續(xù)回歸測(cè)試,因?yàn)橹型疽坏┩V咕秃茈y了解到已測(cè)試內(nèi)容所占的比例。因此基于Python的軟件測(cè)試自動(dòng)化平臺(tái)就亟待研究。通過Python建立一個(gè)自動(dòng)化軟件測(cè)試平臺(tái),從而利用自動(dòng)測(cè)試的技術(shù)來提高軟件測(cè)試的工作效率,進(jìn)而帶動(dòng)整個(gè)軟件開發(fā)行業(yè)的發(fā)展,降低軟件研發(fā)應(yīng)用所需要的周期時(shí)間[2]。
1? 軟件測(cè)試概述
一個(gè)軟件系統(tǒng)從開始設(shè)計(jì)研發(fā)到上架應(yīng)用,這整個(gè)過程中需要進(jìn)行嚴(yán)格的測(cè)試。尤其是在投入市場(chǎng)應(yīng)用之前,需要先對(duì)軟件系統(tǒng)進(jìn)行功能性檢驗(yàn),以發(fā)現(xiàn)軟件中所隱藏的問題和漏洞,因此軟件測(cè)試可以說是確保軟件穩(wěn)定安全運(yùn)行的一個(gè)重要保障。一般來說,軟件測(cè)試方法根據(jù)分類標(biāo)準(zhǔn)不同,其類別也不一樣,按照測(cè)試的方式可以分為手動(dòng)測(cè)試和自動(dòng)測(cè)試。手動(dòng)測(cè)試需要測(cè)試人員通過鼠標(biāo)對(duì)軟件的功能和運(yùn)行狀況進(jìn)行人為測(cè)試,整個(gè)過程比較枯燥乏味。而自動(dòng)測(cè)試則是通過寫好的測(cè)試程序?qū)ζ溥M(jìn)行內(nèi)部或者外部的測(cè)試。在實(shí)際情況中,不論是手動(dòng)測(cè)試還是自動(dòng)測(cè)試,都在測(cè)試方面起著重要的作用,是研究人員主要應(yīng)用的兩種測(cè)試方法[3]。
與自動(dòng)測(cè)試相比,手動(dòng)測(cè)試的不足要更多一些。如手動(dòng)測(cè)試的工作技術(shù)含量偏低,且需要進(jìn)行手動(dòng)測(cè)試的內(nèi)容過多,就容易導(dǎo)致在測(cè)試過程中出現(xiàn)差錯(cuò)和漏洞等。即使手動(dòng)測(cè)試更加適合剛加入測(cè)試工作的人員,但由于其工作內(nèi)容過于單調(diào)枯燥乏味,可能會(huì)導(dǎo)致工作人員產(chǎn)生疲憊心理,從而降低手動(dòng)測(cè)試的工作效率,導(dǎo)致在測(cè)試過程當(dāng)中因?yàn)槿藶橐蛩囟a(chǎn)生錯(cuò)誤。
總的來說,手動(dòng)測(cè)試和自動(dòng)測(cè)試各有其優(yōu)點(diǎn)和缺點(diǎn),手動(dòng)測(cè)試更加注重對(duì)軟件業(yè)務(wù)邏輯等相關(guān)的測(cè)試,而自動(dòng)測(cè)試則是偏重于對(duì)軟件進(jìn)行結(jié)構(gòu)測(cè)試[4]。為了確保測(cè)試結(jié)果的準(zhǔn)確從而保證軟件的功能完整性和應(yīng)用穩(wěn)定性,測(cè)試人員都會(huì)同時(shí)應(yīng)用兩種測(cè)試方法。而如果按照檢測(cè)內(nèi)容分,檢測(cè)方法則是分為3種,分別是黑盒檢測(cè)、白盒檢測(cè)以及灰盒檢測(cè)。(1)黑盒檢測(cè),將軟件看成一個(gè)不透光的黑盒子,檢測(cè)人員對(duì)其內(nèi)部無(wú)法進(jìn)行查看,只能對(duì)其行為功能進(jìn)行測(cè)試。(2)白盒測(cè)試,與和黑盒測(cè)試恰好相反,白盒測(cè)試中,工作人員主要就是對(duì)軟件的內(nèi)部系統(tǒng)結(jié)構(gòu)進(jìn)行測(cè)試分析,之后還需要結(jié)合計(jì)算機(jī)的知識(shí)對(duì)測(cè)試數(shù)據(jù)進(jìn)行引導(dǎo)。(3)灰盒測(cè)試,測(cè)試內(nèi)容是介于黑盒和白盒兩者之間的。目前,白盒技術(shù)更加復(fù)雜,所以我國(guó)軟件測(cè)試行業(yè)大多數(shù)進(jìn)行的都是黑盒測(cè)試,與黑盒測(cè)試相比,白盒測(cè)試內(nèi)容和方法也更為復(fù)雜,這就要求進(jìn)行白盒測(cè)試的工作人員具有很高的專業(yè)技能水平。因此,相對(duì)黑盒檢測(cè)技術(shù)來說,白盒檢測(cè)技術(shù)由于其需要專業(yè)性技能,在我國(guó)的發(fā)展更為緩慢。
2? 基于Python的軟件測(cè)試自動(dòng)化平臺(tái)需求
隨著網(wǎng)絡(luò)技術(shù)的不斷發(fā)展與創(chuàng)新,軟件測(cè)試的平臺(tái)也越來越多。通過Python進(jìn)行軟件測(cè)試自動(dòng)化平臺(tái)的搭建也是一次對(duì)軟件測(cè)試行業(yè)和技術(shù)的創(chuàng)新。但這其中也有一些需要相關(guān)人員注意的地方。
(1)在構(gòu)建平臺(tái)時(shí)應(yīng)該加入至少一種通用的編程語(yǔ)言。
因?yàn)楝F(xiàn)在大多數(shù)測(cè)試工作中進(jìn)行軟件測(cè)試的人員所掌握的編程語(yǔ)言都是現(xiàn)下比較流行熱門的編程語(yǔ)言。因此在平臺(tái)構(gòu)建過程當(dāng)中使用通用編程語(yǔ)言,可以省去測(cè)試人員重新學(xué)習(xí)一門編程語(yǔ)言的時(shí)間,減輕了測(cè)試人員的負(fù)擔(dān),提高了軟件測(cè)試工作的效率。
(2)測(cè)試平臺(tái)最好具有支持可視化圖形的界面操作。
我國(guó)當(dāng)前的軟件測(cè)試行業(yè)還處于起步發(fā)展階段,人才積累還比較少,大多數(shù)進(jìn)行軟件測(cè)試的人員都是非專業(yè)出身的。因此擁有可視化圖形操作界面,可以大大簡(jiǎn)化操作過程,使得軟件測(cè)試難度降低,從而降低測(cè)試人員的出錯(cuò)率,提高其工作效率。
(3)將用例的代碼格式保存在文本格式下。
由于技術(shù)的限制,大多數(shù)的文件只能在適合的運(yùn)行環(huán)境下順利打開運(yùn)行,但是文本格式由于其運(yùn)行條件比較簡(jiǎn)單,因此不論是什么運(yùn)行環(huán)境都可以進(jìn)行文本運(yùn)行。保存為文本格式之后直接打開就不需要工作人員再進(jìn)行額外的編譯工作,節(jié)省了不少時(shí)間和精力。
(4)所有的用例執(zhí)行都應(yīng)該包含在輸出界面中。
這可以說是自動(dòng)測(cè)試的最明顯的一個(gè)特點(diǎn),可以更好地解放人力,提高軟件測(cè)試的技術(shù)化自動(dòng)化。只有減少人為工作的參與,才能真正實(shí)現(xiàn)自動(dòng)化的目的,這就強(qiáng)調(diào)了應(yīng)該在構(gòu)建自動(dòng)化測(cè)試平臺(tái)時(shí)保證結(jié)果輸出的全面性。
(5)自動(dòng)化測(cè)試平臺(tái)應(yīng)該支持微軟系統(tǒng)。
目前,全國(guó)乃至全世界大多數(shù)的計(jì)算機(jī)用戶所使用的都是微軟的窗口系統(tǒng),所以要想確保測(cè)試平臺(tái)能夠滿足大多數(shù)計(jì)算機(jī)用戶的運(yùn)行要求,就應(yīng)該確保自動(dòng)化測(cè)試平臺(tái)支持窗口系統(tǒng)的操作,這樣才能夠?qū)崿F(xiàn)自動(dòng)化測(cè)試平臺(tái)的深入全面推廣。
3? 基于python的軟件測(cè)試自動(dòng)化平臺(tái)設(shè)計(jì)方案
3.1? c#模塊設(shè)計(jì)
在軟件測(cè)試自動(dòng)化平臺(tái)里c#模塊一般分為文件、執(zhí)行、腳本編輯以及實(shí)時(shí)信息顯示4個(gè)模塊。
(1)文件模塊。
利用專門的控件來進(jìn)行文件地創(chuàng)建和讀取,方便簡(jiǎn)潔,還能在用戶進(jìn)行頁(yè)面保存時(shí)為用戶提供一個(gè)更易理解的顯示頁(yè)面。不過在使用時(shí)需要注意,將其默認(rèn)的格式改為文本格式,以減小文件運(yùn)行所受環(huán)境的限制性,大大提高文件運(yùn)行的通用性和簡(jiǎn)潔性。
(2)執(zhí)行模塊。
執(zhí)行模塊是對(duì)系統(tǒng)平臺(tái)實(shí)施執(zhí)行命令的一個(gè)模塊,可控制系統(tǒng)的開始、暫停和結(jié)束,相當(dāng)于系統(tǒng)的大腦,執(zhí)行模塊還可以將在空間中打開的文件轉(zhuǎn)換為文本模式,大大節(jié)省了文件運(yùn)行的時(shí)間和過程。
(3)腳本編輯。
腳本編輯也就是程序編寫,是由應(yīng)用程序提供的編程語(yǔ)言。應(yīng)用程序包括瀏覽器、多媒體創(chuàng)作工具,腳本包括應(yīng)用程序的宏和創(chuàng)作系統(tǒng)的批處理語(yǔ)言。
(4)信息顯示模塊。
由兩個(gè)控件組成,一個(gè)主要是負(fù)責(zé)在分頁(yè)第二頁(yè)發(fā)揮作用,另一個(gè)可以進(jìn)行復(fù)合操作,屬于復(fù)合型控件的一種,在數(shù)據(jù)輸出等功能上發(fā)揮作用。
3.2? Python入口文件
要想通過Python建立起一個(gè)完備的自動(dòng)測(cè)試軟件平臺(tái)并且穩(wěn)定運(yùn)行,還需要入口文件的功能。入口文件就相當(dāng)于推動(dòng)整個(gè)平臺(tái)工作流的一個(gè)引擎,能夠推動(dòng)測(cè)試工作進(jìn)行順利。實(shí)際上,入口文件并不在實(shí)際工作指令中發(fā)揮作用,所以只有在接收數(shù)據(jù)參數(shù)化后,入口文件才能按照指定的工作流程開始軟件測(cè)試工作。
Python的入口文件在工作中的主要作用:(1)對(duì)命令行的邏輯問題進(jìn)行分析解讀;(2)在工作中建立臨時(shí)目錄;(3)按照計(jì)劃執(zhí)行工作流程;(4)對(duì)臨時(shí)路徑進(jìn)行清除,包括臨時(shí)目錄、臨時(shí)文件等。當(dāng)然入口文件的功能也不止以上這些,但足以看出入口文件對(duì)于平臺(tái)構(gòu)建的重要性。
4? 結(jié)語(yǔ)
隨著我國(guó)軟件開發(fā)行業(yè)的不斷擴(kuò)大,社會(huì)各行各業(yè)對(duì)其需求的增長(zhǎng),國(guó)家對(duì)其的重視,軟件行業(yè)在我國(guó)必將長(zhǎng)期處于上升的階段。作為互聯(lián)網(wǎng)企業(yè)要想提高企業(yè)競(jìng)爭(zhēng)力,就需要在此階段中做出一番創(chuàng)新和改進(jìn)?;赑ython的軟件測(cè)試自動(dòng)化平臺(tái)的構(gòu)建就是一個(gè)需要不斷進(jìn)行研究和創(chuàng)新的項(xiàng)目。通過利用網(wǎng)絡(luò)技術(shù)來提高軟件測(cè)試的專業(yè)化和技術(shù)化,提高軟件測(cè)試的效率,同時(shí)也是對(duì)我國(guó)整體軟件行業(yè)發(fā)展的推動(dòng)。因此研發(fā)人員需要繼續(xù)進(jìn)行相關(guān)方面的深入研究,在此基礎(chǔ)上創(chuàng)建一個(gè)完備的軟件測(cè)試系統(tǒng)體系,為我國(guó)的軟件行業(yè)發(fā)展做出貢獻(xiàn)。
[參考文獻(xiàn)]
[1]張珩.Python的計(jì)算機(jī)軟件應(yīng)用技術(shù)探討[J].電腦知識(shí)與技術(shù),2020(32):96-97,102.
[2]姬峰.基于改進(jìn)遺傳算法的軟件測(cè)試自動(dòng)化機(jī)制研究[J].信息技術(shù),2019(10):88-93.
[3]王崇剛.Selenium在B/S架構(gòu)軟件中黑盒測(cè)試的自動(dòng)化實(shí)現(xiàn)[J].科技傳播,2018(23):162-163.
[4]李菲,楊君,曹陽(yáng),等.云計(jì)算環(huán)境下的軟件測(cè)試自動(dòng)化技術(shù)研究[J].現(xiàn)代計(jì)算機(jī)(專業(yè)版),2018(31):3-6.
(編輯 何 琳)
Research on software test automation platform based on Python
Huang Juan
(Jiangxi Software Vocational and Technical University, Nanchang 330041, China)
Abstract:In the whole software development industry, software testing is easy to be ignored, resulting in the lack of professional technical support for many software testing in China, and the quality and efficiency of software testing are not enough to meet the market demand. Only by having more professional and automated software testing technology and establishing a complete testing system can we meet the needs of various industries for software systems and promote the development of China’s software industry. This paper studies the software testing automation platform based on Python, hoping to provide some help for the development of software testing industry.
Key words:Python; software testing; automation platform
作者簡(jiǎn)介:黃娟(1984— ),女,浙江浦江人,助教,本科;研究方向:計(jì)算機(jī),軟件測(cè)試。