淡海英
(陜西國防工業(yè)職業(yè)技術(shù)學(xué)院,陜西 西安 710300)
隨著社會信息化的發(fā)展,軟件的使用涉及到各行各業(yè),軟件的身影幾乎無處不在。軟件的普遍使用使得人們對軟件的質(zhì)量提出了越來越高的要求。那么軟件測試作為軟件質(zhì)量保證的一種手段應(yīng)用而生。由于軟件產(chǎn)品和其他產(chǎn)品一樣也具有生命周期:誕生、成長、成熟、衰亡等過程。軟件測試可以貫穿于軟件開發(fā)的全過程,從需求分析到概要設(shè)計,再到詳細設(shè)計,再到編碼,每一個階段都可隨時跟進,盡可能多地發(fā)現(xiàn)軟件中存在的缺陷,以提高軟件的質(zhì)量。
軟件測試的分類方法很多,可從不從方面進行分類。從運行軟件的角度分為靜態(tài)測試(或靜態(tài)分析)方法和動態(tài)測試方法。靜態(tài)測試也叫靜態(tài)白盒測試,它不實際運行程序。而是通過代碼的走查、代碼的審查或者代碼的閱讀分析來發(fā)現(xiàn)缺陷或錯誤。功能測試通過分析軟件的功能規(guī)約來設(shè)計測試用例,并參考需求說明書是否已經(jīng)全部實現(xiàn)了軟件的各項功能。程序和需求結(jié)合的測試是目前最常用的方法,它綜合考慮軟件的需求和實現(xiàn)來設(shè)計測試用例,以判斷測試的充分性。界面測試是面向?qū)ο蠹夹g(shù)常用的測試方法它僅僅依靠軟件與其運行環(huán)境之間的界面設(shè)計測試用例,并判斷其功能是否已經(jīng)全部實現(xiàn)。從測試技術(shù)的角度劃分,軟件測試方法分為黑盒測試和白盒測試方法。黑盒測試是在已知軟件產(chǎn)品技術(shù)的角度劃分,軟件測試方法分為黑盒測試和白盒測試方法。黑盒測試是在已知軟件產(chǎn)品的功能設(shè)計的情況下,對其進行測試,以確認其是否實現(xiàn)了軟件產(chǎn)品的功能要求。黑盒測試將被測對象看做一個黑匣子,不考慮程序的內(nèi)部結(jié)構(gòu)和具體實現(xiàn),僅僅依據(jù)軟件需求說明書,進行相應(yīng)的數(shù)據(jù)輸入,檢查是否滿足需求說明書中規(guī)定的功能要求。黑盒測試的具體任務(wù)首先是判定有無不正確的功能,有無遺漏的功能,然后在接口上判斷是否能夠正確地接收輸入數(shù)據(jù)并產(chǎn)生正確的輸出結(jié)果,其次是判斷有無外部信息訪問的錯誤或者數(shù)據(jù)結(jié)構(gòu)的錯誤,最后判斷性能上是否能夠滿足需求,是否有程序初始化和終止方面的錯誤。白盒測試是基于代碼的測試,通過程序代碼或者通過開發(fā)工具找出軟件的缺陷。白盒測試的主要目的是檢測軟件程序內(nèi)部結(jié)構(gòu),程序書寫是否規(guī)范、是否按照項目需求規(guī)格說明正常進行。白盒測試應(yīng)先盡量用工具進行靜態(tài)結(jié)構(gòu)分析,采取先靜態(tài)后動態(tài)的組合方式,在不同的測試階段,測試重點有所不同,在單元測試階段,以代碼的檢查、邏輯覆蓋為主,在集成測試階段,增加靜態(tài)分析和靜態(tài)質(zhì)量度量,在系統(tǒng)測試階段,應(yīng)根據(jù)黑盒測試的結(jié)果,采取相應(yīng)的白盒測試。
軟件測試的流程是指導(dǎo)軟件測試工作有序進行的重要保障,軟件測試流程主要有五步:
第一,先熟悉《需求說明書》,這是軟件測試工作的依據(jù),如同法律條文一樣,法官依據(jù)此對嫌疑人進行量刑判罪。如果開發(fā)的系統(tǒng)實現(xiàn)了說明書中沒有的功能,或者開發(fā)的系統(tǒng)中沒有實現(xiàn)需求說明書中規(guī)定的功能,這些均屬于缺陷。第二,由相關(guān)人員編寫《測試計劃》,以規(guī)定測試的目的、范圍、人員、進度、風險等問題。第三,由測試人員進行《測試用例》的編寫。針對軟件或者系統(tǒng)的每一個模塊進行用例的詳細設(shè)計,盡可能多地對系統(tǒng)進行測試,當然,還需明確一點,由于時間和技術(shù)的因素,測試人員不可能窮盡所有的測試用例,只能編寫大部分測試用例,覆蓋所有的模塊。第四,按照單元測試、集成測試、確認測試、系統(tǒng)測試、驗收測試步驟進行軟件測試,其中單元測試是對軟件系統(tǒng)各模塊的測試,集成測試是針對模塊與模塊之間的測試,確認測試是根據(jù)軟件的需求說明書對比軟件的功能是否全部實現(xiàn),系統(tǒng)測試是將軟件系統(tǒng)放置于不同的軟硬件環(huán)境下進行測試,驗收測試是將系統(tǒng)交給用戶來進行測試發(fā)現(xiàn)缺陷的過程。第五,執(zhí)行完測試后,匯總系統(tǒng)中的缺陷,總結(jié)測試工作,從設(shè)計多少條用例、發(fā)現(xiàn)多少個缺陷、風險如何規(guī)避、軟件系統(tǒng)的評價、團隊的得失等方面進行。
軟件開發(fā)完成了軟件系統(tǒng)從無到有的設(shè)計與產(chǎn)生,軟件測試完成了軟件缺陷的查找和搜尋,保證了軟件的質(zhì)量提升。二者相輔相成,缺一不可。作為大型的軟件公司,應(yīng)該將軟件開發(fā)和軟件測試工作并重,給予軟件測試工作極大的支持和重視,作為測試人員要熟悉軟件測試的技術(shù)、方法和工作流程,在實際的測試工作中不斷積累測試經(jīng)驗,讓測試工作為軟件質(zhì)量保駕護航。