首先我们要了解软件的生命周期
一个软件从无到有都经历了什么
软件的生命周期:
需求分析--------计划--------设计--------编码--------测试--------运行维护
开发模型
一、瀑布模型:
- 瀑布模型是其他模型的基础框架,是线性顺序进行的。适用于需求比较稳定,需求变化少的项目,是串行的
优点:
- 强调开发的阶段性
- 强调早期计划及需求
- 强调产品测试
缺点:
- 依赖于早期进行的唯一一次需求,不能适应需求的变化
- 流程单一,开发中的经验教训不能反馈应用于本产品的过程
- 风险性延迟至后期的测试阶段才显露,失去了早纠正的机会
瀑布模型的测试阶段处于软件实现后,这意味着必须在代码完成后,有足够的时间预留给测试活动,否则将导致测试不充分,从而把缺陷之间遗留给用户
瀑布模型的缺点还是比较明显的,不能适应需求的变化,而且程序的风险显露的太晚,不能适应如今的需求
螺旋模型
- 适用于规模大,复杂度高,风险大的项目
它不允许有一段独立的时间测试,测试必须跟随开发的迭代而迭代,因此回归测试的重要性不言而喻
优点:
- 强调严格的过程风险管理
- 强调各开发段的质量;
- 提供机会检讨项目是否有价值继续下去
缺点
- 引入非常严格的风险识别,风险分析和风险控制,这对风险管理的技能水平提出了很高的要求。需要人员、资金和时间的投入
螺旋开发模型,对于过程中的质量和风险管理做得比较好,但是对于管理人员的水平要求较高,投资较大
增量、迭代
- 增量是指一块一块来进行测试、而迭代是指先整体在细化
例如画一幅人物画,用增量就是先画头,再画身体,再画手脚;而迭代是先描绘出一个整体的轮廓,勾勒出基本的雏形,然后再细化,着色
- 增量通常和迭代混为一块,可以降低风险,和螺旋结构相似
增量开发模型,鼓励用户反馈,在每个迭代过程中,促使开发小组以一种循环的、可预测的方式驱动产品的开发,能显著降低项目风险。在这种开发模式下,每一次的迭代都意味着可能有需求的更改、构建出新的可执行软件版本,意味着测试需要频繁进行,测试人员需要与开发人员更加紧密地协作。
敏捷
敏捷
1.敏捷宣言:“人与人沟通、轻文档、用户参与、拥抱变化”
- 个体于交互重于过程和工具(强调“人与人的沟通”)
- 可用的软件重于完备的文档(强调“轻文档”,对文档的依赖性不高)
- 客户协作重于合同谈判(强调“用户参与”)
- 响应变化重于遵循计划(强调“拥抱变化”)
scrum
scunm是敏捷开发模型中比较流行的一种
scrum里面的角色
- product owner(产品经理)----负责整理user story(用户故事),定义其商业价值,对其进行排序,制定发布计划,对产品负责。
- scrum master(项目经理)----负责召开各种会议,协调项目,为研发团队服务。
- team(研发团队)----由不同技能的成员组成,通过紧密协同,完成每一次迭代的目标,交付产品
迭代开发
scrum将产品的开发分解为若干个小sprint(迭代),其周期从1周到4周不等,但一般不会超过4周。参与的团队成员一般是5到9人。每期迭代要完成的user story是固定的。每次迭代会产生一定的交付。
scrum的基本流程
- 产品负责人负责整理user story,形成左侧的product backlog。
- 发布计划会议:product owner负责讲解user story,对其进行估算和排序,发布计划会议的产出就是制定出这一期迭代要完成的story列表,sprint backlog。
- 迭代计划会议:项目团队对每一个story进行任务分解,分解的标准是完成该story的所有任务,每个任务都有明确的负责人,并完成工时的初估计。
- 每日例会:每天scrum master召集站立会议,团队成员回答昨天做了什么今天计划做什么,有什么问题。
- 演示会议:迭代结束之后,召开演示会议,相关人员都受邀参加,团队负责向大家展示本次迭代取得的成果。期间大家的反馈记录下来,由po整理,形成新的story。
- 回顾会议:项目团队对本期迭代进行总结,发现不足,制定改进计划,下一次迭代继续改进,已达到持续改进的效果。
敏捷中的测试
- 测试工作的核心内客是没有变的,就是不断地找Bug,只是要调整好自己的心态,一切以敏捷的原则为主
- 测试人员不能依赖文档,测试用例作用减弱,更多的采用思维导图、探索性测试(强调自由度,设计和执行同时执行,根据测试结果不断调整测试计划)、自动化测试
- 敏捷讲求合作,在敏捷项目组中,测试人员应该更主动点,多向开发人员了解需求、讨论设计、一起研究Bug出现的原因
软件测试V模型:
- 改进软件开发的效率和效果,属于瀑布模型的变种
- 清楚地阐述了测试阶段和开发过程期间阶段的对应关系
- 单元测试和集成测试检测程序的执行是否满足软件设计的要求;
- 系统测试检测系统功能、性能的质量特性是否达到系统要求的指标;
- 验收测试确定软件的实现是否满足用户的要求
V模型有一定的局限性,它仅仅把测试作为编码后的一个阶段,未在需求阶段就引入测试
软件测试W模型:
W模型增加了软件个开发阶段中应该同步进行的验证和确认活动。W模型由两个V模型组成,代表了测试和开发的并行关系
特点:
- 需求、设计也要经过测试。
- 测试与发开同步进行
优点:
- 尽早地,全面的发现问题,早早找出缺陷所在。
- 即时了解项目难度和测试风险,尽早制定措施,显著减少总体测试时间,加快项目进度。
局限性:
- 需求、设计、编码等活动被视为串行的;
后续复习到的我会继续补充