测试----关于Bug

软件测试的生命周期

需求分析—测试计划—测试设计、测试开发—测试执行—测试评估

软件测试和软件开发生命周期

需求阶段—计划阶段—设计阶段—编码阶段—测试阶段—运行维护

如何描述一个Bug

一个合格的bug描述应该包括以下几个部分:
  • 1.发现问题的版本
    开发人员需要知道出现错误的版本,才能获取对应版本的代码来重现故障

  • 2.问题出现的环境
    详细的环境描述有利于故障的定位。如果是web项目,需要描述浏览器的版本、客户机操作系统等,如果是app项目,需要描述机型、分辨率、操作系统版本等

  • 3.错误重现的步骤
    描述问题重现的最短步骤

  • 4.预期行为的描述
    要让开发人员知道怎样才是正确的,尤其要以用户的角度来描述程序的行为是怎样的

  • 5.错误行为的描述
    描述错误的现象

  • 6.其他

  • 7.不要把多个Bug放在一起
    在无法确认是同一段代码出现故障时,不要讲bug放在一起提交

如何定义Bug的级别

  • 1.Blocker(崩溃)
    如:代码错误、死循环、数据库发生死锁、重要的功能不能使用等

  • 2.Critical(严重)
    如:软件中数据保存后数据库中显示错误,用户所要求的功能缺失,程序接口错误

  • 3.Major(一般)
    功能没有完全实现但是不影响使用,如:操作时间长、查询时间长

  • 4.Minor(次要)
    如:错别字、界面格式不规范、页面显示重叠等

Bug的生命周期

每个公司,每个工具对Bug生命周期的定义是不一样的,下面举一个常见的例子
测试人员应该跟踪一个Bug的整个生命周期,从New到Closed的所有状态
如图是Bug状态转换图

测试----关于Bug

各种状态分别代表什么含义?
  • New:新发现的Bug,未经评审决定是否指派给开发人员进行修改

  • Open:确认是Bug,并且认为需要进行修改,指派给相应的开发人员

  • Fixed:开发人员进行修改后标识成修改状态,有待测试人员的回归测试验证

  • Rejected:如果认为不是Bug,则拒绝修改

  • Delay:如果认为暂时不需要更改或暂时不能更改,则延后修改

  • Closed:修改状态的Bug经测试人员的回归测试验证通过,则关闭Bug

  • Reopen:如果经验证Bug仍然存在,则需要重新打开Bug,开发人员重新修改

测试的执行和Bug管理

  • 1.打开待测试的系统
  • 2.打开测试管理工具用例模块,开始执行用例
  • 3.发现Bug!进行复现,并确认Bug的复现步骤
  • 4.记录Bug
  • 5.沟通Bug
  • 6.验证以前提交的Bug
  • 7.确认本次测试完成
  • 8.编写测试报告

如何发现更多的Bug??

  • 1.软件测试存在二八原则,80%的故障集中于20%的模块,如果某部分问题较多,加强测试广度和深度

  • 2.开发人员也存在二八原则,80%的故障集中于20%的开发人员,如果某些开发人员的Bug较多,加强他开发模块的测试广度和深度

  • 3.多进行逆向的和发散性的思维

  • 4.不要局限于用例和需求文档

  • 5.今早介入项目,不要等到开发的差不多了再介入项目