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

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

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

审核编辑 黄宇

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

    关注

    67

    文章

    4350

    浏览量

    85627
  • 单元测试
    +关注

    关注

    0

    文章

    33

    浏览量

    3063
收藏 人收藏

    评论

    相关推荐

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

    嵌入软件单元测试工具是现代软件开发过程中不可或缺的一环。它的作用在于帮助开发人员对软件中的各个单元进行
    的头像 发表于 04-23 15:31 85次阅读
    嵌入<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 163次阅读

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

    Tessy源自戴姆勒—奔驰公司的软件技术实验室,由德国Hitex公司负责销售及技术的支持服务,是一款专门针对嵌入式软件进行单元/集成测试的工具。它可以对C/C++代码进行
    的头像 发表于 01-15 14:39 277次阅读
    Tessy—嵌入式<b class='flag-5'>软件</b><b class='flag-5'>单元测试</b>/集成<b class='flag-5'>测试</b>工具

    一种通用的汽车车身电子单元测试工装的研究设计

    电子发烧友网站提供《一种通用的汽车车身电子单元测试工装的研究设计.pdf》资料免费下载
    发表于 11-07 10:07 0次下载
    一种通用的汽车车身电子<b class='flag-5'>单元测试</b>工装的研究设计

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

    本文着重探讨单元测试的重要性及其正面临的困境,并介绍功能安全标准中罗列的单元测试方法。
    的头像 发表于 11-03 14:58 315次阅读
    <b class='flag-5'>软件</b><b class='flag-5'>单元测试</b><b class='flag-5'>真的</b>有<b class='flag-5'>必要吗</b>?(上)

    如何提高嵌入式软件单元测试效率

    在本指南中,您将学习如何通过在更短的时间内运行更多的测试来增加您的单元测试吞吐量。 这种效率的提高来自于使用虚拟平台而不是物理硬件作为开发平台。 本指南对任何开发或运行嵌入式软件单元测试
    发表于 08-28 06:31

    软件代码结构化覆盖测试-语句覆盖

    本篇将深入到代码层面,讲解单元测试中的一项重要工作-软件代码测试
    的头像 发表于 08-25 11:50 389次阅读
    <b class='flag-5'>软件</b>代码结构化覆盖<b class='flag-5'>测试</b>-语句覆盖

    如何利用Simulink Test工具箱对模型进行单元测试

    创建完模型后,我们需要验证模型的行为,即仿真结果,是否跟我们预期的一致,这样才能保证由模型生成的代码在嵌入式系统中执行得到结果跟我们预期的一致。单元测试主要是以模型或者模型内的子系统为单位进行测试
    的头像 发表于 07-22 10:25 2639次阅读
    如何利用Simulink Test工具箱对模型进行<b class='flag-5'>单元测试</b>?

    083. 单元测试和案例:15.6 fixture

    单元测试
    充八万
    发布于 :2023年07月11日 21:31:03

    081. 单元测试和案例:15.4 断言 #硬声创作季

    单元测试
    充八万
    发布于 :2023年07月11日 21:29:53

    080. 单元测试和案例:15.3 unite discover #硬声创作季

    单元测试
    充八万
    发布于 :2023年07月11日 21:28:44

    079. 单元测试和案例:15.2 unittest suite #硬声创作季

    单元测试
    充八万
    发布于 :2023年07月11日 21:27:34

    078. 单元测试和案例:15.1 unite testcase #硬声创作季

    单元测试
    充八万
    发布于 :2023年07月11日 21:26:24

    嵌入软件单元测试/集成测试自动化工具

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

    嵌入式代码单元测试如何完成?

    软件开发中,每次需求的变更基本都需要改写代码,而代码变更后就需要进行功能测试,当然在功能测试之前需要代码的单元测试,避免代码改动后部分场景没有验证,最后出现各种问题。
    发表于 06-05 12:28 585次阅读