代码测试工具
Posted 飞思德晶华
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了代码测试工具相关的知识,希望对你有一定的参考价值。
Hello 大家好,今天我们来谈谈代码检测相关知识,以下是我的一些拙见,如有不当之处,请各位指出和更正。
1,程序/代码是干什么的?
提到嵌入式,提到代码,首先得先说单片机。那么什么是单片机?单片机也叫微控制器处理单元,英文MicroControllerUnit,简写为MCU,他可以进行复杂的算术运算、可发号施令、可收集和接收外部信息然后发出相应行动、分配任务等,这些工作通过程序来实现。几乎所有的智能化设备都离不开这样的芯片。形象点说,单片机相当于人的大脑,是实体是载体;单片机靠程序赋予能量,程序相当于大脑的思想和灵魂。光有大脑,没有灵魂,如同行尸走肉。大脑都长的差不多,可是思想却千差万别、千奇百怪;可见程序是多么的重要。程序是由一行一行的代码组成的,这些代码可被单片机识别并执行。
单片机
代码
2,为什么要做代码检测?
前面说了,程序是体现单片机的思想和指导其行为的,在一些重要的行业,如航空航天、汽车等,如果思想开了小差,那么后果可想而知。随着时代的发展,智能化必将是未来趋势,据统计,现在一辆车上用到的单片机已经将近100个了,如何保证这些单片机上的程序都ok?唯有测试。
3,如何做代码测试?
人间有规则,程序界也有它的规则。代码测试主要分静态和动态,随着芯片的集成度越来越高、代码的复杂度也越来越高,光靠人力来一条一条进行测试,显然已经力不从心。合适的工具可以提高效率,人类很早以前就已经学会了如何使用工具。
工具的重要性
4,什么是静态检测?
静态检测是指不运行代码本身来检测代码本身的质量和缺陷,重点在检查。当然,每个行业对代码的质量要求不一样,制定的标准也就不一样。如同我们对于医生、护士、教师、官员、工程师、管理者、老板、飞行员、基建工作者、司机等的评价标准也是不一样的。譬如同样发生了一件事,不同人的看法和理解也是不一样的,有人认为ok,有人认为不ok;有人可以接受,有人不能接受;当然处理方式也是不同的,源自思想境界的不同。汽车电子源代码一般都是C或C++语言,MISRA C/C++是针对汽车行业代码的检测标准,也是最基本的规则。除了MISRA规则,静态检测一般还包含运行时间错误检测,如算法错误、内存泄漏、数组越界等,后续我们将专门讲解。
5,什么是动态测试?
动态测试是让代码跑起来检测运行过程中有可能会遇到的问题,重点在测试,也就是需要写大量的测试用例来进行试。不同行业也有不同的标准,汽车行业对动态测试主要的标准是ISO26262,不同的ASIL等级有不同的测试要求。动态测试也通常被称为单元测试或函数测试,函数是程序中的最小单元,所以单元测试是第一步。总体来说,单元测试主要测两点,一是单个函数的功能测试,即:无论给什么输入,是否都可以得到我们期望的结果;二是覆盖率测试,包含C0,C1,C2等不同级别,简言之,我们写的每一行代码和每一个条件/分支是否都能执行到。
总结:今天我们初略的介绍了什么是嵌入式代码以及代码的重要性,代码测试中,静态检测和动态测试是最基础的两种代码检测方式,之后还有集成测试和系统测试等,嗯嗯,工具到现在还没有讲,后续我们会一一展开介绍测试工具如何能够帮助我们更好的进行代码测试...
以上是关于代码测试工具的主要内容,如果未能解决你的问题,请参考以下文章