一、测试基础概念
1.什么是需求?
需求是实现用户的期望或者满足文档(合同、标准)所需要的条件或者权限
2.需求包括用户需求和软件需求:
(1)用户需求:粗略概括
(2)软件需求:从用户需求转化而来,是用户需求的细化和具体实现细节
用户需求比较粗略,实现有困难,软件需求就是把用户需求细节实现和规划,把用户需求变成一个具体得可实现的过程文档
3.软件测试人员如何深入了解需求?
从需求分析阶段就开始介入了解需求,站在用户需求的角度
4.什么是测试用例
测试用例是向被测系统发起的一组集合,包含测试环境,测试数据,测试步骤,预期结果
5.写测试用例有什么优点
(1)可以衡量需求的覆盖率
(2)放置遗漏测试需求
(3)有复用性,具有借鉴意义
(4)可以用于回归测试
6.什么是BUG(软件错误)?
程序规格说明书(软件需求)存在并合理,如果软件功能和软禁规格说明书不相符合,说明软件错误;当软件需求不存在时,用户需求存在并合理,软件功能和用户需求不符合,说明软件错误。
7.软件的开发的生命周期
需求分析–计划–设计–开发–测试–运行维护
二、开发模型
1.瀑布模型
(1)以过程为中心,流水线工作方式
(2)重视和强调过程文档,主要通过文档来进行沟通
(3)线性模式,缺少迭代与反馈
(3)用户直到产品发布才能看到是不是自己想要的,最终成品与需求的偏差率相对较大。
特点:
阶段性强,每一个阶段比较独立;看重前期的需求分析和后期的测试。
缺点:
测试在编码后,倒置前期的问题后期才发现,不容易补救
2.螺旋模型
适合于项目庞大,风险大,不是很明确的项目
特点:强调每一个迭代的测试质量和风险分析,抗风险能力最强
缺点:风险管控人力物理耗费多,成本大
3.增量模型
一个系统的4个模块:A B C D
有两周的时间
第一周开发A B功能模块
第二周开发C D功能模块
首先有一个完整的可交付的系统,然后随着改变和更新,每次增量都会产出一个可交付成果,也就是在每次进行增量模型时,都会对原产品进行改进。
特点:抗风险能力强
4.迭代模型
一个系统的4个模块:A B C D
有两周的时间
第一周开发A B C D的基础功能
第二周在第一周的基础上开发其他模型
特点:抗风险能力强,可以及时调整
5.敏捷模型(拥抱变化)
个体和互动 高于 流程和工具
工作的软件 高于 详尽的文档
客户合作 高于 合同谈判
响应变化 高于 遵循计划
特点:轻文档,轻流程,重目标,重产出
敏捷方法普遍依赖迭代方法来完成软件研发,其目标是减少开发过程中烦琐多余的部分,通过避免那些从长远看未必有用的工作和减少可能永远都不会被用到的文档的方法达到目的。
scrum流程:
Product Owner:PO,产品经理,把用户需求转化为user story
Scrum Master:SM,项目经理,管理整个团队,负责敏捷流程顺利实施
Scrum team:ST,不同技能的人组成的小组,开发产品
步骤:
(1)发布计划会议:产品经理收集需求形成user story,讲解
(2)迭代计划会议:分析会议故事,把user story分解成一个个任务,分配给开发人员,制定计划
(3)每日站会:昨天干了什么,遇到什么问题,今天的计划
(4)产品演示会议:演示产品,PO把不足的地方收集成user story,下一次迭代改进
(5)回顾计划会议:会议整个迭代过程,找出不足,在下一次迭代中改进,优化敏捷流程
6.测试模型
(1)V模型
特点:每一个阶段的独立性强, 左边每一个阶段是右边测试阶段的依据
缺点:编码后才进行测试,前期的错误后期才会发现
(2)W模型
特点:每一个阶段独立性强,测试可开发同时进行,保证问题及时发现和纠正
缺点:一个阶段结束后才进行下一个阶段,不支持敏捷开发,需求不可以随时改变