軟件測試基礎(chǔ)知識及流程全解課件
單擊此處編輯母版標(biāo)題樣式,單擊此處編輯母版文本樣式,第二級,第三級,第四級,第五級,*,什么是軟件測試,使用人工或者自動手段來運(yùn)行或測試某個(gè)系統(tǒng)的過程,目的在于檢驗(yàn)它是否滿足規(guī)定的需求、弄清預(yù)期結(jié)果與實(shí)際結(jié)果之間的差別,什么是軟件測試使用人工或者自動手段來運(yùn)行或測試某個(gè)系統(tǒng)的過程,軟件測試目的,測試是為了發(fā)現(xiàn)系統(tǒng)中的錯誤而執(zhí)行程序的過程,好的測試方案在于盡可能發(fā)現(xiàn)迄今為止尚未發(fā)現(xiàn)的錯誤,成功的測試是發(fā)現(xiàn)了至今為止尚未發(fā)現(xiàn)的錯誤的測試,軟件測試目的測試是為了發(fā)現(xiàn)系統(tǒng)中的錯誤而執(zhí)行程序的過程,軟件測試目的,測試并不僅僅是為了找出錯誤,.,通過分析錯誤產(chǎn)生的原因和錯誤的發(fā)生趨勢,可以幫助項(xiàng)目管理者發(fā)現(xiàn)當(dāng)前軟件開發(fā)過程中的缺陷,以便及時(shí)改進(jìn),這種分析也能幫助測試人員設(shè)計(jì)出有針對性的測試方法,改善測試的效率和有效性;,沒有發(fā)現(xiàn)錯誤的測試也是有價(jià)值的,完整的測試是評定軟件質(zhì)量的一種方法,軟件測試目的測試并不僅僅是為了找出錯誤.通過分析錯誤產(chǎn)生的原,軟件測試原則,所有的軟件測試都應(yīng)追溯到用戶需求,應(yīng)當(dāng)把,“,盡早地和不斷地進(jìn)行軟件測試,”,作為軟件測試人的座右銘,完全測試是不可能的,測試需要終止,測試無法顯示系統(tǒng)所有潛在的缺陷,軟件測試原則所有的軟件測試都應(yīng)追溯到用戶需求,軟件測試原則,充分注意測試中的群集現(xiàn)象,程序員應(yīng)避免檢查自己的程序,盡量避免測試的隨意性,應(yīng)從工程的角度理解軟件測試,它是有組織、有計(jì)劃、有步驟的活動,軟件測試原則充分注意測試中的群集現(xiàn)象,軟件測試對象,程序,數(shù)據(jù),文檔,過程,硬件,網(wǎng)絡(luò),軟件測試對象程序,軟件測試關(guān)鍵詞,單元測試,集成測試,系統(tǒng)測試,確認(rèn)測試,驗(yàn)收測試,白盒測試,黑盒測試,灰盒測試,軟件測試關(guān)鍵詞單元測試,單元測試,單元測試又稱模塊測試,是針對軟件設(shè)計(jì)的最小單元,程序模塊進(jìn)行正確性檢驗(yàn)的測試工作,其目的在于檢查每個(gè)程序單元能否實(shí) 現(xiàn)詳細(xì)設(shè)計(jì)說明中的模塊功能、性能、接口和設(shè)計(jì)約束等要求,發(fā)現(xiàn)各模塊內(nèi)部可能存在的錯誤,單元測試單元測試又稱模塊測試,集成測試,集成測試,也叫組裝測試或聯(lián)合測試,在單元測試的基礎(chǔ)上,將所有模塊按照設(shè)計(jì)要求)如根據(jù)結(jié)構(gòu)圖,組裝成為子系統(tǒng)或系統(tǒng),進(jìn)行集成測試,集成測試是檢驗(yàn)程序單元和部件的接口關(guān)系,實(shí)踐表明,一些模塊雖然能夠單獨(dú)地工作,但并不能保證連接起來也能正常的工作。程序在某些局部反映不出來的問題,在全局上很可能暴露出來,影響功能的實(shí)現(xiàn),集成測試集成測試,也叫組裝測試或聯(lián)合測試,系統(tǒng)測試,系統(tǒng)測試是將已經(jīng)確認(rèn)的軟件、計(jì)算機(jī)硬件、外設(shè)、網(wǎng)絡(luò)等其他元素結(jié)合在一起,進(jìn)行信息系統(tǒng)的各種組裝測試和確認(rèn)測試,其目的是通過與系統(tǒng)的需求相比較,發(fā)現(xiàn)所開發(fā)的系統(tǒng)與用戶需求不符或矛盾的地方,系統(tǒng)測試的任務(wù)是近可能徹底的檢查出程序中的錯誤,提高軟件系統(tǒng)的可靠性,其目的是檢驗(yàn)系統(tǒng),做得怎樣?,系統(tǒng)測試系統(tǒng)測試是將已經(jīng)確認(rèn)的軟件、計(jì)算機(jī)硬件、外設(shè)、網(wǎng)絡(luò)等,確認(rèn)測試,確認(rèn)測試的目的是向未來的用戶表明系統(tǒng)能夠像預(yù)定要求那樣工作。經(jīng)集成測試后,已經(jīng)按照設(shè)計(jì)把所有的模塊組裝成一個(gè)完整的軟件系統(tǒng),接口錯誤也已經(jīng)基本排除了,接著就應(yīng)該進(jìn)一步驗(yàn)證軟件的有效性,這就是確認(rèn)測試的任務(wù),即軟件的功能和性能如同用戶所合理期待的那樣,確認(rèn)測試又稱有效性測試。有效性測試是在模擬的環(huán)境下,運(yùn)用黑盒測試的方法,驗(yàn)證被測軟件是否滿足需求規(guī)格說明書列出的需求。任務(wù)是驗(yàn)證軟件的功能和性能及其他特性是否與用戶的要求一致。對軟件的功能和性能要求在軟件需求規(guī)格說明書中已經(jīng)明確規(guī)定,它包含的信息就是軟件確認(rèn)測試的基礎(chǔ),確認(rèn)測試確認(rèn)測試的目的是向未來的用戶表明系統(tǒng)能夠像預(yù)定要求那,驗(yàn)收測試,系統(tǒng)開發(fā)生命周期方法論的一個(gè)階段,這時(shí)相關(guān)的用戶和或獨(dú)立測試人員根據(jù)測試計(jì)劃和結(jié)果對系統(tǒng)進(jìn)行測試和接收。它讓系統(tǒng)用戶決定是否接收系統(tǒng)。它是一項(xiàng)確定產(chǎn)品是否能夠滿足合同或用戶所規(guī)定需求的測試,這是管理性和防御性控制的測試過程,驗(yàn)收測試系統(tǒng)開發(fā)生命周期方法論的一個(gè)階段,這時(shí)相關(guān)的用戶和,白盒測試,白盒測試也稱結(jié)構(gòu)測試或邏輯驅(qū)動測試,它是按照程序內(nèi)部的結(jié)構(gòu)測試程序,通過測試來檢測產(chǎn)品內(nèi)部動作是否按照設(shè)計(jì)規(guī)格說明書的規(guī)定正常進(jìn)行,檢驗(yàn)程序中的每條通路是否都能按預(yù)定要求正確工作,是把測試對象看作一個(gè)打開的盒子,測試人員依據(jù)程序內(nèi)部邏輯結(jié)構(gòu)相關(guān)信息,設(shè)計(jì)或選擇測試用例,對程序所有邏輯路徑進(jìn)行測試,通過在不同點(diǎn)檢查程序的狀態(tài),確定實(shí)際的狀態(tài)是否與預(yù)期的狀態(tài)一致,白盒測試白盒測試也稱結(jié)構(gòu)測試或邏輯驅(qū)動測試,它是按照程序內(nèi)部,黑盒測試,黑盒測試也稱功能測試,它是通過測試來檢測每個(gè)功能是否都能正常使用,在測試地,把程序看作一個(gè)不能打開的黑盒子,在完全不考慮程序內(nèi)部結(jié)構(gòu)和內(nèi)部特性的情況下,在程序接口進(jìn)行測試,它只檢查程序功能是否按照需求規(guī)格說明書的規(guī)定正常使用,程序是否能適當(dāng)?shù)亟邮蛰斎霐?shù)據(jù)而產(chǎn)生正確的輸出信息,黑盒測試著眼于程序外部結(jié)構(gòu),不考慮內(nèi)部邏輯結(jié)構(gòu),主要針對軟件界面和軟件功能進(jìn)行測試,黑盒測試黑盒測試也稱功能測試,它是通過測試來檢測每個(gè)功能是否,灰盒測試,灰盒測試,確實(shí)是介于白盒測試與黑盒測試之間的測試,灰盒測試關(guān)注輸出對于輸入的正確性,同時(shí)也關(guān)注內(nèi)部表現(xiàn),但這種關(guān)注不象白盒那樣詳細(xì)、完整,只是通過一些表征性的現(xiàn)象、事件、標(biāo)志來判斷內(nèi)部的運(yùn)行狀態(tài),有時(shí)候輸出是正確的,但內(nèi)部其實(shí)已經(jīng)錯誤了,這種情況非常多,如果每次都通過白盒測試來操作,效率會很低,因此需要采取這樣的一種灰盒的方法,灰盒測試灰盒測試,確實(shí)是介于白盒測試與黑盒測試之間的測試,軟件過程模型(了解),瀑布模型,原型模型,螺旋模型,增量模型,噴泉模型,統(tǒng)一過程(,RUP,),軟件過程模型(了解)瀑布模型,瀑布模型,瀑布模型核心思想是按工序?qū)栴}化簡,將功能的實(shí)現(xiàn)與設(shè)計(jì)分開,便于分工協(xié)作,即采用結(jié)構(gòu)化的分析與設(shè)計(jì)方法將邏輯實(shí)現(xiàn)與物理實(shí)現(xiàn)分開,將軟件生命周期劃分為制定計(jì)劃、需求分析、軟件設(shè)計(jì)、程序編寫、軟件測試和運(yùn)行維護(hù)等六個(gè)基本活動,并且規(guī)定了它們自上而下、相互銜接的固定次序,如同瀑布流水,逐級下落,從本質(zhì)來講,它是一個(gè)軟件開發(fā)架構(gòu),開發(fā)過程是通過一系列階段順序展開的,從系統(tǒng)需求分析開始直到產(chǎn)品發(fā)布和維護(hù),每個(gè)階段都會產(chǎn)生循環(huán)反饋,因此,如果有信息未被覆蓋或者發(fā)現(xiàn)了問題,那么最好,“,返回,”,上一個(gè)階段并進(jìn)行適當(dāng)?shù)男薷?,開發(fā)進(jìn)程從一個(gè)階段,“,流動,”,到下一個(gè)階段,這也是瀑布開發(fā)名稱的由來,瀑布模型瀑布模型核心思想是按工序?qū)栴}化簡,將功能的實(shí)現(xiàn)與設(shè),瀑布模型圖,瀑布模型圖,原型模型,先借用已有系統(tǒng)作為原型模型,通過,“,樣品,”,不斷改進(jìn),使得最后的產(chǎn)品就是用戶所需要的,原型模型通過向用戶提供原型獲取用戶的反饋,使開發(fā)出的軟件能夠真正反映用戶的需求。同時(shí),原型模型采用逐步求精的方法完善原型,使得原型能夠,“,快速,”,開發(fā),避免了像瀑布模型一樣在冗長的開發(fā)過程中難以對用戶的反饋?zhàn)鞒隹焖俚捻憫?yīng)。相對瀑布模型而言,原型模型更符合人們開發(fā)軟件的習(xí)慣,是目前較流行的一種實(shí)用軟件生存期模型,原型模型先借用已有系統(tǒng)作為原型模型,通過“樣品”不斷改進(jìn),使,原型模型圖,原型模型圖,螺旋模型,1988,年,,BarryBoehm,正式發(fā)表了軟件系統(tǒng)開發(fā)的,螺旋模型,,它將瀑布模型和快速原型模型結(jié)合起來,強(qiáng)調(diào)了其他模型所忽視的風(fēng)險(xiǎn)分析,特別適合于大型復(fù)雜的系統(tǒng)。,螺旋模型沿著螺線進(jìn)行若干次迭代,圖中的四個(gè)象限代表了以下活動:,(,1,)制定計(jì)劃:確定軟件目標(biāo),選定實(shí)施方案,弄清項(xiàng)目開發(fā)的限制條件;,(,2,)風(fēng)險(xiǎn)分析:分析評估所選方案,考慮如何識別和消除風(fēng)險(xiǎn);,(,3,)實(shí)施工程:實(shí)施軟件開發(fā)和驗(yàn)證;,(,4,)客戶評估:評價(jià)開發(fā)工作,提出修正建議,制定下一步計(jì)劃。,螺旋模型1988年,BarryBoehm正式發(fā)表了軟件系統(tǒng)開,螺旋模型圖,螺旋模型圖,增量模型,增量模型融合了瀑布模型的基本成分(重復(fù)應(yīng)用)和原型實(shí)現(xiàn)的迭代特征,該模型采用隨著日程時(shí)間的進(jìn)展而交錯的線性序列,每一個(gè)線性序列產(chǎn)生軟件的一個(gè)可發(fā)布的,“,增量,”,當(dāng)使用增量模型時(shí),第,1,個(gè)增量往往是核心的產(chǎn)品,即第,1,個(gè)增量實(shí)現(xiàn)了基本的需求,但很多補(bǔ)充的特征還沒有發(fā)布,客戶對每一個(gè)增量的使用和評估都作為下一個(gè)增量發(fā)布的新特征和功能,這個(gè)過程在每一個(gè)增量發(fā)布后不斷重復(fù),直到產(chǎn)生了最終的完善產(chǎn)品。增量模型強(qiáng)調(diào)每一個(gè)增量均發(fā)布一個(gè)可操作的產(chǎn)品,增量模型增量模型融合了瀑布模型的基本成分(重復(fù)應(yīng)用)和原型實(shí),增量模型圖,增量模型圖,噴泉模型,噴泉模型是一種以用戶需求為動力,以對象為驅(qū)動的模型,主要用于采用對象技術(shù)的軟件開發(fā)項(xiàng)目,該模型認(rèn)為軟件開發(fā)過程自下而上周期的各階段是相互迭代和無間隙的特性,軟件的某個(gè)部分常常被重復(fù)工作多次,相關(guān)對象在每次迭代中隨之加入漸進(jìn)的軟件成分,無間隙指在各項(xiàng)活動之間無明顯邊界,如分析和設(shè)計(jì)活動之間沒有明顯的界限,由于對象概念的引入,表達(dá)分析、設(shè)計(jì)、實(shí)現(xiàn)等活動只用對象類和關(guān)系,從而可以較為容易地實(shí)現(xiàn)活動的迭代和無間隙,使其開發(fā)自然地包括復(fù)用,噴泉模型噴泉模型是一種以用戶需求為動力,以對象為驅(qū)動的模型,,噴泉模型圖,噴泉模型圖,統(tǒng)一過程模型,RUP,(,Rational Unified Process,,統(tǒng)一軟件開發(fā)過程,統(tǒng)一軟件過程,),是一個(gè)面向?qū)ο笄一诰W(wǎng)絡(luò)的程序開發(fā)方法論,根據(jù),Rational(Rational Rose,和統(tǒng)一建模語言的開發(fā)者,),的說法,好像一個(gè)在線的指導(dǎo)者,它可以為所有方面和層次的程序開發(fā)提供指導(dǎo)方針,模版以及事例支持,RUP,和類似的產(chǎn)品,-,例如面向?qū)ο蟮能浖^程(,OOSP,),以及,OPEN Process,都是理解性的軟件工程工具,-,把開發(fā)中面向過程的方面(例如定義的階段,技術(shù)和實(shí)踐)和其他開發(fā)的組件(例如文檔,模型,手冊以及代碼等等)整合在一個(gè)統(tǒng)一的框架內(nèi),統(tǒng)一過程模型RUP(Rational Unified Pro,統(tǒng)一過程模型(,RUP,)圖,統(tǒng)一過程模型(RUP)圖,測試模型,V,模型,W,模型,H,模型,X,模型,測試模型V模型,V,模型圖,V模型圖,W,模型圖,W模型圖,H,模型圖,在整個(gè)生產(chǎn)周期中某個(gè)層次上的一次測試,“,微循環(huán),”,。圖中的其他流程圖可以是任意開發(fā)流程。例如,設(shè)計(jì)流程和編碼流程。也可以是其他非開發(fā)流程,例如,,SQA,流程,甚至是測試流程本身。只要測試條件成熟了,測試準(zhǔn)備活動完成了,測試執(zhí)行活動就可以進(jìn)行了,H模型圖,X,模型,X,模型是由,Marick,提出的,X,模型描述的是針對單獨(dú)程序片段所進(jìn)行的相互分離的編碼和測試,此后將進(jìn)行頻繁的交換,通過集成最終合成為可執(zhí)行的程序,X,模型是一種探索測試模型,X模型X模型是由Marick提出的,X,模型圖,X模型圖,測試策略,測試信息流,分析設(shè)計(jì)階段,需求說明書評測,概要設(shè)計(jì)說明書評測,詳細(xì)設(shè)計(jì)說明書評測,軟件編碼規(guī)范評測,開發(fā)階段,單元測試,集成測試,確認(rèn)測試,系統(tǒng)測試,驗(yàn)收測試,軟件驗(yàn)證和確認(rèn)過程,測試策略測試信息流,天訊天網(wǎng)測試過程,測試流程圖,需求分析,測試計(jì)劃,測試設(shè)計(jì),測試環(huán)境搭建,測試執(zhí)行,測試記錄,天訊天網(wǎng)測試過程測試流程圖,測試流程圖,測試流程圖,需求分析,需求分析是軟件測試的一個(gè)重要環(huán)節(jié),,,一般而言,需求分析包括軟件功能需求分析、測試環(huán)境需求分析、測試資源需求分析等。其中最基本的是軟件功能需求分析,測一款軟件首先要知道軟件能實(shí)現(xiàn)哪些功能以及是怎樣實(shí)現(xiàn)的。比如綠網(wǎng)天下包括記錄查詢、軟件限制、網(wǎng)址限制等功能。那我們就應(yīng)該知道軟件是怎樣來實(shí)現(xiàn)這些功能的,為了實(shí)現(xiàn)這些功能需要哪些測試設(shè)備以及如何搭建相應(yīng)測試環(huán)境等,否則測試就無從談起,做測試需求分析的依據(jù)有軟件需求文檔、軟件規(guī)格書以及開發(fā)人員的設(shè)計(jì)文檔等。,需求分析需求分析是軟件測試的一個(gè)重要環(huán)節(jié),一般而言,需求分析,測試計(jì)劃,測試計(jì)劃一般由測試負(fù)責(zé)人來編寫。測試計(jì)劃的依據(jù)主要是項(xiàng)目開發(fā)計(jì)劃和測試需求分析結(jié)果而制定,測試計(jì)劃一般包括以下一些方面:測試背景,、,項(xiàng)目涉及人員,、,測試依據(jù),、,測試資源,、,測試策略,、,測試日程,、,還要包括測試計(jì)劃編寫的日期、作