軟件開發流程的各種模型


“軟件測試中,V模型非常著名。通常可以在W模型的框架下,運用H模型的思想進行獨立的測試。當有變更發生時,按X模型和前置模型的思想進行處理。”

一、V模型

  RAD(rap application development),就是軟件開發過程中的一個重要模型,稱為快速應用開發模型。其模型構圖形似字母V,所以又稱V模型。可以說,V模型是軟件開發測試中最重要的一種模型。

  V模型大體可以划分為下面幾個不同的階段步驟,既需求分析、概要設計、詳細設計、編碼、單元測試、集成測試、系統測試、驗收測試。  

名稱 目標 活動描述
需求分析 明白客戶需要,表述客戶需要 與客戶交流,了解客戶需求,寫出說明書
概要設計 搭構架,明確模塊功能,各模塊間交互的實現方法,數據傳送方法等 把客戶需要細分,確定不同的功能模塊,把各模塊連接方法,數據傳輸方法確定。
詳細設計 表述出模塊間組合功能實現方法, 對各模塊進行進一步分析,設計模塊間組合功能實現過程,寫出偽代碼
編碼 寫程序 按照設計好的功能模塊功能需求,設計不同的功能模塊,寫出代碼,寫出連接模塊的代碼,
單元測試 測試需要的最小單元的功能 按照設定好的最小測試單元(或者叫組件)進行按測試,確保各模塊被正確的編譯執行
集成測試 檢查單元和單元間組合成后是否存在問題,如組合后的功能,接口等 將已經分別通過測試的單元模塊按設計需求組合進行整體功能,性能等測試,
系統測試 把集成后的軟件放到系統中進行測試 搭建不同的計算機軟硬件系統,把被測軟件放入其中進行的非功能性測試,主要包括安全可靠性,性能等
驗收測試 驗證系統是否達到了客戶需求 用戶進行易用性,兼容性,安裝測試等

  單元測試所對應的是詳細設計環節,也就是說,單元測試的測試用例是和詳細設計一起出現的,在做研發人員做做詳細設計的時候,相應的測試人員也就把測試用例寫了出來。集成測試呢,對應的為概要設計,在做模塊功能分析及模塊接口,數據傳輸方法的時候,就把集成測試用例根據概要設計中模塊功能及接口等實現方法編寫出。

  局限性:把測試作為編碼之后的最后一個活動,需求分析等前期產生的錯誤直到后期的驗收測試才能發現。

   

二、W模型

  相對於V模型,W模型增加了軟件各開發階段中應同步進行的驗證和確認活動。W模型由兩個V字型模型組成,分別代表測試與開發過程,圖中明確表示出了測試與開發的並行關系。 

  W模型強調:測試伴隨着整個軟件開發周期,而且測試的對象不僅僅是程序,需求、設計等同樣要測試,也就是說,測試與開發是同步進行的。W模型有利於盡早地全面的發現問題。例如,需求分析完成后,測試人員就應該參與到對需求的驗證和確認活動中,以盡早地找出缺陷所在。同時,對需求的測試也有利於及時了解項目難度和測試風險,及早制定應對措施,這將顯著減少總體測試時間,加快項目進度。 

  局限性:在W模型中,需求、設計、編碼等活動被視為串行的,同時,測試和開發活動也保持着一種線性的前后關系,上一階段完全結束,才可正式開始下一個階段工作。這樣就無法支持迭代的開發模型。對於當前軟件開發復雜多變的情況,W模型並不能解除測試管理面臨着困惑。

三、H模型

   V模型和W模型均存在一些不妥之處。如前所述,它們都把軟件的開發視為需求、設計、編碼等一系列串行的活動,而事實上,這些活動在大部分時間內是可以交叉進行的,所以,相應的測試之間也不存在嚴格的次序關系。同時,各層次的測試(單元測試、集成測試、系統測試等)也存在反復觸發、迭代的關系。
  為了解決以上問題,有專家提出了H模型。它將測試活動完全獨立出來,形成了一個完全獨立的流程,將測試准備活動和測試執行活動清晰地體現出來。這個示意圖僅僅演示了在整個生產周期中某個層次上的一次測試“微循環”。圖中標注的其他流程可以是任意的開發流程。例如,設計流程或編碼流程。也就是說,只要測試條件成熟了,測試准備活動完成了,測試執行活動就可以(或者說需要)進行了。
 
    H模型揭示了一個原理:軟件測試是一個獨立的流程,貫穿產品整個生命周期,與其他流程並發地進行。H模型指出軟件測試要盡早准備,盡早執行。不同的測試活動可以是按照某個次序先后進行的,但也可能是反復的,只要某個測試達到准備就緒點,測試執行活動就可以開展。

四、X模型

  X模型也是對V模型的改進,X模型提出針對單獨的程序片段進行相互分離的編碼和測試,此后通過頻繁的交接,通過集成最終合成為可執行的程序。X模型的左邊描述的是針對單獨程序片段所進行的相互分離的編碼和測試,此后將進行頻繁的交接,通過集成最終成為可執行的程序,然后再對這些可執行程序進行測試。己通過集成測試的成品可以進行封裝並提交給用戶,也可以作為更大規模和范圍內集成的一部分。
    多根並行的曲線表示變更可以在各個部分發生。由圖中可見,X模型還定位了探索性測試,這是不進行事先計划的特殊類型的測試,這一方式往往能幫助有經驗的測試人員在測試計划之外發現更多的軟件錯誤。但這樣可能對測試造成人力、物力和財力的浪費,對測試員的熟練程度要求比較高。

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM