大家好,我是阿萨。今天说说测试报告。
测试报告对于确保你的Web应用或移动应用达到可接受的质量水平至关重要。
如果做得好,测试报告和分析可以通过在正确的时间提供正确的反馈,为你的开发生命周期增加真正的价值。
什么是测试报告?
测试报告是对测试目标、活动和结果的一个有组织的总结。它是用来帮助利益相关者(产品经理、业务分析师、测试团队和开发人员)了解产品质量,并决定一个产品、功能或缺陷的解决是否在发布的轨道上。
除了产品质量,测试报告还提供了对你的测试和测试自动化活动质量的洞察力。领导通常对测试自动化都会有四个问题。
自动化脚本出了什么问题?
后端有什么问题?
测试环境有什么问题?
测试执行有什么问题?
最后,测试报告应该帮助你了解测试的实现价值。例如,你是否在不必要地测试什么?你的测试是否稳定?你是否能够在过程的早期发现问题?
一个好的测试报告过程会给所有这些重要问题以洞察力和答案。你不仅可以提高应用程序的质量,而且可以加速你的发布。
测试报告和分析的挑战
敏捷、DevOps、CI/CD--这些现代开发的标志已经改变了对 "好的 "测试报告的要求。下面是一些可能妨碍你及时、准确的给出测试报告的因素。
快速的发布周期
传统上,测试报告的编制和总结(使用电子表格)是瀑布式开发过程的最后阶段之一。发布次数很少,所以有时间来汇编结果,创建报告,并做出决定。
敏捷和DevOps运动使快速发布的节奏成为标准,大大改变了这一点。测试需要快速进行。关于质量的决定不是在几个月的时间内做出,而是在几周、几天甚至几小时内做出。如果不能及时得到反馈,发布就会停滞不前,或者以有问题的质量发货。
有噪音的、大量的数据
今天的测试团队从测试中产生大量的数据。这些数据在很大程度上是由测试自动化(更多的测试)和设备扩散(更多的设备、浏览器和版本)造成的。
数据越多越好,对吗?是的,也不是。
是的,如果它是可操作的。不,如果它不是。许多团队包含了太多的测试数据。在这种情况下,很难理解什么是有价值的,什么是噪音。
噪音是由不稳定的测试用例、环境不稳定和其他问题造成的,这些问题导致了错误的否定,而我们并不了解其根本原因。在今天的开发过程中,公司必须经历测试报告中被标记的每一个失败。
那么,报告就会被大量不相关的信息所困扰。
分割的数据
另一个问题,特别是对于较大的组织,是由于团队、工具和框架的数量和种类。
很简单。
有大量的测试数据。
它来自许多不同的人和团队(SDETs,开发人员,业务测试人员,API测试人员)。
它通过不同的框架和格式(Selenium,Appium,等等)给出。
如果没有一个统一的方法来捕捉和分类整个组织的数据,良好的测试报告变得非常困难。
测试报告应该包含什么?
测试报告中要包含什么?这取决于使用它的利益相关者的组合,以及团队的复杂程度。
不管怎么样,它的内容应该提供快速的、可操作的反馈。一切都应该尽可能简单地描述(或在测试自动化工具中显示),但不能太简单。它需要在正确的领域有正确的颗粒度才能发挥作用。
记住,测试报告是用来分析质量和做决定的。如果它过于简单,重要的细微差别就会丢失,导致决策失误。如果它过于细化,你和团队将很难了解整体的质量状况。
基本测试报告摘要
一个小型应用或组织的非常基本的测试报告,至少应该包括以下内容。
执行概述 - 关键结果的总结。
测试目标 - 关于测试类型和目的的信息。
测试总结 - 定义通过的,失败的,和被阻止的测试案例。
缺陷 - 用优先级和状态来描述。
对于一个较大的组织,或实施更复杂的测试的组织来说,最低限度是不够的。
每份测试报告必须包括足够的工件,如日志、网络流量(HAR文件)、屏幕截图、视频记录和其他相关数据,以帮助审查员做出数据驱动的决定。
测试历史--包括测试发现的缺陷,产品中存在问题的平台或功能--可以为测试报告评审员提供围绕下一步、测试影响分析和下一周期测试应对的巨大价值。
持续测试的测试报告
当你快速、频繁地发布,并在测试自动化的帮助下--就像大多数现代组织那样--更智能的测试和分析是必要的。
首先,你需要确定测试活动的时间,以便在开发管道中最恰当的时间提供报告和分析。
在下面的例子中,你会看到单元、烟雾和回归测试的时间与团队的相关时间一致。例如,太晚进行单元测试(或太晚得到反馈),你就有可能推迟发布。每晚同步回归测试,所以团队可以在第二天得到反馈并采取行动。
好的测试报告会在正确的时间交付给正确的团队。
除此以外,你会想要一个为管道完善的测试报告仪表板。这将包括以下内容。
执行概述 -突出持续集成管道中测试的实时趋势。
重点领域的热图 - 绘制新出现的问题(风险或其他领域)。
跨平台可视化验证结果 - 快速查看跨浏览器的功能/UI缺陷。
单一测试报告 - 用于详细的根本原因分析,包括上述工件的清单。
报告库 - 用于有效的分流(数据的切片和切块)。
与瀑布式开发的早期相比,测试报告已经变得相当复杂了。但最终目标--获得可操作的反馈--并没有改变。为了更快地发现bug,你需要过滤掉噪音和误报。这样,你就可以专注于真正的问题,以达到快速的MTTR(平均解决时间)。