由于在开发早期阶段编写的需求会随着时间的推移变得不够充分,所以需要对其进行相应调整。那么这时就会出现一个问题:
已经根据需求实现的测试也要跟着进行调整和检查(进行维护),但这对测试人员来说是相对单调且耗时的。
如何将维护工作减少到最低限度呢?
TPT作为德国PikeTec公司的嵌入式软件测试工具,通过测试服务和客户的建设性反馈,不断识别工具新需求,对上述问题提供了几种策略。接下来将从5个方面介绍TPT是如何减少维护工作的。1. 分离测试数据和预期行为2. 使用状态机型测试用例开发测试3. 测试用例和评估与需求的双向链接4. 巧用测试方法设计稳健的测试5. 测试执行的自动化
01分离测试数据和预期行为
与传统方法相比,TPT可以将测试用例(用于刺激测试对象)和对预期行为的评估进行分离。这种方式既提高了清晰度,也在测试用例创建过程中节省了大量的工作。
举个例子
当前输出信号d等于0,如果输入信号a、b、c同时大于0,输出信号d等于输入信号a、b的和。对于传统方法,根据需求和MC/DC要求编写如下四条测试用例:
当使用测试工具TPT时,可以将上述预期行为通过脚本、Trigger Rule等评估方法定义到Assesslet中,且其内容对所有测试用例均可重用。
如图1,使用Trigger Rule的While condition is true 模式进行评估,简单介绍一下其使用方法:当测试数据满足Condition中的内容时,会评估Then check 中的语句,否则就评估Else check中的内容。
图1 Trigger Rule
还可以通过使用信号波形或斜坡来减少被测系统(SUT)的必要测试用例的数量。如下图,将上述四条测试用例用一条表示。(预期行为如上述写在Assesslet中)
图2 测试用例
另外如果我们想要增加测试深度,例如进行边界值测试,只需编写测试数据即可,因为在Assesslet中已经定义了缺失的信息和期望值。
通过上述内容可以看到TPT提供的这种分离方法在创建测试用例时节省了相当大的成本。另外在大多数情况下测试数据可以保持不变,只需要调整Assesslet,这就使得维护工作进一步减少。
02使用状态机型测试用例开发测试
TPT支持步骤列表型和状态机型的测试用例。
对于状态机型测试用例来说,可以将重复需要的测试数据分离到状态机的变种中。
举个例子
开关处于自动档位下,头灯根据不同的光照强度,产生不同的变化,测试车辆的灯控功能。这里重复使用的测试数据是开关处于自动挡,对其创建状态机和变种,如下图所示。
图3 测试用例
如果重复使用的测试数据内容需要更改,这时只需更改一次即可将使用该变种的测试用例全部更改,内容更改越频繁,节省的工作也就会越多。
03测试用例和评估与需求的双向链接
TPT支持测试用例和评估与需求的双向链接,在ASPICE中所有测试活动都需要保持双向追溯。
图4 测试用例和评估与需求的双向链接
TPT会在每次测试执行后,将需求和测试用例,包括它们的结果,清楚地显示在报告中。
图5 报告显示
如果测试失败,可以很容易地找到相应的需求。
图6 未通过需求显示
对于每个需求,可以很容易找到与之链接的测试用例和评估。
图7 链接的测试用例和评估显示
如果需求在生命周期中发生了改变,那么被改变的需求所链接的测试用例会高亮显示,能够方便查找,进而减少维护时间。
图8 测试用例突出显示
04使用反应式测试方法设计稳健的测试
TPT的反应式测试方法增加了测试对变化和环境变量的稳健性。反应式测试可以理解为,在测试设计中(搭建测试用例时)定义只有当SUT为已定义状态时才执行的动作(在转移线上设置判断条件),也可以称为基于事件的测试。
举个例子
当车辆速度达到30km/h时,执行紧急制动操作,以测试车辆的ABS功能。搭建测试用例时,只需明确当车辆达到30km/h的目标速度时,TPT会检测到这一点,并启动全面制动即可。
图9 测试用例
前一状态机可以切换到不同变种,转移线和后一状态机内容可以不进行调整。这样一来就可以为测试用例搭建和维护节省时间。
图10 变种显示
05自动化
我们可以发现测试中的许多任务都是重复的工作,例如在软件更改后更新测试框架、日常的需求更新、将测试结果反馈到应用程序生命周期管理工具中等。这些工作即使是在测试自动化中也需要由测试人员手动执行。
但是,现阶段TPT已经创造了一些可能性来自动化这些手动工作:提供一个允许用户使用自己的自动化脚本来自动化执行部分工作的API接口(API Script Editor),并且TPT 中85%的GUI功能可以由用户来实现自动化。
例如
通过下图中的脚本可以创建TPT工程,生成状态机型的测试用例。
图11 API Script Editor 内容
图12 执行API Script生成的工程
除此以外,还可以通过API Script实现平台配置,测试评估等功能。
06总结
本文介绍了使用TPT将维护工作减少到最低限度的五种方法,但TPT的优势不仅限于以上内容,想了解更多请联系我们吧。
相关文章