基于模型的方法缩小了开发和测试之间的差距

描述

更智能产品的时代正在迎来嵌入式产品设计,其功能增加、复杂性增加和交付窗口压缩。这些产品通常需要遵守严格的开发法规,才能用于飞机、汽车或医疗设备等安全或任务关键型应用。

基于模型的开发通过统一建模语言 (UML) 和系统建模语言 (SysML) 等图形符号提高了开发人员的生产力,以帮助管理复杂性并在开发生命周期的早期发现设计异常。在许多情况下,这使得测试难以赶上。它通常是项目中最大的时间和预算项目,因此最先被削减。尽管如此,测试成本仍在增加;许多测试仍然植根于手动的、基于代码的方法,这些方法不容易扩展到今天的需求。

模型驱动开发的成熟力量

使用模型,软件工程师可以更清楚地理解和分析需求,做出架构权衡,定义设计规范,通过仿真验证和验证行为,并生成代码以直接部署在目标硬件上。模型的一个关键好处是在设计发生变化时保持整个设计的一致性和正确性。使用 UML,每个图都可以在不同抽象级别捕获模型的不同视图,同时在这些视图之间保持一致。建模语言的语义加强了团队的一致性并帮助自动化生命周期任务,包括代码生成。

可重复的流程是提高协作和生产力同时降低证明合规性成本的关键。Embedded Market Forecasters 的 Jerry Krasner 于 2011 年进行的一项嵌入式开发研究发现,模型驱动的开发通常可将因延迟而损失的开发时间减少 40% 以上,从而为典型的项目节省 250,000 美元。

在生命周期的每一步提高质量

最大化生产力和敏捷性的下一个自然步骤是改进测试过程。解决这个问题的“常见嫌疑人”是缺陷的后期检测(和解决),以及团队之间发生变化和检测到缺陷时的沟通和一致性问题。

及早识别缺陷对于降低开发成本和满足上市时间目标至关重要。在开发的早期阶段,设计中引入了许多缺陷,但随着缺陷解决的延迟,修复成本呈指数增长。延迟缺陷解决不仅会损害项目的财务绩效,后期返工的高强度还会破坏交付计划和交付质量。缺陷解决必须与缺陷发现密切相关,因为修复刚刚发现的缺陷通常比在进一步的更改掩盖了原始原因后尝试修复要容易得多。

成功的开发项目必须交付满足客户需求的产品,达到所需的质量水平。将单元、集成、验证和验证测试与需求联系起来是基础,而自动化可追溯性是在发生变更和检测到缺陷时有效执行项目的关键。

基于模型的测试和 UML 测试配置文件

基于模型的测试使用建模来构建和执行必要的工件来执行软件测试。UML 测试概要扩展了 UML 的适用性以包括基于模型的测试。使用此配置文件,可以根据系统接口的定义为系统自动创建测试架构。可以使用序列图、状态图或活动图以图形方式定义符合最新要求的测试用例,提供通用建模语言来定义测试输入和预期结果(参见图 1)。这种方法加强了需求、设计元素和测试之间的联系,从而促进了更好的可追溯性,这对敏捷性和影响分析都有好处。测试用例可以在开发者的桌面和目标上执行,提高测试效率。

图 1:基于模型的测试使用图表指定测试用例。

UML

加强发展与质量管理的纽带

这种向基于模型的开发人员测试的转变不会直接使质量保证 (QA) 团队受益,因为 QA 工程师通常不希望他们成为 UML 专家,也不应该强迫他们成为 UML 专家。所需要的是一种允许 QA 工程师利用基于模型的测试资源而无需创作和拥有它们的方法。这可以通过将测试链接到 QA 测试管理环境的模型驱动测试工具来实现。这些工具允许从测试管理工具就地执行测试,并将结果自动传递到测试管理存储库。然后在一个位置管理测试,避免重复的不一致和低效,并且可以在开发过程中的任何时候执行。

将测试结果数据带回测试管理环境可以自动化缺陷解决过程,进一步优化开发和测试过程。QA 测试管理环境还应支持与需求管理工具的链接,以确保可以将测试链接回特定需求。这将促进测试覆盖自动化,使测试集能够根据需求或更改自动定义。

将项目提升到一个新的水平

通过实施与测试管理相关的基于模型的测试工具,嵌入式开发团队可以采取以下切实步骤,使他们的项目更加成功,同时为创新腾出宝贵的时间:

一致性:整个开发组织的中央测试存储库将提高效率并带来更高的质量。与单个测试工程师通过容易出错的手动复制过程创建多个测试版本不同,测试只需编写一次,并在整个开发过程中根据需要重复使用。测试的单一真实来源也可以帮助协作并最终提高交付质量,因为测试在整个开发生命周期中更可用,从而鼓励更频繁的测试。

沟通:质量管理环境中基于模型的测试执行意味着 QA 工程师可以运行测试并根据结果采取行动,而无需成为建模专家。他们可以从失败的测试导航到相关需求以及设计模式或相关代码中的问题根源。这在分布式和离岸开发环境中特别有用,它可以帮助在原本孤立的开发人员、测试人员和质量专业人员之间产生协作并建立同理心。

自动化:提高测试创建、执行和结果管理的自动化将显着降低测试成本和时间。这允许进行更多测试,从而降低复杂项目中出现回归问题的风险。同样,自动化缺陷跟踪/解决将基于模型的测试与质量管理联系起来,并具有从需求到代码的可追溯性骨干。这可确保开发人员获得及时和定量的信息来修复缺陷,并了解缺陷对交付功能的影响。随着团队努力变得更加敏捷,必须将缺陷解决优先于新功能,以避免积累技术债务。

敏捷性:使用与设计活动相同的建模符号和工具进行的基于模型的测试有助于测试驱动的开发。从需求到测试的可追溯性将是量化结果的关键,有助于回答任何项目中的关键问题:“我们准备好发货了吗?”

号召性用语

基于模型的测试可以被认为是将测试效率与模型驱动开发相提并论的第一步。虽然它的直接影响是自动化开发人员测试环境(与 QA 环境正确链接),但它可以带来更广泛的好处。通过在 QA 环境中为测试执行、测试版本管理和结果管理提供工具支持,再加上生命周期可追溯性,可以实现更高程度的测试自动化,消除开发生命周期中的关键瓶颈。

为了实现这些好处,嵌入式开发团队应该:

使用支持 UML 测试配置文件的工具(例如 IBM Rational Rhapsody)将他们的建模能力从设计扩展到测试。

确保他们的建模和测试管理环境通过工具紧密连接,例如用于实时和嵌入式软件开发的 IBM Rational 解决方案。

采用、实施并持续改进通过开发和测试工具支持的可重复流程。

通过这种方式,团队可以实现更好的协作、生产力和敏捷性,帮助他们以更低的成本更快地交付更高质量的产品。

  作者:Dominic Tavassoli ,Jonathon Chard

审核编辑:郭婷

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

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分