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