王靜 楊曉峰 錢斐斐
【摘要】 ? ?在當(dāng)前信息化時(shí)代,軟件成為了一項(xiàng)非常重要的載體,在很多方面都有運(yùn)用,是實(shí)現(xiàn)相關(guān)應(yīng)用功能的核心部分。在軟件設(shè)計(jì)的過程中,完成設(shè)計(jì)之后,還需要對(duì)軟件進(jìn)行測試,驗(yàn)證軟件是否可以滿足設(shè)計(jì)功能,驗(yàn)證軟件運(yùn)行過程是否順暢,軟件本身是否存在漏洞??梢哉f,軟件測試,是軟件實(shí)際應(yīng)用前的一道質(zhì)量把關(guān)工作。隨著軟件自動(dòng)化測試的發(fā)展,需要對(duì)軟件自動(dòng)化測試的方法形成認(rèn)識(shí),并且把握到軟件自動(dòng)化測試的具體應(yīng)用。本文就立足于此展開分析,針對(duì)軟件自動(dòng)化測試展開論述,探討一些實(shí)現(xiàn)軟件自動(dòng)化測試的方法,并提出一些應(yīng)用,希望能夠給有關(guān)人士帶來啟發(fā)參考。
【關(guān)鍵詞】 ? ?軟件測試 ? ?自動(dòng)化 ? ?方法 ? ?應(yīng)用
引言:
計(jì)算機(jī)技術(shù)的快速發(fā)展,催生了越來越多的軟件,為了確保軟件自身性能達(dá)到理想水平,就需要在軟件投入使用前展開相應(yīng)的測試工作。隨著軟件量越來越多,軟件自身的程序代碼更加復(fù)雜,這就需要實(shí)現(xiàn)軟件測試的自動(dòng)化,確保能夠自動(dòng)對(duì)軟件展開測試,這樣才能讓軟件測試達(dá)到理想效果。
一、軟件自動(dòng)化測試
自動(dòng)化測試,是軟件測試的一個(gè)組成部分,在軟件工程規(guī)模逐漸擴(kuò)大的背景下,軟件產(chǎn)品的功能更加豐富,性能要求更高,更新?lián)Q代速度更快,使得軟件開發(fā)的周期縮短,這就可能導(dǎo)致軟件中會(huì)存在一些漏洞或是問題。傳統(tǒng)的測試模式,已經(jīng)逐漸難以適應(yīng)軟件測試的根本需求,這就需要實(shí)現(xiàn)軟件的自動(dòng)化測試,讓軟件測試的技術(shù)水平和測試效果更高。在開展測試的過程中,需要有效分析軟件測試過程,明確自動(dòng)化測試是否適用,有以下幾點(diǎn)條件需要滿足:
一是需求變動(dòng)不頻繁。自動(dòng)化測試,能夠?qū)浖幕竟δ苓M(jìn)行測試,但是往往并不會(huì)在一些其他條件下進(jìn)行測試。因此,如果軟件功能經(jīng)常性變動(dòng),那么就會(huì)導(dǎo)致軟件測試不具備突出意義。因此,就需要確保軟件本身的結(jié)構(gòu)和功能不會(huì)頻繁變動(dòng),這才會(huì)讓自動(dòng)化測試具有意義。
二是項(xiàng)目周期足夠長。自動(dòng)化測試涉及到一系列過程,比如測試需求確定、測試腳本編寫等等,這些都需要一定的時(shí)間來完成。所以,自動(dòng)化測試,需要有足夠的時(shí)間。如果時(shí)間緊迫,那么就不太適合自動(dòng)化測試。
三是腳本可重復(fù)使用。使用自動(dòng)化測試,還需要關(guān)注到測試腳本的重復(fù)使用,只有多次使用這個(gè)測試腳本,那么才能使其展現(xiàn)出價(jià)值。如果僅僅只是使用一兩次,那么就顯得成本較高,并不劃算。
而根據(jù)自動(dòng)化測試的實(shí)際運(yùn)用,其表現(xiàn)出來了多方面的顯著優(yōu)點(diǎn)。
第一,能夠更加方便地對(duì)軟件程序?qū)崿F(xiàn)回歸測試。在軟件自動(dòng)化測試中,這可能是最重要的任務(wù),尤其是在出現(xiàn)較為頻繁的程序修改時(shí),能夠體現(xiàn)出顯著的效果,可以讓回歸測試花費(fèi)更少的時(shí)間,測試效率得到提升。
第二,測試任務(wù)可以頻繁多次執(zhí)行。自動(dòng)化測試雖然需要一定時(shí)間來設(shè)計(jì)測試程序,但是在設(shè)計(jì)好測試程序之后,就可以對(duì)同類軟件展開頻繁測試,這對(duì)于批量化的軟件測試而言,能夠起到顯著的作用。
第三,能夠解決一些較難的測試問題。在軟件測試中,傳統(tǒng)的手工測試,會(huì)面臨一些比較難以解決的問題,而基于自動(dòng)化測試,通過對(duì)測試程序的設(shè)計(jì),就能夠?qū)σ恍┍容^難的問題予以有效解決。
二、軟件自動(dòng)化測試的一些常見方法
軟件自動(dòng)化測試,已經(jīng)有了一定的發(fā)展,出現(xiàn)了一些不同的測試方法。在軟件測試的工作實(shí)踐中,需要對(duì)這些測試方法形成有效的認(rèn)識(shí)。
2.1關(guān)鍵字驅(qū)動(dòng)
在眾多軟件測試方法中,關(guān)鍵字驅(qū)動(dòng),是一種比較常見的測試方法,其通過數(shù)據(jù)和關(guān)鍵字的結(jié)合,對(duì)數(shù)據(jù)執(zhí)行測試予以描述,實(shí)現(xiàn)測試的數(shù)據(jù)驅(qū)動(dòng)。在實(shí)際測試中,基于相同的框架,完成各環(huán)節(jié)的測試工作,該框架能夠適用匹配不同的接口庫,讓測試功能得到拓展。
2.2數(shù)據(jù)驅(qū)動(dòng)
在軟件自動(dòng)化測試當(dāng)中,還可以使用數(shù)據(jù)驅(qū)動(dòng)的方法,來執(zhí)行軟件測試的工作。數(shù)據(jù)驅(qū)動(dòng),在測試過程中,適合腳本分開的,建立模塊化的測試庫,依靠驅(qū)動(dòng)腳本,來對(duì)一些相似的功能實(shí)現(xiàn)測試,如此有利于形成新的測試機(jī)制。不僅如此,維護(hù)工作,也可以分離,測試庫程序由程序員負(fù)責(zé)完成編寫,而數(shù)據(jù)維護(hù)由測試人員負(fù)責(zé)。
2.3獨(dú)立腳本測試
腳本測試分為線性腳本和結(jié)構(gòu)化腳本。對(duì)于線性腳本來說,可以使用不同的編程語言,編寫非結(jié)構(gòu)化的腳本進(jìn)行測試,腳本可以與被測系統(tǒng)實(shí)現(xiàn)直接的交互,可以快速上手,實(shí)施測試。但是這類腳本容易受軟件變化的影響,一旦軟件系統(tǒng)改動(dòng),腳本也受影響,修改維護(hù)成本高。線性腳本不適合運(yùn)用于大型的自動(dòng)化測試。而結(jié)構(gòu)化腳本具有各種邏輯結(jié)構(gòu),比如循環(huán)等,也可以使用函數(shù)調(diào)用功能,所以此類腳本的難度比線性腳本大,需要測試人員具備一定的編程能力。另外,結(jié)構(gòu)化腳本的可維護(hù)性比較好。
2.4錄制回放
在軟件測試中,早先的商業(yè)化測試,還會(huì)使用到錄制回放的測試方式,這種方式不需要編程技巧即可實(shí)現(xiàn),不過其穩(wěn)定性較差,一旦UI產(chǎn)生變化,就會(huì)影響到測試執(zhí)行和最終效果。
2.5 robot framework測試
除了上述的一些測試方法外,在軟件自動(dòng)化測試中,還可以用一些現(xiàn)成的測試工具或平臺(tái),比如我們目前使用的robot framework, 這是一款通用的自動(dòng)化測試框架,基于python語言編寫,支持python2和python3,由關(guān)鍵字驅(qū)動(dòng)。Robot framework 易于擴(kuò)展,用戶可以使用python語言擴(kuò)展測試功能,創(chuàng)建符合自己測試需求的關(guān)鍵字。Robot framework 還具有強(qiáng)大的日志管理系統(tǒng),提供html格式的測試報(bào)告和日志文件,從這些文件里可以清楚的知道每個(gè)測試用例的執(zhí)行結(jié)果,所需時(shí)間和每個(gè)測試步驟的執(zhí)行結(jié)果,從而可以快速找到失敗的關(guān)鍵字,便于分析調(diào)試。
三、軟件自動(dòng)化測試的應(yīng)用方法
軟件自動(dòng)化測試和軟件開發(fā),在本質(zhì)上來說,并沒有太大的區(qū)別,無非就是通過自動(dòng)化測試工具,對(duì)所需要測試的軟件展開測試,前者相當(dāng)于軟件開發(fā)工具,后者相當(dāng)于軟件過程的需求分析。在進(jìn)行軟件自動(dòng)化測試的過程中,需要基于一定的流程來實(shí)現(xiàn)。
3.1測試需求分析
在進(jìn)行軟件測試之前,測試人員首先要對(duì)軟件需求進(jìn)行充分的分析和理解,了解需求的每一個(gè)細(xì)節(jié),將需求說明書和軟件設(shè)計(jì)的相關(guān)要點(diǎn)都覆蓋進(jìn)來,突出軟件測試的重點(diǎn)。比如對(duì)于通信軟件的測試,在測試需求上,就需要關(guān)注到以下幾個(gè)方面:一是可用性測試,基于使用場景或是功能需求,測試軟件的可用性,判定軟件各項(xiàng)功能是否能夠運(yùn)行。二是可靠性測試,要對(duì)軟件系統(tǒng)的運(yùn)行可靠性展開測試,針對(duì)一些特殊、極端或是復(fù)雜條件下,測試軟件運(yùn)行狀態(tài),確保在處理特殊情況時(shí),軟件依然可以保持穩(wěn)定的運(yùn)行。三是性能測試,針對(duì)軟件的功能,要測試其具體的性能,是否能夠達(dá)到設(shè)計(jì)要求。四是安全性測試,測試軟件抵抗外部干擾或是入侵的能力。五是恢復(fù)測試,這主要就是對(duì)軟件系統(tǒng)的容錯(cuò)能力進(jìn)行測試,在系統(tǒng)出現(xiàn)錯(cuò)誤的時(shí)候,是否可以在一定時(shí)間內(nèi)自動(dòng)修正錯(cuò)誤,重新啟動(dòng)系統(tǒng)。
3.2軟件測試計(jì)劃制定
在對(duì)需求進(jìn)行充分的理解后,就可以制定一個(gè)詳細(xì)的測試計(jì)劃,將具體的測試對(duì)象、測試依賴的前提條件、測試目的、測試情景等基本信息確定下來,指導(dǎo)后續(xù)測試工作的開展。在此基礎(chǔ)上,對(duì)軟件測試所需要的時(shí)間和人力、軟硬件設(shè)備、數(shù)據(jù)等資源都予以準(zhǔn)備,確定下軟件測試的大致框架。
3.3準(zhǔn)備測試資源
在寫完測試計(jì)劃后,就需要準(zhǔn)備軟件測試所需要使用到的相關(guān)資源。
一是進(jìn)行測試用例的設(shè)計(jì)。這就需要基于測試需求分析的結(jié)果和測試計(jì)劃,根據(jù)具體的測試內(nèi)容,設(shè)計(jì)針對(duì)性的測試用例。由于不是所有測試場景都適合自動(dòng)化測試,因此需要提取出可以進(jìn)行自動(dòng)化測試的測試用例。在必要時(shí),還可以將登錄系統(tǒng)的用戶、密碼、產(chǎn)品等信息獨(dú)立出來形成測試數(shù)據(jù),以便能夠?yàn)槟_本開發(fā)起到幫助。
二是搭建測試環(huán)境,在測試用例設(shè)計(jì)完成并且通過其他測試人員的審查后,就可以開始搭建測試環(huán)境了,在具體的搭建過程中,需要關(guān)注被測系統(tǒng)的部署、測試工具安裝、測試硬件調(diào)用以及網(wǎng)絡(luò)設(shè)置等方面的工作。
三是編寫測試腳本,根據(jù)自動(dòng)化測試場景的難易程度,選擇合理的方法開發(fā)腳本,編寫測試程序。一般來說,可以先通過錄制方式獲得測試所需的信息,然后基于結(jié)構(gòu)化語句控制腳本執(zhí)行,同時(shí)可以插入異常判定和檢查點(diǎn)語句,將一些普遍性、公共性的功能,構(gòu)建為獨(dú)立腳本,在需要時(shí)可以對(duì)數(shù)據(jù)予以參數(shù)化處理。此外還可以使用其他的高級(jí)功能編寫腳本,編寫完成后要反復(fù)執(zhí)行,做好調(diào)試,確保其正常運(yùn)行。
3.4進(jìn)行軟件測試
在準(zhǔn)備好測試所需的資源和工具之后,就可以對(duì)軟件展開自動(dòng)化測試,在測試過程中,需要對(duì)測試結(jié)果及時(shí)進(jìn)行分析,以便能夠?qū)④浖写嬖诘膯栴}及時(shí)處理。在測試的過程中,往往會(huì)發(fā)現(xiàn)一些漏洞bug,對(duì)于這些漏洞bug,需要將其記錄到缺陷管理工具當(dāng)中,為后期的跟蹤處理打下基礎(chǔ)。在修復(fù)漏洞bug之后,還需要對(duì)此問題展開回歸測試,確認(rèn)問題處置效果是否達(dá)標(biāo)。另外,測試用例全部通過后,需要對(duì)所有自動(dòng)化測試用例進(jìn)行壓力測試,以確保軟件和自動(dòng)化測試用例的穩(wěn)定性。比如對(duì)某一個(gè)測試用例跑100遍,看它是否100遍全部可以通過,如果某次失敗,就需要分析是軟件的問題還是自動(dòng)化測試用例的問題,然后加以優(yōu)化,以確保穩(wěn)定性更好。
四、結(jié)束語
軟件自動(dòng)化測試,這對(duì)于保障軟件本身的可靠性與性能都有積極的作用。在測試中,有很多不同方法可以選擇。進(jìn)行實(shí)踐時(shí),要充分理解測試需求,做好測試方案設(shè)計(jì),準(zhǔn)備相應(yīng)的測試資源,合理完成測試工作。
參考文獻(xiàn)
[1]衛(wèi)春才.軟件自動(dòng)化測試方法的應(yīng)用分析[J].計(jì)算機(jī)產(chǎn)品與流通, 2020(02):35-35.
[2]李貝.對(duì)基于數(shù)據(jù)驅(qū)動(dòng)的軟件自動(dòng)化測試框架分析[J].華東科技(綜合), 2019(03):1-1.
[3]張藍(lán)圖.軟件自動(dòng)化測試方法的應(yīng)用[J].電子技術(shù)與軟件工程, 2019, 164(18):46-47.
[4]孟黎歌.關(guān)于軟件測試技術(shù)與自動(dòng)化測試框架模型的研究與應(yīng)用[J].科學(xué)與信息化, 2019(19):28-28.
[5]艾迪安.軟件自動(dòng)化測試方法的研究與應(yīng)用[J].中國新通信. 2016,18(17):16-17.
王靜(1982-9),女,漢族,浙江杭州人,工科碩士學(xué)位,工程師,研究方向:軟件自動(dòng)化測試、自動(dòng)化腳本開發(fā)