一、首先缺陷报告是测试工程师与开发工程师交流沟通的重要桥梁,也是测试工程师日常工作的重要输出,作为一名优秀的测试工程师,最基本的一项技能就是把发现的缺陷准确无歧义的表达清楚,这样就意味着,开发工程师可以根据缺陷报告快速理解缺陷,并精确定位问题’
二、必须要牢记的是,好的缺陷报告绝对不是大量信息的堆叠,而是以高效的方式提供准确有用的信息
一份高效的软件缺陷报告,应该包括一下几个部分:
1、缺陷标题:对缺陷的概括性描述,通常采用"在什么情况下发生了什么问题"的模式
作为软件开发人员,当看到测试提交的缺陷,有"用户不能正常登陆"、"搜索功能有问题"、"用户信息页面的地址栏位置不正确"这样的描述时,你的内心有没有过抓狂
标题应该尽可能描述问题本质,而避免只停留在问题的表面
缺陷标题不易过长,对缺陷更详细的描述应该放在"缺陷概述"里
2、缺陷概述:是缺陷标题的细化,目的是清晰简洁地描述缺陷,使开发工程师能够聚焦缺陷的本质
3、缺陷影响:描述的是,缺陷引起的问题对用户或者对业务的影响范围以及严重程度,也决定了缺陷的优先级和严重程度
4、环境配置:用以详细描述测试环境的配置细节,为缺陷的重现提供必要的环境信息,要注意的:环境配置的内容通常是按需描述,也就是说通常只描述那些重现缺陷的环境敏感信息
5、前置条件:指测试步骤开始前系统应该处在的状态,其目的是减少缺陷重现步骤的描述,比如在系统中进行操作,依赖的前置条件是:用户登录成功
6、缺陷重现步骤:用简洁的语言向开发工程师展示缺陷的具体操作步骤
缺陷步骤的描述应尽量避免以下3个常见问题:
笼统的描述,缺乏可操作的具体步骤
出现与缺陷重现不相关的步骤
缺乏对测试数据的相关描述
7、期望结果和实际结果:当描述期望结果时,需要说明应该发生什么,而不是什么不应该发生;而描述实际结果时,应该说明发生了什么,而不是什么没有发生
8、优先级和严重程度:
百度百科的解释是:
缺陷优先级是指缺陷必须被修复的紧急程度
缺陷严重程度是指因缺陷引起的故障对软件产品的影响程度
由此,严重程度是缺陷本身的属性,通常确定后就不再变化,优先级是缺陷的工程属性,会随着项目进度、解决缺陷的成本等因素而变动。
缺陷的优先级和严重程度的关系:
缺陷越严重,优先级就越高
缺陷影响的范围越大,优先级也会越高
有些缺陷虽然从用户影响角度来说不算严重,但是会妨碍测试或者自动化测试的执行,这类缺陷属于典型的严重程度低,但是优先级高
有些缺陷虽然严重程度比较低高,但是考虑到修复成本以及技术难度,也会出现优先级较低的情况
9、变通方案:是指提供一种临时绕开当前缺陷而不影响产品功能的方式,变通方案的有无,是决定缺陷优先级和严重程度的重要依据
10、根原因分析:假如能在发现缺陷的同时,定位出问题的根本原因,清楚描述缺陷产生的原因并反馈给开发工程师,缺陷修复效率就会大幅提升
11、附件:通常是为缺陷的存在提供必要的证据支持,常见的附件有界面截图、测试用例日志、服务器端日志、GUI测试的执行视屏
三、课程中讨论的环节整理出的一些点
1、假如我们在测试过程中,发现BUG在禅道提交缺陷,尤其对于刚接手项目或者一个功能点拆分成好几个人来交互完成的时候,那么这个时候指派给谁就 有点难选择,所以测试人员遇到这种情况,在提交缺陷前,要先和开发确认,指定缺陷定位人
2、缺陷的跟踪,尤其在敏捷模式中,需要每天对提交的缺陷进行跟踪,和开发人员确定好修复时间。
3、在开复盘会议的时候,最好提供缺陷分析报告,在下一阶段进行开发时,有很多问题点抛出来,来避免它。