目录
概念
一、需求
用户需求
甲方爸爸提出的要求,总而言之就是一句话(比如:我想买衣服)
软件需求
又叫功能需求,详细描述开发人员必须实现的功能,是测试人员进行测试工作的基本依据(想买什么衣服、在哪里去买、怎么买...)
二、开发模型
软件的生命周期
需求分析——计划——设计——编码——测试——运行维护
【类比建造房子,有合适的建房目标,再计划好时间,设计具体的建房流程,开始建造,建造完成之后检查,最后使用并维护】
常见开发模型
1、瀑布模型
瀑布模型是其他模型的基础框架,由于其形状像瀑布,所以被称为瀑布
特点:
每个阶段都只执行一次,因此是线性结构的软件开发模式
是其他模型的基础框架
缺点:
周期太长,可能会导致需求或功能过时
测试后置,前面各阶段遗留的风险推迟到测试阶段才被发现,会导致项目大面积复工,失去及时修复的机会;必须留有足够的时间给测试活动,否则导致测试不充分,产品质量过差
适用场景:需求固定的小项目
2、螺旋模型
渐进式开发模式,测试会随着开发的迭代而迭代
特点:
各个阶段都增加了风险分析和原型(减少各阶段遗留下来的风险问题)
强调了各开发阶段的质量
强调严格的全过程风险管理
缺点:
项目中可能存在的风险性与风险管理人员的技能水平直接挂钩
增加了时间和成本
适用场景:规模大、风险高、复杂度高的项目
3、增量模型、迭代模型
增量模型
迭代模型
两者区别:增量是逐步建造的概念,迭代是反复求精的概念
适用场景:大型项目,需求不明确【通常不单独使用,配合其他开发模型】
4、敏捷模型(主流)
为了处理项目开发期间客户的变更请求以及合并这些变更所需的高成本和时间
特点:轻文档、轻流程、重目标、重产出
scrum是敏捷模型中的一种,又称为迭代式增量软件开发模型
三个角色:产品经理(制定计划)、项目经理(召开各种会议,协调团队)、研发团队(不同技能成员组成)
五个重要会议:
发布计划会议:产品经理制定需求列表
迭代计划会议:项目团队对需求进行分解,并计划估计完成时间
每日会议:周期内每天项目经理召集站立会议,成员回答昨天做了什么明天计划做什么有什么问题
演示会议:展示成果
回顾会议:进行总结
图片参考:【软件工程】几种常见的软件开发模型:(瀑布模型,快速原型模型,增量模型,螺旋模型,喷泉模型)模型的概念特点优点缺点和不同。 - 渐若窥宏大 - 博客园 (cnblogs.com)
三、测试模型
V模型
明确标注了测试过程中存在的不同类型的测试
也有明显缺点:把测试放在编码后的一个阶段,未在需求阶段就介入测试会导致测试后置,周期过长
W模型
特点:测试对象不仅是程序,需求、设计等同样要测试,测试与开发同步,可以尽早的全面的发现问题
缺点:测试和开发是线性的前后关系,重流程,无法支持敏捷模型
测试模型和开发模型区别:
其实两者无太大的区别,有些人是将这些都分为开发模型,我分成两种模型类型主要是因为开发模型侧重在开发层面,V模型和W模型都侧重测试
BUG
一、软件测试的生命周期
和软件生命周期类似,但也要区分开来
软件测试贯穿于软件的整个生命周期
需求分析——>测试计划——>测试设计与开发——>测试执行——>测试评估——>上线——>运行维护
各阶段都有具体内容,在此不一一赘述
二、BUG
1、测试中bug的概念
当且仅当需求文档是存在且正确,程序与规格说明之间的不匹配才是错误的
当程序没有实现其最终用户合理预期的功能要求时,就是软件错误
2、描述bug的要素
问题出现的版本、问题出现的环境、问题出现的步骤、预期结果、实际结果
3、bug级别
崩溃、严重。一般、次要