如何使用 TestRail 管理自动化测试结果 - 嘶吼 RoarTalk – 网络安全行业综合服务平台,4hou.com

如何使用 TestRail 管理自动化测试结果

walker 技术 2023-05-09 11:33:00
129385
收藏

导语:测试软件的性能可能非常耗时。不断检查和修复失败的测试或错误会花费大量时间。

测试软件的性能可能非常耗时。不断检查和修复失败的测试或错误会花费大量时间,并且需要质量保证 (QA) 团队付出大量努力,尤其是当他们手动进行时。

为了节省时间并仍然提供高质量的结果,许多项目旨在自动化他们的测试工作。我们谨慎地开发自动化测试策略并使用 TestRail 来管理自动化测试结果。

本文将通过分享我们在使用此工具时的策略,帮助您了解如何借助 TestRail 提高 QA 流程的效率。

为什么要管理自动化测试结果?

为确保有效的自动化测试,您需要制定测试管理策略并为您的项目选择合适的技术和测试覆盖率。这将为您提供自动测试结果的透明度、对这些结果的有效分析和管理,以及处理脆弱测试的策略,这些测试在大多数时间都有效。  

实施测试自动化时最常见的问题之一是缺乏对自动测试结果管理的关注。管理自动化测试的结果是构建高效测试策略不可或缺的一部分。从长远来看,它可以帮助您显着缩短重复的手动测试过程并优化您的 QA 费用。

最坏的情况是当您在自动质量保证 (AQA) 环境中本地运行测试并且它们没有集成到持续集成和持续部署 (CI/CD) 管道中时。在这种情况下,您无法控制自动测试的定期运行或其结果。随着时间的推移,或者在更改 AQA 环境之后,自动测试可能永远不会再次运行,并且它们之前的结果可能会丢失。因此,专门用于编写和运行这些测试的资金和其他资源可能被证明是白费了。 

在更成熟的流程中,QA 工程师和开发人员将自动测试集成到 CI/CD 管道中。QA 专家定期在测试环境中运行测试,并将结果汇总在一份报告中。通常,自动化测试团队独立于手动测试团队工作。因此,手动测试及其结果与自动测试分开监控。这有一些负面影响:

  • 您需要在多个地方努力管理测试结果

  • 存在不及时响应失败的自动测试的风险

有时,人工和自动化 QA 专家对监控自动测试结果的职责模糊不清,这可能导致测试结果未被处理甚至丢失。此外,手动和自动 QA 专家的职责不明确使计算自动测试覆盖率的过程变得复杂,而自动测试覆盖率是管理测试自动化的最重要指标之一。

现在,让我们看看可以将测试自动化工具集成到测试过程中的不同情况。

您可以使用测试自动化工具实现什么?

通过将自动测试管理工具集成到 QA 部门的工作中,您可以监督很多事情。

image.png

您可以使用自动测试自动化工具做什么

自动化测试场景。自动测试管理工具为您提供了一种存储自动测试场景以供将来使用的便捷方式。例如,如果您使用行为驱动开发或基于关键字的测试自动化方法,您可以为每次测试运行从存储中检索自动化测试场景。

测试执行过程。在测试用例的执行过程中,自动测试管理工具提供了许多组合测试的选项:顺序执行、优先级排序、并行执行等。根据测试项目的要求、资源和目标,您可以选择最佳选项并将其集成到您的自动测试管理工具中。

测试执行结果。许多测试管理工具允许您在测试运行后生成报告。这些报告有很多可视化组件,包括执行结果、失败的测试和失败的原因,以及总执行时间。

测试执行历史。您所有的测试运行结果都已存储并可以随时检索。您还可以根据所选工具的功能使用不同参数生成所有执行的统计信息。 

为了优化自动测试结果的监控和管理,Apriorit 团队采用了一种综合方法,结合了手动和自动测试活动。作为这种方法的一部分,我们:

  • 确保负责手动和自动测试工作的 QA 专家作为单个团队的一部分不断联系

  • 使用单一工具管理手动测试和自动测试 

有几种流行的自动测试结果管理工具,包括 TestRail、Zephyr、QMetry 和 Testmo。根据我们的经验,我们更喜欢使用 TestRail,因为它具有以下优势: 

image.png

TestRail的优势

  • Jira 测试集成。我们使用 Jira 作为我们的主要进度跟踪软件,因此将 TestRail 与 Jira 一起用于测试自动化对我们团队来说非常方便。

  • 能够管理手动和自动测试。这提高了我们 QA 团队的工作效率,使他们能够及时响应失败的测试。

  • 测试用例统一。这使我们能够以一种适合我们的单一格式使用测试用例,并以相同的格式自动从 TestRail 导出测试用例。在我们导入现有的测试用例或创建新的测试用例后,TestRail 会将选定的模板应用于所有可用的测试用例。

  • 用户友好的用户界面。TestRail 不仅在视觉上很吸引人,而且使用起来也很直观。

现在让我们来看看我们在 TestRail 中管理自动化测试结果的策略。

如何在TestRail中处理自动化测试结果

我们基于左移方法开发了自己有效的 QA 策略。 

该策略的好处包括: 

  • 质量保证活动的时间和成本节省

  • 更快的上市时间

  • 改善用户体验

  • 令人满意的产品性能

作为我们有效的自动化策略的一部分,我们在策略实施之前的早期测试阶段建立了自动测试覆盖率。完成测试设计阶段后,我们分析哪些设计的测试用例应该被自动测试覆盖。所选测试在 TestRail 中的类型字段中标记为自动。 

指定测试用例类型可以让我们在TestRail自动化测试时,所有的自动测试都有对应的测试用例。通过这种方法,运行自动测试和监控其结果的过程变得可控和透明。由于我们为每个自动测试都有一个相应的测试用例,并且我们知道如何在 TestRail 中自动创建测试运行,因此我们可以按如下方式最终确定我们的自动测试结果管理策略:

image.png

Apriorit 自动测试结果管理策略

  1. 首先,我们为每个构建运行自动测试作为 CI/CD 管道的一部分。

  2. 成功构建后,我们将新的自动测试版本发送到单独的测试台以运行自动测试。

  3. 每次运行时,我们都会在 TestRail 中形成一个新的测试运行,添加所有自动化类型的测试。

  4. 形成一个新的试运行后,我们按照一个模板来命名,这样我们就可以很方便的了解试运行的版本和时间。例如,我们使用以下模板:Acceptance_Automation_Run_

  5. 完成自动测试后,每个测试的状态都会在测试运行中自动输入 - 通过、失败或未测试。

  6. 我们完成所有测试运行。之后,我们会收到一条通知,其中包含指向新测试运行的链接。

  7. 最后,我们审查通过测试的结果并分析状态为“失败”或“未测试”的测试。 

在处理状态为“失败”或“未测试”的测试时,我们还使用定义的工作流程: 

我们为回溯系统中所有失败的测试创建错误票。我们的团队总是重新检查失败的测试,并在错误报告中包含有关手动检查结果的信息。

我们始终将修复错误或失败的测试放在首位,即使它无法手动重现。我们这样做是因为对我们来说,不正确的工作或失败的测试与成品中的错误具有相同的优先级。

我们还为状态为Untested 的测试创建错误票。一旦我们在测试运行中包含了自动类型的测试,它们就必须被覆盖并且应该定期执行。如果有测试但我们团队还没有执行,这也是与产品bug同等优先级的问题。 

因此,我们创建了一个透明的系统来监视和控制自动测试启动的规律性和自动测试的结果。整个团队,从 AQA 和手动 QA 专家一直到开发人员和管理人员,都可以收到有关测试启动的通知并轻松查看测试运行的结果。

AQA 和手动 QA 专家都可以查看测试结果和在失败测试中注册的错误。一切都是完全透明的,测试过程的所有参与者都可以访问。现在我们已经解释了我们在 TestRail 中处理自动化测试结果的策略,是时候将 TestRail 自动化集成到您的 QA 流程中了。

如何将自动测试结果与 TestRail 集成(实例)

如果您想将自动测试结果与 TestRail 集成,您可以使用与您在编写自动测试时使用的技术相对应的现成插件。我们在下面的示例中展示的方法适用于 Python 测试和 Cypress 测试。

我们建议在每次运行自动测试时创建一个新的测试运行,因为它比运行单个测试更方便。这样,您就不会丢失任何重要信息,例如测试执行日期和失败测试统计信息。为了在每次运行自动测试时创建一个新的测试运行,我们在 TestRailAPI 上实现了一个包装器。

让我们仔细看看每个使用的插件。

集成 Python 测试

您可以使用pytest-testrail插件将 TestRail 和自动化测试集成到您的 QA 流程中。

当您运行 Python 自动测试时,您需要指定报告者和测试运行 ID。

例如:

python -m pytest --testrail --tr-run-id=111

自动测试标记为@pytestrail.case(*testrail_case_id*)。执行测试后,相应的测试状态将添加到测试运行中。

在测试运行执行期间,我们使用来自 testrail.cfg 文件的数据,其中 包含以下参数:URL、凭据、project_id、suite_id 等。

以下是 Python 测试的配置文件的样子: 

Python
[API]
url = https://yoururl.testrail.net/
email = user@email.com
password =  
[TESTRUN]
assignedto_id = 1
project_id = 2
suite_id = 3
plan_id = 4
description = 'This is an example description'
 
[TESTCASE]
custom_comment = 'This is a custom comment'

现在让我们看一下将 Cypress 测试集成到 TestRail 中。

您可以使用TestRail Reporter for Cypress将 Cypress 测试集成到 TestRail 中。

您需要在 TestRail Cypress 测试中包含测试用例的 ID。在执行 Cypress 测试时,您可以自动从 cypress.json 文件中获取数据。此数据包括以下参数:reporter、testrail URL、credentials、project_id、suite_id、run_id 等。

例如:

JavaScript
... 
"reporter": "cypress-testrail-milestone-reporter", 
"reporterOptions": { 
  "domain": "yourdomain.testrail.com", 
  "username": "username", 
  "password": "password", 
  "projectId": "projectIdNumber", 
  "milestoneId": "milestoneIdNumber", 
  "suiteId": "suiteIdNumber", 
  "createTestRun": "createTestRunFlag", 
  "runName": "testRunName", 
  "runId": "testRunIdNumber", 
  
}

为方便起见,您可以在每次测试运行结束时自行生成包含关键指标的报告。接下来,我们关注这些指标及其含义。

如何理解 TestRail 中的重要指标

将 TestRail 用于您的 QA 流程,除了提供自动测试的透明度和可控性之外,还可以轻松收集重要指标并跟踪其动态。执行测试运行后,您可以随时在 TestRail 中查看有关测试的结果和重要信息。

我们建议在报告中关注两个重要指标:

image.png

主要的 TestRail 指标

1. 自动化覆盖率是自动测试覆盖的测试用例的百分比。当您使用 TestRail 管理自动化测试用例时,它们都有一个单独的类型。您可以轻松计算验收测试覆盖率百分比以及整体自动化覆盖率。 

要了解自动测试的数量和百分比,请转到“报告”选项卡。选择名称并为您的报告添加描述。之后,选择Report Options中的Grouping选项卡并按Type对测试用例进行分组。

Property-Distribution-report-1.png

截图 1. Property Distribution 报告

最好定期生成 Property Distribution 报告以监控指标动态,这将使您的团队能够控制自动测试覆盖范围的增加或缩小。

2. 每个测试的成功率是特定测试的通过/失败状态的百分比。在 TestRail 报告的帮助下,您可以跟踪特定测试失败的次数,并关注最常失败的测试。  

要在 TestRail 中分析失败的测试,首先转到Reports选项卡。输入名称并为您的报告添加描述。之后,在Report Options 中选择Failed状态。

image.png

屏幕截图 2. Status Tops 报告

完成这些操作后,您将看到最常失败的测试。

在分析失败的测试时,您可以将它们分为两类:

  • 片状测试(不可靠、脆弱的测试)——不稳定且经常失败的测试,没有明显原因给出误报结果,而不是发现实际错误。我们将在下一节中详细描述使用此类测试的策略。

  • 不稳定的测试或用例——损坏或有问题的测试或用例。这些测试表明您的模块中有脆弱的代码,您的 QA 团队可能需要重构它。

您需要立即解决并尝试修复任何无缘无故失败的测试,以免它拖延开发过程并在未来占用您的 QA 专家的时间。让我们仔细看看如何处理这些不稳定的测试。

如何管理不稳定的测试

不稳定的测试需要 QA 专家的特别关注,他们处理自动测试、分析每个测试运行的结果,并为每个失败的测试发布错误报告。不稳定的测试可能需要 QA 专家付出大量努力,包括每次测试运行所花费的时间和资源、失败测试的手动分析以及修复测试所花费的时间。

为了减少花在不可靠测试上的时间,您需要在自动测试管理策略中明确描述使用此类测试的策略。在 Apriorit,我们有一个处理不稳定测试的清晰策略:

image.png

如何管理片状测试

步骤 1.首先,我们在这种特殊情况下定义了一个不稳定的测试。在我们的实践中,如果某项测试连续三次出现误报,我们就会认为该测试不稳定或不可靠。  

第 2 步。我们尝试通过修复它来稳定 flaky 测试。 

第 3 步。如果在尝试修复它后,测试仍然失败并给出误报结果,我们可能需要删除自动测试并更改 TestRail 中的测试用例类型。 

如果测试不可靠并且您无法稳定它,它就会成为您的 QA 团队的负担。当测试不可靠并且您不能相信其结果时,最好尽快修复它或将其删除。这样,您就不必花时间支持和监控易碎测试的结果并手动检查它们。

现在您有了处理不可靠测试的明确计划。因此,您可以确信您的 QA 团队不会在此类测试上浪费太多时间和精力。

结论

您可以将我们的示例作为 QA 流程的基础,并根据您的需要进行调整。使用 TestRail 进行自动化测试结果管理可让您显着改善质量保证工作。在 TestRail 的帮助下,您的 QA 团队可以减少在测试运行上花费的时间和资源。您还可以在 TestRail 中跟踪您的结果,从而更有效地管理您的测试运行并处理失败的测试和错误。


本文翻译自:https://www.apriorit.com/qa-blog/qa-testrail-managing-autotest-results如若转载,请注明原文地址
  • 分享至
取消

感谢您的支持,我会继续努力的!

扫码支持

打开微信扫一扫后点击右上角即可分享哟

发表评论

 
本站4hou.com,所使用的字体和图片文字等素材部分来源于原作者或互联网共享平台。如使用任何字体和图片文字有侵犯其版权所有方的,嘶吼将配合联系原作者核实,并做出删除处理。
©2024 北京嘶吼文化传媒有限公司 京ICP备16063439号-1 本站由 提供云计算服务