1 概述
目前,嵌入式软件主要应用于指控系统、火控系统、飞机、舰船、导弹、宇宙飞船、某些指挥与控制系统等的数据处理机。对于在武器系统中的一些嵌入式软件,由于其在武器中起着至关重要的作用,因此必须对其进行深入彻底地测试。对于大规模、复杂性高的武器系统软件,软件中的缺陷和错误有可能是致命的,因为武器系统的发射及指挥决策的成功与否,都涉及到巨大的投入、甚至国家安危。软件测试是保障软件可靠性、提高软件质量的重要措施。在软件测试这个学科的发展过程中,人的主观能动性是起主导作用的。将人的主观能动性与软件测试工具有机结合起来,提高软件
测试的效率,从量化的角度来衡量测试的充分性。单元测试是在软件开发过程中要进行的最低级别的测试活动,在单元测试中能够发现软件中存在的大部分错误;软件测试方法可以分为静态测试和动态测试两种情况。因此,从上述的几个方面,根据使用的设计语言的差异,分别描述不同测试工具在军用嵌入式软件测试中的应用。
2 单元测试
单元测试又称模块测试,可从程序的内部结构出发设计测试用例,多个模块可以平行地、对立地测试,通常在编码阶段进行,必要的时候要制作驱动模块和桩模块。单元测试以发现模块设计错误为主要测试目的,因此测试应覆盖模块的每条语句和分支。单元测试的主要内容包括代码审查、静态分析、功能测试、性能测试、结构覆盖测试等等。由于单元测试的主要目的是发现软件中是否存在错误,在设计测试用例时还要注意以下几点:
(1) 是否存在混合类型运算;
(2) 程序中是否误解或用错了算符优先级;
(3) 是否在不同数据类型的对象之间进行比较;
(4) 精度是否不够;
(5) 表达式符号是否有错;
(6) 是否存在死循环等。
边界条件测试是单元测试中最重要的测试项目之一,采用边界值分析技术,针对边界值极其左、右设计测试用例,很有可能发现新的错误。对于军用嵌入式软件而言,一部分软件主要是由8086/8087 汇编语言编写,还有用C/C++语言编写的。根据汇编语
言的特点开发专用的软件,在Testbed 的基础上开发了8086/87 单元测试软件包。在Testbed 的辅助下进行单元测试,测试者不但可以通过图形界面的方式清楚地看到被测模块的覆盖