软件测试:基础篇
软件测试:基础篇
本节主要内容
- 软件测试的生命周期
- 如何描述一个bug
- 如何定义bug的级别
- bug的生命周期
- 如何开始第一次测试
- 测试的执行和bug的发现
- 产生争执怎么办
软件测试的生命周期
软件测试的生命周期生命周期
需求阶段 —> 测试计划 —> 测试设计、测试开发 —> 测试执行 —> 测试评估
每个测试阶段的分析
- 需求阶段
-测试人员了解需求、对需求进行分解,得出测试需求。
- 计划阶段
-根据需求编写测试计划、测试方案。
- 设计阶段
-测试人员适当的了解设计,对于设计测试用例是很有帮助的,测试人员搭建测试用例框架,根据需求和设计,编写一部分测试用例。编写测试用例的同时也是对需求进行的一个测试。
- 编码阶段
-测试人员一般是不需要编码的,但已经编码的模块,专业的白盒测试人员可以计划执行单元测试,完善、细化测试用例以及调整测试计划和方案。
- 测试阶段
-测试阶段是软件测试人员最为重要的工作阶段,根据测试用例和计划执行测试,在执行的过程中记录、管理缺陷,测试完成后编写测试报告。编写测试报告是为了对缺陷进行分析。
- 运行维护
-测试人员需要参与项目的实施工作。
一个合格的 bug 描述应包括哪些部分
应包括以下部分:
1. 发现问题的版本
开发人员需要知道出现问题的版本,才能够获取对应版本的代码来重现故障。并且版本的标识也有利于统计和分析每个版本的质量。
2. 问题出现的环境
环境分为硬件环境和软件环境,如果是web项目,需要描述浏览器版本,客户机操作系统等,如果是app项目,需要描述型、分辨率、操作系统版本等。详细的环境描述有利于故障的定位。
3. 错误重现的步骤
描述问题重现的最短步骤。
4. 预期行为的描述
要让开发人员指导怎么样才是正确的,尤其要以用户的角度来描述程序的行为是怎样的。如果是依据需求提出的故障,能写明需求的来源是最好的。
5. 错误行为的描述
描述错误的现象。crash等可以上传log,UI问题可以有截图。
6. 不要把多个bug放到一起
在无法确认是同一段代码造成的故障时,不要将bug放在一起提交
如何定义bug的级别
bug的定义每个公司都不一致,在定义级别之前需要查看公司规范。
举例:
1. Blocker(崩溃):
阻碍开发和测试工作的问题;造成系统崩溃、死机、死循环,导致数据库丢失主要功能丧失,基本模块缺失等问题。 如:代码错误、死循环、数据库发生死锁、重要的一级菜单功能不能使用等。
2. Critical(严重):
系统主要功能部分缺失、一级功能菜单不能使用但是不影响其他功能的测试。功能设计与需求严重不符,模块无法启动或调用,程序重启、自动退出,关联程序间调用冲突,安全问题、稳定性等。(该等级问题出现在不影响其他功能测试的情况下可以继续该版本测试)。
3. Major(一般):
功能没有完全实现但是不影响使用,功能菜单存在缺陷但不会影响系统稳定性。如:操作时间长、查询时间长、格式错误、边界条件错误,删除没有确认框、数据库表中字段过多等(该问题实际测试中存在最多)。
4. Minor(次要):
如:错别字、界面格式不规范,
页面显示重叠、不该显示的要隐藏,描述不清楚,提示语丢失,文字排列不整齐,光标位置不正确,用户体验感受不好,可以优化性能的方案等(此类问题在测试初期较多,优先程度较低;在测试后期出现较少,应及时处理)。
最后,测试人员将出现的以上缺陷全部提交到缺陷管理系统上。
有些公司将bug的级别定义为A、B、C、D、E这5种。
bug 的生命周期
即从出现到消亡的过程。
测试人员应该跟踪一个bug的整个生命周期,从New到Closed的所有状态。
BUG状态转换图
- New:新发现的Bug,交给指派的开发人员进行相应的修改。
- Open:开发负责人确认是Bug,并且认为需要修改,指派给相应的开发人员。
- Fixed:开发人员进行修改后标示成修改状态,有待测试人员的回归测试验证。
- Rejected:如果认为不是Bug,则拒绝修改。
- Delay:如果认为暂时不需要修改或暂时不能修改,则延后修改。
- Closed:修改Bug的状态经测试人员的回归测试通过后,关闭Bug。
- Reopen:如果经验证的Bug仍然存在,则需要重新打开Bug,开发人员重新修改。
如何开始第一次测试
准备工作
1. 阅读所有项目有关的文档(需求文档、设计文档、用户手册)。
2. 了解项目的背景、人员组成、尽可能的了解需求和业务。
3. 熟悉项目所使用的测试管理工具、配置管理工具,获取对应的地址和登录方式。
4. 阅读已有的测试方案和测试用例。
5. 阅读旧有的bug库,了解系统功能。
6. 了解公司的规范要求,特别是用例编写规范、用例执行规范、bug提交规范、测试工具工具使用规范等。
确认具体的工作内容(向测试组长)
1. 测试计划是什么?
2. 测试内容是什么?时间?
3. 我要测试的内容开发人员是谁?需求人员是谁?
4. 我的测试内容是否需要特殊的测试资源?资源是否满足?
测试执行和BUG管理
开始测试
1. 打开测试管理工具用例模块,开始执行用例;
2. 发现bug,进行复现并确认bug的复现步骤;
3. 记录bug;
4. 沟通bug;
5. 验证已提交的bug;
6. 确认本次测试完成;
7. 编写测试报告。
发现bug
1. 软件测试同样存在二八原则,80%的故障集中于20%的模块,如果某部分问题较多,加强测试广度和深度!
2. 开发人员也存在二八原则,80%的故障集中于20%的开发人员,如果某些开发人员的bug较多,加强他开发模块的测试广度和深度!
3. 多进行逆向思维和发散性的思维。
4. 不要局限于用例和需求文档。
5. 尽早介入项目。
产生争执怎么办
在测试过程中,最常遇到的是和开发人员的PK,
作为一名测试人员,一般会遇到以下集中情况:
- 这个不是bug
- 这个bug的级别太高了
- bug影响不大,暂不修改
遇到争执时不要怕,做法有:
1. 先检查自身,bug描述的是否不清楚。
2. 站在用户角度考虑问题,应该让开发人员了解到bug对用户可能造成的困扰,这样才能促使开发人员更加积极地、高质量地修改bug。
3. bug定级要有理有据:BUG定级时,不仅要参考BUG级别,还要考虑BUG是否会影响到流程,往往用户的BUG级别和我们的是有区别的,需站在用户的角度定考虑定位级别。
4. 提高自身的技术和业务水平:不光要提出问题,最好也能提出解决方案。
5. 开发人员不接受时,不要争吵:可能你已经经过了多轮沟通,但是开发人员仍然拒不接受,此时可以发起bug评审。
缺陷的评审应该包括以下两个层面:
- 决定如何处理bug。
1. 参加该评审不可或缺的是测试代表、开发代表、产品代表。
测试代表主要从Bug的具体表现、严重程度等方面提供信息,并提出自己对Bug的处理意见。
2. 开发代表开发代表主要从修改缺陷的难度和风险出发,考虑缺陷修改需要付出的代价,以及可能影响的范围、可能引发的风险等,如果决定要修改,还要讨论出修改的初步方案。
3. 产品代表主要从产品的整体计划、用户的要求等方面对缺陷的修改必要性、缺陷修改的时间和版本提出自己的意见。
- 分析缺陷产生的原因,制定出预防的对策。
上一篇: null和undefined相等比较
推荐阅读
-
Mysql入门基础 数据库创建篇
-
Java基础篇_有关接口和抽象类的几道练习题(分享)
-
Python基础篇之初识Python必看攻略
-
如何用imatest测分辨率 imatest软件测试分辨率图文教程
-
Ehcache 3.7文档—基础篇—Tiering Options
-
Ehcache 3.7文档—基础篇—XML Configuration
-
Ehcache 3.7文档—基础篇—GettingStarted
-
Microsoft .Net Remoting系列教程之一:.Net Remoting基础篇
-
如何使用mouse rate checker(鼠标灵敏度检测)软件测试鼠标回报率?mouse rate checker
-
mysql 读写分离(基础篇)