目录
1. 初识软件测试
1.1 什么是软件测试
1.2 软件测试和软件开发的区别
1.3 软件测试与调试的区别
2. 什么是需求
3. 认识测试用例
3.1 测试用例的概念
3.2 为什么要设计测试用例
4. 关于BUG的常见问题
4.1 什么是BUG
4.2 如何描述一个BUG
4.3 BUG的生命周期
4.4 BUG的级别
4.5 因为BUG和开发人员发生冲突的解决方法
5. 软件开发和测试的生命周期
6. 开发模型
6.1 瀑布模型
6.2 螺旋模型
6.3 增量模型,迭代模型
6.4 敏捷开发模型
7. 测试模型
7.1 V模型
7.2 W模型(双V模型)
8. 一个优秀的软件测试人员所具备的素质
软件测试就是验证软件的功能是否满足用户的需求,通俗的讲就是找BUG,找软件的缺陷
软件测试的特点:软件测试只是一个样本实验,具有不可穷尽性
软件测试:软件测试是验证软件功能是否满足用户的需求
软件开发:软件开发是将用户的需求采用编码的方式制作成软件(小程序,网站等)
软件测试:技能要求比较广泛(业务能力,测试手段和工具的使用,用户模型分析和理解等),但技能要求专业度不高
软件开发:技能要求的专业度高,但技能要求不广泛(如C++开发,Java开发等会一个即可)
软件测试:是验证软件是否实现了用户的需求
软件调试:是软件开发人员验证软件是否实现了他想让软件实现的功能
软件测试:是由开发人员(白盒测试)和测试人员共同完成的
软件调试:仅仅由开发人员完成
软件测试:贯穿了整个软件开发的生命周期(需求,计划,设计,编码,测试,运行维护)
软件调试:仅仅是在开发阶段
需求就是用户的期望或者满足合同(文档,标准,规范)所需要的条件或者权限
需求包含了两个方面:
说明:软件需求是测试人员进行测试工作的基本依据
软件测试人员如何深入了解需求?
测试用例就是向被测试系统发起的一组集合,包含测试环境,测试数据,测试步骤,预期结果
示例:
当且仅当程序规格说明书(软件需求)存在并合理,如果软件功能和软件需求不符合,就说是软件错误(BUG)
当软件需求不存在,用户需求存在并合理,软件功能和用户功能不符合,就说是软件错误
对于如何描述一个BUG,可以从以下几点来进行描述
一个BUG从无到有的各种状态
问题:如果发现了一个BUG,开发人员修改了,但是测试人员又复现了这个BUG,是哪些原因可能导致的?
软件开发的生命周期
软件测试的生命周期(软件测试的流程)
特点:阶段性强,每一个阶段比较独立,看重前期的需求分析和后期的测试阶段
缺点:测试在编码后才开始介入,导致前期的问题到后期才发现,失去错误补救机会
螺旋模型适合项目庞大,前期风险大,不是很明确的项目
特点:强调每一个迭代的测试质量和风险分析,抗风险能力很强
缺点:风险管控人力物力投入多,成本较大
比如同一个系统四个模块A,B ,C,D要花两周开发完
特点:抗风险能力强
说明:通常开发将两个模型结合使用,在迭代的基础上使用增量
特点:轻文档,轻流程,重目标,重产出,拥抱变化(用户可以随时更改需求)
敏捷开发有很多方式,scrum是比较流行的一种
scrum里的角色
scrum由产品经理(product owner),项目经理(scrum master),研发团队(team)组成
scrum的基本流程
特点:每一个阶段独立性强,左边每一个阶段是右边测试阶段的依据,和右边每一个测试阶段一一对应
缺点:瀑布模型的变种,编码后才进行测试,前期的错误后期才发现,会失去错误及时补救机会
特点:每一个阶段独立性强,测试一开始就介入,可以保证前期的问题及时发现和纠正,测试和开发是并行的
缺点:每一个阶段都是串行的过程,一个阶段完了之后就会进行下一个阶段
V模型和W模型都不支持敏捷开发