分析請求:分析用戶請求,才能知道要開發什麼樣的軟件。express
設計 :針對用戶請求,進行設計軟件架構等。架構
執行:任務分派開始開發。ide
測試 : 測試軟件的功能、代碼等。工具
演變或者維護:發佈和後期維護,如補丁更新等。佈局
從上圖能夠看到,開發階段是按順序來的。單元測試
敏捷意味着快速、簡單。 敏捷是開發的一種方法,它是經過組織內各團隊合做來完成的。敏捷背後的原則是增量、快速、靈活的軟件開發。提高了計劃的靈活性。測試
(1)經過早期有用的軟件進行持續交付來達到客戶滿意度。ui
(2)適應不斷變化的開發需求,甚至在軟件開發後期。spa
(3)軟件交付頻繁(可能幾周或者一個月內)設計
(4)在企業、人員、開者者之間密切的合做
(5)項目干係人應該是被信任的
(6)面對面的溝通方式是最好的交流方式
(7)正在開發軟件是程序測量的標準
(8)可持續的發展,可以保持一個一致的步伐
(9)持續關注卓越的技術和良好的設計
(10)簡單
(11)組織內部的團隊成員
(12)適應不斷變化的環境
在敏捷開發進程中,軟件被分紅多個功能或者模塊,這些功能是在迭代中進行持續交付的。每次迭代持續三個禮拜,包括在不一樣區域同時工做的團隊,好比計劃,需求分析,設計,代碼,單元測試和可接受性測試。
這樣的一個結果就是,沒有任何人是空閒的。這和瀑布模型是徹底不一樣的,瀑布模型是開發人員在很是忙的時候,測試人員和其它人員都比較空閒。 下圖描述了敏捷開發模型。
從上圖能夠看出,模型像個圈同樣,不停的進行迭代。至關於之前工做是串行的,如今是並行的同樣。
GitFlow徹底的架構圖以下 :
此處使用的是jenkins。 還有其它如Build Forge, Bamboo 和 TeamCity.
代碼覆蓋的測試方式:
Type of coverage | Description |
Function | The number of function called out of the total number of functions defined |
Statement | The number of statements in the program that are truly called out of the totoal number |
Branches | The number of branches of the control structures executed |
Condition | The number of Boolean sub-expressions that are being tested for a ture and false value |
Line | The number of lines of source code that are being tested out of the total number of lines present inside the code |
代碼覆蓋率測試工具:
Language | Tools |
Java | Atlassian Clover, Cobertura, JaCoCo |
C#/.NET | OpenCover, dotCover |
C++ | OpenCppCoverage,gcov |
Python | Coverage.py |
Ruby | SimpleCov |