軟件測試的IEEE定義:使用人工或自動的手段來運行或測量軟件系統(tǒng)的過程,目的是檢驗軟件系統(tǒng)是否滿足規(guī)定的需求,并找出與預(yù)期結(jié)果之間的差異。軟件測試的發(fā)展趨勢:
1、測試工作將進一步前移。軟件測試不僅僅是單元測試、集成測試、系統(tǒng)測試和驗收測試,還對需求的精確性和完整性的測試技術(shù)、對系統(tǒng)設(shè)計的測試技術(shù)將成為新的研究熱點。
2、軟件架構(gòu)師,開發(fā)工程師,QA人員,測試工程師將進行更好的融合
3、測試職業(yè)將得到更充分的尊重。
4、設(shè)置獨立的軟件測試部門將成為未來軟件公司的共識。
5、測試外包服務(wù)將快速增長,和軟件開發(fā)外包一樣,軟件測試外包將成為全球化的趨勢。
·測試工程師的職責(zé):
測試人員要了解項目需求內(nèi)容,從用戶的角度提出自己的測試看法;測試人員要編寫合理的測試計劃并與項目整體計劃有機地整合在一起;測試人員要編寫覆蓋率高的測試用例;測試人員要認真仔細的實施測試工作,并提交測試報告以供項目參考;測試人員要進行缺陷跟蹤和分析。
·軟件測試的概念:
軟件測試就是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程(狹義觀點)。
使用人工或自動的手段,來運行或測試軟件系統(tǒng)的過程,目的是檢驗軟件系統(tǒng)是否滿足規(guī)定的需求,并找出與預(yù)期結(jié)果之間的差異。(標(biāo)準(zhǔn)定義IEEE )
軟件測試就是為了證明程序有錯,而不是證明程序無錯誤(辨證觀點) 。
測試被定義為“對軟件系統(tǒng)中潛在的各種風(fēng)險進行評估的活動”。(風(fēng)險觀點)軟件測試就是“驗證(Verification)”和“有效性確認(Validation)”活動構(gòu)成的整體,即軟件測試V&V 。(標(biāo)準(zhǔn)觀點)
要完整理解軟件測試,就要從不同方面去審視軟件測試,概括起來,軟件測試就是貫穿整個軟件開發(fā)生命周期,對軟件產(chǎn)品(包括階段性產(chǎn)品)進行驗證和確認的活動過程,其目的是盡快盡早地發(fā)現(xiàn)在軟件的缺陷。
·軟件測試的對象:
1、源程序/目標(biāo)代碼
2、各開發(fā)階段的文檔(需求規(guī)格說明、概要設(shè)計說明、詳細設(shè)計說明及其它相關(guān)文檔)
·軟件測試的目的:
從用戶角度看的目的:通過軟件測試發(fā)現(xiàn)隱藏的錯誤和缺陷,考慮是否可以接受該產(chǎn)品。
從開發(fā)者角度看的目的:表明軟件產(chǎn)品不存在錯誤,驗證軟件實現(xiàn)了所有用戶的要求。
從測試人員角度看的目的:發(fā)現(xiàn)錯誤,預(yù)測錯誤,提供軟件可靠性錯誤,對軟件做出評價。
·軟件測試誤區(qū):
誤區(qū)一:如果發(fā)布出去的軟件有質(zhì)量問題,都是軟件測試人員的錯。
誤區(qū)二:軟件測試技術(shù)要求不高,至少比編程容易多了。
誤區(qū)三:有時間就多測試一些,來不及就少測試一些。
誤區(qū)四:軟件測試是測試人員的事,與開發(fā)人員無關(guān)。
誤區(qū)五:根據(jù)軟件開發(fā)瀑布模型,軟件測試是開發(fā)后期的一個階段。