持续测试的障碍(一):如何克服开发团队缺乏专业知识,加速交付高质量项目成品
持续测试是一个过程,使团队能够在软件开发中建立质量,并加速交付高质量的客户体验。通过持续测试,团队使用自动化测试获得关于代码健康的即时反馈。
持续测试使企业能够评估商业风险。最近的行业调查显示,用于跟踪项目进展和成功的首要指标:
- 高测试覆盖率
- 增加缺陷修复
- 减少了生产中的缺陷
- 在开发过程中建立质量
如何实现速度和质量的结合?答案是:持续测试。但它确实有其挑战。本文就说说第一个挑战或者说障碍——团队中缺乏专业知识。
障碍一:团队中缺乏专业知识
最初,专业知识的缺乏不仅是团队缺乏知识和技能。它也是正在使用的工具的限制。
考虑一下用户界面(UI)测试自动化。这是一种常见的做法,也很可靠,但可重复使用的自动化却很困难。Selenium是事实上的标准。虽然是开源和免费的,但它有自己的采用曲线,而且需要经验和时间来掌握。
Selenium测试可能是不可靠的,今天记录的东西,第二天就不能再播放了。随着越来越多的UI测试被自动化,测试维护成为一个日益严重的问题。Selenium需要进一步的工具支持,以变得更容易使用和维护。
服务水平或API测试是一个相对较新的,但有价值的实践。然而,它位于开发人员和测试人员之间的无人区。开发人员最了解API,但没有动力也没有必要对其进行测试,而测试人员缺乏进行API测试所需的知识。
此外,重要的是,API测试自动化超越了记录(在操作期间)和回放(用于测试)。需要对行为和API之间的互动进行建模,也需要使用这些互动来指导测试创建和管理过程。
性能测试通常被看作是由组织中的另一个团队完成的事情,也许是作为一个复选框项目执行。但是,当性能问题出现时,产品开发可能已经向前推进,可能需要一个破坏性的回滚。
理想情况下,性能测试需要在软件开发过程的早期完成,并利用已经完成的自动化功能测试的工作。同时,团队采用API测试,他们可以利用这项工作,使性能测试向左转移,使其成为开发人员和测试人员的共同责任。
如何消除障碍,实现简化测试自动化
开发和测试团队缺乏专业知识和培训不应该反映在团队本身,而是反映在采用测试自动化和相关工具时的复杂性。有一些解决方案可以用来努力简化测试自动化。这些解决方案使采用的破坏性更小,并更好地集成到现有的流程中。
创建可重复使用、可维护和可理解的测试脚本。Parasoft Selenic解决了采用Selenium的主要问题:测试创建和维护。通过Chrome浏览器记录UI交互,Selenium测试用例将根据这些交互自动创建。此外,定位器是使用页面对象模型记录的,对用户界面的变化更有弹性。Selenic使用AI驱动的测试自我修复,因此当UI的变化破坏了现有的测试时,该工具会做出智能假设,以防止测试案例失败。
通过记录手动和自动UI交互来模拟真实世界的API测试场景。API测试的采用受到了创建测试能力的阻碍。Parasoft SOAtest使用现有的UI测试(包括Selenic创建的测试)来记录应用程序执行期间发生的API交互。SOAtest内的人工智能将这些记录的互动组织成可识别的场景,然后形成API测试库的基础。这些API场景可以被回放、编辑、克隆和重复使用,以形成一个全面的API测试套件。SOAtest所做的自动化和人工智能驱动的决策,使API测试更容易被采用、使用和维护。此外,它还有助于弥补开发团队中的API测试知识差距。
重用现有的测试工件,有效地扩展负载、性能和安全测试,作为DevOps管道的一部分。随着开发团队对UI和API级别的测试自动化越来越熟练,测试库成为一个重要的可重用资源。测试可以被重复使用,用于负载和性能测试,并增加用例和代码覆盖率。