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