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