博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
不做单元测试?小心得不偿失!嵌入式系统单元测试工具,自动生成测试用例
阅读量:4217 次
发布时间:2019-05-26

本文共 1189 字,大约阅读时间需要 3 分钟。

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

为什么要做单元测试?

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

 

单元测试有什么作用?

实现敏捷开发

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

提高代码质量

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

消除深度未知隐患

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

优化设计和架构

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

满足行业规范要求

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

 

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

 

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

在中国科学院何积丰院士的带领下,由上海控安自主研发的SmartRocket Unit作为一款单元测试工具,可以自动生成满足语句、分支、MC/DC准则的测试用例,自动执行测试驱动。 通过使用SmartRocket Unit,用户可快速对安全攸关的代码进行单元级别的白盒测试和回归测试,从而进一步提升单元测试的效率。

SmartRocket Unit通过智能模拟测试人员进行覆盖率测试时的思路,实现其核心功能:

  1. 测试用例自动生成。 动态符号执行求解引擎,采用自动推理与符号执行技术,可自动分析程序路径,产生可满足特定覆盖率准则的测试用例
  2. 程序打桩技术,对被测模块中的函数调用自动进行打桩,自动生成测试驱动
  3. 测试驱动将测试用例作为输入,自动执行测试用例,记录并分析执行结果,最终产生测试报告,包含覆盖率分析结果及测试用例数据等

 

 

转载地址:http://xxxmi.baihongyu.com/

你可能感兴趣的文章
leetcode166. Fraction to Recurring Decimal
查看>>
leetcode36.Valid Sudoku
查看>>
leetcode85 maximal rectangle
查看>>
2016年半年计划~
查看>>
推荐系统简述(1)基于内容的推荐系统
查看>>
leetcode 149. Max Points on a Line
查看>>
python 小练习之山寨版markdown格式txt文件转html文件
查看>>
python小练习
查看>>
leetcode26. [Array]Remove Duplicates from Sorted Array
查看>>
leetcode 27. [Array]Remove Element
查看>>
leetcode66.[Array] Plus One
查看>>
leetcode283. [Array]Move Zeroes My Submissions Question
查看>>
leetcode292.[Array] Nim Game
查看>>
推荐系统简述(2)基于近邻推荐方法
查看>>
leetcode171.[math] Excel Sheet Column Number
查看>>
决策树知识点整理
查看>>
支持向量机知识点整理
查看>>
机器学习面试题
查看>>
聚类算法知识点整理
查看>>
深度学习知识点整理
查看>>