使用Functional Tester的一项测试技术[2] 软件测试
这项技术提供了以下好处:
一种详细描述测试套件和测试脚本的形式化方法
在决策脚本中封装测试套件逻辑
以决策点为中心的测试套件体系架构
测试逻辑可以很容易地使用决策表进行追踪与变更,这样可以被非程序员阅读和填写一个更加灵活的数据驱动的实现方法。
基于决策表的测试技术
在测试过程中当达到一个决策点时,测试人员会检查AUT的状态并决定测试活动。每一个决策点都可以用一个决策表来指定。一个决策表由两部分组成:条件和活动。决策表列出了一个测试活动执行所需的条件。每一个条件表达了各种变量之间的关系是正确的还是错误的。所有可能的条件组合定义了一系列的选择。对于每一个选择,测试活动都要考虑到。选择的数量使得条件种类呈指数级增加,可能会显示为2NumberOfConditions。当决策表变得复杂时,一个新的决策表层级就会被创建。
由于一些选择的情况是不存在的,所以一个测试策略应该是:1) 验证所有可能实现的选择。2) 描述AUT是如何在所有选择环境下运转的。有了决策表,我们就可以根据测试策略轻松的添加和删除条件。我们可以根据测试策率的需要,通过反复的添加新的测试条件来增加测试的覆盖率。
如图2所示,决策表在指定,分析和测试复杂逻辑性时起到很重要的作用。它们可以很有效的描述不同条件产生不同的测试活动。它们还可以有效的查找到执行与规范中的错误。
图2:一个决策表的例子
使用决策和数据驱动表
在每一个决策点,一个决策表要列出AUT(根据条件)需要校验哪些内容,以及下一个活动是什么。由于决策表中已经定义了逻辑,所以测试人员不需要硬编码任何测试逻辑。决策脚本只需在运行期间执行确认工作,比较决策表提供的验证结果,并且如果找到了解决方案,返回并运行下一个测试脚本。