中文  |  English
所在位置:市场活动 > 客户案例与技术文章

将测试工作减少到最低限度的5个秘密技巧

前言


由于在开发早期阶段编写的需求会随着时间的推移变得不够充分,所以需要对其进行相应调整。那么这时就会出现一个问题:

已经根据需求实现的测试也要跟着进行调整和检查(进行维护),但这对测试人员来说是相对单调且耗时的。

如何将维护工作减少到最低限度呢?

TPT作为德国PikeTec公司的嵌入式软件测试工具,通过测试服务和客户的建设性反馈,不断识别工具新需求,对上述问题提供了几种策略。

接下来将从5个方面介绍TPT是如何减少维护工作的。

1. 分离测试数据和预期行为

2. 使用状态机型测试用例开发测试

3. 测试用例和评估与需求的双向链接

4. 巧用测试方法设计稳健的测试

5. 测试执行的自动化



分离测试数据和预期行为


与传统方法相比,TPT可以将测试用例(用于刺激测试对象)和对预期行为的评估进行分离。这种方式既提高了清晰度,也在测试用例创建过程中节省了大量的工作。

举一个简单的例子:

当前输出信号d等于0,如果输入信号a、b、c同时大于0,输出信号d等于输入信号a、b的和。

对于传统方法,根据需求和MC/DC要求编写如下四条测试用例:

图片0.png


当使用测试工具TPT时,可以将上述预期行为通过脚本、Trigger Rule等评估方法定义到Assesslet中,且其内容对所有测试用例均可重用。

如图1,使用Trigger Rule的While condition is true 模式进行评估,简单介绍一下其使用方法:当测试数据满足Condition中的内容时,会评估Then check 中的语句,否则就评估Else check中的内容。

图片1.png

图1 Trigger Rule

还可以通过使用信号波形或斜坡来减少被测系统(SUT)的必要测试用例的数量。如下图,将上述四条测试用例用一条表示。(预期行为如上述写在Assesslet中)

图片2.png

图2 测试用例


另外如果我们想要增加测试深度,例如进行边界值测试,只需编写测试数据即可,因为在Assesslet中已经定义了缺失的信息和期望值。

通过上述内容可以看到TPT提供的这种分离方法在创建测试用例时节省了相当大的成本。另外在大多数情况下测试数据可以保持不变,只需要调整Assesslet,这就使得维护工作进一步减少。




使用状态机型测试用例开发测试


TPT支持步骤列表型和状态机型的测试用例。

对于状态机型测试用例来说,可以将重复需要的测试数据分离到状态机的变种中。

例如:开关处于自动档位下,头灯根据不同的光照强度,产生不同的变化,测试车辆的灯控功能。

这里重复使用的测试数据是开关处于自动挡,对其创建状态机和变种,如下图所示。

图片3.png

图3 测试用例


如果重复使用的测试数据内容需要更改,这时只需更改一次即可将使用该变种的测试用例全部更改,内容更改越频繁,节省的工作也就会越多。




测试用例和评估与需求的双向链接



TPT支持测试用例和评估与需求的双向链接,在ASPICE中所有测试活动都需要保持双向追溯。

图片4.png

图4 测试用例和评估与需求的双向链接


TPT会在每次测试执行后,将需求和测试用例,包括它们的结果,清楚地显示在报告中。

图片5.png

图5 报告显示


如果测试失败,可以很容易地找到相应的需求。

图片6.png

图6 未通过需求显示


对于每个需求,可以很容易找到与之链接的测试用例和评估

图片7.png

图7 链接的测试用例和评估显示


如果需求在生命周期中发生了改变,那么被改变的需求所链接的测试用例会高亮显示,能够方便查找,进而减少维护时间。

图片8.png

图8 测试用例突出显示




使用反应式测试方法设计稳健的测试



TPT的反应式测试方法增加了测试对变化和环境变量的稳健性。反应式测试可以理解为,在测试设计中(搭建测试用例时)定义只有当SUT为已定义状态时才执行的动作(在转移线上设置判断条件),也可以称为基于事件的测试。

例如:当车辆速度达到30km/h时,执行紧急制动操作,以测试车辆的ABS功能。

搭建测试用例时,只需明确当车辆达到30km/h的目标速度时,TPT会检测到这一点,并启动全面制动即可。

图片9.png

图9 测试用例


前一状态机可以切换到不同变种,转移线和后一状态机内容可以不进行调整。这样一来就可以为测试用例搭建和维护节省时间。

图片10.png

图10 变种显示




自动化



我们可以发现测试中的许多任务都是重复的工作,例如在软件更改后更新测试框架、日常的需求更新、将测试结果反馈到应用程序生命周期管理工具中等。这些工作即使是在测试自动化中也需要由测试人员手动执行。

但是,现阶段TPT已经创造了一些可能性来自动化这些手动工作:提供一个允许用户使用自己的自动化脚本来自动化执行部分工作的API接口(API Script Editor),并且TPT 中85%的GUI功能可以由用户来实现自动化。

例如,通过下图中的脚本可以创建TPT工程,生成状态机型的测试用例。

图片11.png

图11 API Script Editor 内容


图片12.png

图12 执行API Script生成的工程


除此以外,还可以通过API Script实现平台配置,测试评估等功能。




总结



本文介绍了使用TPT将维护工作减少到最低限度的五种方法,但TPT的优势不仅限于以上内容,想了解更多请联系我们吧。