Unity C 单元测试框架

最近花了点时间研究了一下C语言的单元测试框架,目前好用测试框架很多,但是针对的C语言的并不多,我在 github 上找到了一个 Unity C ,并编写了一些最最简单的 Test Case 进行了一些尝试,发现还挺好用的!各种 ASSERT 宏,从数值,数组,字符串等类型的比较函数都很齐全。(点击最下方的阅读原文查看教程)

汽车ECU设计

Unity C 单元测试框架:原文配图 2

一个菜鸟程序猿的成长之路。116篇原创内容

公众号本文共850字,预估阅读时长2分钟

Unity C 单元测试框架:原文配图 1

让人比较烦恼的是,只要是 C 语言的测试套件都需要编译,而且基本上是一次性的,CASE的重复利用率极低!

不过可以通过条件编译将测试代码(TEST CASE 以及测试框架)常驻在软件中,在每天定时构建的版本中打开,然后放在 HIL 上去跑回归测试/自动化测试。这样在 PC 端上运行的CASE 也可以被放到日常的 HIL 回归测试中,不知道大家是不是这样做的?(由于我不是专业的测试工程师,以上只是我的想法,如果有更好的方案,还请大神告知一下!)坦白来说,在嵌入式单元测试这方面,很多公司做的都不太行,或者说不够专业。我认为原因至少这么几点:

  1. 工程师在开发后普遍没有在 PC 端上进行单元测试的习惯,更多的是直接在 HIL 端进行测试。相比于编写测试脚本而言,他们反而更愿意花更长的时间来编译一整版软件

  2. 嵌入式软件中的全局变量太多了,如果没有自动化的封闭接口的脚本,想在PC 端上进行单元测试根本无从谈起

  3. 代码文件结构复杂,头文件来回嵌套,导致测试套件难以编译

  4. 开发人员的测试理论还不够,对于测试仅仅停留在流程的层面,还没有上升到理论的高度关于测试相关的书,我之前看过一本《Google软件测试之道》,强烈建议从事测试的朋友们人手一本,虽然此书主要谈论的是 IT 行业的软件测试方法,但是在测试理念方面两者是共通的,后面找机会和大家分享一下吧~

完

拓展阅读:

各种软件测试概念的区别

何为 MC-DC 测试 ?

HIL测试介绍

白盒测试覆盖率ECU

测试的思考

历史精华文章集合:

【汽车ECU设计】汽车总线文章合集

【汽车ECU设计】Autosar文章合集

【汽车ECU设计】第51~100期目录

【汽车ECU设计】第1~50期目录

Unity C 单元测试框架:原文配图 3

氨气“ 携手进步 共同成长 ”

测试 · 目录

上一篇·测试自动化概述

阅读原文

← 返回文章列表