
软件测试要点
嵌入式软件测试是一项严格的任务,可能需要大量的时间和劳动。手工测试是昂贵的,容易出错,并且很难重新进行手工测试。自动化测试的工具可以提高过程的效率并节省成本。工具自动化还允许在持续集成环境中运行测试,从而减少了识别和修复软件开发期间所开发的任何bug所需的工作。
因此,使用工具来自动化软件测试是执行健壮测试计划的很好的一步,因为好的工具可以节省开发人员的时间和降低项目成本。下面我们列出了一些在选择嵌入式软件测试工具时需要注意的重要特性。
1.目标上和主机上的测试
嵌入式软件也可以进行测试目标或主机.在目标上测试中,在要部署的硬件(目标)上测试应用程序。在主机上测试中,应用程序在与最终应用程序具有不同硬件环境的主机上进行测试。
目标测试很重要,因为软件行为常常很大程度上依赖于软件所承载的硬件环境。然而,目标上的测试通常比主机上的测试更昂贵,并且需要访问目标硬件。然而,在某些应用程序中,对最终目标硬件的访问可能并不容易获得,可能只有在软件开发的后期才可用。
主机上的测试通常比目标上的测试更少的资源密集型,并且提供了一种即使在硬件不可用时也能执行测试的方法。这有几个好处,包括允许测试自动化,并在软件开发期间持续运行,以及允许测试在场外执行。
在测试嵌入式软件时,最好的选择是打开选项,这样就可以同时执行目标上和主机上的测试。专门为目标测试而设计的工具,例如RVS还支持主机上的测试,为您提供使用两种测试策略的灵活性。
2.单元、集成和系统测试
嵌入式软件可以在不同的粒度级别上进行测试,代表的环境或多或少地代表了软件将驻留在其中的最终系统。其中,经常使用单元测试、集成测试和系统测试等术语。
单元测试涉及孤立地测试应用程序的各个模块,即不与其他模块或数据库等外部依赖项进行交互。因为单元测试只需要软件的一个子集,所以它允许在软件开发的早期就开始测试。单元测试通常作为一组回归测试在整个开发过程中自动运行,这些回归测试可以识别开发过程中引入的错误。
集成测试包括在组合模块时检查模块是否工作正常。这为测试提供了更广泛的范围,并且在集成测试期间通常会检测到由于模块交互而引入的错误。
系统测试包括检查整个集成软件是否正常工作。在完全集成的系统上执行,这让工程师检查系统是否满足其高级需求。
由于单元测试、集成测试和系统测试在嵌入式软件测试中都有好处,您可能希望选择这样的工具加固测试,它允许您在所有粒度级别上测试系统。
3.结构代码覆盖分析
结构代码覆盖率是用来建立软件测试完整性的度量。在测试一个系统时,覆盖率达到的百分比越高,软件出现非预期功能、错过测试或需求的风险就越小。
当测试嵌入式软件时,可能会收集到各种代码覆盖率指标,这为软件测试提供了一个不断增加的粒度级别:
- 功能覆盖
- 语句覆盖
- 决定(分支)报道
- 修正条件决策覆盖范围(MC/DC)
在选择嵌入式测试工具时,您执行的覆盖率测试粒度越高,您就越确信您的软件不会包含无意的功能。因此,您可能希望选择一个工具,例如加固封面,它分析上面列出的所有级别的覆盖率。
4.执行时间分析
执行时间分析使开发人员能够理解其代码在目标环境中的执行时间行为。在处理实时系统或安全关键应用程序时,这种分析尤其重要。
这个分析可以用来测试软件是否在分配给它的任何时间预算内执行,并且很容易地识别可以优化的代码区域,以提高它的时间性能。
当分析软件执行时间时,各种计时指标是有意义的:
- 代码的总执行时间
- 高水位执行时间
- 每个函数对执行时间的贡献
- 最坏情况下的执行时间(在安全关键应用程序中至关重要)
与代码覆盖率分析工具一样,您从嵌入式测试工具中获得的指标越多越好。这样的工具加固时间让您执行软件的详细计时,帮助您优化代码和最大限度地利用您的目标硬件。
5.调度分析
调度分析提供了任务执行时间的概述,允许嵌入式测试人员了解程序流程和任务响应时间。这种分析还可以让工程师了解特定事件在他们的软件中发生的频率。从这些信息中,可以识别、调查和解决罕见的计时事件,如竞争条件或死锁。
为了更好地理解系统的调度行为,您可能需要寻找一些工具,这些工具的特性可以帮助您轻松地可视化大型跟踪,并查看额外的指标,如CPU利用率和抖动,如加固任务.
6.持续集成
持续集成服务器通常用于跟踪软件开发的时间。当自动化测试工具可以与正在使用的持续集成服务器交互时,测试可以自动运行软件的每个新版本。这有助于软件质量控制,因为它允许您跟踪测试进度,并确定源代码的哪个版本导致了失败。
在选择嵌入式软件测试工具时,您可能希望选择一个与您已经使用的持续构建环境集成的工具。
7.工具资格
如果您需要验证您正在开发的嵌入式软件,那么最好确保您将要使用的测试工具能够产生准确的结果。为了提供这种保证,软件测试工具供应商可以确认他们的工具,提供证据证明他们通过对工具的内部测试产生可靠的结果。这一特性是必不可少的,特别是在使用安全关键软件时,例如航空电子软件和做- 178认证.
