軟體測試相關知識總結
軟體開發生命週期模型指的是軟體開發全過程、活動和任務的結構性框架。軟體專案的開發包括:需求、設計、編碼、測試、穩定、部署、維護等階段。常見的軟體開發模型有瀑布模型
1.ofollow,noindex"> 測試 與軟體模型
軟體 開發 生命週期模型指的是軟體 開發 全過程、活動和任務的結構性框架。軟體專案的開發包括: 需求 、設計、編碼、測試、穩定、部署、維護等階段。
常見的軟體開發模型有瀑布模型、迭代開發、螺旋開發和敏捷開發。
1.1 瀑布模型
瀑布模型式是最典型的預見性的方法,嚴格遵循預先計劃的需求分析、設計、編碼、整合、測試、維護的步驟順序進行。步驟成果作為衡量進度的方法,例如需求規格,設計文件,測試計劃和程式碼審閱等等。瀑布式的主要有以下問題:
各個階段的劃分完全固定,階段之間產生大量的文件,極大地增加了工作量;
由於開發模型是線性的,使用者只有等到整個過程的末期才能見到開發成果,從而增加了開發的風險;
早期的錯誤可能要等到開發後期的測試階段才能發現,進而帶來嚴重的後果。
因此,瀑布式方法在需求不明並且在專案進行過程中可能變化的情況下基本是不可行的。
1.2 迭代開發模型
迭代式開發是一種與傳統的瀑布式開發相反的軟體開發過程,具有更高的成功率和生產率。在迭代開發中,整個開發工作被組織為一系列的短小的、固定長度(如3周)的小專案,逐步逐步的完成,故為迭代。每一次迭代都包括需求分析、設計、實現與測試。採用這種方法,開發工作可以在需求被完整地確定之前啟動,並在一次迭代中完成系統的一部分功能或業務邏輯的開發工作。再通過客戶的反饋來細化需求,並開始新一輪的迭代。迭代開發具有以下優點:
降低風險。如果開發人員重複某個迭代,那麼損失只是這一個開發有誤的迭代的花費。
適應需求變更。由於使用者的需求並不能在一開始就作出完全的界定,它們通常是在後續階段中不斷細化的。
持續的測試與整合,降低後期的工作量與風險。
1.3 螺旋開發模型
螺旋開發,將瀑布模型和快速原型模型結合起來,強調了其他模型所忽視的風險分析,特別適合於大型複雜的系統。“螺旋模型”剛開始規模很小,當專案被定義得更好、更穩定時,逐漸展開。 “螺旋模型”的核心就在於不需要在剛開始的時候就把所有事情都定義的清清楚楚。您輕鬆上陣,定義最重要的功能,實現它,然後聽取客戶的意見,之後再進入到下一個階段。如此不斷輪迴重複,直到得到您滿意的最終產品。 螺旋開發分為以下四個階段:
制定計劃:確定軟體目標,選定實施方案,弄清專案開發的限制條件;
風險分析:分析評估所選方案,考慮如何識別和消除風險;
實施工程:實施軟體開發和驗證;
客戶評估:評價開發工作,提出修正建議,制定下一步計劃。
一個階段首先是確定該階段的目標,完成這些目標的選擇方案及其約束條件,然後從風險角度分析方案的開發策略,努力排除各種潛在的風險,有時需要通過建 造原型來完成。如果某些風險不能排除,該方案立即終止,否則啟動下一個開發步驟。最後,評價該階段的結果,並設計下一個階段。
1.4 敏捷開發模型
敏捷開發,是一種從1990年代開始逐漸引起廣泛關注的一些新型軟體開發方法,是一種應對快速變化的需求的一種軟體開發能力。相對於“非敏捷”,更強調程式員團隊與業務專家之間的緊密協作、面對面的溝通(認為比書面的文件更有效)、頻繁交付新的軟體版本、緊湊而自我組織型的團隊、能夠很好地適應需求變化的程式碼編寫和團隊組織方法,也更注重軟體開發中人的作用。
個體和互動重於流程和工具。
可工作的軟體重於求全而完備的文件。
客戶協作重於合同談判。
應對變化重於遵循計劃。
其中位於右邊的內容雖然也有其價值,但是左邊的內容最為重要。人員彼此信任,人少但是精幹,可以面對面的溝通。
敏捷開發小組主要的工作方式可以歸納為:作為一個整體工作;按短迭代週期工作;每次迭代交付一些成果;關注業務優先;檢查與調整。
最重要的因素恐怕是專案的規模。規模增長,面對面的溝通就愈加困難,因此敏捷方法更適用於較小的隊伍,40、30、20、10人或者更少。
原文轉自:https://www.jianshu.com/p/5402bae04dfc