软件缺陷报告的内容以及缺陷的相关属性
  一、软件缺陷报告的内容
  1、Bug Title/Summary:缺陷标题/简单描述
  对测试执行过程中实际出现的问题的描述,尽量要简单概要。
  2、Repro Step:重现步骤
  (1)描述问题的基本环境,包括操作系统、硬件环境、网络环境、被测试软件的运行环境;
  (2)简单概括的描述清楚软件出现异常时,测试人员的操作步骤和使用数据;
  (3)缺陷原因的分析;比如说:因为不支持字符集,而导致的乱码...等等。
  (4)要写清楚,重复操作了多少次,这个bug依然出现。(不能操作一次提交bug,因为有可能是自己操作失误。)
  (5)相关附件:为了让开发人员更好的了解Bug。 (如果从GUI界面上可以反映出软件的异常,可以截取界面,粘贴在问题单上 或者 日志、数据包);
  (6)属性(在下面详细说明):缺陷报告中除了对缺陷的基本描述外,我们还要对其属性进行说明。
  二、软件缺陷的相关属性
  测试人员在提交缺陷的时候,需要把缺陷,发现缺陷的过程以及缺陷的一些表现都要描述出来,除此之外这些缺陷还有一定的相关属性,也要填写出来。
  下面我们列举六个比较重要的缺陷属性。
  属性1、缺陷发现人
  在提交缺陷的时候测试人员一般是缺陷的发现人,这个字段也很重要,比如到QC里面统计一下本季度哪一个测试人员发现的BUG比较多。
  属性2、缺陷发现时间
  缺陷发现时间也是一个统计的计数点,或者数据点,缺陷趋势图是按照时间轴来排列的,如果缺少了缺陷发现时间,这个图是做不出来的,没有缺陷趋势图,我们不能进行产品的度量,不知道产品在什么时候发布是比较合适的。
  属性3、缺陷状态
  软件缺陷状态这个属性是非常重要的,在任何的软件报告中,这一个属性是一定要有的。
  下面我们主要列出了在QC中常用的几种状态:
  New:缺陷的初始状态;
  Open:开发人员开始修改缺陷;
  Fixed:开发人员修改缺陷完毕;
  Closed:回归测试通过;
  Reopen:回归测试失败;
  Postpone:推迟修改;
  Rejected:开发人员认为不是程序问题,不用修改;
  Duplicate:与已提交的Defect重复;
  Abandon:被Reject和Duplicate的Defect,测试人员确认后的确不是问题,将Defect置为此状态。
  New是缺陷的初始状态,所谓初始状态是发现问题,发现问题,提交问题后,这个缺陷处于New状态;
  提交给开发人员后,开发人员接受这个问题,那么把这个缺陷的状态更改为Open;
  开发人员修改缺陷之后,会把这个缺陷的状态改为Fixed;
  然后提交给测试人员,测试人员进行回归测试,回归测试通过,把状态改为Closed;
  我们可以看到New--Open--fixed--closed这个状态是一个比较理想的缺陷流程,也是测试人员提交问题,开发人员接受并修改问题,然后测试人员进行回归测试通过。
  但是我们一般在缺陷跟踪流程当中也会遇到一些问题:
  1、比如说回归测试失败,这个状态是Reopen,也是说测试人员在进行回归测试的时候失败了,要把这个缺陷的状态改为Reopen,然后再提交给开发人员进行修改,开发人员修改完之后,把这个缺陷的状态改为Fixed,然后又提交给测试人员,测试人员再一次进行回归测试,直到回归测试成功,把这个缺陷的状态改为Closed。
  2、Postpone:推迟修改,比如当我们把问题提交给开发人员的时候,开发人员觉得也接受这个问题,但是暂时无法修改,那可以把这个问题置为推迟状态,此时这个缺陷的状态是Postpone。
  3、当我们提交的Defect与别热提交的相同时,缺陷被置为Duplicate状态。
  4、比如说开发人员觉得测试人员提交的不是问题,不用修改,可以将这个BUG置为Reject状态。
  5、被Reject和Duplicate的Defect,我们终要把它置为Abandon状态。
  属性4、缺陷严重程度(Severity)
  缺陷的严重程度是:站在用户的交付,bug出现之后对软件质量的破坏程度,也是说这个软件缺陷的存在将对这个软件的功能和性能产生怎么样的影响。
  一般来说,软件的严重程度分为五个等级:
  第一个等级:致命的软件缺陷(Fatal)
  造成系统或应用程序崩溃、死机、系统挂起,或造成数据丢失,主要功能完全丧失,导致本模块以及相关模块异常等问题。如代码错误,死循环,数据库发生死锁、与数据库连接错误或数据通讯错误,未考虑异常操作,功能错误等。
  第二个等级:严重错误的软件缺陷(critical)
  严重错误的软件缺陷(critical):系统的主要功能部分丧失、数据不能保存,系统的次要功能完全丧失。问题局限在本模块,导致模块功能失效或异常退出。如致命的错误声明,程序接口错误,数据库的表、业务规则、缺省值未加完整性等约束条件。
  第三个等级:一般错误的软件缺陷(major)
  一般错误的软件缺陷(major):次要功能没有完全实现但不影响使用。如:提示信息不太准确,或用户界面差,操作时间长,模块功能部分失效等,打印内容、格式错误,删除操作未给出提示,数据库表中有过多的空字段等。
  第四个等级:较小错误的软件缺陷(Minor)
  较小错误的软件缺陷(Minor),使操作者不方便或遇到麻烦,但它不影响功能性的操作和执行,如错别字、界面不规范(字体大小不统一,文字排列不整齐,可输入区域和只读区域没有明显的区分标志),辅助说明描述不清楚。
  第五个等级:建议问题的软件缺陷(Enhancemental)
  建议问题的软件缺陷(Enhancemental):由问题提出人对测试对象的改进意见或测试人员提出的建议、质疑。