测试-软件研发组织和流程
软件研发组织和流程
#####软件研发相关要素
- 人员:只有合适的人员借助合适的工具经过合适的过程才能研发出高质量的软件
- 过程
- 工具:工具为人员和过程服务,起辅助作用,起关键作用的是人员和过程
#####基本软件研发流程
瀑布模型:应用的最为广泛的一种模型,也是最容易理解和掌握的模型,然而他的缺陷也是显而易见的。(人员闲置)
- 优点:简单
- 缺点:测试介入较晚,人员闲置严重,后续工作跟不上。项目开发完成后才招测试人员,那么可能是瀑布模型,不适合需求频繁变更的项目。不适合于大的项目,适用于小规模传统项目业务研发。
螺旋模型:综合了基本的瀑布式模型和演化/渐增原型方法(技术储备不足)。
- 与瀑布不同点:螺旋模型有替代方案,是多个瀑布模型的并行集合。充分考虑了风险问题,故设计了替代方案。
- 优点:充分考虑风险,抗风险能力强
- 缺点:成本太高,需要专业的风险分析专家参与
- 适用范围:与生命财产相关的系统。
理解:
- 1.软件分多个版本开发,每个版本就是一次螺旋。
- 2.每个版本按照这样的顺序进行:
- 1)确定软件目标,选取定实施方案,弄清项目开发的限制条件;(图中左上象限)
- 2)分析所选取方案,考虑如何识别和消除风险;(图中右上象限)
- 3)实施软件开发;(图中右下象限)
- 4)评价开发工作,提出修正建议,调整计划。(图中右下象限、左下象限)
- 3.需求不是一次获取和实现的,通过多个螺旋来完善。
- 4.计划也不是一次成型的,每次螺旋都需要调整。
RUP流程:所有工作流在各个阶段都有体现
- 优点:
- 1、RUP的思想打破了“需求-设计-编码-测试”这样的传统瀑布模式,需求、设计、编码、测试这些工作其实一直都在进行的,只是不同时间比重不一样。这个思想是和实际情况非常吻合。
- 2、用户可在早期提出变更并进行修复,从而有效控制变更风险及代价(往往都是局部变更)
- 3、可在早期增强用户的信心(看到了半成品)
- 缺点:
- 1、要有专业的架构师(架构师的职责),当功能与功能之间联系太过紧密的话,不太使用rup模型,比如登陆与注册的联系
- 2、已经确定了的功能将不允许变更,但由于因为设计引起的内在联系引起的变更是无法控制的。
- 适用范围:
- 大型复杂的项目研发,耦合度较低的系统。
- 优点:
IPD流程:从整个产品角度出发,不仅仅针对研发
- 优点:
- 1、将软硬件研发及生产、销售等各个部门有效整合,集中在一个平台下统一管理,提高了决策的准确性及时效性。
- 2、利于各部门关键数据的共享
- 缺点:
- 1、管理成本高
- 2、部门之间的协调关系较复杂
- 适用范围:
- 大型软硬件集成厂商
- 优点: