0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

模型驱动测试如何生成基于代码的测试结果

星星科技指导员 来源:嵌入式计算设计 作者:Martin Bakal 2022-06-28 14:12 次阅读

模型驱动测试可以将需求与设计联系起来,帮助开发人员以一种通用语言生成结果,将设计过程中的每个人联系起来。这改善了工作流程并清楚地传达了设计。

在系统和软件测试社区中,生成基于代码的结果被认为是软件测试的黄金标准。但是,软件复杂性的增加和上市时间的缩短迫使许多组织重新考虑他们如何处理测试过程。随着基于模型的测试 (MBT) 的引入,开发人员获得了更快的自动化流程,可以帮助他们获得完整的模型和代码覆盖率。

即便如此,一些开发人员认为 MBT 未能达到预期,因为它没有提供基于代码的结果。然而,随着 MBT 技术的最新进展,这种看法不再准确。新的 MBT 工具使测试人员能够通过基于代码的结果实现性能分析、内存分析和代码覆盖。

模型驱动测试 (MDT) 流程通过让开发人员在实际应用程序上执行场景并执行这些测试来增强此工作流程。但关键问题是开发人员在运行这些基于场景的测试时需要基于代码的测试结果。

入门

MDT 方法可以帮助组织满足紧缩的上市时间窗口,因为它允许开发人员使用他们设计时使用的相同语言进行测试,即统一建模语言 (UML)。除了节省时间之外,MDT 还提供了另一个优势,它以场景为需求,使测试与客户的规范保持一致。

尽管 MDT 提供了许多好处,但批评者强调它有一个弱点:缺乏基于代码的测试结果,这对于调试故障、泄漏和性能差距至关重要。

在深入探讨有关基于代码的测试的问题之前,让我们解释一下 MDT 过程。基于 UML 的测试用例可以用许多不同的格式编写,包括 UML 序列图、流程图,甚至代码(使用断言样式语句)。简而言之,MDT 流程迫使开发人员以上述格式之一阅读他们的需求并基于它们设计场景。接下来,将模型构建到满足这些场景的可执行文件中。然后将原始场景转变为测试。最后,在软件经过 MDT 过程之后,这些相同的场景可以作为测试执行。

使用传统代码和流程图来捕获测试用例行为

可以使用代码或流程图或序列图来描述测试用例行为,提供比传统编码更高的生产力。使用代码描述测试用例与目前描述测试用例的过程基本相同,不同之处在于,如图1所示,测试用例需要关注刺激和预期结果。测试用例执行的上下文是从模型中自动生成的。

图 1:开发人员可以使用代码来描述测试用例的纯粹行为。

pYYBAGK6nMCAcjlDAAYLmgrQwQQ517.png

捕获代码中的测试用例行为并让它执行是利用 MDT 的最直接方法,而且风险最小且几乎没有学习曲线。这种方法的另一个优点是它允许轻松重用现有的基于代码的测试用例。但是由于测试用例行为的逻辑通常很重要,开发人员倾向于将测试用例描绘成非正式的流程图。由于将流程图映射到代码相对简单,MDT 环境允许开发人员将测试用例行为捕获为流程图,从该流程图生成测试代码,将其链接到测试架构,然后运行测试。

将测试用例描述为流程图,如图 2 所示,具有与编码相同的表达能力,但它更容易捕获并与项目的所有利益相关者进行沟通。

图 2:在流程图/活动图中比在代码中更容易捕获测试用例行为。

pYYBAGK6nMmAS9prAAgS_jQjHW4426.png

用序列图描述测试用例行为

序列图提供了在基于代码的测试环境中很少使用的设计的独特视图。这些图可以描述整个系统和与之交互的参与者之间的操作场景。在其他情况下,它们可能包括有关内部设计组件之间消息的排序和交换的详细信息

在系统级分析期间,设计人员确定了许多高级需求,并且大多数行为需求被描述为序列图。这构成了系统分析师创建基本要求的许多变体以及基本要求的“未雨绸缪”排列的过程的基础。此过程将作为序列图捕获的高级需求转换为具体的测试用例。

开发人员可以查看描述需求的序列图并将其作为测试用例以交互方式应用,将输入注入被测系统并检查输出以查看它们是否与序列图中定义的匹配。这些测试的来源包括记录应用程序的执行并手动编写它们。每个来源都有自己的好处。记录执行不测试需求,但有助于回归测试。手写序列在测试需求中很有用。无论如何创建测试,都需要基于代码的结果。

实现基于代码的结果

今天的开发人员可以通过多种方式获得基于代码的结果,所有这些都需要在某些工具中重写测试然后执行。完成后,团队将收到结果。

对某些人来说,这似乎是一种完全合乎逻辑的方法,但是在使用这种测试方法时会发现一些问题。首先,开发人员必须确定原始需求与软件可交付成果相匹配。要正确执行此操作,开发人员必须重写相同的基于场景的测试,否则代码结果可能无法映射到需求。开发人员需要能够编写符合其要求的测试并实现完整的基于场景和代码的结果。当前的测试工具使这成为可能,因为基于 MDT 的工具执行实际代码。

鉴于这些进步,为什么软件测试社区迟迟没有采用 MDT?这有几个原因,首先是早期基于模型的测试没有提供基于代码的测试结果。此外,许多开发人员需要代码覆盖率、内存分析和性能分析指标。当工具缺乏这些功能时,有些人会认为 MDT 是一种负担而不是解决方案,这是有道理的。

弥合这些差距是成功实施 MDT 的挑战。市场上有几种有效的基于代码的测试工具,重新创建此功能为开发人员喜欢的基于代码的结果样式提供了更少的选择。另一种选择是执行基于模型的测试并包含基于代码的结果。这是可能的,因为在运行基于模型的测试时,开发人员可以执行实际代码,而不是模拟。如果开发人员使用基于代码的测试工具来检测代码,则 MDT 可以运行,并且结果将在完成时出现。

分布式开发,更好的代码

寻找方法帮助分布式团队更好地协同工作,同时推动高质量的可交付成果是许多组织的首要任务。当开发过程采用 MDT 方法时,团队可以实现基于代码的测试结果。关键的支持技术是执行实际应用程序的 MDT 测试。这意味着使用可以直接提供测试结果的基于代码的测试工具运行 MDT 测试。基于代码的测试工具跟踪正在执行的应用程序,使其成为最佳方法。

MDT 在改进测试过程方面有着良好的记录,但它没有被广泛采用,因为它不会产生基于代码的测试结果。现在这是可能的,提供了两全其美的优势——在 MDT 流程中轻松创建和理解测试——以及开发人员可以使用的完整和彻底的测试结果。通过利用 MDT 方法的收益,开发人员也可以得到他们的蛋糕并吃掉它。

审核编辑:郭婷

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 测试
    +关注

    关注

    8

    文章

    5097

    浏览量

    126324
  • 代码
    +关注

    关注

    30

    文章

    4721

    浏览量

    68214
收藏 人收藏

    评论

    相关推荐

    Matlab/Simulink/Stateflow建模开发及仿真测试

    matlab 模拟仿真 熟悉Matlab/Simulink/Stateflow建模开发及仿真测试,熟悉V模型开发流程。 熟悉自动代码生成,能够编写或者配置自动
    发表于 10-24 17:23

    IC测试基本原理与ATE测试向量生成

    ,研究和发展IC测试,有着重要的意义。而测试向量作为IC测试中的重要部分,研究其生成方法也日渐重要。1IC测试1.1IC
    的头像 发表于 10-12 08:03 766次阅读
    IC<b class='flag-5'>测试</b>基本原理与ATE<b class='flag-5'>测试</b>向量<b class='flag-5'>生成</b>

    ic测试原理和设备教程的区别

    涉及如何通过测试信号的生成与传输,对IC的性能、功能和可靠性进行全面评估。 测试原理包括测试信号的生成与传输、
    的头像 发表于 09-24 09:51 148次阅读

    摩尔线程与羽人科技完成大语言模型训练测试

    (YuRen-7b)大语言模型的训练测试测试结果显示,训练效率达到预期,夸娥千卡智算集群展现出了高度的兼容性和稳定性,为羽人科技未来的零代码
    的头像 发表于 08-27 16:19 467次阅读

    TSMaster 测试报告生成器操作指南

    用户在基于TSMaster软件开发测试用例时,或需要使用TSMaster生成HTML报告时,需要使用TSMaster测试报告生成器。1Test_Report说明Test_Report是
    的头像 发表于 08-03 08:21 361次阅读
    TSMaster <b class='flag-5'>测试</b>报告<b class='flag-5'>生成</b>器操作指南

    谷景揭秘哪些因素会影响电感测试结果

    电感作为电子电路中非常重要的一种电子元器件,它在电路中的主要作用就是储存能量和过滤信号。我们在选择电感的时候有一个重要步骤——测试测试结果的准确性可能会收到多种因素影响,下面我们就来总结一下
    的头像 发表于 06-20 10:03 230次阅读

    影响气密性测试结果的原因分析及解决方案分享

    影响气密性测试结果的原因分析及解决方案分享现在的制造业,对产品的气密性能都是要求很高的,通过气密性测试能检测出产品在使用时是否会出现渗漏、漏气等质量问题,确保产品的可靠性和安全性。不过,气密性
    的头像 发表于 05-30 08:30 1543次阅读
    影响气密性<b class='flag-5'>测试</b><b class='flag-5'>结果</b>的原因分析及解决方案分享

    ISEDA首发!大语言模型生成代码到底好不好使

    的问题 — 这些自动生成代码真的有效吗?大模型也会犯错,我们肯定不希望把看似正确的错误结果交给用户,所以需要一个能精确验证模型
    发表于 05-16 13:41 282次阅读
    ISEDA首发!大语言<b class='flag-5'>模型</b><b class='flag-5'>生成</b>的<b class='flag-5'>代码</b>到底好不好使

    电机驱动模块测试方法:测试设备、测试项目

    ATECLOUD测试系统实现电机驱动模块自动化测试需要两部分完成,软件和硬件。硬件主要是测试中用到的仪器设备;软件部分兼容了测试仪器指令,以
    的头像 发表于 04-26 14:14 623次阅读
    电机<b class='flag-5'>驱动</b>模块<b class='flag-5'>测试</b>方法:<b class='flag-5'>测试</b>设备、<b class='flag-5'>测试</b>项目

    世界数字技术院发布:生成式AI安全测试标准及大语言模型

    据悉,上述两款标准主要针对大型模型生成式AI应用领域的安全检测设定了新基准。参与制定工作的单位有OpenAI、蚂蚁集团、科大讯飞、谷歌、微软、英伟达、百度、腾讯等多家知名企业,其中,《大语言模型安全
    的头像 发表于 04-17 16:51 969次阅读

    Meta推出最新版AI代码生成模型Code Llama70B

    Meta近日宣布了其最新版本的AI代码生成模型Code Llama70B,并称其为“目前最大、最优秀的模型”。这一更新标志着Meta在AI代码
    的头像 发表于 01-30 18:21 1353次阅读

    Tessy—嵌入式软件单元测试/集成测试工具

    搭建测试环境、执行测试、评估测试结果生成测试报告。目前Tessy被广泛应用在汽车电子客户中,在
    的头像 发表于 01-15 14:39 737次阅读
    Tessy—嵌入式软件单元<b class='flag-5'>测试</b>/集成<b class='flag-5'>测试</b>工具

    代码生成:基于 AI 大模型的挑战与前景

    使用AI通用模型来完成代码生成这类非常具体的任务可能会带来问题。人工智能生成代码就像是陌生人的代码
    的头像 发表于 11-26 08:05 707次阅读
    <b class='flag-5'>代码</b><b class='flag-5'>生成</b>:基于 AI 大<b class='flag-5'>模型</b>的挑战与前景

    从HumanEval到CoderEval: 你的代码生成模型真的work吗?

    项目中的选取了代码生成任务来构建CoderEval,并根据对外部依赖的程度为标准将这些任务分为6个等级、根据生成的目标分为3类生成任务,以更多维地评估不同大
    的头像 发表于 11-25 15:55 1535次阅读
    从HumanEval到CoderEval: 你的<b class='flag-5'>代码</b><b class='flag-5'>生成</b><b class='flag-5'>模型</b>真的work吗?

    纳米软件带你了解ate测试及ate自动测试系统

    ATE测试需要根据测试目标和项目设计测试程序,并且准备测试用到的测试仪器,比如示波器、万用表、频谱分析仪等,连接
    的头像 发表于 11-24 14:51 868次阅读
    纳米软件带你了解ate<b class='flag-5'>测试</b>及ate自动<b class='flag-5'>测试</b>系统