数据驱动的测试

数据驱动测试是一种测试方法,其中测试的输入和输出值与代码分开。 这种形式主义通常意味着,在使测试代码更通用一点方面进行少量投资,只需识别所涉及的数据即可编写大量测试用例。

数据驱动测试非常适用于使用一组定义其行为的输入值的测试区域-例如,在测试 API 时,输入和输出参数可以定义为数据源,测试代码使用数据、进行 API 调用并验证结果。

TAEF 中的数据驱动测试支持

TAEF 提供了多种用于创作数据驱动测试的选项。 让我们了解这些选项,以便你可以选择最适合你的测试方案的选项。

基于表的数据驱动测试 解决方案允许对数据参数变体进行精细控制,以及定义参数类型。 在本例中,DataSource 是在 XML 文件中定义的表。 可以指定参数类型 (int、unsigned int、size_t、bool、double、DWORD、__int64 等及其同质数组变体) ,或者将类型默认为 WEX::Common::String (本机) 或字符串 (托管) 。 表中的每一行都是参数值的一组变体。 将为表中的每个行重新调用测试方法。 下面是用于基于表的数据驱动测试的 XML 数据源的代码片段:

1  <?xml version="1.0"?>
2   <Data>
3     <Table Id ="Table1">
4          <ParameterTypes>
5                  <ParameterType Name="Size">Int32</ParameterType>
6                  <ParameterType Name="Color">String</ParameterType>
7          </ParameterTypes>
8          <Row>
9                 <Parameter Name="Size">12</Parameter>
10                 <Parameter Name="Color">Blue</Parameter>
11         </Row>
12         <Row>
13                 <Parameter Name="Size">4</Parameter>
14                 <Parameter Name="Color">White</Parameter>
15         </Row>
16         <Row>
17                 <Parameter Name="Size">9</Parameter>
18                 <Parameter Name="Color">Black</Parameter>
19         </Row>
20    </Table>
21  </Data>

有关详细信息,请参阅 基于表的数据驱动测试

轻型数据驱动测试支持不提供基于表的数据驱动测试解决方案提供的完全保真度。 澄清:轻量级数据驱动测试将数据参数限制为 WEX::Common::String (本机) 或 String (托管) ,具体取决于基于表的数据驱动测试解决方案支持的各种类型。 但是,如果你正在寻找一个低成本和快速的数据变体 (一个或两个参数) 使测试方法数据驱动,并且添加 XML 文件作为 DataSource 似乎不值得麻烦,轻量级数据驱动测试可能正是你要查找的。 一个很好的示例是开发人员为 API 编写单元测试,假设 OpenThemeData (...) 并希望根据“Button”、“Listbox”和“ScrollBar”验证 API。 为此创建 XML DataSource 文件可能太重,但借助轻量级数据驱动的测试支持,可以在源代码本身中有效地完成此操作。 如果指定了多个参数,TAEF 将在后台生成参数的 n 向组合扩展,并且将为每个组合调用测试方法。 有关详细信息,请参阅 轻量级数据驱动测试

轻量级数据驱动测试提供的 n 向组合扩展可能会变得昂贵,并且随着测试方案变得更加复杂,回报会逐渐减少。 在如此复杂的测试方案中,基于 PICT 的数据驱动测试解决方案提供的成对独立组合测试 (PICT) 可能是你正在寻找的。 PICT 通过生成一组紧凑的参数结果来全面覆盖参数,从而提供大量价值。 查找链接,详细了解 PICT 以及如何在 基于 PICT 的数据驱动测试 解决方案上使用此解决方案。

使用 基于 WMI 的数据驱动测试 支持,还可以向测试添加前置条件,并根据测试计算机上的可用资源获取 (数据) 信息。 例如,如果只想在计算机已加入域的情况下运行测试,并且运行测试时还需要域名信息。 在本例中,DataSource 是一个 WQL 查询。 详细了解如何在测试方案中利用 基于 WMI 的数据驱动 测试。

注意上面列出的所有选项,你也可能想出一个设计,其中上述选项的组合可能看起来合适。 例如,你可能希望使用 WMI 查询来获取有关连接到测试计算机的所有打印机的信息,但可以使用基于表的数据驱动测试构造预先定义另一组参数。 如果希望测试的数据来自两个单独的表,从而允许每个表在其他测试中重新使用,则多个 DataSource 规范可能也很有用。 阅读有关如何为测试指定多个数据源的详细信息,以及执行此操作时应用的约束: 指定多个数据源

本部分中的内容