软件测试 → 第二章 基础-> 软件缺陷与缺陷管理

1、缺陷定义与分类

1.一、软件缺陷

  定义:在软件工程整个生命周期中任何背离需求、没法正确完成用户所要求的功能的问题,包括存在于组件、设备、或系统软件中因异常条件不支持而致使系统失败等都属于缺陷。web

  从产品内部看,缺陷是软件产品开发或维护过程当中存在的问题、错误。
  从产品外部看,缺项是系统所须要实现的某种功能的失效或违背。sql

概念:符合下面5个规则中的一个,就是软件缺陷
(1)软件未实现产品说明书要求的功能
(2)软件出现了产品说明书指明不该该出现的错误
(3)软件实现了产品说明书未提到的功能
(4)软件未实现产品说明书虽未明确说起但应该实现的目标
(5)软件难以理解、不易使用、运行缓慢或者—从测试员的角度看—最终用户会认为很差数据库

拓展:软件错误、软件失效、软件故障windows

①软件错误:致使指望的运行结果和实际运行结果间出现差别的一些问题;
②软件故障:指软件运行过程当中出现的一种不但愿或不可接受的内部状态;
③ 软件失效:软件没法知足日益发展的需求; 后端

1.二、 软件缺陷的描述与分类

  • 软件缺陷的描述

仅仅是描述一个缺陷,须要三大核心要素(字段)。
标题:用简洁的话描述该缺陷,主要是让开发知道这是一个什么样的缺陷
  主要操做+缺陷说明
详细描述:
  做用:便于开发重现和定位缺陷的
  测试环境:浏览器:所有/IE8,操做系统:win7 x64
  测试数据:用户名,密码,相关的业务帐号
  重现步骤:缺陷发现的过程
  缺陷说明:告诉开发,你所认为的缺陷是什么,取得理解上的一致
  实际结果与预期结果进行比较来讲明这个缺陷
截图:
  1.截大一点,最好截整个桌面或整个窗口
  2.尽可能注意不要包含很差的信息,好比群聊窗口
  3.截图中强烈建议加上文字描述缺陷的位置和说明浏览器

  • 软件缺陷的分类

一、业务逻辑
二、数据处理
三、接口
四、UI
五、性能
六、安全性
七、兼容性
八、配置
九、文档等安全

2、缺陷管理流程

  2.一、缺陷产生的缘由网络

  一般开发及测试人员所讲述的软件错误和软件缺陷是两个不一样的概念,简单的来说软件错误是指在软件声明周期内不但愿或不可见接受的人为错误,其结果是致使软件缺陷的产生。在软件动态运行过程当中,在某种条件下系统中软件缺陷暴露致使故障发生,最终致使软件失效。
  软件缺陷产生的缘由
  ①需求规格说明书编写的不够全面、不完整、不许确而产生的缺陷;
  ②设计变动时,没有及时沟通或者沟通不畅;
  ③研发过程当中的需求变动;
  ④程序开发人员对业务上的不理解或理解不一致;
  ⑤代码编写不严谨,缺乏逗号、被除数为0等
  ⑥软件系统运行的软硬件环境带来的问题。
  正确理解了缺陷定义和产生的根源,能够帮助测试人员比较容易地找到判断缺陷的方法,所以用户的需求规格说明书或产品说明书是判断缺陷的关键。所以在识别缺陷的过程当中,测试人员能够从如下几个方面入手
  ①首先测试人员要对需求规格说明书或者产品说明书等说明性文档要很是熟悉,由于这些文档反映了用户的实际业务需求;
  ②经过对所测试产品或系统的行业和业务背景知识的了解,来发现被忽视的问题;
  ③经过本身不断的积累测试经验和行业规则,发现深层次的缺陷;
  ④经过沟通来收集、学习和分享其余人判断缺陷的方法。架构

2.二、缺陷报告介绍

缺陷报告是测试工程师的主要的产物,也是测试团队主要的交付物之一。其做用是让研发人员可以了解到缺陷是如何产生的,便于更好的修复缺陷。
  缺陷报告的几大要素:缺陷标题、缺陷发生的模块、缺陷产生的功能点、缺陷类型、缺陷状态、缺陷产生的详细步骤、缺陷的严重性、缺陷的优先级、缺陷的状态、涉及的软件版本、提交缺陷的人员、提交日期。同时还能够提供相关联的测试用例编号。
  缺陷处理后要填写的信息:修复的版本号、修复人、拒绝/挂起人asp.net

2.三、缺陷管理流程

①整体流程

②缺陷提交流程

③缺陷修复流程

④缺陷验证流程

⑤缺陷拒绝处理流程

⑥挂起缺陷处理流程

⑦争议缺陷处理流程

3、缺陷度量与缺陷报告

3.一、缺陷度量

  缺陷度量是软件度量的一部分,其自己并不能发现缺陷、剔除缺陷,可是有助于这些问题的解决。另外,当正确、持续地进行了缺陷度量时,产品以及过程的质量属性的数据为实施和管理过程改进活动提供了有效的基础。
  软件产品的质量度量,主要集中在软件的缺陷度量上。
  缺陷度量就是对项目过程当中产生的缺陷数据进行采集和量化,将分散的缺陷数据统一管理,使其有序而清晰,而后经过采用一系列数学函数,对数据进行处理,分析缺陷密度和趋势等信息,从而提升产品质量和改进开发过程。
  (1)组织级缺陷度量,目的是了解组织的总体缺陷状况,了解客户对组织的质量满意度,创建组织基线,肯定改进活动。
  (2)项目级缺陷度量,目的是了解项目实时质量状况(不少项目只在最后度量,包括那些迭代式开发的项目,实际上为时已晚),预测缺陷形成的发布后维护工做量,了解客户对项目的质量满意度。
  (3)个体缺陷度量,目的是了解个体缺陷产生的详细缘由,并实施行动进行改进。
  前两种度量你们接触较多,但第三种度量经常被忽略。这经常致使:项目反复获得关于本身的质量评价,但很难了解如何去提升;测试组经常能作一些改进(如增长测试覆盖、延长测试周期)来提升缺陷排除效率,但开发组没有下降缺陷产生数量的有效措施;软件开发遵循了编码规范,但彷佛对提升质量没有太多帮助。

3.二、缺陷报告

缺陷报告要素
报告编号 惟一的索引标识
标题 简单的描述,传达缺陷的基本信息
报告人 缺陷报告的原始做者
日期 首次报告该缺陷的日期
版本号 软件的哪一个版本出现了该缺陷
优先级 开发人员处理和修复缺陷的前后的前后顺序
严重级 描述所报告的缺陷的严重程度
缺陷描述 缺陷的简单描述
运行环境 缺陷报告发生的环境中操做系统的信息
重现步骤 对发现的缺陷进行详细的描述
实验结果 运行测试用例产生的实际结果
预期结果 由需求报告得知的运行测试用例可能产生结果
附件 添加图片或结果文件的方式直观展现缺陷

4、缺陷管理工具介绍

4.一、Bugzilla(免费,跨平台)

Bugzilla是一个Bug追踪系统设计用来帮助你管理软件开发。
Bugzilla是一开源Bug Tracking System,是专门为Unix定制开发的。可是在windows平台下依然能够成功安装使用.
Testopia是一款和Bugzilla集成到一块儿的test case management系统.
它的强大功能表如今如下几个方面:
1. 强大的检索功能
2. 用户可配置的经过Email公布Bug变动
3. 历史变动记录
4. 经过跟踪和描述处理Bug
5. 附件管理
6. 完备的产品分类方案和细致的安全策略
7. 安全的审核机制
8. 强大的后端数据库支持
9. Web,Xml,Email和控制界面
10. 友好的网络用户界面
11. 丰富多样的配置设定
12. 版本间向下兼容

4.二、BugFree(免费)

  BugFree是借鉴微软的研发流程和Bug管理理念,使用PHP+MySQL独立写出的一个Bug管理系统。简单实用、免费而且开放源代码(遵循GNU GPL)。

4.三、、Quality Center(商业,前身Mercury TestDirector ,跨平台)

  HP Quality Center; 提供了基于 Web 的系统,可在普遍的应用环境下自动执行软件质量测试和管理。仪表盘技术使您能够了解验证功能和将业务流程自动化,并肯定生产中阻碍业务成果的瓶颈。HP Quality Center 使 IT 团队可以在开发流程完成前就参与应用程序测试。这样将缩短发布时间表,同时确保最高水平的质量。
企业级的软件质量解决方案。

4.四、IBM Rational ClearQuest (商业,跨平台)

  IBM Rational ClearQuest 是一款强大的软件开发测试工具。集成并自动化软件及系统开发的业务过程。V7.0 提供加强的需求跟踪、构建跟踪、企业测试管理,及部署跟踪的功能。这提供了从开发到部署的完整的审计跟踪,并扩展了跨生命周期的可追溯性。软件加强了开发流程并使之自动化,同时还提升了软件生命周期的可理解性、可预测性和可控制性。

4.五、JIRA(商业)

JIRA是集项目计划、任务分配、需求管理、错误跟踪于一体的商业软件。
JIRA功能全面,界面友好,安装简单,配置灵活,权限管理以及可扩展性方面都十分出色。
JIRA建立的默认问题类型包括New Feature、Bug、Task和Improvement四种,还能够本身定义,因此它也一是过程管理系统。
Jira融合了项目管理、任务管理和缺陷管理,许多著名的开源项目都采用了JIRA。
JIRA 是目前比较流行的基于Java架构的管理系统,因为Atlassian公司对不少开源项目实行免费提供缺陷跟踪服务,所以在开源领域,其认知度比其余的产品要高得多,并且易用性也好一些。同时,开源则是其另外一特点,在用户购买其软件的同时,也就将源代码也购置进来,方便作二次开发。

4.六、Mantis(开源)

  Mantis是一个基于PHP技术的轻量级的缺陷跟踪系统,其功能与前面说起的JIRA系统相似,都是以Web操做的形式提供项目管理及缺陷跟踪服务。在功能上可能没有JIRA那么专业,界面也没有JIRA漂亮,但在实用性上足以知足中小型项目的管理及跟踪。更重要的是其开源,不须要负担任何费用。不过目前的版本还存在一些问题,期待在从此的版本中可以得以完善。

4.七、Bugzero 免费开源,跨平台)

  BUGZERO? 是一个多功能,基于网络 (web-based) 并在浏览器 (browser) 下运行的 Bug缺陷管理和跟踪系统 (bug tracking system),可用来记录,跟踪,并归类处理软件开发过程出现的 Bug 和硬件系统中存在的缺陷(defect)。 BUGZERO 也是一个完整的服务管理软件,包括集成服务台热线流程管理(Help Desk),可用来记录各类平常事务,变动请求,和问题报告,及追踪和处理各类客户讯问,反馈,和意见。
  BUGZERO 提供了一个可靠的中央数据库使公司内部团队成员以及外部客户能在任何地点任什么时候间进行协调和信息交流,而且使任何记录都有据可查。它使你省时省力。BUGZERO 不但使用方便,并且功能齐全,变通性好,可以灵活设置各类实际工做流程,知足你特定的业务和产品环境下的需求。这种灵活、易用的缺陷跟踪流程不只加强了项目开发的质量,同时也提升了整个机构的生产效率。

4.八、BugTracker(免费开源,跨平台)

  Bugtracker是一个完整的bug/issue管理系统.它使用Java Servlet做为web前台,MySQL数据库做为后台。

4.九、JTrac(开源)

  JTrac是一个开源且可高度配置的问题追踪的Web应用程序。它是一个通常性问题,跟踪网络应用程序,可方便地实现定制,增长自定义字段和下拉式。其特色包括可定制的工做流程,实地一级的权限,电子邮件集成,文件附件和详细的历史观点。

4.十、BugNet(开源)

  BugNet是一个不错的开源bug跟踪和项目管理系统

4.十一、BugOnline(开源)

  BugOnline 是一个开源的BUG管理系统。其功能强大,易于使用。
  基于asp.net2.0 ,sql server 2005(包括Express 版),Ajax等技术.
  BugOnline 的一些特性:

①、在线消息及E-mail自动通知功能。有新Bug及Bug分配给用户同时将自动通知用户。
②、优秀的人员分配,工做量统计功能。
③、居于项目角色的权限管理,工做规划,流程化。
④、Bug状态统计,便于掌控项目进度。
⑤、基于SSL的数据传输,确保数据不被截取,保证安全性。(也可设定为非SSL)
⑥、强大的报表功能。

4.十二、eTraxis(开源)

  eTraxis是基于网页的免费bug跟踪系统。主要特色是:彻底自定义模板,先进的过滤器, LDAP支持,电子邮件通知,订阅报刊,提醒,灵活的权限管理,图形化的项目指标等。

4.1三、URTracker(商业)

  URTracker 是一款通用的流程化的问题跟踪管理软件。它能够:

①、帮助您集中管理各类类型的问题、工做任务、人员交互等事务;
②、跟踪每一个事务的处理过程;
③、控制问题处理的流程;
④、提供一个有效的协做平台,简化团队成员的交互,提高沟通效率;
⑤、积累知识信息;
⑥、帮助您进行统计和分析;

4.1四、KisTracker

  KisTracker一款bug跟踪管理软件(原名叫:iTracker),功能强大,易于使用,是基于WEB方式的协同工做软件.
  它用于帮助公司和团队跟踪工做中的问题,管理和记录这些问题的处理过程.能够应用于:

1.产品BUG跟踪
2.任务跟踪
3.服务跟踪
4.各类处理问题跟踪
4.各类处理问题跟踪

1五、TestLink(开源)

TestLink用于进行测试过程当中的管理,经过使用TestLink提供的功能,
能够将测试过程从测试需求、测试设计、到测试执行完整的管理起来,
同时,它还提供了好多种测试结果的统计和分析,使咱们可以简单的开始测试工做和分析测试结果。
TestLink 是sourceforge的开放源代码项目之一。做为基于web的测试管理系统,TestLink的主要功能包括:测试需求管理 测试用例管理 测试用例对测试需求的覆盖管理 测试计划的制定 测试用例的执行 大量测试数据的度量和统计功能。

相关文章
相关标签/搜索