軟件測(cè)試
純手寫和繪圖,如果有需要轉(zhuǎn)發(fā)請(qǐng)注明出處,謝謝合作。[老薛出品] :http://www.itdecent.cn/p/39b6d8a10e0a
一、軟件開發(fā)過程模型
在軟件開發(fā)的幾十年實(shí)踐中,人們總結(jié)了很多軟件開發(fā)模型來表述一個(gè)復(fù)雜的開發(fā)模型,圖:

軟件測(cè)試和軟件開發(fā)模式有著密切的關(guān)系,作為一名測(cè)試人員應(yīng)該充分理解軟件開發(fā)模式,方便找準(zhǔn)自己在其中的位置,從而發(fā)揮自己的價(jià)值。
1.1 瀑布模型(重點(diǎn))
圖示

瀑布模型介紹
瀑布模型在軟件開發(fā)模型中占有重要的地位,它是線性模型中的一種,也是所有其他模型的基礎(chǔ)。
在整個(gè)瀑布模型中,每個(gè)階段都會(huì)執(zhí)行一次,按照線性順序進(jìn)行軟件開發(fā)。
關(guān)于切入點(diǎn)的選擇
測(cè)試階段在瀑布模型中處于軟件實(shí)現(xiàn)后,那么也就意味著必須要給測(cè)試留下足夠的時(shí)間,否則將導(dǎo)致測(cè)試不充分,很多問題項(xiàng)目后期才發(fā)現(xiàn),導(dǎo)致返工成本增加,更有甚者可能直接項(xiàng)目夭折。
優(yōu)缺點(diǎn)分析
| 模型 | 優(yōu)點(diǎn) | 缺點(diǎn) |
|---|---|---|
| 瀑布模型 | ①:開發(fā)的各個(gè)階段清楚,方便統(tǒng)籌和管理 ②:早期的計(jì)劃以及需求調(diào)研要做的比較充分,以便應(yīng)對(duì)后期的需求變更 ③:適合項(xiàng)目的需求等比較成熟穩(wěn)定 | ①:對(duì)于早期的需求調(diào)查所占比例很高,不適應(yīng)敏捷開發(fā)等模型 ②:流程單一,不太容易可逆 ③:風(fēng)險(xiǎn)拖到后期發(fā)現(xiàn),成本不可控 ④:前期問題的積累導(dǎo)致整個(gè)項(xiàng)目失敗 |
改進(jìn)意見 : 沿用瀑布模型的線性思想,在每個(gè)階段進(jìn)行迭代操作。
1.2 快速原型模式
圖示

快速原型模型介紹
在真實(shí)的系統(tǒng)開發(fā)之前,構(gòu)造一個(gè)原型,在原型的基礎(chǔ)上,逐漸完成整個(gè)體系的系統(tǒng)開發(fā)工作。
開發(fā)步驟
第一步是構(gòu)建一個(gè)快速原型,實(shí)現(xiàn)用戶和系統(tǒng)的交互,用戶對(duì)原型進(jìn)行評(píng)價(jià),進(jìn)一步細(xì)化待開發(fā)軟件的需求。通過逐步調(diào)整原型使得滿足用戶的要求。開發(fā)人員確定用戶的真實(shí)需求。
第二步就是在第一步基礎(chǔ)上不斷迭代,開發(fā)出用戶滿意的軟件產(chǎn)品。
優(yōu)缺點(diǎn)分析
| 模型 | 優(yōu)點(diǎn) | 缺點(diǎn) |
|---|---|---|
| 快速原型模型 | 克服了瀑布模型的缺點(diǎn),更好的滿足用戶的需求并且減少了由于軟件需求不明確導(dǎo)致的開發(fā)風(fēng)險(xiǎn),適合事先不能確切定義需求的軟件系統(tǒng)的開發(fā) | 不適合大型的系統(tǒng)開發(fā),適合中小型、靈活度要求比較高的項(xiàng)目。 |
1.3 螺旋模式
圖示

螺旋模型介紹
螺旋模型(Spiral Model)的基本思想是,使用原型及其他方法來盡量降低風(fēng)險(xiǎn)。理解這種模型的一個(gè)簡(jiǎn)單方法,是把它看做在每個(gè)階段之前都增加了風(fēng)險(xiǎn)分析過程的快速原型模型。
開發(fā)步驟
瀑布模型(系統(tǒng)化)+快速原型(迭代過程)+風(fēng)險(xiǎn)分析。
-
一個(gè)螺旋式周期:
確定目標(biāo),選擇方案,選定完成目標(biāo)的策略
風(fēng)險(xiǎn)角度分析該策略
啟動(dòng)一個(gè)開發(fā)階段
評(píng)價(jià)前一步的結(jié)果,計(jì)劃下一輪的工作
優(yōu)缺點(diǎn)分析
| 模型 | 優(yōu)點(diǎn) | 缺點(diǎn) |
|---|---|---|
| 螺旋模型 | 螺旋模型主要適用于內(nèi)部開發(fā)的大規(guī)模軟件項(xiàng)目。本質(zhì)上螺旋模型就是一種風(fēng)險(xiǎn)驅(qū)動(dòng)體系,每個(gè)階段的時(shí)候必須首先進(jìn)行風(fēng)險(xiǎn)評(píng)估。 | 螺旋模型的主要優(yōu)勢(shì)在于,它是風(fēng)險(xiǎn)驅(qū)動(dòng)的。除非軟件開發(fā)人員具有豐富的風(fēng)險(xiǎn)評(píng)估經(jīng)驗(yàn)和這方面的專門知識(shí),否則將出現(xiàn)真正的風(fēng)險(xiǎn):當(dāng)項(xiàng)目實(shí)際上正在走向?yàn)?zāi)難時(shí),開發(fā)人員可能還認(rèn)為一切正常。 |
1.4 敏捷開發(fā)模型
圖示

敏捷開發(fā)模型介紹
敏捷開發(fā)以用戶的需求進(jìn)化為核心,采用迭代、循序漸進(jìn)的方法進(jìn)行軟件開發(fā)。在敏捷開發(fā)中,軟件項(xiàng)目在構(gòu)建初期被切分成多個(gè)子項(xiàng)目,各個(gè)子項(xiàng)目的成果都經(jīng)過測(cè)試,具備可視、可集成和可運(yùn)行使用的特征。換言之,就是把一個(gè)大項(xiàng)目分為多個(gè)相互聯(lián)系,但也可獨(dú)立運(yùn)行的小項(xiàng)目,并分別完成,在此過程中軟件一直處于可使用狀態(tài)。
開發(fā)步驟
敏捷開發(fā)是一種以人為核心、迭代、循序漸進(jìn)的開發(fā)方法,相對(duì)于傳統(tǒng)軟件開發(fā)方法的“非敏捷”,更強(qiáng)調(diào)程序員團(tuán)隊(duì)與業(yè)務(wù)專家之間的緊密協(xié)作、面對(duì)面的溝通(認(rèn)為比書面的文檔更有效)、頻繁交付新的軟件版本、緊湊而自我組織型的團(tuán)隊(duì)、能夠很好地適應(yīng)需求變化的代碼編寫和團(tuán)隊(duì)組織方法,也更注重軟件開發(fā)中人的作用。
優(yōu)缺點(diǎn)分析
| 模型 | 優(yōu)點(diǎn) | 缺點(diǎn) |
|---|---|---|
| 敏捷開發(fā)模型 | ①短周期開發(fā)。 ②增量開發(fā)。 ③ 由程序員和測(cè)試人員編寫的自動(dòng)化測(cè)試來監(jiān)控開發(fā)進(jìn)度。 ④通過口頭溝通、測(cè)試和源代碼來交流系統(tǒng)的結(jié)構(gòu)和意圖。 ⑤編寫代碼之前先寫測(cè)試代碼。也叫做測(cè)試先行。 | ①團(tuán)隊(duì)的組建較難,人員素質(zhì)要求較高。 ②對(duì)測(cè)試員要求完全掌握各種腳本語言編程,會(huì)單元測(cè)試。 |