APP下载

基于仿真器的嵌入式软件单元测试方法

2012-06-22许福

北京航空航天大学学报 2012年12期

许 福

金茂忠 刘 辉 陈 琦

(北京林业大学信息学院,北京100083)

(北京航空航天大学 计算机学院,北京100191)

嵌入式软件广泛应用于航空航天、工业控制、交通管控等领域.可靠性是这类软件的重要指标,因为一旦发生故障,往往会造成严重损失,2011年“7·23”甬温线特别重大铁路交通事故就是典型例子[1].因此,必须对这类软件执行严格的、有效的测试.按实现方式不同,可将嵌入式测试工具分为3类.

1)纯硬件形式.常见的有在线仿真器[2]和逻辑分析仪[3].在线仿真器可以完全仿真目标芯片的行为,准确度高,运行速度快,但工艺设计复杂,价格昂贵.逻辑分析仪通过监控和采样总线数据执行测试,完备性受限于采样频率,而提高采样频率则会大幅提高成本.基于硬件的测试工具通常用于计算机硬件的设计和测试,很少用于嵌入式软件的测试.

2)纯软件形式.包括插桩[4]和软件仿真[5]两种典型方法.插桩向被测程序的特定位置插入探针,据此获得程序的运行信息.优点是实现简单,缺点是改变了被测程序,无法得到被测程序的精确执行轨迹和执行时间.软件仿真通过构建目标机的虚拟仿真环境,在宿主机上加载待测程序执行测试(目标机指嵌入式软件的运行环境,宿主机指嵌入式软件的开发环境,下同).优点是可获得待测程序的精确执行轨迹,缺点是速度较慢.

3)软硬结合形式.综合了纯硬件和纯软件形式的特点,代表工具是 CodeTEST[6].测试环境接近于真实环境,准确性较……

登录APP查看全文