渗透测试对软件单元测试有必要吗?



     谈到软件测试,大家脑海里最多的就是软件集成测试、系统测试等等,大概就不会想到单元测

试了。一般而言,软件开发工作量大,时间短,不会将软件的单元测试作为一个独立的过程纳入

工作范畴,如果要求工程师进行单元测试,工程师通常会说:功能实现都很忙,哪有时间做单元

测试呢?编译完成后,还需要测试哪些内容。还需要搭建测试环境,编写测试代码,这相当于将

代码功能重写一遍。应用层与底层耦合很深,不能集成到ECU上,因此根本无法测试。可以将单

元测试与后续软件集成测试和HIL测试等结合起来。
 
 
这个原因很熟悉吗?这当然是深奥的道理,难道单元测试不值得一做吗?下一步,我们将从投入

产出率和测试方法两个方面来说明单元测试对开发者的实际益处。为何进行单元测试?遵循ASP

ICE安全和功能的单元测试过程。BTCEmbeddedPlatform是主流测试工具。
 

 
为何进行单元测试?
 
一、消除未知的深层隐患。
 
软件业的本质是非常复杂的,没有人敢100%地保证自己编写的程序没有问题。在开发初期的功

能验证我们会用模拟,或者模型和代码调试技巧对结果值进行验证,这种测试一般只覆盖部分

执行路径,没有覆盖执行路径会留下许多未知隐患。为确保我们的程序在不同的情况下都能按

预设响应,需要根据需求对我们的模型或代码进行严格的测试和覆盖测试(通常是:白盒测试),

而这种测试只能在单元测试中进行。
 
 
二、树立信心。
在开发项目时,不可避免地会遇到频繁的需求变更问题,如果没有良好的单元边界,那么很有

可能修改程序就会莫名其妙地产生更多的bug。为减少此类变化影响分析的时间成本,合理地

设计单元边界,对单元进行回归测试是非常必要的。在构建高可靠性软件产品时,通过充分的

单元测试,大大减少了后续软件集成和系统集成带来的问题。
 
 
三、更快地反馈和节省时间。
 
通常在PC上完成单元测试,执行速度快,易于发现深层问题,并且能够快速地找到问题的根源

,当得到测试结果后,可以针对相关的需求,向开发人员提供反馈,快速地迭代,有效地实现

正确的需求和代码。
 
 
四、优化设计和结构。
 
单元测试可以帮助优化设计和架构,例如最长执行时间(WCET)、内存和堆栈使用量评估、通过

处理器在环中的运行时间(ProcessorIntheLoop)、优化设计和架构、尽早避免集成后的运行时间

和内存溢出问题。
 
 
五、符合行业标准的要求。
 
符合AutomotiveSPICE流程和ISO26262安全规范的单元测试要求,能够获得第三方认证公司颁

发的相关认证。
分享: