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

一个菜鸟程序猿的成长之路。116篇原创内容
公众号本文共850字,预估阅读时长2分钟

让人比较烦恼的是,只要是 C 语言的测试套件都需要编译,而且基本上是一次性的,CASE的重复利用率极低!
不过可以通过条件编译将测试代码(TEST CASE 以及测试框架)常驻在软件中,在每天定时构建的版本中打开,然后放在 HIL 上去跑回归测试/自动化测试。这样在 PC 端上运行的CASE 也可以被放到日常的 HIL 回归测试中,不知道大家是不是这样做的?(由于我不是专业的测试工程师,以上只是我的想法,如果有更好的方案,还请大神告知一下!)坦白来说,在嵌入式单元测试这方面,很多公司做的都不太行,或者说不够专业。我认为原因至少这么几点:
-
工程师在开发后普遍没有在 PC 端上进行单元测试的习惯,更多的是直接在 HIL 端进行测试。相比于编写测试脚本而言,他们反而更愿意花更长的时间来编译一整版软件
-
嵌入式软件中的全局变量太多了,如果没有自动化的封闭接口的脚本,想在PC 端上进行单元测试根本无从谈起
-
代码文件结构复杂,头文件来回嵌套,导致测试套件难以编译
-
开发人员的测试理论还不够,对于测试仅仅停留在流程的层面,还没有上升到理论的高度关于测试相关的书,我之前看过一本《Google软件测试之道》,强烈建议从事测试的朋友们人手一本,虽然此书主要谈论的是 IT 行业的软件测试方法,但是在测试理念方面两者是共通的,后面找机会和大家分享一下吧~
完
拓展阅读:
历史精华文章集合:

氨气“ 携手进步 共同成长 ”
测试 · 目录
上一篇·测试自动化概述
阅读原文