分析请求:分析用户请求,才能知道要开发什么样的软件。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 |