? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
1.測(cè)試流程:

2.測(cè)試分類

3.黑盒測(cè)試,灰盒測(cè)試和白盒測(cè)試
黑盒測(cè)試?:已知產(chǎn)品的功能設(shè)計(jì)規(guī)格,可以進(jìn)行測(cè)試證明每個(gè)實(shí)現(xiàn)了的功能是否符合要求。白盒測(cè)試?:已知產(chǎn)品的內(nèi)部工作過程,可以通過測(cè)試證明每種內(nèi)部操作是否符合設(shè)計(jì)規(guī)格要求,所有內(nèi)部成分是否以經(jīng)過檢查。灰盒測(cè)試,是介于白盒測(cè)試與黑盒測(cè)試之間的,可以這樣理解,灰盒測(cè)試關(guān)注輸出對(duì)于輸入的正確性,同時(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)錯(cuò)誤了,這種情況非常多,如果每次都通過白盒測(cè)試來操作,效率會(huì)很低,因此需要采取這樣的一種灰盒的方法
4:測(cè)試發(fā)現(xiàn)bug 而開發(fā)不認(rèn)為是bug的時(shí)候:
1.測(cè)試人員在根據(jù)需求文檔或者是規(guī)格說明書/原型圖來進(jìn)行匹配
? 2.測(cè)試人員根據(jù)不同的測(cè)試環(huán)境來進(jìn)行多測(cè)嘗試來確認(rèn)bug 并將bug的復(fù)現(xiàn)步驟進(jìn)行記錄
? 3.如果開發(fā)仍舊認(rèn)為不是bug 需要的測(cè)試主管來進(jìn)行討論 確認(rèn)是否bug
? 4.需要找產(chǎn)品經(jīng)理和項(xiàng)目經(jīng)理進(jìn)行討論是否bug
? 5.如果認(rèn)為是bug測(cè)試人員將bug進(jìn)行記錄并提交測(cè)試總結(jié)中
5.?瀑布模型
瀑布模型是最早出現(xiàn)的軟件開發(fā)模型,在軟件工程中占有重要的地位,它提供了軟件開發(fā)的基本框架。其過程是從上一項(xiàng)活動(dòng)接收該項(xiàng)活動(dòng)的工作對(duì)象作為輸入,利用這一輸入實(shí)施該項(xiàng)活動(dòng)應(yīng)完成的內(nèi)容給出該項(xiàng)活動(dòng)的工作成果,并作為輸出傳給下一項(xiàng)活動(dòng)。同時(shí)評(píng)審該項(xiàng)活動(dòng)的實(shí)施,若確認(rèn),則繼續(xù)下一項(xiàng)活動(dòng);否則返回前面,甚至更前面的活動(dòng)。對(duì)于經(jīng)常變化的項(xiàng)目而言,瀑布模型毫無價(jià)值。

瀑布型簡(jiǎn)單地說就是按照需求、設(shè)計(jì)、編碼、測(cè)試、軟件維護(hù)這個(gè)基本的順序來研發(fā)軟件,前面一個(gè)步驟不完成,后面的步驟不能開始,否則問題會(huì)滾到下個(gè)階段,帶來更多的問題
優(yōu)點(diǎn):
?為項(xiàng)目提供了按階段劃分的檢查點(diǎn)
當(dāng)前一階段完成后,只需要去關(guān)注后續(xù)階段。
缺點(diǎn):
1)各個(gè)階段的劃分完全固定,階段之間產(chǎn)生大量的文檔,極大地增加了工作量。
2)由于開發(fā)模型是線性的,用戶只有等到整個(gè)過程的末期才能見到開發(fā)成果,從而增加了開發(fā)風(fēng)險(xiǎn)。
3)通過過多的強(qiáng)制完成日期和里程碑來跟蹤各個(gè)項(xiàng)目階段。
4)瀑布模型的突出缺點(diǎn)是不適應(yīng)用戶需求的變化。
6.原型化模型
原型化模型的第一步是建造一個(gè)快速原型,實(shí)現(xiàn)客戶或未來的用戶與系統(tǒng)的交互,經(jīng)過和用戶針對(duì)原型的討論和交流,弄清需求以便真正把握用戶需要的軟件產(chǎn)品是什么樣子的。充分了解后,再在原型基礎(chǔ)上開發(fā)出用戶滿意的產(chǎn)品。如圖所示:原型嚴(yán)格來說不算一種軟件生命周期模型,它只是一種獲取需求的方法,在實(shí)際工作中該方法是相當(dāng)重要的方法。

模型要點(diǎn):瀑布和原型模型相結(jié)合,強(qiáng)調(diào)版本升級(jí)。
該模式的特點(diǎn)是一次性地獲取全部的需求,然后做出分版本實(shí)現(xiàn)各需求的計(jì)劃,每個(gè)版本只實(shí)現(xiàn)一部分需求,通過多個(gè)版本逐步實(shí)現(xiàn)全部需求,而每個(gè)版本可以認(rèn)為是一個(gè)“小瀑布”。
該模型的好處是可以盡快讓系統(tǒng)上線,讓客戶先使用部分功能,盡早實(shí)現(xiàn)系統(tǒng)的價(jià)值。
該模型比較能符合實(shí)際的情況,我們往往也是通過多個(gè)版本來逐步實(shí)現(xiàn)全部需求,但需求是不可能在一開始就完全確定的,實(shí)際情況是往往只能確定80%,而后期通過各版本我們還會(huì)獲取更多的新需求以及需求調(diào)整。將此模型稍微調(diào)整后,可以適用于大部分的實(shí)際項(xiàng)目。
7.增量模型
增量模型也是原型化開發(fā)方法。如圖所示

8.螺旋模型
螺旋模型是一個(gè)演化軟件過程模型,將原型實(shí)現(xiàn)的迭代特征與線性順序(瀑布)模型中控制的和系統(tǒng)化的方面結(jié)合起來。使得軟件的增量版本的快速開發(fā)成為可能。在螺旋模型中,軟件開發(fā)是一系列的增量發(fā)布。螺旋模型的整個(gè)開發(fā)過程如圖所示。

圖中的螺旋線代表隨著時(shí)間推進(jìn)的工作進(jìn)展;開發(fā)過程具有周期性重復(fù)的螺旋線形狀。4個(gè)象限分別標(biāo)志每個(gè)周期所劃分的4?個(gè)階段:制定計(jì)劃、風(fēng)險(xiǎn)分析、實(shí)施工程和客戶評(píng)估。螺旋模型要點(diǎn):統(tǒng)一了瀑布模型與原型模型,與增量模型相似,更強(qiáng)調(diào)風(fēng)險(xiǎn)分析。
1.軟件分多個(gè)版本開發(fā),每個(gè)版本就是一次螺旋。
2.每個(gè)版本按照這樣的順序進(jìn)行:
1)確定軟件目標(biāo),選取定實(shí)施方案,弄清項(xiàng)目開發(fā)的限制條件;(圖中左上象限)
2)分析所選取方案,考慮如何識(shí)別和消除風(fēng)險(xiǎn);(圖中右上象限)
3)實(shí)施軟件開發(fā);(圖中右下象限)
4)評(píng)價(jià)開發(fā)工作,提出修正建議,調(diào)整計(jì)劃。(圖中右下象限、左下象限)
3.需求不是一次獲取和實(shí)現(xiàn)的,通過多個(gè)螺旋來完善。
4.計(jì)劃也不是一次成型的,每次螺旋都需要調(diào)整。
優(yōu)點(diǎn):
1)設(shè)計(jì)上很靈活,可以在項(xiàng)目的各個(gè)階段進(jìn)行變更;
2)以小的分段來構(gòu)建大型系統(tǒng),使成本計(jì)算變得簡(jiǎn)單容易;(國(guó)企項(xiàng)目)
3)客戶始終參與每個(gè)階段的開發(fā),保證了項(xiàng)目不偏離正確方向以及項(xiàng)目的可控性;
4)隨著項(xiàng)目推進(jìn),客戶始終掌握項(xiàng)目的最新信息?,?從而能夠和管理層有效地交互;
5)客戶認(rèn)可這種公司內(nèi)部的開發(fā)方式帶來的良好的溝通和高質(zhì)量的產(chǎn)品。
缺點(diǎn):
螺旋模型強(qiáng)調(diào)風(fēng)險(xiǎn)分析,但要求許多客戶接受和相信這種分析,并做出相關(guān)反應(yīng)是不容易的。
因此,這種模型往往適應(yīng)于內(nèi)部的大規(guī)模軟件開發(fā)。該模型建設(shè)周期長(zhǎng),而軟件技術(shù)發(fā)展比較快,所以經(jīng)常出現(xiàn)軟件開發(fā)完畢后,和當(dāng)前的技術(shù)水平有了較大的差距,無法滿足當(dāng)前用戶需求。
9.V模型
V模型的左邊下降的是開發(fā)過程各階段,與此相對(duì)應(yīng)的是右邊上升的部分,即各測(cè)試過程的各個(gè)階段。
V模型的優(yōu)點(diǎn)在于它非常明確地標(biāo)明了測(cè)試過程中存在的不同級(jí)別,并且清楚地描述了這些測(cè)試階段和開發(fā)各階段的對(duì)應(yīng)關(guān)系。

1、需求分析階段對(duì)應(yīng)生成需求規(guī)格說明書,對(duì)應(yīng)測(cè)試生成系統(tǒng)測(cè)試方案,即為系統(tǒng)測(cè)試準(zhǔn)備的,該階段已經(jīng)完成了單元測(cè)試和集成測(cè)試,主要是對(duì)軟件產(chǎn)品的功能與非功能進(jìn)行測(cè)試,幾乎不測(cè)試代碼,所以測(cè)試方法以黑盒為主;
2、概要設(shè)計(jì)階段對(duì)應(yīng)生成概要設(shè)計(jì)說明書,對(duì)應(yīng)測(cè)試生成集成測(cè)試方案,該階段已完成單元測(cè)試,是將各個(gè)功能模塊組裝起來進(jìn)行的測(cè)試,所以也叫組裝測(cè)試。主要看模塊調(diào)用是否正常,接口是否可用,數(shù)據(jù)傳輸是否正確等,所以用到的測(cè)試方法幾乎是白盒的方法,如路徑覆蓋,條件組合覆蓋等;
3、詳細(xì)設(shè)計(jì)階段對(duì)應(yīng)生成詳細(xì)設(shè)計(jì)說明書,對(duì)應(yīng)測(cè)試生成單元測(cè)試方案,該階段是開發(fā)人員編碼后的第一個(gè)測(cè)試階段,是對(duì)開發(fā)出來的單獨(dú)模塊進(jìn)行測(cè)試,以確保每一個(gè)功能模塊的功能正常,可以構(gòu)建樁模塊和驅(qū)動(dòng)模塊來回調(diào)用,方法也是以白盒為主。
4、白盒測(cè)試的準(zhǔn)則是盡可能覆蓋程序內(nèi)部的邏輯結(jié)構(gòu),黑盒則是盡可能覆蓋所有的輸入輸出接口,包括文檔等一些靜態(tài)的測(cè)試。除常用的測(cè)試方法外,仍需補(bǔ)充大范圍的隨機(jī)測(cè)試,盡可能達(dá)到覆蓋率100%。
V模型的缺陷及解決思路
V模型僅僅把測(cè)試過程作為在需求分析、系統(tǒng)設(shè)計(jì)及編碼之后的一個(gè)階段,忽視了測(cè)試對(duì)需求分析,系統(tǒng)設(shè)計(jì)的驗(yàn)證,需求的滿足情況一直到后期的驗(yàn)收測(cè)試才被驗(yàn)證。
解決的思路是,當(dāng)一個(gè)軟件開發(fā)的時(shí)候,研發(fā)人員和測(cè)試人員需要同時(shí)工作,測(cè)試在軟件做需求分析的同時(shí)就會(huì)有測(cè)試用例的跟蹤,這樣,可以盡快找出程序錯(cuò)誤和需求偏離,從而更高效的提高程序質(zhì)量,最大可能的減少成本,同時(shí)滿足用戶的實(shí)際軟件需求。
10.W模型
相對(duì)于V模型,W模型更科學(xué)。W模型是V模型的發(fā)展,強(qiáng)調(diào)的是測(cè)試伴隨著整個(gè)軟件開發(fā)周期,而且測(cè)試的對(duì)象不僅僅是程序,需求、功能和設(shè)計(jì)同樣要測(cè)試。測(cè)試與開發(fā)是同步進(jìn)行的,從而有利于盡早地發(fā)現(xiàn)問題。

11.回歸測(cè)試、冒煙測(cè)試、隨機(jī)測(cè)試
????????1.回歸測(cè)試
? ??????????????是指對(duì)軟件的新版本進(jìn)行測(cè)試時(shí),重復(fù)執(zhí)行上一個(gè)版本測(cè)試時(shí)的用例,比如在1.0版本中,有一個(gè)bug,到了2.0版本中,再重新測(cè)試1.0中這個(gè)bug
? ??????2.冒煙測(cè)試
指對(duì)一個(gè)軟件進(jìn)行系統(tǒng)大規(guī)模的測(cè)試之前,先驗(yàn)證一下軟件的基本功能是否實(shí)現(xiàn),是否具備可測(cè)性。
測(cè)試小組在正式測(cè)試一個(gè)新版本之前,先指派一兩個(gè)測(cè)試人員測(cè)試一下軟件的主要功能,如果沒有實(shí)現(xiàn),則打回開發(fā)組重新開發(fā),這樣做可以節(jié)省大量的時(shí)間成本和人力成本。
????3.隨機(jī)測(cè)試
? ? 是指測(cè)試中所有的輸入數(shù)據(jù)都是隨機(jī)生成的,其目的是模擬用戶的真實(shí)操作,并發(fā)現(xiàn)一些邊緣性的錯(cuò)誤。