目录
1.软件测试的生命周期
在学习bug前,我们先来学习一下软件测试的生命周期,也就是测试人员进行测试的阶段,因而会测试出很多bug。而软件测试的生命周期贯穿软件的整个生命周期
1.1.软件测试阶段流程
下面这几步,就是软件测试的生命周期,也是测试需要经历的阶段
1.2.各流程的任务
(1)需求分析
要测试软件,就需要提前知道软件的需求是啥,才能更方便后续的测试任务和工作,主要有这三方面
- 用户角度:软件需求是否合理
- 技术角度:技术上是否可行,是否还有优化空间
- 测试角度:是否存在业务逻辑错误、冗余、冲突等问题
(2)测试计划
作为测试人员,我们要明确测试的时间。也就是需要指定测试计划,比如:
- 什么时候开发测试
- 什么时候结束测试
- 总共耗时多少
(3)测试设计
这个阶段,就需要参考需求文档、技术文档进行编写测试用例。对于测试用例,需要明确标注使用到的测试方法、测试工具和测试形式等
(4)测试执行
该阶段就是使用写好的测试设计对软件进行测试,尽可能对项目做到全面覆盖的测试
(5)上线
在项目测试结束阶段,就需要将项目发布到线上环境,测试人员全程跟踪并测试,实际的发布一般分为三个步骤:
- 沙盒:上线到企业内部的线上环境,仅供内部人员进行测试
- 小流量:只有部分线上真实的用户可以使用到,测试人员还需要在线上手动测试,观察是否有错误日志
- 全流量:这个阶段才是项目全部上线完成的阶段
(6)运行维护
对这个项目进行总结,测试人员需要演示产品/软件
2.什么是bug
这里介绍的bug,不仅仅是写代码时产生的bug,更是测试阶段发现的
2.1.bug的概念
(1)普通bug
⼀个计算机bug指在计算机程序中存在的⼀个错误(error)、缺陷(flaw)、疏忽(mistake)或者故障(fault),这些bug使程序⽆法正确的运⾏。Bug产⽣于程序的源代码或者程序设计阶段的疏忽或者错误。
(2)对于测试来说的bug
- 当且仅当规格说明是存在的并且正确,程序于规格说明之间的不匹配才是错误
- 程序没有实现最终用户合理预期的功能要求时,就是软件错误
一句话就是:任何不符合用户产品需求的功能就是bug
2.2.怎么描述bug
既然我们已经了解到什么是bug,那怎么将bug合理正确的描述给开发人员呢?
(1)描述bug的基本要素
- 问题出现的版本:比如使用某某浏览器打开某个网址,就需要描述该浏览器的版本号和网站的版本号
- 问题出现的环境:使用什么设备打开,就要描述该设备的环境,比如是windows某某版本等
- 问题出现的步骤:描述产生bug的步骤,方便后续开发人员复现bug
- 预期结果:如果没有产生bug的结果是什么样的
- 实际结果:产生了bug的时候结果是什么样的
(2)举例
我今天使用windows 8的电脑在 38浏览器中打开一个学习网址,但是画面只展示一般
1)出现问题的版本:38浏览器的版本号、学习网址的版本号
2)问题出现的环境:windows 8
3)问题出现的步骤:先是电脑连接上网络、打开浏览器、在导航栏输入网址域名回车、最后出现的bug
4)预期结果:应该是展示完整的页面
5)实际结果:只展示一半的页面
2.3.bug的级别
为什么会有bug级别,两个原因:一方面是评估程序员的开发能力,另一方面是给修复bug排序
(1)bug的基础等级定义为:崩溃、严重、一般、次要
在不同的公司,都有自己的一份“bug级别描述文档”,里面更加准确的定义了bug的等级
(2)出现的最严重bug级别一般为“严重”,这种bug都会马上进行处理;而对于“次要”级别的bug,一般是最后面才会进行处理,如果时间不够,就直接舍弃
2.4.bug的生命周期
对于bug来说,也是有生命周期的,如下流程图:
我们解释一下: