
Maroš Kutschy 在 QA Challenge Accepted 大会上表示,自动化测试结果的分析是测试活动的一个非常重要且具有挑战性的部分。在任何时刻,我们都应该能够根据自动化测试的结果来判断产品的状态。他介绍了人工智能如何帮助他们节省分析时间、减少人为错误,使团队能够专注于新出现的失败的测试。
Kutschy 提到,他们在分析自动化测试结果时遇到了挑战,正在寻找一种更高效且更少出错的分析方法:
如果你每晚运行 4000 多个测试,其中约 5% 的测试失败,那么你每天需要分析大约 200 个失败的测试。
他们引入了 ReportPortal 这个工具,它使用人工智能来分析自动化测试结果。正如 Kutschy 所说的,这个工具可以作为企业内部解决方案进行免费安装:
作为这个工具的管理员,我完成了概念验证和集成,并解决了所有问题。现在,功能团队的测试人员每天都在使用它。
Kutschy 说,测试人员登录 ReportPortal 找到他们负责的作业的运行结果,并查看有多少失败处于“待调查”状态。前一天的失败测试(之前已经分析过)已被 ReportPortal 分类。对于“待调查”状态的失败测试,他们需要执行标准的分析流程,即调试并找出失败的根本原因:
ReportPortal 会显示分析结果;你可以看到有多少测试是因产品缺陷、自动化缺陷、环境问题导致的,以及还有多少失败的测试处于“待调查”状态。
Kutschy 说,当你刚开始使用这个工具时,它对失败的测试一无所知。测试人员需要决定测试失败是产品缺陷、自动化缺陷还是环境问题导致的。当下一次相同的测试再次失败时,工具会根据之前的判断,利用人工智能为失败分配正确的状态。
Kutschy 提到,仪表盘通过展示分析结果提供了测试和应用程序状态的概览视图。实时可见的分析状态让你可以看到谁正在处理哪个失败的测试,这有助于决定是否可以发布应用程序。
使用这个工具可以节省分析时间,因为它们只关注新失败的测试,而不是所有失败的测试,正如 Kutschy 所说的:
区别在于,如果你今天有 100 个失败的测试,其中只有 2 个是新出现的,你只需要查看这 2 个。如果你不使用这个工具,就需要查看 100 个。
由于工具会根据之前的决策对旧的失败测试进行分类,因此减少了人为错误。这有助于将注意力集中在新出现的失败测试上,Kutschy 说。
如果人类用错误的数据训练人工智能,人工智能也会做出错误的决定,Kutschy 说。如果你是一个糟糕的老师,你的学生(ReportPortal)也会表现不佳:
有时,一个同事会将失败的测试链接到错误的 Jira 任务,或者为失败的测试分配错误的状态。
你可以通过手动修改来“取消学习”,Kutschy 说。
如果正确使用人工智能,它可以为你节省大量时间并减少人为错误,Kutschy 说。在确认它可以正常运行之后,你就可以信赖它,不再需要你们手动对失败的测试进行分类。
InfoQ 采访了 Maroš Kutschy__,了解他如何使用人工智能进行自动化测试分析。
InfoQ:你在这个过程中遇到了哪些挑战,又是如何解决的?
Maroš Kutschy:我们首先进行概念验证,确认我们可以将该工具集成到我们的测试自动化框架中。
接下来,我们让同事们遵循使用 ReportPortal 来分析测试结果的流程。最初,他们需要对所有的失败测试进行分类,即为它们分配正确的状态(自动化问题、产品缺陷、环境问题)和 Jira 任务。
我们先是在指定的团队中进行了测试,然后让所有团队都开始使用。试用的反馈非常积极,测试人员觉得它很有用,因为它帮助他们简化了分析工作。
InfoQ:你从中学到了什么?
Kutschy:在开始使用人工智能工具之前,你必须确认其可靠性。
我们必须确保 ReportPortal 做出了正确的决定。这个决定取决于我们在测试自动化框架中如何处理堆栈跟踪信息和 ReportPortal 的配置。如果它没有按预期工作,我们就尝试调整 ReportPortal 的设置。
目前的大多数讨论都是关于如何使用人工智能来生成测试自动化代码,但我们发现,自动化测试结果分析也是一个非常适用人工智能的领域。我们可以在测试的许多场景中使用人工智能(包括生成式人工智能)。
查看英文原文:
https://www.infoq.com/news/2025/03/AI-analysis-automated-test/
评论