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

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

3天内不再提示

什么是单元测试,为什么要做单元测试

上海控安 来源:上海控安 作者:上海控安 2021-04-28 17:21 次阅读

单元测试是整个软件开发过程中的一个重要环节 ,执行一个完备的单元测试方案能够提高整个开发过程的时间效率,确保软件的实际功能与详细设计说明的一致性,使软件开发的效率和软件产品的质量得到最好的保障 。

什么是单元测试?单元测试(unit testing),是指对软件中的最小可测试单元进行检查和验证。通常而言,一个单元可能是单个程序、类、对象、方法等。

为什么要做单元测试?软件中存在的错误发现得越早,修改和维护的费用就越低,难度也越小。单元测试是在软件开发验证过程的底层和早期进行的测试活动,目的是把缺陷消灭在萌芽状态。

单元测试有什么作用?

1.实现敏捷开发,单元测试的主要好处之一是它使编码过程更加敏捷。当软件中添加越来越多的功能时,有时需要更改旧的设计和代码,但是更改已测试的代码既有风险又耗费时间。如果有单元测试,则有助于安全重构。

2.提高代码质量,由于单元测试是在集成测试之前对最小可测单元的测试,所以能够尽早的发现软件代码中的缺陷,并在不影响其他代码部分的情况下解决问题。这些问题包括程序实现中的错误和单元规范中的缺陷及缺失。通过代码检查和已有缺陷的完善,代码质量可以得到大幅度提高。

3.消除深度未知隐患,软件开发天生就具有极大的复杂性,没人能100%保证自己写出来的程序没有问题。开发中的初步功能验证我们会用仿真,或模型及代码调试技巧进行结果值确认,这种测试一般只能覆盖部分执行路径,未覆盖执行路径就留下了很多未知隐患。为了保证我们的程序在各种情况下都能按照预设响应,就需要对我们的模型或者代码进行严格的基于需求的测试和覆盖率测试(俗称:白盒测试),而这种测试只能在单元测试中进行。

4.优化设计和架构,单元测试可以辅助优化设计和架构,比如通过处理器在环(Processor In the Loop)来评估最长执行时间(WCET),内存和堆栈使用量,优化设计和架构,尽早地回避集成后的执行时间及内存的溢出问题

5.满足行业规范要求,满足Automotive SPICE过程及ISO26262安全规范对单元测试的要求,以从第三方认证公司获取相关认证证书。

什么时候开始做单元测试?

单元测试越早越好,早到什么程度?极限编程讲究TDD,即测试驱动开发,先编写测试代码,再进行开发。在实际的工作中,可以不必过分强调先什么后什么,重要的是高效性和实用性。从经验来看,对于单元测试可以先编写产品函数的框架、编写测试函数,再针对产品函数的功能编写测试用例,然后编写产品函数的代码。在实际编码过程中,每写一个功能点就进行相应的测试,并且随时补充测试用例。

单元测试任务太重?效率太低?

工业嵌入式系统单元测试工具

SmartRocket Unit作为一款单元测试工具,可以自动生成满足语句、分支、MC/DC准则的测试用例,自动执行测试驱动。 通过使用SmartRocket Unit,用户可快速对安全攸关的代码进行单元级别的白盒测试和回归测试,从而进一步提升单元测试的效率。SmartRocket Unit通过智能模拟测试人员进行覆盖率测试时的思路,实现其核心功能:

l 测试用例自动生成。 动态符号执行求解引擎,采用自动推理与符号执行技术,可自动分析程序路径,产生可满足特定覆盖率准则的测试用例

l 程序打桩技术,对被测模块中的函数调用自动进行打桩,自动生成测试驱动

l 测试驱动将测试用例作为输入,自动执行测试用例,记录并分析执行结果,最终产生测试报告,包含覆盖率分析结果及测试用例数据等

fqj

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

    关注

    0

    文章

    554

    浏览量

    27177
  • 单元测试
    +关注

    关注

    0

    文章

    33

    浏览量

    3059
收藏 人收藏

    评论

    相关推荐

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

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

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

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

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

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

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

    本篇将深入讨论单元测试过程中,如何在保质保量完成测试任务的同时,缩减时间成本、提高测试效率,并分享目前行业内的实践经验以及相关自动化测试工具。
    的头像 发表于 11-17 15:18 296次阅读
    软件<b class='flag-5'>单元测试</b>真的有必要吗?(下)

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

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

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

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

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

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

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

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

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

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