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

    文章

    5300

    浏览量

    90901
  • 单元测试
    +关注

    关注

    0

    文章

    52

    浏览量

    3466
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    嵌入式可测试软件设计

    什么是可测试性?就是你这个软件模块/函数接口写完之后,可以较为方便、较为全面地进行自测 。 这里举个简单的例子,认识一测试软件
    发表于 12-02 06:06

    嵌入软件单元测试的全面研究与实践

    引言 嵌入软件单元测试是确保嵌入式系统质量和可靠性的关键环节。嵌入式系统广泛应用于汽车电子、工业控制、医疗设备等关键领域,其软件直接操控硬件,任何微小的错误都可能导致严重后果。单元测试
    的头像 发表于 12-01 14:31 213次阅读

    新能源汽车质量保证体系与传统汽车单元测试规范的融合研究

    摘要 随着新能源汽车产业的快速发展,其质量保证体系面临前所未有的挑战。本文探讨了将传统汽车成熟的单元测试规范应用于新能源汽车领域的可行性,重点分析了ISO 26262标准体系在新能源汽车电子控制系统
    的头像 发表于 11-07 10:10 99次阅读

    单元测试专业工具在新能源开发中的作用研究

    单元测试的历史由来与发展 单元测试的概念可以追溯到20世纪60年代,伴随着计算机科学和软件工程学科的发展而逐步形成。早期的计算机科学研究(20世纪60年代)中,程序员意识到仅依靠手工调试和集成
    的头像 发表于 11-03 16:03 312次阅读

    嵌入式软件测试与专业测试工具的必要性深度解析

    ‌:单元测试、集成测试、系统测试等不同阶段可能需要不同的工具组合16。 ‌软件特性‌:实时性要求、安全等级等特性决定工具的功能需求。 ‌环境适配性‌:工具是否支持目标硬件平台和开发
    发表于 09-28 17:42

    边聊安全 | 软件单元测试的设计方法

    上海磐时PANSHI“磐时,做汽车企业的安全智库”软件单元测试的设计方法写在前面:软件单元测试的设计是一个系统化的过程,旨在验证代码的最小可测试
    的头像 发表于 09-05 16:18 4465次阅读
    边聊安全 | <b class='flag-5'>软件</b><b class='flag-5'>单元测试</b>的设计方法

    HarmonyOSAI编程单元测试用例

    根据选中的ArkTS方法名称,CodeGenie支持自动生成对应单元测试用例,提升测试覆盖率。 在ArkTS文档中,光标放置于方法名称上或框选完整的待测试方法代码块,右键选择CodeGenie
    发表于 08-27 14:33

    单元测试工具TESSY现已支持ABIX HiperSIM,助力MELEXIS MLX16 汽车嵌入式系统的软件验证

    TESSY现已支持ABIX HiperSIM,为基于MELEXIS MLX16架构的汽车嵌入式系统提供高效、可靠的软件验证解决方案。自动化测试+高保真仿真,助力提升软件质量与开发效率。
    的头像 发表于 07-17 13:39 671次阅读
    <b class='flag-5'>单元测试</b>工具TESSY现已支持ABIX HiperSIM,助力MELEXIS MLX16 汽车嵌入式系统的<b class='flag-5'>软件</b>验证

    HarmonyOS AI辅助编程工具(CodeGenie)代码测试

    本功能从DevEco Studio 5.1.0 Release版本开始支持。 根据选中的ArkTS方法名称,CodeGenie支持自动生成对应单元测试用例,提升测试覆盖率。 在ArkTS文档中,光标
    发表于 07-14 17:33

    新能源车软件单元测试深度解析:自动驾驶系统视角

    。 ‌自动驾驶软件的特殊性‌ ‌ 感知层: ‌激光雷达、摄像头等传感器数据处理算法的单元测试需覆盖极端场景。例如,激光雷达点云滤波算法在雨雪天气的噪声抑制能力需通过边界测试验证。某
    发表于 05-12 15:59

    新能源车背后的隐形守护者:软件单元测试的生死较量‌

    。这个教科书级的避让动作背后,是超过8000万行代码的精密协作,而确保这些代码绝对可靠的秘密武器,正是我们今天要揭秘的软件单元测试。 ‌一、代码世界的显微镜:单元测试为何重要‌ 如果把整车软件
    的头像 发表于 05-12 11:00 440次阅读

    单元测试:构建数字世界的质量基石

    第一章 质量危机时代的软件困局 1.1 现代社会的软件依赖症候群 ‌ 数据支撑 ‌: 世界银行《2023全球数字基础设施报告》显示,全球关键基础设施(如电网、交通、医疗)的数字化渗透率已达87%,但
    的头像 发表于 04-24 10:47 444次阅读

    单元测试在嵌入式软件中的关键作用及winAMS工具的卓越贡献

    1. 单元测试概述 ‌定义与核心目标‌ 单元测试软件开发过程中针对程序模块(如函数、类或组件)的最小可测试单元进行的验证活动。其核心目标在
    的头像 发表于 04-11 14:31 766次阅读

    嵌入式软件单元测试必要性、核心方法及工具深度解析

    一、为什么嵌入式软件必须重视单元测试? ‌嵌入式系统的特殊性‌ 在汽车 ECU、医疗设备控制器等场景中,软件直接操控硬件,‌单比特错误可能导致刹车失灵或呼吸机故障‌。不同于 PC 软件
    的头像 发表于 03-21 14:53 980次阅读

    在Linux安装软件哪些方法

    在Linux安装软件,可以哪些方法? 首先是最简单的,使用软件包管理工具。 如果是ubuntu或者debian系统,可以使用apt;如果是红帽或者centos,可以使用yum。 所
    的头像 发表于 02-08 09:41 1024次阅读