测试工程师如何有效的编写bug报告?

为什么要求有效的缺陷报告?

缺陷报告是测试过程中最重要的部分,对产品的质量有较大的影响,是测试人员价值的终极体现。好的缺陷报告可以减少研发部门的二次缺陷率、提高研发修改缺陷的速度、提高测试部门的信用度、增强测试和研发部门的协作。Bug写的越好,在实际中为了修改这个bug花费的时间相对来说就会越少,测试人员的信誉度和产品的贡献度也会很好的提升。

衡量优秀缺陷报告的质量指标

·对于管理层来说,是清晰明了的,特别是在主题摘要这一级。
-对于研发人员来说,是有用的。提供能够让研发人员高效的调试问题的相关信息,使其很快的将bug从“打开"状态转变成“关闭"状态,提高测试和开发的工作效率。
·对于后期的维护,能够有效的从bug信息查询出问题的描述和解决办法
说来容易,在实践中需要测试人员仔细用心。

如何编写缺陷报告

缺陷报告作为测试和研发之间的沟通的桥梁,测试人员在报告bug的时候,有效的bug描述,会更加容易帮助开发解决问题。写有效的缺陷报告不要求有较好的文字功底,关键是覆盖了研发所关注的要点。作为一个优秀的缺陷报告,应该包括以下内容:

一、摘要
简明扼要的对bug进行一个概述,目的是让人看了就知道大概出了什么问题。Bug标题必须简短而且要求描述和传达出准确的信息。这个摘要一般比较短,所以使用一些精炼的关键词是很必要的。比如:用户登录时,密码显示为明文。
以下是一些较差的摘要:

1、摘要太模糊:在用户登录界面,在输入框中能看到输入的内容。
分析:这个摘要太模糊,没有准确的描述出现了什么问题,反而将问题出现时的状态写了上去。在一些标准中,密码输入框应显示为密文,并且也没有说明是在用户名输入框中还是密码输入框中显示输入的内容。

**修正:**用户登录时,密码框中显示输入内容。2、不足够的信息∶密码框问题。
分析:这个bug摘要信息很不充足,不知道出了什么问题
太长的摘要:在用户登录界面,在输入框中,输入正确的用户名和密码。在密码框中,显示密码信息。
分析:此摘要有太多冗余信息,把步骤添加到了摘要中。如“在输入框中,输入正确的用户名和密码”等这些完全可以放置到bug描述步骤中去,
**修正:**用户登录时,密码框中显示输入内容。
备注:有些测试人员将其命名为“标题”,这里以我们的QC为准,名为“摘要”

二、bug属性
在编写bug缺陷报告时应该尽可能全面的描述bug的属性。以QC为例,bug属性包含如下:

产品模块:发现的bug所属的模块测试版本:当前的测试版本
严重级别
所属项目
是否可重现

三、负责人:

负责解决此问题的研发人员四、检测者:发现此问题的测试人员

四、检测者:

发现此问题的测试人员

**五、**根据公司的实际情况,增加了“部门”和“迭代周期"两项,“部门"是必填项,“迭代周期"可选。

六、Bug的详细描述
Bug的详细描述要达到让研发人员清晰这是一个什么问题,看了能够自己复现的程度,所以要详细但要避免冗余。要包含以下几点∶
**1、测试配置:**主要是产品的相关配置,比如:使用用户登录某一个系统,前提条件是需要注册或者管理员添加用户。又或者是其他如交换机或路由器等的配置
**2、测试环境:**测试所搭建的网络拓扑环境。对于不需要搭建网络环境的测试,可省略,如升级安装包等。
**3、测试步骤:**这是比较关键的,目的是帮助研发重现。在有多条步骤的情况下组号列出1、2、3等步骤
**4、预期结果和实际结果:**这两个实际上都应该写的描述中,不但能够做对比,而且能够有效的证明这确实是一个bug。例如这样的bug描述:

上述bug的描述在很熟悉测试产品的情况下或许可以看懂,但都会犹豫一下他想表达什么意思,正确的结果是什么,错误的结果是什么。
在这种情况下若加上“预期结果"和“实际结果”,会使意思表达的更加明确。第二个bug将步骤和结果混杂在一起,可以这样修改一下:
1:使用浏览器访问登陆界面
2∶输入正确的用户名和密码。3∶然后点击“登录"按钮。
预期结果:密码输入框,显示信息为密文。
实际结果:密码输入框内容为明文。

其他注意事项

在报告缺陷的过程中,除了上述描述外还应注意如下:
1.一个bug报告只能描述—个bug,如果将几个问题都写在一个bug报告中,开发人员很难发现自己的问题并解决,或者导致某些优先级高的bug没有及时得到解决

2.Bug的唯一性:在提交bug报告之前,要确认这个bug是否已经被其他人发现并报告(搜索功能)

3.重现:有些bug很容易就重现,有些就很难。如果你能重现一个bug,应该准确的解释必须的条件。应该列出所有的步骤,包括精确的组合,文件名以及你碰到或重现这个问题的操作顺序。如果你能够确认这个问题在任何文件,任何的操作顺序等条件下都会发生,那也做好能够给出一个明确的示例来帮助开发重现。如果发现一个不能重新的bug,就尽可能多的提供有效的信息给你的开发人员。截图、日志,抓包等对捕获这个bug有帮助的信息可以包含在你的bug报告中

4.定位:对于一个测试人员来说,应该做一些有效的事情来帮助定位问题。要多想会不会是外部的什么特殊原因引起的这个问题?会不会是因为网络的问题导致数据不通?或者是应用软件配置错误导致数据不通?如果实在不能定位问题原因,是否可以想办法缩小出错的范围?尽量避免是由于测试人员的问题导致误报了bug。测试人员定位bug的能力,一定程度上是测试人员附加值的体现,能够节省项目组相关人员的时间,缩短了回归bug的时间。

出现这个错误的原因是在导入seaborn包时,无法从typing模块中导入名为'Protocol'的对象。 解决这个问题的方法有以下几种: 1. 检查你的Python版本是否符合seaborn包的要求,如果不符合,尝试更新Python版本。 2. 检查你的环境中是否安装了typing_extensions包,如果没有安装,可以使用以下命令安装:pip install typing_extensions。 3. 如果你使用的是Python 3.8版本以下的版本,你可以尝试使用typing_extensions包来代替typing模块来解决该问题。 4. 检查你的代码是否正确导入了seaborn包,并且没有其他导入错误。 5. 如果以上方法都无法解决问题,可以尝试在你的代码中使用其他的可替代包或者更新seaborn包的版本来解决该问题。 总结: 出现ImportError: cannot import name 'Protocol' from 'typing'错误的原因可能是由于Python版本不兼容、缺少typing_extensions包或者导入错误等原因造成的。可以根据具体情况尝试上述方法来解决该问题。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [ImportError: cannot import name ‘Literal‘ from ‘typing‘ (D:\Anaconda\envs\tensorflow\lib\typing....](https://blog.youkuaiyun.com/yuhaix/article/details/124528628)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值