ISTQB AL-TM连载系列18:测试与开发的有效缺陷沟通

来源:互联网 发布:中文域名使用 编辑:程序博客网 时间:2024/04/28 15:10
有效地沟通可以在缺陷管理中避免项目利益相关者之间的相互指责,支持收集和解释目标信息。缺陷报告的准确性、合理的分类和客观的表述有助于改善缺陷报告提交人员和缺陷修复人员之间的关系。测试人员应考虑到缺陷的重要性,并提供可用的客观信息。

缺陷评审会议应致力于进行适当的缺陷优先级和严重程度的判定。缺陷的跟踪工具可以促进成员之间的沟通,缺陷评审会议并不能代替缺陷跟踪工具。有效的沟通和良好的工具支持有助于实现高效的缺陷管理。下面介绍缺陷沟通过程的常见问题和注意事项。

1)缺陷信息共享
缺陷信息共享主要是指在测试执行过程中发现的缺陷,在不同项目成员之间进行共享。低级别的测试(例如:组件测试或集成测试)通常由开发人员完成;而高级别的测试(例如:系统测试或验收测试)由独立的测试团队完成。在开发人员正式提交版本的系统测试前,开发人员需要进行基本功能的测试,并提供关于版本的发布说明。由于在每个测试级别和不同的测试阶段都有可能发现缺陷,因此,在不同的项目成员之间进行缺陷信息的共享显得尤为重要。主要包括:
  1. 开发人员和测试人员之间的缺陷信息共享,例如:在开发人员提供的版本发布说明中,提供当前版本中存在的主要缺陷、对后续测试的影响以及建议的测试重点等。这些信息可以为测试人员进行的测试提供参考,同时可以避免测试人员提交一些已经存在的缺陷报告,从而避免浪费时间和精力,不断提高测试的有效性和效率。
  2. 测试人员之间的共享。在测试执行过程中,测试人员应该将提交的缺陷信息在项目的测试团队中进行共享,例如:通过邮件的形式,或者通过测试团队内部简短的会议等。特别是严重的缺陷可能会导致阻塞很多测试用例执行的缺陷,应该在测试团队内部发布该缺陷信息。通过在测试人员之间共享缺陷信息,可以在团队内部形成共同分析和解决问题的氛围,提高团队的测试热情和测试效率。
2)明确缺陷优先级和严重程度
正确处理和区分缺陷的严重程度和优先级是所有软件开发和测试相关人员的一件重要的事情。缺陷的严重程度和优先级是含义不同但相互联系密切的两个概念,它们从不同方面描述了软件缺陷对软件质量、用户、开发过程的影响程度和处理方式。一般来说,严重程度高的缺陷具有较高的优先级。严重程度高说明缺陷对软件造成的质量危害性大,需要优先处理,而严重性低的缺陷可能只是软件的瑕疵,可以稍后处理。但是优先级和严重程度并不总是一一对应的,也存在优先级低但严重程度高的缺陷,或者优先级高但严重程度低的软件缺陷。

修改软件缺陷并不是纯技术的问题,有时候需要考虑软件版本发布和质量风险等因素。下面是关于缺陷严重程度和优先级设置方面的一些建议:
  1. 如果某个严重的缺陷只在非常极端的条件下产生,则可以将缺陷的优先级设置得比较低。
  2. 如果修正一个软件缺陷需要重新修改软件的整体架构,可能会产生更多的潜在缺陷,而且市场要求尽快发布软件版本,那么即使这个缺陷严重程度很高,也需要仔细考虑是否需要修改。
  3. 对于有些缺陷,可能它的严重程度很低,例如:界面单词拼写错误,但假如这是公司的名称或者商标,则这个缺陷的优先级就很高,必须尽快进行修复,因为这个关系到软件系统和公司在市场上的形象。
3)报告缺陷之前得到开发人员的确认
测试人员在测试环境中发现缺陷的时候,假如条件允许,在提交缺陷报告之前,可以和相关开发人员进行确认。当然,对于非常容易判断的功能性缺陷或者其他非常明确的缺陷类型,测试人员可以直接提交缺陷报告。而对于稳定性、功能行为表现复杂或者难以复现的缺陷,可以要求开发人员在测试现场确认发现的缺陷,这样可以提高项目的整体效率,有利于团队之间的合作:
  1. 首先,开发人员可以现场查看一些软件的打印信息和异常表现,有利于开发人员后面的缺陷复现和定位解决。
  2. 其次,开发人员可以帮助测试人员确认发现的问题是不是缺陷,避免测试人员提交一些不是缺陷的缺陷报告(例如:由于测试人员理解错误、配置错误等而导致的一些系统异常),同时避免开发人员在不是缺陷的缺陷报告上面浪费时间和精力,提高测试团队和开发团队的效率。
  3. 第三,有利于开发人员和测试人员的沟通,包括对软件系统的理解,从而在项目团队之间更好地合作。
4)不要期望修复所有发现的缺陷
测试的主要目的是发现软件中的缺陷,同时为项目成员和管理人员提供关于软件系统的足够的信息,帮助他们做出正确的决定。从测试人员的角度,总是希望发现的缺陷能够全部解决,而项目管理人员对缺陷的修复考虑得可能更多。例如:
  1. 项目层面:全局考虑缺陷的严重程度和优先级。在有限的时间内,首先解决那些优先级或严重程度高的缺陷。
  2. 风险因素:修改每个缺陷都可能在代码中引入新的缺陷。假如修改一个小的缺陷可能产生更严重的软件错误,或者存在产生更严重软件错误的风险,就需要考虑是不是在当前版本中修改这个缺陷。
  3. 成本因素:有的缺陷修复的成本可能会高于修复后得到的收益,例如:缺陷所在的软件模块,在用户使用中的优先级并不是很高,而项目的进度很紧。这个时候,项目团队可能会选择先发布软件版本,而在下一个版本中修复该缺陷。
不管是对测试活动,还是对测试中发现的缺陷的修复,都需要在时间、成本、质量和风险之间平衡。测试人员也应该站在更高的层面对待测试活动,以及每个测试活动的工作产品。

5)不要让延迟修复的缺陷消失
在测试过程中发现的一些缺陷并不一定在当前版本中修复。对于不在当前版本修复的缺陷,测试人员和项目管理人员都应该对它们进行跟踪和管理,避免此类缺陷的消失。假如延迟修复的缺陷计划在下个版本中进行修复,那么下一个版本启动的同时,就启动这些缺陷的修复任务,因为这个时候项目的进度压力、工作量压力和时间压力是最小的。

6)变更和变更的沟通
测试过程中经常发生的一个问题是:当测试人员提交缺陷报告后,开发人员直接拒绝了缺陷报告,并通知测试人员系统的设计已经被修改。为了避免类似情况的发生,测试人员或者测试经理需要采取一些措施,例如:
  1. 在提交缺陷报告之前,假如时间和条件允许,要求开发人员在测试环境中确认缺陷的存在,可以避免这样的问题。
  2. 假如组织或者项目有成熟的版本管理系统,那么要求开发人员按照版本管理的要求进行相关文档的修改,从而可以使测试人员了解软件设计的变更,避免测试时间和测试资源的浪费,提高测试的效率。
  3. 假如组织或者项目没有版本管理系统,那么测试经理和开发经理之间需要有良好的沟通。测试经理可以要求开发经理在作为测试依据的开发文档发生变更时,告知测试经理,从而避免这种问题的发生。

[文章来源]:专注于测试能力改进

原创粉丝点击