嵌入式软件测试:
软件测试
对使用C语言编写的软件按照ISO 26262的要求进行单元测试、结合测试、机能测试 (导航仪、电子锁、仪表盘显示等汽车电子产品)。并对合格的软件发行相关证书。
按测试顺序
⁗单元测试
⁗结合测试
⁗综合测试
⁗系统综合测试
按实现技术
⁗白盒测试
⁗黑盒测试

嵌入式系统开发V模型

V模型为嵌入式系统而开发,测试工作与开发工作并行,而不是作为一种被动的事后检查行为,软件需求和设计
规格说明书及相应的测试计划和方案在软件开发周期的前三个阶段性产出,在编码完成后进入不同程度的测试执行
阶段,在整个项目开发过程中以质量为中心,以测试为手段,确保开发是按一定的项目规范进行,保障各阶段交付
产物的质量,尽可能早地发现和预防缺陷扩张,从而提高测试的有效性和效率,降低测试的成本和费用。
测试项目 |
测试对象 |
测试内容 |
单元测试 |
单一函数 |
程序代码是否按详细设计编写 |
集成测试 |
多个函数 |
各函数间的接口是否正常动作 |
功能测试 |
全体程序 |
程序是否正常动作 |
嵌入式软件测试业务:
单元测试及方法
单元测试是软件开发过程中,唯一一个对全代码进行确认的测试。通过对C语言程序的最小单位——函数的测
试,确认各个函数是否准确反映了详细设计的要求,覆盖率是否达到100%,是否发生溢出等。

单元测试包括静态确认和动态检查。静态确认是指编码完成后的代码评审和验证,主要确认程序中是否存在语
法错误,例如,程序代码是否满足MISRA编成规则的要求。动态检查是对用户的实装代码进行的动态测试。因为是在
用户实际的开发环境中进行的测试。所以在进行逻辑检查、覆盖率确认的同时,也对依赖于芯片部分的命令进行了
动态确认。为客户在软件开发、移植和芯片升级时,评估程序的可靠性提供了有力的数据证明。

集成测试及方法
集成测试是对各个函数间数据是否正确传输而进行的测试。是单元测试的逻辑扩展。在多任务处理方式下,还
存在着TASK间的相互干涉,会在任何时候发生意想不到的问题。因此,还须对同一全局变量在不同TASK中的使用情
况进行确认,以保证不会发生TASK干涉的问题。

集成测试将多个单元组合成一个组件,测试它们之间的接口。多TASK组成时,需成对进行测试。

功能测试及方法
功能测试是在软件开发已经基本结束时进行的测试。是对软件是否符合仕样要求进行的综合评价。有对单个ECU
的功能测试,也有对整个系统的功能测试。既有系统测试,也有验收测试。在模拟阶段的确认测试在宿主机环境下
利用仿真环境进行。而验收测试必须是在真实的运行环境中进行的。因为在仿真环境下进行测试时所建立的模型是
不完整的,建立的模型总是描述系统的某个方面的特性,而忽略其他方面特性。为此,对于不存在的组件基于模型
的仿真总是伴随着不确定性。因而,仿真只是回答实际中被问到的问题,结果总是要承担由于仿真模型不精确和没
有考虑实际情况引起的风险。所以,只有通过在真实的运行环境中,从用户的观点出发进行的验收测试,才能最终
验证系统是符合所要实现的要求。
α测试:由用户在开发环境下进行的测试,也可以是公司内部的用户模拟实际操作环境进行的测试,是受控制的环
境下进行的测试。
β测试:是由软件的多个用户在实际使用环境下进行的测试。与α测试不同的是,开发者通常不在现场。因此,β测
试是在开发者无法控制的环境下进行的软件现场应用。
利用HILS(Hardware-In-the-Loop Simulator)进行的α测试,通过MATLAB/Simulink建立模型,对目标机进行
测试。

最后,必须在真实的运行环境中对整个系统进行确认和验收。包括电子系统的系统测试和验收测试,以及在生
产和服务中所需要的所有外部接口和工具的测试。
返回到业务范围一览
|