1.软件开发
生命周期:需求分析,计划,设计,编码,测试,运行维护
1.1瀑布模型:
优点:–强调开发的阶段性; –强调早期计划及需求调查; –强调产品测试
缺点:–风险往往迟至后期的测试阶段才显露,因而失去及早纠正的机会
瀑布模型的一个最大缺陷在于,可以运行的产品很迟才能被看到
1.2螺旋模型:
缺点:对风险管理的技能提出了很高的要求,需要人力,资金,时间的投入
优点:强调风险把控;开发阶段的质量
场景:规模庞大,复杂度高、风险大的项目尤其适合。
1.3增量模型,迭代模型:
一个系统 ,开发A B C D 业务模块,两周时间
增量模型: 逐块建造 第一周:A B 两个业务模块功能做完;第二周:C D两个功能模块完成
迭代模型: 先基础,再细化 第一周:A B C D四个业务模块的基础功能;第二周:补充完成复杂的的业务模型
优点:抗风险能力强,迭代模型>增量模型
1.4敏捷模型(scrum):
scrum的角色:
PO product owner:产品经理 ; 客户的代表,和客户沟通,把客户的需求转化为user story
SM scrum master:项目经理;scrum流程的保障者,组织,主持各种会议
ST scrum Team:各种技能的人员组成,完成迭代的目标
流程:发布计划会议,迭代计划会议,每日站会(昨天做了什么;碰到了什么问题;今天的计划是什么),演示会议,回顾会议(不断地优化流程)
特点:明确的标注了测试过程中存在的不同类型的测试,并且清楚的描述了这些测试阶段和开发过程期间各阶段的
发布计划会议:PO会把user story 进行排版,确定本期迭代的user story
迭代计划会议:
SM和ST对user story 进行排版,形成小的任务,确定具体的来发人员和完成时间
每日例会:昨天完成了什么,遇到什么问题,今天的计划是什么
演示会议:向用户演示迭代的成果,PO把用户的建议整理成user story 放到下一次迭代当中
回顾会议:回顾本次迭代,对不好的地方进行改进,好的地方运用到下一次的迭代当中
敏捷中的测试:
特点:轻文档 , 轻流程 ,重目标 ,重产出
拥抱变化
削弱了测试用例的作用,进行探索性测试(思维导图)
2.软件测试
生命周期:
需求分析–测试计划—测试开发,测试设计—测试执行—测试报告
软件测试模型:
2.1V模型:
特点/优点:后期测试的每一个阶段对应前期开发的阶段,有明确的测试依据
缺点:不利于项目前期风险的及时发现
2.2w模型(双v模型):
特点:
测试的对象不仅仅是程序,还有需求,设计等
测试与开发的并行关系。
优点:有利于项目前期的问题及时发现,避免造成开发完成之后才发现前期的问题
缺点:阶段性比较强(上一阶段完成,才能开始下一阶段);不适用于敏捷开发