目录
1、衡量软件测试的结果——需求
首先我们要明白软件是怎么诞生的,软件的诞生正是由于需求,有了需求,才会开始开发
这里我们需要知道需求分为:市场需求、用户需求、甲方(买软件的人)
那么什么是需求呢?
需求就是满足用户的期望或者规定的文档(合同、标准、规范)所需要的条件或者权限,它分为用户需求和软件需求
用户需求是简略的,软件需求是用户需求的细化,是具体的实现细节,然后成文档
软件需求是用户需求转化而来的
需求是软件测试人员进行测试工作的依据
2、测试用例的概念
测试用例是向被测试系统发起的一组集合,这组集合包括测试环境,测试数据,测试步骤,预期结果;标题,重要性,功能模块,优先级,是否手工等等
3、什么是bug
当且仅当软件需求规格说明书(软件需求文档)存在并且合理,软件的功能不符合规格说明书,就是软件错误(BUG);
如果软件需求规格说明书(软件需求文档)不存在,用户的需求存在并且合理,软件的功能和用户的需求不符合就是软件错误(BUG)。
4、软件开发的五大模型和软件测试的两大模型
软件开发的生命周期:
需求分析——计划——设计——编码——测试——运行维护
(1)软件开发的五大模型
瀑布模型
start——需求分析——计划——设计——编码——测试——End
特点:每一个阶段比较独立,串行
注重前期分析需求,后期系统测试
缺点:测试介入晚,导致项目前期的问题,后期测试阶段才发现,失去了错误及时修正的机会, 不能够响应需求的变化
螺旋模型
适合项目庞大、复杂、风险性高的项目
特点:注重质量管理,每一次迭代都会进行风险分析
缺点:风险分析投入人力、资源、管理成本,成本较高
增量模型
迭代模型
增量模型和迭代模型的特点是抗风险能力比较强
敏捷模型
敏捷模型其实是一个开发流程
它的特点是轻文档、轻流程、重目标、重产出、响应变化
经典的敏捷流程:srcum流程
角色:
PO:product owner ,产品经理,负责收集需求,转化成user story
SM:srcum master ,项目经理,负责保证这个敏捷流程的实施
ST:研发团队,各种技能的研发人员组成,如测试、研发、UI设计师等,开发迭代,按期交付一个高质量可用的软件
发布计划会议:PO把整理好的user story进行讲解,排优先级,找出优先级高的组成本次的迭代内容,形成sprint backlog
迭代计划会议:SM和ST人员一起把本期要迭代的需求进行分析,任务分配和时间估算
每日站会:昨天做了什么,遇到的问题,今天的计划
产品演示会议:给客户演示产品,讲解,把不足的地方和客户提出的修改意见整理成user story放到下一期迭代
回顾会议:回顾本次敏捷流程,把不好的地方找出来,下次迭代改进,优化敏捷流程
(2)软件测试的两大模型
V模型
特点:左边的每一个阶段与右边的阶段一一对应
左边的每个阶段是右边每一个测试阶段的依据
串行,它是瀑布模型的变种
缺点:测试在编码之后进行,测试介入晚,前期的问题后期才发现,导致前期问题不能及时解决
W模型
因为长得像两个V,因此也叫双V模型
特点: 开发一个V,软件测试一个V
软件开发的过程和软件测试同步进行,保证项目前期的问题能够及时被发现
串行
缺点:不支持敏捷开发