端到端测试详解

测试设计时应专注于真实的用户操作

为了确保端到端测试用例套件中的所有测试都是有价值的,可以围绕系统用户的角色以及这些用户在系统中进行的操作轨迹进行分析和场景设计。

例如,对于用户在网站上购物这个场景来说,应编写的是一个包含浏览商品、放入购物车、付款这三个操作的单个测试,而不是分别单独测试每一个操作。这种方法可以显著减少编写的测试数量并缩短测试执行时间。

慎重选择测试入口

如果特定的外部服务或 GUI 是测试用例套件中不稳定的主要原因,则可以重新确定测试范围以便排除掉不稳定的组件。但这里需要注意的是,虽然推荐使用服务虚拟化来模拟不稳定的服务,但尽量用真实的外部服务或 GUI 对核心链路进行至少一次的端到端测试,而不是一直使用服务虚拟化工具来模拟。

使测试与数据无关

端到端测试的常见困难来源是数据管理,有必要针对测试数据进行管理:如果数据可以用业务操作进行构造,则在端到端执行之前构造好需要的测试数据;如果不允许以业务操作方式构造,则可以在数据库中插入所需数据。

端到端测试,从来都不 low

一些测试人员认为端到端测试没有技术含量,我不太认同。因为测试过程中的关注点和验证点不同,个人的收获也不尽相同。你当然可以把端到端测试看成是一个纯黑盒测试,测试的过程就是不断“点点点”的过程,发现问题时直接反馈给研发同学,等研发同学排查解决后回归验证。你也可以提前梳理好核心链路服务调用关系、数据库表结构、核心类的代码逻辑等内容,在进行端到端测试时,针对关键操作实时查看接口调用情况、服务操作的日志、数据库等信息。并且当出现问题时,或许你自己就能定位出问题所在,即使未能定位出来,也可以把你排查到的中间结果告知给研发同学,使研发同学可以更快定位到问题所在。这种端到端测试属于灰盒测试(黑盒测试+白盒测试),测试效率变高、范围更加精准,研发人员对待你的态度也将大不一样。

总结

本问我讲解了微服务架构下的端到端测试,它是一种用于测试整个应用程序的流程是否符合预期的测试技术。它的测试范围比其他类型的测试大得多。绝大多数情况下,微服务应用系统依赖的外部服务也应包含在端到端测试范围内。如果有必要,也可以主动排除它们。端到端测试是面向业务的,所以测试时要从真实用户使用场景来进行测试,尽可能完整地部署系统中的微服务,并主要通过 GUI 和 API 等公共接口对其进行操作。

紧接着我又讲解了如何开展端到端测试,主要通过 UI 自动化测试方式、API 自动化测试方式和手工测试方式来进行:通过端到端测试框架(如Selenium、Appium、 REST-assured )和探索式软件测试方法发现整个应用程序的缺陷。

最后我给出了我在端到端测试方面的一些实践心得,包括端到端测试数量、缺陷分析和分层测试推进、测试设计时的关注点、对测试入口的选择、测试数据的准备和对端到端测试的基本认识等。

上一页12下一页


留言