首页 > 其他分享 > 将测试工作减少到最低限度的5个秘密技巧

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

时间:2022-12-28 17:58:10浏览次数:46  
标签:需求 技巧 工作 TPT 测试用例 限度 测试 我们

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

 

 

今天我们把所有的底牌都摆出来。

 

首先,做个简单的自我介绍。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更加好奇。

 

翻译

搜索

复制

<iframe height="240" width="320"></iframe>

标签:需求,技巧,工作,TPT,测试用例,限度,测试,我们
From: https://www.cnblogs.com/polelink/p/17010883.html

相关文章

  • APP自动化测试总结三:放大和缩小
    1importtime23fromappium.webdriverimportRemote4fromselenium.webdriverimportActionChains5fromselenium.webdriver.common.actions.mouse_butto......
  • APP自动化测试总结三:基于坐标的点击、按键操作及处理toast弹窗
    一、基于坐标的点击1startx=7922endx=9003starty=494endy=1375center_x=(startx+starty)/26center_y=(endx+endy)/278#基......
  • 网站的安全性测试
    安全性保护数据以防止不合法用户故意造成的破坏;完整性保护数据以防止合法用户无意中造成的破坏;安全性测试(securitytesting)是有关验证应用程序的安全服务和识别潜在注意:......
  • 10.编写自动化测试
    一、如何编写测试测试函数的函数体中一般包含3个部分:准备所需的数据或状态;调用需要测试的代码;断言运行结果与我们所期望的一致;1、测试函数的构成在最简单的情形下,R......
  • openresty熔断方案url_fuse测试
    1.概述服务熔断也称服务隔离或过载保护。在微服务应用中,服务存在一定的依赖关系,形成一定的依赖链,如果某个目标服务调用慢或者有大量超时,造成服务不可用,间接导致其他......
  • ab压力测试
    概述ab命令全称为Apachebench是Apache自带的压力测试工具。ab命令非常实用,它不仅可以对Apache服务器进行网站访问压力测试,也可以对或其它类型的服务器进行压力测试,ab命......
  • 信而泰X1多速率板卡写入SN号和ID——网络测试仪实操
    一、X1多速率板卡SN号和ID说明​速率的License文件需要根据板卡SN号和ID来制作。​3.1.6正式版本,DarYuL2-7高性能网络测试仪支持用户通过Renix查看板卡SN号号。但是有的板......
  • WEB应用安全测试丨Acunetix功能简介
    快速查找并修复使您的Web应用程序面临攻击风险的漏洞。享受更多的安心——无需花费更多有限的时间。  产品功能发现与爬行01、发现所有......
  • SpringBoot高级篇搜索之Solr环境搭建与简单测试
    搜索可以说是非常常见的场景了,一般选择比较多的有solr和es,底层都是基于Lucene搜索引擎实现。之前简单的使用过solr,一直没有成体系的学习过,正好需要给一个内部项目封装统一的......
  • APP自动化测试总结一:Appium连接参数与第一个脚本
    1fromappium.webdriverimportRemote234caps={5"platformName":"Android",6"appPackage":"com.lemon.lemonban",7"appActivity":......