【测试基础】五、这样提bug单,开发小哥还会怼你么?

简介: 【测试基础】五、这样提bug单,开发小哥还会怼你么?

提bug单,应该是我们测试人员与开发人员交流沟通的重要渠道了。既然涉及交流沟通,自然就有沟通成本。


我们都是希望可以与开发小哥们愉快高效沟通的。要做到高效沟通,除了要注意语言上的技巧之外,bug单的内容描述也是需要额外注意的。


1268169-20210711105841838-1658164258.png

一、bug单


其实,之所以要提bug单(缺陷报告),最主要还是希望可以通过这份文档,把发现的缺陷准确无歧义地表达清楚。


开发小哥可以根据缺陷报告快速理解缺陷,并精确定位问题。同时,通过这个缺陷报告,开发经理可以准确预估缺陷修复的优先级、产品经理可以了解缺陷对用户或业务的影响以及严重性。


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


二、高效的缺陷报告包含内容


在工作中,通常我们会用一些现成的工具,比如 JIRA、Bugzilla、BugFree等等。这些工具通常对于缺陷会有整套的功能,以供我们开箱即用。


工具只是提供了我们一些模板,具体内容该如何填写呢?


首先,要先记住:好的缺陷报告绝对不是大量信息的堆叠,而是以高效的方式提供准确有用的信息


1. 标题


标题是很重要的,是对缺陷的概括性描述。另外,通常在bug列表里,第一眼展示的也是标题。所以,尽量做到:


1)清晰简洁,足够具体


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


通常描述形式可以是:在什么情况下发生了什么问题


注意描述不能过于笼统,比如“搜索功能有问题”。这种描述给人感觉说了等于没说,很容易引发开发人员的反感和抵触情绪。


另外,对测试人员的工作也是有影响的。比如你提bug之前想去确认下有没有被其他人提过,结果搜索一下都是这种标题形式的,你还得一个个地点进详情里去查看确认,同样也降低了我们自己的工作效率。估计这会自己心里都要MMP了,更何况开发呢?


2)尽可能描述问题本质,避免只停留问题表面


同样的一句话描述问题,描述表面跟描述本质,让人的感受是截然不同的:


  • 描述表面:商品金额输入框,可以输入英文字母和其他字符。
  • 描述本质:商品金额输入框,没有对输入内容做校验。


是不是觉得第二种看起来最直观。


2. 缺陷概述


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


缺陷概述还可以包括缺陷的其他延伸部分,比如列出同一类型的缺陷可能出现的所有场景;再比如,描述同样的问题是否会在之前的版本中重现。


总之,缺陷概述的目的是,清晰简洁地描述缺陷,使开发工程师能够聚焦缺陷的本质


3. 缺陷影响


我们测试人员如果要做到精准的描述缺陷影响,前提还是需要对软件的应用场景以及需求有深入的理解


4. 前置条件


目的是减少缺陷重现步骤的描述。


比如,前置条件:用户已完成登录。那么在接下来的重现步骤中,无须对于登录进行多余的描述。


5. 重现步骤


核心来了。


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


不过在此之前,我们测试人员还是应该确认这个问题的可重现性


  • 反复执行多次。
  • 找到最短的复现路径,过滤掉非必要步骤。


接下来,就要描述重现步骤了,注意避开这 3 个问题


  1. 过于笼统,缺乏可操作的具体步骤。
  2. 出现与缺陷重现不相关的步骤。
  3. 缺乏对测试数据的相关描述。


6. 期望结果和实际结果


期待结果来自于对需求的理解,而实际结果来自于测试执行的结果。


一句话:你应该说明发生了什么,而不是什么没有发生


7. 优先级 和 严重程度


通常这里作为系统里的选项出现。


在此之前,我们一般会对于bug的优先级和严重程度进行一些等级的划分,并且同步到项目成员,让大家对此有统一的认知。


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


  • 缺陷越严重,优先级就越高。
  • 缺陷影响的范围越大,优先级也会越高。
  • 有些缺陷虽然从用户影响角度来说不算严重,但是会妨碍测试或者是自动化测试的执行,这类缺陷属于典型的严重程度低,但是优先级高。
  • 有些缺陷虽然严重程度比较高,但是考虑到修复成本以及技术难度,也会出现优先级较低的情况。


另外,还可以注意下对于问题是否有变通方案


变通方案是提供一种临时绕开当前缺陷而不影响产品功能的方式。如果有,还要看下实施起来的难易程度。


如果某个严重的缺陷没有任何可行的变通方案,那么不管修复缺陷代价有多大,优先级一定会是最高的,但是如果该缺陷存在比较简单的变通方案,那么优先级就不一定会是最高的了。


8. 根原因分析


根原因分析,是最能体现测试人员个人能力和魅力的地方。


如果你能在发现缺陷的同时,定位出问题的根本原因,然后反馈给开发,那么开发人员修复缺陷的效率就会大幅提升,而且你的技术影响力也会被开发认可


不过,要做到这一点并不容易。通常需要开发背景,或者至少有较好的代码阅读以及代码调试的能力。


所以,要成为一个优秀的测试人员,学习主流的开发语言还是必不可少的。


我个人推荐是 python 和 java。因为 python 用来写脚本爽到飞起。然后目前国内大多公司主流开发语言还是java,学 java 是为了更好的理解你所测试的系统,以及定位开发的问题。


当然了,要做好根原因分析要学习的也不止是语言,对于开发框架(比如springboot),项目的系统架构等也都要涉及。


9. 附件


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


三、总结


高效的bug单,并不是说一定具备上面这种形式,但是核心的内容是一样的。

只要你提的报告能让开发快速并且准确的理解,就是好的报告。

相关文章
|
21天前
|
并行计算 算法 测试技术
C语言因高效灵活被广泛应用于软件开发。本文探讨了优化C语言程序性能的策略,涵盖算法优化、代码结构优化、内存管理优化、编译器优化、数据结构优化、并行计算优化及性能测试与分析七个方面
C语言因高效灵活被广泛应用于软件开发。本文探讨了优化C语言程序性能的策略,涵盖算法优化、代码结构优化、内存管理优化、编译器优化、数据结构优化、并行计算优化及性能测试与分析七个方面,旨在通过综合策略提升程序性能,满足实际需求。
49 1
|
23天前
|
存储 算法 C语言
用C语言开发游戏的实践过程,包括选择游戏类型、设计游戏框架、实现图形界面、游戏逻辑、调整游戏难度、添加音效音乐、性能优化、测试调试等内容
本文探讨了用C语言开发游戏的实践过程,包括选择游戏类型、设计游戏框架、实现图形界面、游戏逻辑、调整游戏难度、添加音效音乐、性能优化、测试调试等内容,旨在为开发者提供全面的指导和灵感。
37 2
|
2月前
|
测试技术 网络安全
什么是软件测试? 软件测试都有什么岗位 ?软件测试和调试的区别? 软件测试和开发的区别? 一位优秀的测试人员应该具备哪些素质? 软件测试等相关概念入门篇
文章全面介绍了软件测试的基本概念、目的、岗位分类、与开发和调试的区别,并阐述了成为优秀测试人员应具备的素质和技能。
266 1
什么是软件测试? 软件测试都有什么岗位 ?软件测试和调试的区别? 软件测试和开发的区别? 一位优秀的测试人员应该具备哪些素质? 软件测试等相关概念入门篇
|
1月前
|
安全 测试技术 持续交付
云计算时代的软件开发与测试:高效、灵活、可扩展
云计算时代的软件开发与测试:高效、灵活、可扩展
|
2月前
|
人工智能 监控 测试技术
云应用开发平台测试
云应用开发平台测试
77 2
|
2月前
|
敏捷开发 测试技术
开发模型(瀑布、螺旋、scrum) 和 测试模型(V、W)、增量和迭代、敏捷(思想)及敏捷开发 scrum
文章详细介绍了软件开发过程中的不同开发模型(瀑布、螺旋、Scrum)和测试模型(V模型、W模型),以及增量和迭代的概念,最后阐述了敏捷思想及其在敏捷开发(如Scrum)中的应用。
128 0
开发模型(瀑布、螺旋、scrum) 和 测试模型(V、W)、增量和迭代、敏捷(思想)及敏捷开发 scrum
|
3月前
|
SQL 安全 测试技术
『软件测试6』bug一两是小事,但安全漏洞是大事!
该文章强调了在软件测试中识别与处理安全漏洞的重要性,并详细介绍了常见的安全测试类型、测试流程及使用的主要工具,帮助测试人员有效地检测和防止安全问题。
『软件测试6』bug一两是小事,但安全漏洞是大事!
|
3月前
|
测试技术 持续交付 UED
软件测试的艺术与科学:平衡创新与质量的探索在软件开发的波澜壮阔中,软件测试如同灯塔,指引着产品质量的方向。本文旨在深入探讨软件测试的核心价值,通过分析其在现代软件工程中的应用,揭示其背后的艺术性与科学性,并探讨如何在追求技术创新的同时确保产品的高质量标准。
软件测试不仅仅是技术活动,它融合了创造力和方法论,是软件开发过程中不可或缺的一环。本文首先概述了软件测试的重要性及其在项目生命周期中的角色,随后详细讨论了测试用例设计的创新方法、自动化测试的策略与挑战,以及如何通过持续集成/持续部署(CI/CD)流程优化产品质量。最后,文章强调了团队间沟通在确保测试有效性中的关键作用,并通过案例分析展示了这些原则在实践中的应用。
91 1
|
3月前
|
测试技术 UED 开发者
软件测试的艺术:从代码审查到用户反馈的全景探索在软件开发的宇宙中,测试是那颗确保星系正常运转的暗物质。它或许不总是站在聚光灯下,但无疑是支撑整个系统稳定性与可靠性的基石。《软件测试的艺术:从代码审查到用户反馈的全景探索》一文,旨在揭开软件测试这一神秘面纱,通过深入浅出的方式,引领读者穿梭于测试的各个环节,从细微处着眼,至宏观视角俯瞰,全方位解析如何打造无懈可击的软件产品。
本文以“软件测试的艺术”为核心,创新性地将技术深度与通俗易懂的语言风格相结合,绘制了一幅从代码审查到用户反馈全过程的测试蓝图。不同于常规摘要的枯燥概述,这里更像是一段旅程的预告片,承诺带领读者经历一场从微观世界到宏观视野的探索之旅,揭示每一个测试环节背后的哲学与实践智慧,让即便是非专业人士也能领略到软件测试的魅力所在,并从中获取实用的启示。
|
4月前
|
测试技术 C# 开发者
“代码守护者:详解WPF开发中的单元测试策略与实践——从选择测试框架到编写模拟对象,全方位保障你的应用程序质量”
【8月更文挑战第31天】单元测试是确保软件质量的关键实践,尤其在复杂的WPF应用中更为重要。通过为每个小模块编写独立测试用例,可以验证代码的功能正确性并在早期发现错误。本文将介绍如何在WPF项目中引入单元测试,并通过具体示例演示其实施过程。首先选择合适的测试框架如NUnit或xUnit.net,并利用Moq模拟框架隔离外部依赖。接着,通过一个简单的WPF应用程序示例,展示如何模拟`IUserRepository`接口并验证`MainViewModel`加载用户数据的正确性。这有助于确保代码质量和未来的重构与扩展。
109 0
下一篇
DataWorks