孫少英
?
軟件測試策略和測試方法的應(yīng)用分析
孫少英
廣東省電信規(guī)劃設(shè)計院有限公司,廣東 廣州 510630
軟件測試是軟件開發(fā)過程中對軟件的功能進(jìn)行測試的環(huán)節(jié),主要驗證軟件的功能是否完整,以及時發(fā)現(xiàn)軟件程序中的問題和缺陷,及時修正,確保軟件功能完整。因此,對軟件測試的策略和方法進(jìn)行了分析與探討。
軟件測試;策略;方法
軟件測試是檢測軟件功能、軟件結(jié)構(gòu)的重要過程,在軟件開發(fā)過程中是十分重要的環(huán)節(jié)。對軟件開發(fā)而言,必須積極掌握正確的軟件測試方法,結(jié)合軟件開發(fā)要求對軟件進(jìn)行測試,確保軟件在投入使用之前做好檢測,軟件的基本功能能夠?qū)崿F(xiàn)。在測試的過程中必須確定好具體的檢測方案,根據(jù)不同的軟件設(shè)計不同的測試用例,使軟件測試更順利,形成更真實、更有價值的軟件測試文檔和評價結(jié)果,便于技術(shù)人員對軟件的功能進(jìn)行修復(fù)和完善。在軟件測試過程中除了要提高檢測水平之外,還要不斷提高檢測效率。人工檢測和機(jī)械檢測技術(shù)可以交叉使用,及時檢測出軟件中存在的問題。軟件測試是一個相對獨立的過程,在實際工作中要按照相應(yīng)的流程開展測試工作,才能不斷提高測試效率。
第一,軟件測試是為了了解軟件的基本功能,對軟件存在的缺陷和問題進(jìn)行解決的過程。軟件測試是一項系統(tǒng)性功能,在檢測之前必須確定軟件的設(shè)計規(guī)格以及軟件的編碼內(nèi)容等,然后開展有針對性的測試。在軟件測試過程中由于設(shè)計人員的失誤,可能導(dǎo)致軟件程序中存在一些Bug,這些Bug對軟件的功能有很大的影響,在軟件投入使用之前加強(qiáng)對軟件的測試,可以有效地發(fā)現(xiàn)這些Bug,然后解除Bug,最終不斷提高軟件的性能[1]。
第二,開發(fā)出功能更強(qiáng)大的軟件。軟件開發(fā)的目的是給人們的生活和工作提供便捷,所以在軟件開發(fā)領(lǐng)域要本著開發(fā)實用性更強(qiáng)、功能更強(qiáng)大的軟件為導(dǎo)向進(jìn)行軟件開發(fā)與設(shè)計,通過軟件測試不斷提升軟件設(shè)計水平,從而生產(chǎn)更實用、功能更強(qiáng)的軟件產(chǎn)品。
在軟件測試過程中,軟件的測試策略是根據(jù)軟件形式來確定的,主要有兩種類型。
當(dāng)前軟件行業(yè)的快速發(fā)展,使軟件測試也變得越來越重要。傳統(tǒng)的軟件測試一般是在軟件開發(fā)的最后階段進(jìn)行,等到軟件開發(fā)快要結(jié)束的時候開始測試,此時軟件的基本構(gòu)架已形成,軟件的內(nèi)容也基本編寫完成。傳統(tǒng)的軟件測試方法存在一定的問題,因為軟件的開發(fā)周期較長,在開發(fā)的過程中容易出現(xiàn)較多錯誤,而且積累的缺陷也比較多,所以在軟件開發(fā)的最后階段進(jìn)行統(tǒng)一測試,給軟件測試帶來的壓力較大,甚至還可能會導(dǎo)致軟件測試過程被拖延,影響整個軟件項目投入使用。
為了適應(yīng)軟件開發(fā)特性的變化,軟件測試策略也發(fā)生了很大的改變,從傳統(tǒng)型軟件測試變成現(xiàn)代型軟件測試。現(xiàn)代型軟件測試的理念與傳統(tǒng)型軟件測試相比較而言,改變了很多,現(xiàn)代型軟件測試的周期變得更短,而且在測試的過程中有多線程任務(wù),在測試的時候可以對多個不同的軟件進(jìn)行同步測試,提高測試的效率。與此同時,在現(xiàn)代型軟件開發(fā)領(lǐng)域中,對軟件進(jìn)行測試是從軟件開發(fā)開始之際就存在的,一直伴隨軟件開發(fā)過程,直到軟件開發(fā)結(jié)束。由于軟件測試與軟件的開發(fā)是同步的,因此可以實現(xiàn)實時測試,及時發(fā)現(xiàn)軟件的內(nèi)容錯誤、結(jié)構(gòu)錯誤等,并且解決各種問題,提高軟件的正確性。在測試軟件時,測試的結(jié)果也要隨時更新。一般是根據(jù)軟件開發(fā)的進(jìn)度來確定測試的方案,選取軟件編碼中的一部分內(nèi)容作為測試的對象進(jìn)行檢測,再將檢測得到的結(jié)果傳給技術(shù)人員,讓技術(shù)人員可以根據(jù)測試的結(jié)果對軟件內(nèi)容進(jìn)行更改。根據(jù)這種測試流程,可以使軟件測試過程更加規(guī)范、有序,也能不斷提高軟件測試效率[2]。
3.1.1 白盒測試與黑盒測試
白盒測試與黑盒測試是軟件測試過程中最常見的兩種方式。這兩者之間最大的區(qū)別就在于測試過程的重點不同。前者更注重對軟件的結(jié)構(gòu)進(jìn)行測試,而后者更注重對軟件的功能進(jìn)行測試。通過白盒測試,可以讓技術(shù)人員更好地了解編程人員的思想,通過對程序內(nèi)容的詳細(xì)分析,提高對程序的檢查準(zhǔn)確性。白盒測試是一種比較透明的測試方式。測試人員首先要與軟件設(shè)計人員和編程人員進(jìn)行溝通,對軟件的設(shè)計思路、軟件的具體功能等進(jìn)行了解,從而進(jìn)行相應(yīng)測試。
黑盒測試是在對軟件內(nèi)容、結(jié)構(gòu)等都不了解的情況下進(jìn)行測試的過程。測試人員會根據(jù)軟件開發(fā)人員給出的軟件說明書進(jìn)行測試,因此也確定了軟件測試是一種不確定的測試方式[3]。但是在這種不確定的背景下可以更好地實現(xiàn)測試,對軟件的功能進(jìn)行了解,讓測試人員在測試過程中保持客觀的態(tài)度,對軟件的功能、結(jié)構(gòu)等進(jìn)行測試。另外,黑盒測試也可以驗證軟件的不同功能之間的交叉程度,從而使軟件的測試結(jié)果更準(zhǔn)確。在黑盒測試中,測試用例的選取方式對測試結(jié)果的影響很大,必須選擇合適的測試用例,以得到準(zhǔn)確的結(jié)果,促進(jìn)軟件的改進(jìn)和功能的完善。
3.1.2 靜態(tài)測試與動態(tài)測試
靜態(tài)測試在軟件測試過程中十分常見。在測試的過程中軟件并沒有運行,而處于靜止的狀態(tài)。與靜態(tài)測試相對應(yīng)的測試方式是動態(tài)測試。在動態(tài)測試中,軟件處于運行的狀態(tài),因此也能更好地看出軟件運行過程中存在的問題,然后解決軟件應(yīng)用過程中的實際問題,提高軟件的性能。
3.1.3 積極測試與消極測試
積極測試與消極測試都是在軟件運行的狀態(tài)下使用測試用例對軟件的功能進(jìn)行測試的方法,不同之處在于軟件測試過程中使用的測試用例。
積極測試指的是輸入的測試用例是有效值,可以確保軟件正常運行,驗證軟件的基本性能。這種測試是比較常規(guī)的測試。如果軟件可以正常運行,則說明軟件功能沒有問題;如果不能運行,則說明軟件功能存在問題。消極測試則是在軟件運行的時候輸入一個無效值,對軟件的功能進(jìn)行驗證的過程。如果軟件能夠發(fā)現(xiàn)無效值,并且給出相關(guān)的提示或者報錯,則說明軟件的功能比較完善;但如果軟件不能對無效值進(jìn)行分辨,不能給出相應(yīng)的提示,則說明軟件處于異常狀態(tài),其功能還有待完善。
在消極測試和積極測試過程中,都需要及時分析軟件的運行狀態(tài)、軟件的內(nèi)容,及時找到錯誤的原因,并且修正錯誤,測試軟件的可靠性。通常來講,在測試軟件時,消極測試更常用,所占的比重更高。
3.2.1 復(fù)查
復(fù)查在軟件測試過程中比較常見。復(fù)查過程中的測試人員是程序設(shè)計人員。設(shè)計人員可以根據(jù)自己的設(shè)計過程,確定相應(yīng)的測試用例,對軟件的源代碼、軟件的功能以及軟件的結(jié)構(gòu)進(jìn)行測試,然后將測試得到的結(jié)果記錄下來。復(fù)查的主要目的是為了驗證軟件中的變量、標(biāo)號、子程序等內(nèi)容是否正確。
3.2.2 走查
走查指的是在閱讀了軟件的文檔和相關(guān)代碼內(nèi)容之后,輸入測試數(shù)據(jù)對軟件進(jìn)行測試的過程。測試人員必須隨時監(jiān)控軟件的運行狀態(tài)以及具體的執(zhí)行狀況,根據(jù)軟件的邏輯程序進(jìn)行測試。如果測試過程中出現(xiàn)錯誤,必須及時終止軟件的運行狀態(tài),對出現(xiàn)錯誤的地方進(jìn)行標(biāo)注,找到錯誤的原因,然后對各種錯誤進(jìn)行修正。在對軟件進(jìn)行走查的時候,主要針對的是軟件的模塊特征、接口、輸入及輸出等部分。
3.2.3 會審
會審在軟件測試過程中也比較常見。在會審的過程中,測試人員并不了解軟件程序的結(jié)構(gòu)、功能,只是了解軟件的文檔和說明書。在這些資料的基礎(chǔ)上可以提出軟件可能會出現(xiàn)的錯誤與問題,然后進(jìn)行會審。在軟件測試的會審過程中,需要軟件開發(fā)過程中的所有人員都參與其中,例如軟件程序的設(shè)計人員、編程人員、檢測人員等,由程序設(shè)計人員對程序設(shè)計的思路以及具體的設(shè)計方法進(jìn)行講解,然后編程人員對軟件代碼的具體編寫情況、編寫順序進(jìn)行講解,從而對軟件進(jìn)行逐一檢查。會審對于軟件功能測試有很大作用,可以有效地發(fā)現(xiàn)各種問題。
3.2.4 驗收
驗收在軟件開發(fā)過程中是十分重要的步驟,是把關(guān)的環(huán)節(jié)。經(jīng)過驗收之后的軟件就要投入使用,所以在驗收的過程中必須做好驗收管理,對軟件的功能進(jìn)行全面測試,確保整個軟件沒有錯誤。在驗收測試的過程中必須嚴(yán)格按照軟件測試的內(nèi)容和標(biāo)準(zhǔn),檢查軟件的功能、結(jié)構(gòu)等是否完整,確保軟件已經(jīng)準(zhǔn)備就緒。
綜上所述,軟件是計算機(jī)系統(tǒng)運行的基礎(chǔ),也是實現(xiàn)計算機(jī)各項功能的載體。在軟件開發(fā)設(shè)計過程中,必須加強(qiáng)對軟件測試的重視,了解軟件測試的方法和目的,根據(jù)不同的軟件項目,采取不同的軟件測試方法,提高軟件測試水平,確保軟件的功能完整、架構(gòu)完善,能夠真正投入使用。
[1]張煥琪. 軟件測試策略和測試方法的應(yīng)用[J]. 電子商務(wù),2011(2):55-56.
[2]黃愛明. 基于軟件測試的策略與測試方法應(yīng)用分析[J]. 電腦知識與技術(shù),2015(2):64-65.
[3]趙星光. 軟件測試的策略與測試方法應(yīng)用探析[J]. 計算機(jī)光盤軟件與應(yīng)用,2011(23):144.
Application of Software Test Strategy and Test Method
Sun Shaoying
Guangdong Planning and Designing Institute of Telecommunications Co., Ltd., Guangdong Guangzhou 510630
Software testing is an important link in the process of software development. It can verify the integrity of the software in time and solve the defects and problems in the software system. The paper analyzes and discusses the strategies and methods of software testing.
software testing; strategy; method
TP311.52
A