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

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

3天内不再提示

软件单元测试真的有必要吗?(下)

上海控安 来源:上海控安 作者:上海控安 2023-11-17 15:18 次阅读

作者 |包丹珠上海控安产品总监

版块 |鉴源论坛 · 观模

社群 |添加微信号TICPShanghai”加入“上海控安51fusa安全社区”

“软件单元测试真的有必要吗?(上)”一文中,着重探讨了单元测试的重要性及其正面临的困境,并分享了功能安全标准中罗列的单元测试方法。承接上文,本篇将深入讨论单元测试过程中,如何在保质保量完成测试任务的同时,缩减时间成本、提高测试效率,并分享目前行业内的实践经验以及相关自动化测试工具。

04

单元测试可以做,但项目周期催得紧,怎么办?

wKgaomVXE4GARtQ5AAEivk9M8uY460.png

然而,在真正实施软件单元测试时,还需要考虑一个成本问题。

软件行业竞争相对比较激烈,在交付为王的时代,软件发布的市场Deadline是大家要面临的一个非生即死的残酷问题。如何能够保质又保量,即缩减因为引入单元测试而带来的时间成本呢?

工欲善其事,必先利其器。缩减成本的第一个方法是利用自动化测试工具。目前市面上有可供选择的自动化单元测试工具,包括开源的和商用的。

开源工具通常是提供针对特定语言的测试框架,单元测试人员使用框架进行测试代码的编写。用的较多的开源框架有GoogleTest、Junit等。开源工具由于是基于已有测试框架通过写代码的方式进行测试,因此对一般测试人员的编程能力要求相对较高。

wKgaomVXE4uAZqzGAAD0dxjCH2E608.png

商用工具提供可视化的自动化测试工具,不需要大规模的测试编程,将测试人员的精力专注在测试用例的设计上,而非测试框架的执行上,因此对测试人员会更友好。商用工具市场占有率较高的是国外的工具。然而自从2019年以来,这些商业工具也陆续出现了国内禁售、服务停止续期的禁令。好在国内一些知名高校,在前期有相关的技术积累,目前也出现了为数不多的国产自动化单元测试工具,比如来源于华东师范大学软件学院可信实验室的SmartRocket等,这些工具在自动化执行的基础上,比国外工具更为领先的是提供了自动设计高覆盖率测试用例的核心功能,可以更大意义上降低测试人员的时间投入等。

在使用自动化测试工具的基础之上,采用CI(Continuous Integration)持续集成方式,将单元测试很好地融合进入自动化持续集成的过程中,也可以进一步缩减时间成本,并且提升软件上线效率。通过借助Jenkins等持续集成工具,在模块代码提交时,自动触发代码自动化测试岗哨,当测试通过时代码提交成功,否则提交失败。自动化测试岗哨除了加入单元测试外,还可以加入像代码静态扫描等自动化Pipeline。软件持续集成在行业内有很多的成功案例可以借鉴,是软件质量保证和软件开发效率高的一种直观表现。

wKgZomVXE5uAO35_AAA_DELAsoM883.png

05

结语:欲速则不达,耐心做单元测试是程序员的美德。

写到这里,想必大家对软件单元测试的重要意义,以及如何进行单元测试实践有了一定了解。如果您是软件行业的从业者的话,希望本文能够给您带来一些新的思考。总结一句话,欲速则不达,对于优秀的软件开发工程师来说,耐心做好单元测试是一项值得养成的基本美德。元宇宙未来的软件基础,靠你们铸就。

审核编辑 黄宇

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

    关注

    69

    文章

    5045

    浏览量

    88282
  • 单元测试
    +关注

    关注

    0

    文章

    42

    浏览量

    3199
收藏 人收藏

    相关推荐

    嵌入式系统开发中的测试方法 嵌入式系统开发与AI结合应用

    嵌入式系统开发中的测试方法 嵌入式系统开发是一个复杂的过程,涉及到硬件和软件的紧密结合。测试是确保系统可靠性和性能的关键步骤。以下是一些常用的测试方法:
    的头像 发表于 12-09 10:22 632次阅读

    开发者必读!CircleCI 组件测试单元测试全解析

    软件开发中,测试是保证软件质量和可靠性的关键环节。作为领先的 CI/CD 平台,CircleCI 提供了支持自动化测试的强大工具。其中,单元测试
    的头像 发表于 12-03 09:18 327次阅读

    汽车软件单元测试的重要性

    设计和测试不充分密切相关,这引发了社会各界对汽车软件健壮性的重要性进行深入思考。本文将探讨汽车软件测试,尤其是单元测试的重要性,以及Win
    的头像 发表于 11-29 10:57 247次阅读

    严格的单元测试造就完美的软件

    关键系统时,更是对软件质量提出了极高的要求。而单元测试作为软件开发过程中的核心环节,其重要性不言而喻。 单元测试的作用 单元测试是指对
    的头像 发表于 11-26 13:22 268次阅读

    嵌入软件单元/集成测试工具专业分析

    引言 在现代软件开发过程中,单元测试作为确保代码质量的重要环节,得到了广泛的关注和应用。随着嵌入式系统的复杂性日益增加,对高效、可靠的单元测试工具的需求也愈加迫切。WinAMS作为一款专为嵌入
    的头像 发表于 11-19 16:41 339次阅读

    240W快充真的必要吗

    综上所述,PD3.1快充协议对我们是必要的。它不仅提升了充电功率和效率,还增加了多项实用功能,提高了充电的便利性和安全性。同时,PD3.1协议也是推动充电技术统一和标准化的重要步骤,对于促进资源的合理利用和环境的保护也具有重要意义。
    的头像 发表于 11-15 21:49 694次阅读
    240W快充<b class='flag-5'>真的</b><b class='flag-5'>有</b><b class='flag-5'>必要吗</b>?

    符合ISO 26262的零部件级的软件测试解决方案

    在零部件阶段的测试包括:软件单元测试软件集成测试、硬件集成测试、嵌入式
    的头像 发表于 11-07 08:05 350次阅读
    符合ISO 26262的零部件级的<b class='flag-5'>软件</b><b class='flag-5'>测试</b>解决方案

    鸿蒙语言基础类库:ohos.application.testRunner TestRunner 测试

    TestRunner模块提供了框架测试的能力。包括准备单元测试环境、运行测试用例。
    的头像 发表于 07-12 09:32 381次阅读

    单元测试、集成测试自动化工具

    CoverageMaster winAMS : 适用于嵌入式目标机代码的单元测试/集成测试工具 全面支持嵌入式微机!验证嵌入式C/C++软件 实施以模块为单位的自动化单元测试工具 不需
    的头像 发表于 06-26 13:41 537次阅读
    <b class='flag-5'>单元测试</b>、集成<b class='flag-5'>测试</b>自动化工具

    在项目“backup_fw” 中手动设定application img地址必要吗

    在项目“backup_fw” 中手动设定applicationimg 地址必要吗,还是不需要勾选,若勾选了,这个地址的值是根据什么设定的,谢谢!
    发表于 06-03 06:44

    接口测试的工具有哪些种类

    单元测试框架 单元测试框架主要用于测试单个模块或函数的功能。虽然它们主要用于开发阶段,但也可以用于接口测试。 1.1 JUnit (Java) JUnit 是 Java 语言的
    的头像 发表于 05-30 15:07 923次阅读

    嵌入软件单元测试工具的作用

    嵌入软件单元测试工具是现代软件开发过程中不可或缺的一环。它的作用在于帮助开发人员对软件中的各个单元进行
    的头像 发表于 04-23 15:31 493次阅读
    嵌入<b class='flag-5'>软件</b><b class='flag-5'>单元测试</b>工具的作用

    LitePoint推出其最新的5G O-RAN无线电单元测试技术

    无线测试解决方案先进供应商LitePoint宣布将参加于4月12日在台北举行的2024年D Forum移动通信论坛,展示其最新的5G O-RAN无线电单元测试技术。
    的头像 发表于 04-11 15:26 591次阅读

    单元/集成测试服务

    单元/集成测试旨在证明被测软件实现其单元/架构设计规范、证明被测软件不包含非预期功能。经纬恒润测试
    的头像 发表于 02-29 13:27 453次阅读
    <b class='flag-5'>单元</b>/集成<b class='flag-5'>测试</b>服务