对数据驱动测试的支持是 Rational Functional Tester(RFT)的重要特性之一。可是另一方面,RFT 所提供的数据池访问方式相对单一,限制了对用户实现较为复杂的测试策略的可能性。本文介绍了如何使用顺序迭代器之外的迭代器灵活访问 RFT 数据池的方法,并提供自定义迭代器供用户实现不同的数据选择策略。
1. RFT 与数据驱动测试
数据驱动测试是一项单个脚本使用不同的输入和响应数据重复执行的技术。在数据驱动测试中,自动化测试脚本使用从外部数据源中读取的变量,而不是直接使用文字值(Literal value)。数据驱动测试的优势在于其将数据与测试脚本分离,从而可以在不修改测试脚本的情况下通过更新测试数据完成对测试用例的增加、更改和删除。
图 1: 将数据硬编码到脚本中的测试方式
图 2: 使用外部数据源的数据驱动测试
RFT 中通常使用数据池(Datapool)作为数据驱动测试的数据源。数据池是一系列数据记录的集合。这些记录作为测试脚本回放时的变量输入。RFT 数据池为表格结构(Tabular)。要创建数据池,用户可以通过 RFT 所提供的数据池编辑器直接操作,也可以从 Excel 或者 Rational Test Manager 中导入数据。数据池建立后,将其与 RFT 的测试脚本相关联,被关联的测试脚本就可以通过迭代器读取数据池的记录,从而实现数据驱动测试了。
2. 实例分析——数据驱动测试
为了更好的说明如何使用 RFT 的迭代器,下面我们给出了一个例子。在这个例子中,待验证的是一个计算器程序 Calculator,该程序提供 cal 方法:
public double cal(String expression); |
cal 方法接受一个算术表达式作为输入,并返回该表达式的结果。
为了验证该方法,我们设计了分别包含加减乘除运算的表达式作为输入的测试用例。这些用例对应的数据池如图 3。数据池的第一列为测试用例的名称,同时也是数据记录的标识,第二列为输入的表达式,第三列则为预期的结果。
通过这个例子我们可以更好的理解数据驱动测试。基于不同的数据输入,我们可以验证待测试程序是否对各种类型的运算都能给出正确的结果。当需要增加测试用例时(比如增加覆盖括号运算的测试用例),我们不需要更改原测试脚本,只需要在数据池中增加一条新的记录即可。在后面的章节中我们会以此为例介绍使用不同的迭代方式来实现不同数据选择策略的数据驱动测试。
图 3: 为验证计算器程序而设计的数据池
3. RFT 默认支持的迭代器——顺序迭代访问和随机迭代访问
文章来源于领测软件测试网 https://www.ltesting.net/