• 07 | 如何高效填写软件缺陷报告?


    编写软件缺陷报告,看似一件很简单的事情,但是其实有很大的优化与提高的空间。

    软件缺陷报告的重要性

    缺陷报告是测试工程师与开发工程师交流沟通的重要桥梁,也是测试工程师日常工作的重要输出。 作为优秀的测试工程师,最基本的一项技能就是,把发现的缺陷准确无歧义地表达清楚。

    “准确无歧义地表达”意味着,开发工程师可以根据缺陷报告快速理解缺陷,并精确定位问题。同时,通过这个缺陷报告,开发经理可以准确预估缺陷修复的优先级、产品经理可以了解缺陷对用户或业务的影响以及严重性。

    可见,缺陷报告本身的质量将直接关系到缺陷被修复的速度以及开发工程师的效率,同时还会影响测试工程师的信用、测试与开发人员协作的有效性。

    一份好的缺陷报告需要包括哪些具体内容呢?

    缺陷标题

    缺陷标题通常是别人最先看到的部分,是对缺陷的概括性描述,通常采用“在什么情况下发生了什么问题”的模式。

    首先,对“什么问题”的描述不仅要做到清晰简洁,最关键是要足够具体,切忌不能采用过于笼统的描述。描述“什么问题”的同时还必须清楚地表述发生问题时的上下文,也就是问题出现的场景。

    “用户不能正常登录”“搜索功能有问题”和“用户信息页面的地址栏位置不正确”等,这样的描述会给人“说了等于没说”的感觉。

    其次,标题应该尽可能描述问题本质,而避免只停留在问题的表面。

    比如,“商品金额输入框,可以输入英文字母和其他字符”这个描述就只描述了问题的表面现象,而采用诸如“商品金额输入框,没有对输入内容做校验”的方式,就可以透过标题看到缺陷的本质,这样可以帮助开发人员快速掌握问题的本质。

    最后,缺陷标题不易过长,对缺陷更详细的描述应该放在“缺陷概述”里。

    缺陷概述

    缺陷概述通常会提供更多概括性的缺陷本质与现象的描述,是缺陷标题的细化。

    缺陷概述还会包括缺陷的其他延展部分,比如你可以在这部分列出同一类型的缺陷可能出现的所有场景;再比如,你还可以描述同样的问题是否会在之前的版本中重现等。在这里,你应该尽量避免以缺陷重现步骤的形式来描述,而应该使用概括性的语句。

    缺陷影响

    缺陷影响描述的是,缺陷引起的问题对用户或者对业务的影响范围以及严重程度。

    缺陷影响决定了缺陷的优先级(Priority)和严重程度(Severity),开发经理会以此为依据来决定修复该缺陷的优先级;而产品经理会以此为依据来衡量缺陷的严重程度,并决定是否要等该缺陷被修复后才能发布产品。

    环境配置

    境配置用以详细描述测试环境的配置细节,为缺陷的重现提供必要的环境信息。 比如,操作系统的类型与版本、被测软件版本、浏览器的种类和版本、被测软件的配置信息、集群的配置参数、中间件的版本信息等等。

    需要注意的是,环境配置的内容通常是按需描述,也就是说通常只描述那些重现缺陷的环境敏感信息。

    比如,“菜单栏上某个条目缺失的问题”只会发生在 Chrome 浏览器,而其他浏览器都没有类似问题。那么,Chrome 浏览器就是环境敏感信息,必须予以描述,而至于 Chrome 浏览器是运行在什么操作系统上就无关紧要了,无需特意去描述了。

    前置条件

    前置条件是指测试步骤开始前系统应该处在的状态,其目的是减少缺陷重现步骤的描述。

    缺陷重现步骤

    缺陷重现步骤是整个缺陷报告中最核心的内容,其目的在于用简洁的语言向开发工程师展示缺陷重现的具体操作步骤。

    操作步骤通常是从用户角度出发来描述的,每个步骤都应该是可操作并且是连贯的,所以往往会采用步骤列表的表现形式。

    对于缺陷重现步骤的描述应该尽量避免以下 3 个常见问题:

    笼统的描述,缺乏可操作的具体步骤。

    出现与缺陷重现不相关的步骤。

    缺乏对测试数据的相关描述。

    期望结果和实际结果

    当你描述期望结果时,需要说明应该发生什么,而不是什么不应该发生;而描述实际结果时,你应该说明发生了什么,而不是什么没有发生。

    优先级(Priority)和严重程度(Severity)

    严重程度是缺陷本身的属性,通常确定后就不再变化,而优先级是缺陷的工程属性,会随着项目进度、解决缺陷的成本等因素而变动。

    缺陷的优先级和严重程度又有什么关系呢?

    • 缺陷越严重,优先级就越高;

    • 缺陷影响的范围越大,优先级也会越高;

    • 有些缺陷虽然从用户影响角度来说不算严重,但是会妨碍测试或者是自动化测试的执行,这类缺陷属于典型的严重程度低,但是优先级高;

    • 有些缺陷虽然严重程度比较高,但是考虑到修复成本以及技术难度,也会出现优先级较低的情况。

    变通方案(Workaround)

    变通方案的有无以及实施的难易程度,是决定缺陷优先级和严重程度的重要依据。如果某个严重的缺陷没有任何可行的变通方案,那么不管修复缺陷代价有多大,优先级一定会是最高的,但是如果该缺陷存在比较简单的变通方案,那么优先级就不一定会是最高的了。

    根原因分析(Root Cause Analysis)

    根原因分析就是我们平时常说的 RCA,如果你能在发现缺陷的同时,定位出问题的根本原因,清楚地描述缺陷产生的原因并反馈给开发工程师,那么开发工程师修复缺陷的效率就会大幅提升,而且你的技术影响力也会被开发认可。

    附件(Attachment)

    件通常是为缺陷的存在提供必要的证据支持,常见的附件有界面截图、测试用例日志、服务器端日志、GUI 测试的执行视频等。


    来源于:极客时间 茹炳晟 软件测试52讲

  • 相关阅读:
    细节问题
    慕课 python 操作数据库
    转 Python爬虫入门七之正则表达式
    转 python面试题
    转 Perl函数返回值用法指导
    慕课爬虫实战 爬取百度百科Python词条相关1000个页面数据
    慕课爬虫
    转 Python爬虫入门五之URLError异常处理
    转 廖雪峰 urllib
    转 Python爬虫入门四之Urllib库的高级用法
  • 原文地址:https://www.cnblogs.com/Uni-Hoang/p/13232442.html
Copyright © 2020-2023  润新知