3、嵌入式Linux软件的测试工具

  目前嵌入式Linux下常用的开发语言为C或C*语言。针对嵌入式Linux下采用C和C语言编制的软件.分别使用易用的自动测试工具,以提高测试的效率,降低测试工作量。在单元测试的静态测试时可使用Flexelint工具软件或C“test工具软件的编码规范检查功能,可有效地规范代码风格、防止常见编码错误。这些工具软件可识别并报告C和C语言中的编程陷阱和格式缺陷,进行程序的全局分析,能识别没有被适当检验的数组下标,报告未被初始化的变量,警告使用空指针,冗余的代码,简单的内存错误等问题。

  同时在开发阶段或测试过程中,开发人员或测试人员还需要采用一定的工具来分析一些深层的代码隐患,如死锁、文件资源泄露等严重的、难以检测的问题。可使用CoverityPreventSQS工具软件来协助检测。Linux内核、MySQL、Mozilla很多开源软件都使用该工具执行深层次的缺陷检测.该工具软件对Linux下的应用软件的代码缺陷分析具有独特的优势。单元测试的动态测试可采用Parasolf公司的C++test工具软件。该软件工具有效地解决了单元测试的难点,把开发人员从编写测试驱动程序、桩和测试用例的繁重工作中解放出来。其提供有效的自动化单元测试,能够实现和执行100%的代码

  覆盖。可自动建立测试驱动程序与任何所需的桩函数,然后自动执行单元测试的所有步骤,可以自动执行回归测试。同时对嵌入式系统提供完善的单元测试支持。

  在运行时分析测试时.可使用CuttleITE测试工具或Code?TEST测试工具。这些工具提供强大的性能分析、覆盖率分析、内存分析、代码跟踪分析等功能。作为运行时测试工具,其宗旨是不影响系统的运行并准确测量记录软件运行的各项技术指标。这两款工具采用总线数据捕获技术.对目标系统的影响非常小,可以做到精确的数据观察,在准确性和实时性方面具有很大的优势。

  4、测试过程的管理工具

  嵌入式软件与硬件结合非常紧密,对硬件环境的依赖更为严格。在测试过程中必须对组成硬件环境的各种硬件板卡进行有效的配置管理,才能易于问题复现与定位。同时嵌人式软件对各种系统的软件环境也有独特的要求。在测试过程中除了对待测软件的源代码进行有效的版本管理外,还必须加强对系统引导程序的文件、操作系统内核的镜像、各驱动程序的文件、文件系统的配置都得进行有效的配置管理。

  在开发与测试过程中可采用开源软件SVN(Subversion)之类自动化版本控制工具软件进行有效的软件版本管理。传统的软件缺陷管理没有统一的规范。开发人员、测试人员或用户将发现的软件缺陷以电话、口头、Email等不规范的方式直接报告给软件开发人员。测试人员报告的缺陷容易被遗忘掉,而且对该缺陷处理情况的跟踪也没有控制,缺陷是否汇报给了应该对此错误负责的人员.缺陷终是否得到了有效的解决等情况都不得而知。项目经理和SQA人员难以及时从缺陷列表中找出规律,测试的效率比较低。

  为了解决这些问题,需要对缺陷进行有效的管理。需要把缺陷管理的范围扩大到软件整个生命周期.并使各阶段产生的缺陷都可以得到跟踪控制,从而可以使软件开发过程中各阶段的缺陷都有人负责并得到有效的处理,并和整个项目管理结合在一起.加强开发人员与测试人员之间的沟通,使之更好地协同工作,从而缩短整个项目的开发周期。

  在开发与测试过程中.对所发现的各种缺陷必须进行有效的管理。这有利于缺陷的人员分派、归零管理、问题复现等管理。可采用开源软件Bugfree之类的缺陷管理工具软件执行有效的缺陷管理。