今天我们把所有的底牌都摆出来。
首先,做个简单的自我介绍。Piketec已经存在了15年。从一开始,我们一直在开发模型动态测试工具TPT,并提供测试服务。我们为客户测试基于软件的汽车产品,例如驾驶辅助功能、驱动组件、充电和电池系统的控制软件。
很少有人知道:我们提供测试服务主要是为了不断改进我们的测试工具TPT。我们希望不断为我们的用户改善用户界面(UI)和操作方式。
我们从客户那里得到的建设性用户反馈强化了我们的信念,即这一策略正在起作用。
测试中的挑战
在开始之前,让我们先从为几家汽车OEM和供应商工作的服务提供商的角度来看一下测试中的挑战。
我们是基于需求的测试的拥护者。在这里,我们提到的需求是对一个组件的原子描述,如果可能的话描述一个方面。理想情况下(对于测试),这些需求在整个开发周期内都是稳定的。
与此同时,我们在汽车项目中很少有这种稳定的需求状态。需求经常会改变。这也是好的,也是正确的。通过这些变化,产品不断得到改进和扩展。
在开发早期阶段编写的需求随着时间的推移会变得不充分,需要进行调整。
然而,在测试中,这也会带来一些挑战。已经根据需求实现的测试必须在变更后进行检查和调整。在这种情况下,我们会谈到维护。因此,需求或代码中的更改总是自动地在测试中产生额外的工作。
测试人员发现维护活动单调乏味。他们也希望开发新的功能并对其进行测试。我们在测试服务中开发了几种策略,有助于将维护工作减少到最低限度。另外,也为了帮助测试人员进行更有趣的测试。
我们具体执行哪些策略,就是我们在这里要讨论的内容。
减少维护工作的测试策略
以下是我们将涉及的主题的简要概述:
1. 分离测试数据,用于刺激和定义预期行为
2. 在测试模型中开发测试
3. 测试与需求的双向链接
4. 使用方法设计稳健的测试
5. 自动化
5个测试技巧
1. 分离测试数据
测试数据的分离(用于刺激测试对象)是在所有测试服务中节省工作的基本原则之一。
一方面,这种定义的分离提高了清晰性,另一方面,它在测试用例创建过程中节省了大量的工作。测试项的期望值定义在所谓的Assesslet中,因此对于所有测试用例都是可重用的,并且非常容易维护。
被测系统(SUT)的必要测试用例的数量可以减少。测试用例中的信号波形或斜坡可以同时覆盖多个需求,而不是费力地分析和建模需求的一个方面。
分离方法还允许立即使用生成的测试用例,例如增加测试深度。这无需额外的工作就可以实现,因为在Assesslet中已经定义了缺失的信息和期望值。
与传统方法相比,这种分离在创建测试用例时节省了相当大的成本。使用单一数据源方法,可以进一步减少测试维护工作。这是因为在大多数情况下测试数据可以保持不变,只需要调整Assesslet。
2. 在测试模型中开发测试
不用以过程的形式来编写测试用例,它们也可以通过模型来描述。
有什么好处?
使用测试模型,您可以将重复需要的测试数据分离到可重用的引用中。单一数据来源方法从最初的创建开始就节省了宝贵的工作。变动越频繁,节省的工作就越多。由于个体名称的使用和结构化,这样的测试模型的审查更容易。
3. 测试与需求的双向链接
另一个非常棒的特性是测试和需求的双向链接。理由很充分:在ASPICE中,所有测试活动都需要这个特性。
简而言之:追溯性增加了清晰度
有了可追溯性,在每次测试运行中,SUT的所有需求和所有测试用例,包括它们的结果,都清楚地显示在报告中。
如果测试失败,可以很容易地找到相应的需求。对于每个需求,总是清楚地知道已经创建了哪些测试。
如果需求在生命周期中被改变了,那么被改变的需求所链接的测试用例就会被突出显示。分析和实现测试中的变更可以节省被测件检查的时间。
TPT还有更多有待发现的地方。
4. 使用方法设计稳健的测试
TPT的一些特性增加了测试对变化和环境变量的稳健性。
稳健性特性的一个例子是反应式测试方法。在反应式测试中,可以在测试设计中定义仅在SUT假定已定义状态时才执行的动作——这也可以称为基于事件的测试。
举一个简短的例子来理解。
作为测试人员,您想测试车辆的ABS功能。为此,您需要将车辆加速到30公里/小时,然后执行紧急制动操作。当使用反应性测试方法自动化执行此测试时,您可以在测试设计中抽象相关环境参数,例如车辆质量、路面摩擦系数和其他影响因素。当车辆达到30公里/小时的目标速度时,TPT会检测到这一点,并启动全面制动。
反应性测试方法可以应用于所有类型的技术、测试阶段和测试对象。
这样做的好处是,一旦编写了测试,就可以为其他变体复用它们,而不必调整测试。测试设计中的稳健性为测试创建和维护节省了大量工作。
5. 自动化
最后重要的一种方法:自动化是测试的关键。
测试中的许多任务都是重复的活动,例如在软件更改后更新测试框架,每天更新需求,并将测试结果反馈到应用程序生命周期管理工具中。这些工作必须由测试人员手动执行,即使是在测试自动化中。
在TPT中,我们已经创造了一些可能性来自动化这些传统的手动作业。TPT提供一个API接口,允许TPT用户使用自己的自动化脚本自动化部分工作。TPT中85%的GUI功能可以由用户实现自动化。
总结
对我们来说,测试不仅仅是测试。我们希望尽可能容易、快速和有效地找到漏洞。从我们的角度来看,如果你感受到乐趣并享受你的工作,它会更有效。
这就是为什么我们建立了TPT,并在15年多的时间里在许多项目中使用它。我们相信,我们已经创建了一个最好的测试工具,具有许多创新的功能和机制。TPT的发展还远远没有结束。所以我们希望这些关于我们如何工作的见解能让你对TPT更加好奇。
更多关于模型动态测试工具TPT的相关文章: