1、测试框架

  测试框架是一组测试的规范、测试脚本的基础代码,以及测试思想、惯例的集合。可用于提高测试效率,降低测试工作量.改善测试工作的重用性和可维护性。

  测试框架的好处在于:提高开发速度,提升测试的执行效率:在提高软件代码质量的同时引入测试重用的概念,可明显减少测试工作量;作为回归测试的一种实现方法支持修改后“再测试”,确保代码的正确性。测试框架出现的终目的是花少量的资源来完成尽可能多的测试任务,所以测试框架的建立以及框架的重用性方面是值得深入研究的。

  2、嵌入式软件的测试方法

  由于嵌入式系统的自身特点。如实时性、内存不丰富、CPU运算速度不充裕、I/0通道少、开发工具昂贵、并且与硬件紧密相关等,导致嵌入式软件的开发和测试与一般商用软件的开发和测试有很大的不同。嵌入式软件是难测试的一类软件。为了确保软件质量。嵌入式软件应该加强单元测试、功能测试与系统测试等的测试力度。

  2.1 单元测试

  从广义上看.单元测试包括静态测试与动态测试。静态测试包括对代码进行静态分析、代码审查的活动。而动态测试是通过单元测试用例、测试工具来实现对程序单元的有效测试。对于嵌入式软件的单元测试,可完全在开发主机上执行。静态测试的目标不是证明程序完全正确,而是作为动态测试的补充。在程序运行前尽可能多地发现其中隐含的错误,提高程序的可靠性和健壮性,改善代码质量。

  执行有效的动态测试,可帮助更准确更全面地找到错误。显著提高软件质量。在单元测试的后续测试中为了发现错误,通过不断修改输入,希望引发软件内部的潜在错误,但这无疑是有难度的。测试人员只能依赖于软件的运行失败来发现错误。这样不仅很难找到错误发生的准确位置,而且实际上还有大量的错误没有得以发现。

  单元测试提供了一种更有效的发现错误的方法。它将应用程序中的小单元分离开来,使得测试更接近错误,只需要简单地对每个小单元进行独立测试,很容易地使得全面准确地找到所有程序错误成为可能。

  2.2 行时分析测试

  开发或测试过程中。需要对软件的运行性能、内存问题、代码覆盖率等问题进行有效的运行时分析。对嵌入式软件而言运行时分析是一个难点。

  嵌入式系统由于本身资源受限。不能采用通用商业软件的运行时分析方法.也是不能把分析软件放置在目标机上运行。嵌入式系统的资源通常不能满足分析软件的需要。同时分析软件插入的桩函数对目标系统的运行效率有很大的影响(超过50%)。分析软件运行在目标系统上,导致待测软件是在一种不真实的环境下运行。所获得的数据并不是准确的。目前常用的方法是结合对待测软件进打点技术和从总线捕获数据进行分析.可有效地避免各种弊端。

  2.3 功能测试

  为了验证软件是否满足了功能特性的需求,必须对软件进行功能测试。功能测试是对软件的各项功能进行验证,软件的功能测试主要针对每种功能设计若干典型测试用例,在测试过程中运行测试用例,然后将得到的结果与所期望的结果进行比较,以确定软件是否符合用户的功能需求。嵌入式软件的功能测试,可以在主机环境下开展,不过推荐脱离主机环境开展功能测试,测试效果会更好,测试管理更容易。

  2.4 系统测试

  如果软件只是满足了功能要求。没有满足一些非功能的特性要求,软件还是无法满足用户的需求,无法获得用户的信任。为了验证系统是否符合非功能特性的质量需求.必须对软件执行系统测试。系统测试主要关注系统的负载测试、性能测试、容量测试、安全性测试、兼容性测试、可靠性测试等。同时只有在软件的功能趋于稳定后.才适合开展系统测试工作。在进行系统测试时,还要强调测试环境的真实性。如果测试环境不能等价于系统的实际运行环境.系统测试的结果值得怀疑。所以嵌入式软件的系统测试必须在目标环境下进行。