目录
前言:
1.软件测试的生命周期
2.如何描述一个BUG
3.如何定义BUG的级别
4.BUG的生命周期
5.如何开始第一次测试
6.测试执行和BUG管理
结束语:
前言:
在两节中小编与大家简单的讲解了一些有关于软件测试的基础知识,带着大家一起进入了测试的大门,那么从这节开始我将正式敲开软件测试的大门,带着大家一起感受软件测试的魅力。
1.软件测试的生命周期
软件测试的生命周期:需求分析——>测试计划——>测试设计、测试开发——>测试执行——>测试评估
详解:
- 需求分析:分析需求是否完整,需求是否正确。
- 测试计划:确定软件是由谁测试什么时候开始测试,测试哪些模块。
- 测试设计、测试开发:写测试用例(手动测试用例、自动化测试用例),编写测试工具。
- 测试执行:执行测试用例。
- 测试评估:由测试人员产生一份测试报告。
那么软件测试&软件开发生命周期如下所示:
- 需求阶段:测试人员了解需求,对需求进行分解,得出测试需求。
- 计划阶段:根据需求编写测试计划/测试方案。
- 设计阶段:测试人员适当的了解设计,对于设计测试用例 是很有帮助的,测试人员搭建测试用例框架,根据需求和设计编写一部分测试用例。
- 编码阶段:测试人员一般是不需要编码的,但已经编码的模块,专业的白盒测试人员可以计划执行单元测试、完善、细化测试用例以及调整测试计划和方案。
- 测试阶段:测试阶段是软件测试人员最为重要的工作阶段,根据测试用例和计划执行测试,在执行的过程中记录、管理缺陷、测试完成后编写测试报告。
- 运行维护:测试人员需要参与项目的实施工作,测试人员对项目产品的业务操作要非常了解,加上测试人员的沟通表达能力一般比较强,所以测试人员可以参与用户使用软件的培训,在试运行项目时收集问题并及时反馈给相关的负责人。
2.如何描述一个BUG
那么在测试中我们最重要的就是要会进行一个BUG的一个描述,那么一个合格的BUG描述应该包含以下几个部分:
- 发现问题的版本:开发人员需要知道问题的版本,才能够获取对应版本的代码来重现故障。并且版本的标识也有利于统计和分析每个版本的质量。
- 问题出现的环境:环境分为硬件环境和软件环境,如果是web项目,需要描述浏览器版本,客户机操作系统等,如果是APP项目,需要描述机型、分辨率、操作系统版本等。详细的环境描述有利于故障的定位。
- 错误重现的步骤:描述问题重现的最短步骤。
- 预期行为的描述:要让开发人员知道咋样才是正确的,尤其要以用户的角度来描述程序的行为是怎么样的,如果是依据需求提出的故障,能写明需求来源是最好的。要相信测试人员是最懂需求的。
- 错误行为的描述:描述错误的现象,crash等可以上传log,UI问题可以有截图。
- 其他:某些公司会有一些其他的要求,例如故障的分类:功能故障,界面故障,兼容性故障等。有些有优先级的分类,严重影响测试需要开发人员优先修改的,可以设置优先级为高。
- 不要把多个BUG放在一起:在无法确认是同一段代码造成故障时,不要将bug放在一起提交。
3.如何定义BUG的级别
bug的级别定义每个公司都是不一致的,在定义级别之前需要查看公司规范。
Blocker(崩溃):阻碍开发或测试工作的问题;造成系统崩溃、死机、死循环,导致数据库丢失,与数据库连接错误,主要功能丧失,基本模块缺失等问题,如:代码错误、死循环、数据库发生死锁、重要的一级菜单功能不能使用等(该问题在测试中比较常出现,一旦出现应立即中止当前的版本的测试)。
Critical(严重):系统主要功能部分丧失、数据库保存调用错误、用户数据丢失,一级功能菜单不能使用但是不影响其他功能的测试。功能设计与需求严重不符,模块无法启动或调用,程序重启,自动退出,关联程序调用冲突,安全问题、稳定性等。如:软件中数据保存后数据库中显示错误,用户所要求的功能缺失,程序接口错误,数值计算统计错误等(该等级问题出现在不影响其他功能测试的情况下可以继续该版本测试)。
Major(一般):功能没有完全实现但是不影响使用,功能菜单存在缺陷但不会影响系统稳定性。如:操作时间长、查询时间长、格式错误、边界条件错误、删除没有确认框、数据库表中字段过多等(该问题实际过程中存在最多)。
Minor(次要):界面、性能缺陷,建议类问题,不影响操作功能的执行,可以优化性能的方案等。如:错别字、界面格式不规范,页面显示重叠、不该显示的要隐藏,描述不清楚,提示语丢失,文字排列不整齐,光标位置不正确,用户体验感受不好,可以优化性能的方案等(此类问题在测试初期较多,优先程序低;在测试后期出现较少,应及时处理)。
4.BUG的生命周期
每个公司、每一个工具对bug生命周期的定义都是不一致的,下面仅是一个常见的例子。
测试人员应该跟踪一个bug的整个生命周期,从Open到Closed的所有状态。
下面是一个bug状态转换图:
解释:
- New:新发现的bug,未经评审决定是否指派给开发人员进行修改。
- Open:确认是bug,并且认为需要进行修改,指派给相应的开发人员。
- Fixed:开发人员进行修改后标识成修改状态,有待测试人员的回归测试验证。
- Rejected:如果认为不是bug,则拒绝修改。
- Delay:如果认为暂时不需要修改或者是暂时不能修改,则延后修改。
- Closeed:修改状态的bug经测试人员回归测试验证通过之后,则关闭bug。
- Reopen:如果经验证bug任然存在,则需要重新打开bug,开发人员重新修改。
无效的bug:open——>closed 有效的:open——>rejected——>closed
bug的跟踪以及状态变更应该遵循的一些基本原则:
- 测试人员对每一个缺陷的修改必须重新取一个包含更改后的代码的新版本进行回归测试,确保相同的问题不再出现,才能关闭缺陷。
- 对于拒绝修改和延迟修改的bug,需要经过包含测试人员代表和开发人员代表、用户方面的代表(或代表用户角度的人)的评审。
5.如何开始第一次测试
作为一个菜鸟进入到测试团队开始第一次测试的时候,我们需要做很多准备:
- 充分的理解需求:包含文档(产品文档 + 技术文档),项目功能问题产品问题,问开发模块底层如何实现。
- 确定测试计划。
- 执行测试:记住bug开发修复之后一定要验收。
- 项目上线+维护。
6.测试执行和BUG管理
现在我们就开始测试了:
- 打开待测试的系统。
- 打开测试管理工具用例模块,开始执行用例。
- 发现bug!进行复现并确认bug的复现步骤。
- 记录bug。
- 沟通bug。
- 验证以前提前提交的bug。
- 确认本次测试完成。
- 编写测试报告。
执行测试是处理要做到测试用例和需求的覆盖外,还要有临时发挥的能力,根据自己的经验,对测试的感悟以及随机测试可以发现很多根据测试用例无法发现的缺陷。
那么我们要如何发现更多的bug呢?下面给大家提几点小意见。
- 软件测试同样存在二八原则,80%的故障集中于20%的模块,如果某个部分问题比较多,那就加强测试的深度。
- 开发人员也存在二八原则,80%的故障集中于20%的开发人员,如果某些开发人员的bug较多,加强它开发模块的测试广度和深度。
- 多进行逆向思维和发散性思维。
- 不要局限于用例和需求文档。
- 尽早的介入项目,不要等到开发的差不多了再介入项目。
结束语:
好了,这节小编就与大家分享到这里啦!后期中小编还会继续细细给大家讲解的,大家记得点赞+收藏哦!大家继续跟紧小编的步伐,一起往前冲!!!希望这节对大家认识测试有一定的帮助,想要学习的同学记得关注小编和小编一起学习吧!如果文章中有任何错误也欢迎各位大佬及时为小编指点迷津(在此小编先谢过各位大佬啦!)