Garantia de Qualidade
Testes de Software
Automação de Testes
QA
Engenharia de Software

数字质量保证:重要工具快速指南

质量不是来自购买最新的工具,而是来自针对您的产品所承担的风险类型组合正确的堆栈。

数字质量保证:重要工具快速指南

质量保证已成为“购买自动化测试工具”的代名词。这是一个代价高昂的错误。测试工具是质量的一部分,而不是全部质量,混淆两者的团队最终会得到一个测试套件,该套件在产品在用户手中损坏时却变绿了。

数字质量是确保软件以可靠、安全和可维护的方式实现其承诺的一组实践。工具服务于这些实践。独自一人,他们什么也保证不了。

对于任何需要构建或审查 QA 堆栈并希望了解工具类别而又不想被名称淹没的人来说,这是一份快速指南。目的是提供地图,而不是目录。

从风险开始,而不是工具

在选择任何工具之前,请回答:当它损坏您的产品时,什么对您造成的伤害最大?银行应用程序与博客具有不同的风险。公共卫生系统面临的风险与销售 T 恤的电子商务不同。

质量保证必须与风险相称。对永远不会达到流量峰值的产品进行大量投资进行负载测试是一种浪费;忽略处理敏感数据的系统上的安全测试是一种疏忽。正确的堆栈能够涵盖对您的案例真正重要的风险。

这是组织接下来的所有内容的过滤器。

类别快速图

质量工具是分层组织的。了解图层比记住名称更有用。

自动化测试

金字塔的基础是单元测试、Jest、JUnit、PyTest 等,具体取决于语言。它们速度快、价格便宜,应该是大多数。上面是集成测试,最上面是使用 Cypress、Playwright 或 Selenium 等工具进行的端到端测试。

这里的快速指南是:大量的单元测试,一些集成,很少的端到端测试。倒金字塔、大量的 UI 测试、很少的单元测试,速度慢、脆弱且维护成本高。这是从屏幕自动化开始的团队最常犯的错误。

代码质量

在测试行为之前,请确保代码健康。 Linters、格式化程序和静态分析工具(例如 SonarQube 或 ESLint)甚至可以在代码运行之前捕获问题。它们价格便宜,可在管道中实现自动化,并且回报率非常高。它们应该是强制性的。

安全

没有安全保障的质量是一半的质量。 SAST 工具分析代码中的漏洞; DAST 测试正在运行的应用程序; SCA 检查已知故障的依赖关系。诸如 OWASP 之类的参考资料组织了要查找的内容。在[LGPD1]背景下,忽略这一层不仅是技术风险,也是法律风险。

生产中的监控

最诚实的测试发生在生产中,由真实用户进行。 Sentry、Crashlytics 和 [可观察性 2] 工具形成了闭环:显示逃逸了之前所有层的内容。质量并不止于部署;它继续在使用中进行衡量。

如何在实践中构建堆栈

快速组装指南是分层的,从下到上。从管道中的 linter 和单元测试开始,便宜且直接。添加静态分析和依赖性检查。然后,在关键流程中进行集成测试。只有这样,才能对损坏最严重的路径进行端到端测试。同时,从第一次部署开始就在生产中进行监控。

一次组装所有东西是无人维护的堆栈的秘诀。根据痛苦的需要,逐层上升,产生可持续的质量保证。

导致整个堆栈失效的错误

最常见的错误不是技术性的,而是文化性的。团队将 QA 视为最后一步,即发布前的门户,而不是持续的实践。结果是最后匆匆写了测试,安全分析因为截止日期而被跳过,质量成为压力下首先牺牲的东西。

没有工具可以解决这个问题。不重视质量的团队中昂贵的 QA 堆栈会产生绿色指标并使用户感到沮丧。质量首先是文化决定,其次是工具决定。

还有一个过度的错误:立即采用所有工具,用检查填充管道,并使构建速度如此缓慢,以至于团队开始跳过步骤。扰乱流程的 QA 会成为被忽略的 QA。堆栈需要足够快,以便团队想要使用它。

任何工具都无法替代的人为因素

有一种质量是无法通过任何自动化实现的:它来自于了解产品和用户的人进行的探索性测试。工具会检查您告诉他们要检查的内容。一名优秀的测试人员会发现没人想到要测试的内容。

在公共世界中,尤其如此。卫生部门的预约安排系统可以通过所有自动化测试,但对于不了解流程的老年人来说仍然失败,或者当一半城市试图在同一天安排预约时崩溃。这些是绿色套件无法捕获的上下文、[可访问性3] 和实际负载问题。

这里的快速指南是不要陷入自动化涵盖一切的幻想。留出人们的时间来测试人们如何使用它。自动化确保有效的措施继续有效;人体测试会发现那些从来没有发挥过作用的东西。两者共同构成品质;一个人,不。

还值得考虑数据质量,而不仅仅是代码。处理公民登记的系统在技术上可能是完美的,但仍然会积累重复、不一致或过时的数据,从而削弱人们对产品的信任。验证和数据质量工具是成熟的 QA 堆栈的一部分,但在本次对话中很少提及。

支撑一切的理念

质量保证既不是一个部门,也不是一个工具。这是关于“完成”含义的团队协议。这些工具只是使该协议可验证且自动化。如果没有达成协议,管道中就会出现装饰性的面孔。

构建与您的风险成比例的堆栈,逐层上升,并将质量视为持续的实践,而不是最终的大门。这比任何不加判断地应用的高级工具更有价值。

如果您正在设置或审查产品的 QA,并希望根据实际风险进行堆栈诊断,那么值得讨论。还有其他有关自动化测试、应用程序安全和工程文化的博客文章深入探讨了本指南的每一层。

另请阅读

  • [数字质量保证:工具和基础知识5
  • [数字质量保证:基本工具和步骤6
  • 【软件测试周期:早测试者(和晚测试者)的趋势和真实案例7
  • [软件测试周期:趋势和领导者快速指南8
  • 【回归测试:商业模式快速指南9
  • [Bug追踪:完整指南10