如何实现SaaS和低代码应用程序的自动化QA测试

186 阅读7分钟

如何实现SaaS和低代码应用程序的自动化QA测试

IT部门仍然可以在不接触底层源代码的情况下进行测试。使用敏捷验收测试,解决业务逻辑问题,并采用机器学习的测试平台。

质量保证自动化工程师测试内部开发的应用,从传统的单体到利用微服务的云原生应用。一个典型的关键任务应用程序需要结合代码层面的单元测试、代码审查、API测试、自动化用户体验测试、安全测试和性能测试。最好的开发实践是自动运行这些测试,然后在CI/CD(持续集成和持续交付)管道内选择一个最佳子集进行持续测试

但是,使用SaaS(软件即服务)平台、低代码开发工具或授权公民开发者的无代码平台配置的应用程序、工作流程、集成、数据可视化和用户体验呢?仅仅因为涉及的编码较少或没有编码,就自动意味着工作流程按要求运行,数据处理符合业务要求,安全配置符合公司政策,性能符合用户期望?

[也在InfoWorld上:如何使测试自动化与敏捷和开发相一致]

这个问题让我想起了我的高中微积分老师教我们的东西。她会说,"如果你假设,那么你就会使你和我成为一个傻瓜"。在SaaS、低代码和无代码的情况下,假设应用程序的功能符合要求而没有测试计划,会导致许多问题:

  • 恼火的利益相关者对意外的结果感到沮丧
  • 安全漏洞,将数据暴露给公众或不应该访问的员工
  • 可能传播到其他综合工作流程和客户体验的数据问题
  • 当应用程序扩展到许多用户和更大的数据集时的性能问题
  • 沮丧的IT团队被要求重做应用程序或开发变通方法

那么,什么应该被测试?在不能接触到底层源代码的情况下,如何测试这些应用程序?特别是考虑到许多开发组织在QA工程师方面人手不足,IT部门应该在哪里优先进行测试?

我采访了几位专家,帮助我整理出一些答案。

从定义和实施敏捷验收测试开始

LaunchDarkly的CTO和联合创始人John Kodumal提醒我们IT行业的人,验收测试应该适用于IT支持的所有应用,而不仅仅是需要软件开发的应用。他说:"在传统的SaaS模式中,开发团队进行验收测试是正常发布测试程序的一部分"。

定义业务和用户验收测试是一个重要的开始,因为大多数SaaS、低代码和无代码应用都需要配置,而且实施可以遵循scrum或其他敏捷方法。敏捷的纪律包括将需求写成用户故事,并记录下通过或失败的验收标准。敏捷团队应该像管理业务和非功能需求的小功能合同一样管理敏捷用户的故事。

定义验收标准是重要的第一步,即使是不需要编码或有限配置的SaaS应用,也应该遵循。

但是,假设IT部门没有承担起定义验收标准和使这些测试自动化的责任。在这些情况下,缺乏测试就会产生风险,或者业务团队承担起测试的任务。这两种情况都不是最佳选择。IT应该是负责领导实施的部门,包括测试功能。

低代码和无代码需要测试业务逻辑

低代码和无代码平台提供了一个抽象层,简化了开发、支持和增强应用程序。但在使用这些平台时,你仍然要对业务逻辑进行编码,配置工作流程,定义数据处理规则,并选择访问角色。平台进行了简化,但仍有风险,即开发人员实现的逻辑不正确,或不完全知道如何准确地满足低代码或无代码平台的要求。

Kodumal补充说,测试增加了两个额外的责任。"测试低代码解决方案的重点是测试两个不同的东西:测试低代码用户所表达的业务逻辑,以及测试支持低代码解决方案的结构是否正常工作。这两类测试确保应用程序以最终用户期望的方式工作"。

你可以用工具测试业务逻辑,通过浏览器捕捉用户的互动,并自动测试这些流程。测试底层结构可能需要对数据模型、权限、表格、报告和自动化进行审查,以确保它们符合标准,不会引入风险。

Monitaur的首席技术官Andrew Clark建议,自动化测试应该集中在工作流程和应用程序如何支持业务流程。他说,"测试SaaS和低代码应用程序的一个好方法是进行基本的输入和输出验证。你需要创建一个我们期望系统执行的关键事件/操作的矩阵,并设置测试案例来验证系统是否按照预期执行"。

KNIME 的数据科学布道主管Rosaria Silipo更进一步,建议无代码和低代码应用程序应遵循类似的测试标准。她说:"一个低代码应用程序应该有自己的测试套件,它应该遵循与基于代码的应用程序完全相同的准则:测试单元、黄金表、优雅退出等等。构建一个在响应中没有失败代码的网络服务,或者一个在出错时没有优雅退出的网络应用是不专业的,就像基于代码的应用一样。

使用低代码的测试平台和机器学习

虽然用低代码和无代码开发往往能加速开发过程,并能更容易地进行增强,但devops团队仍应进行测试和配置审查。

好消息是,QA工程师可以用低代码测试平台开发测试。Sauce Labs公司AutonomIQ的首席执行官Ram Shanmugam说:"通过低代码测试,你使用了先进的AI和ML技术,所以编写和维护测试脚本的过程是通过机器完成的。这可以大大减少所涉及的时间和成本,同时也减少了你对测试自动化工程师的依赖,因为正常的编码员甚至非编码员现在可以生成测试自动化脚本。最终,测试人员现在可以专注于软件的业务需求,并确保用户的意图被保留下来"。

低代码和SaaS平台如何实现测试自动化

如果你正在测试用户体验、业务逻辑、数据处理和SaaS或低代码应用程序的配置,这是否是对质量、可靠性和安全性的充分验证?

整体质量还取决于低代码平台或SaaS供应商如何测试他们的技术和管理底层云服务和基础设施。大多数平台供应商分享他们的安全认证、服务水平和合规证书,如ISO、SOC、GDPR、PCI和FedRamp。顶级供应商还分享他们的发布时间表、发布说明、已知缺陷、服务水平记录,以及访问网页以检查正常运行时间状态。但没有那么多供应商提供关于他们的架构、开发标准和测试实践的细节。

我与Coveo公司研发部高级副总裁Martin Laporte交谈,讨论他们的测试和部署方法。他说:"在一个SaaS平台的组件每天被多次更新的世界里,可观察性是关键,以检测任何行为的变化,如错误率的增加或响应时间的变化。每当检测到异常情况时,就必须以自动回滚到以前的工作版本来中断推出。"

这是对部署频率和测试实践的一个高标准,也是你希望其他SaaS和低代码平台的目标。这种测试水平,加上开发团队的测试自动化努力,有助于减少部署风险,特别是对于需要高可靠性的应用程序。

一句话。如果你没有测试低代码或SaaS应用程序,那么,你可能做了太多的假设。

相关的: