撰写高质量的测试说明
简介
在代码提交请求中提供清晰的测试说明是 WooCommerce 中质量工程的第一步,这对于尽早进行测试以及最大限度地减少 WooCommerce 未来版本中意外影响至关重要。
本页面包含以下部分:
什么是测试?
测试是一种方法,我们可以使用它来检查某事物是否满足某些标准。 它通常被定义为一种程序,其中包含将待测系统置于特定状态所需的所有步骤,然后再执行要检查的操作。 因此,一个测试由以下几个阶段组成:
- 前提条件: 执行要检查的操作之前,需要执行的所有步骤,以使系统处于期望的状态。 一个测试可能包含多个前提条件。
- 操作: 这是导致系统中发生我们想要检查的更改的精确步骤。 理想情况下,每个测试应该只覆盖一个方面,因此操作应该只有一个。
- 验证: 与执行操作后,验证结果所需的步骤相关。 一个测试可以验证多个方面。
例如,在将商品添加到购物车的过程中:
- 前提条件 将包括:
- 产品创建过程。
- 以顾客身份登录。
- 访问列出产品的商店页面。
- 操作 将是点击所需产品的“加入购物车”按钮。
- 验证 阶段将包括检查购物车图标(如果有)是否显示 1 个更多商品,以及我们选择的商品是否已包含在购物车中。
明确前提条件、操作和验证对于理解测试的范围非常有益,因为:
- 前提条件 描述了我们必须执行哪些步骤才能成功执行测试。
- 操作 让我们了解测试的目的,换句话说,它是理解我们需要测试的内容的关键。
- 验证 阶段让我们知道在执行测试时应该期望的结果。
在此上下文中,我们将测试说明称为我们需要执行的测试,以验证代码提交请求或发布的更改是否按预期工作。 这意味着测试说明可能引用一个或多个测试,包括正常流程和潜在的边缘情况。
测试说明应该涵盖的内容
如前一部分所述,一个测试(在我们的语境中,一个测试说明)是一种方法,用于检查新的更改或一组更改是否满足某些标准。
因此,一个 Pull Request (PR) 可以包含针对多个场景的测试说明,实际上,建议包含尽可能多的测试说明,以覆盖 PR 中引入的所有更改。 换句话说,请添加尽可能多的测试说明,以覆盖验收标准,将验收标准理解为_软件产品必须满足的条件,才能被用户、客户或其他利益相关者接受_,或者,在 PR 的语境下,PR 必须满足的条件,才能被用户、开发者和 WooCommerce 社区接受,如要求所述。
撰写高质量测试说明的流程
- 概述您想要覆盖的用户流程。
- 定义执行测试说明的环境(服务器、PHP 版本、WP 版本、必需的插件等),并像从全新安装开始一样撰写测试说明。
- 识别前提条件、操作和验证步骤。
- 撰写尽可能多的前提条件,以解释如何设置 WooCommerce 的状态,以便您可以执行所需的操作来测试每个流程。
- 尽量详细地解释用户在 WooCommerce 中需要执行的交互操作。
- 如果某个用户流程在公开指南中有详细说明,您可以直接在测试说明中链接到该指南,而无需编写多个步骤。 例如,“请按照测试账户文档中提到的步骤启用 WooCommerce Payments 的开发模式”。
- 撰写操作步骤,该步骤应涵盖我们希望在此用户流程中测试的特定操作。
- 撰写尽可能多的验证步骤,以评估实际结果是否符合预期。
- 请记住,仅检查验证此更改是否正常运行所需的步骤。
撰写高质量测试说明的注意事项
- 以一种所有人都能理解和遵循的方式定义测试说明,即使是那些不熟悉 WooCommerce 的人。
- 务必详细描述每一个细节,避免假设知识,因为读者的范围可能很广,有些人可能不了解您所假设的概念。例如,不要说“启用 [x] 实验”,而应该说:
- 安装 WooCommerce Beta Tester 插件。
- 访问 `工具 > WCA 测试助手 > 实验`。
- 切换 [x] 实验。
- 始终尝试详细说明用户应该前往哪里,例如,不要说“以管理员身份访问订单页面”,而应该说“访问 [url]”或“访问 WooCommerce > 订单”。
- 尽量使用真实的测试数据。例如,不要说“输入产品的名称”,而应该说“输入 '蓝色 T 恤' 作为产品名称”。这会使其更易于理解,并消除与假设知识相关的潜在疑问。
- 请确保您的测试说明保持更新,如果它们在新的提交中变得过时,请及时更新。
- 如果测试说明需要添加自定义代码,请提供代码片段。
- 如果测试说明需要安装插件,请提供指向该插件的链接,或用于安装的 zip 文件。
- 如果测试说明需要访问 API 接口,请提供指向接口文档的链接。
- 理想情况下,请提供截图和/或视频,以支持测试说明所解释的内容。如果您使用指向协作工具的链接,也请为那些无法访问这些工具的人提供相应的截图/视频。
示例
优质的测试说明示例
示例 1

示例 2

改进真实测试的说明
在这一部分,您将看到一些真实测试说明的例子,这些例子有改进的空间(前)以及我们如何对其进行调整(后)。
前:

后:

改进:

前:

后:

改进:

前:

后:

改进:
