1、测试猿课堂-嵌入式软件测试基本概念

  1.1 测试猿课堂-嵌入式软件

  和普通计算机系统一样,嵌入式系统除了需要硬件结构和配置外,还需要相应软件的支持才能完整地实现系统的功能。目前,嵌入式系统的软件体系结构通常都采用以实时内核为基础的分层体系结构。组成嵌入式系统的软件大致可分为如下几层:

软件测试最容易陷入的28个误区(集成测试怎么做)(1)

  驱动层(硬件抽象层):驱动层是最靠近硬件的一层,它属于最底层的软件,直接和硬件打交道,它为操作系统内核和应用提供使用硬件的接口即驱动的支持。

  操作系统层(实时内核层):该层的主要功能是协助最顶层的应用层更好地进行任务的调度、消息管理和异常处理等工作,由于该层的支持,特别是实时内核的作用,大大地减轻了嵌入式软件开发人员开发嵌入式软件的难度,同时也缩短了嵌入式软件的开发周期。

  应用软件实现支持层:嵌入式应用软件的实现需要编程语言的支持。目前,应用于嵌入式软件编程语言主要有面向过程的语言C和面向对象的编程语言C 、ADA等,应用这些语言开发的应用程序在嵌入式系统中运行时都需要相应的编译器或解释器的支持,转换成相应的机器码,才能在嵌入式系统中实现应用程序对应的功能。

  应用层:应用层软件主要由多个相对独立的应用任务组成,每个应用任务完成特定的工作,如计算任务和通信任务等,各个任务的运行由操作系统进行调度。

  1.2 测试猿课堂-测试用语

  嵌入式软件(Embedded Software):嵌入式计算机系统中的软件,其与硬件联系紧密,并且通常要求强实时性。

  测试环境(teST EnvirONment):执行测试程序所需要的硬件平台和软件资源构成的环境。

  测试用例(Test Case):为测试项规定输入、预期结果和一组执行条件的文档。

  测试程序(Test Procedure):执行测试用例的程序形式,其执行需要相应测试环境的支持。

  问题描述报告(Problem Description Report):对软件测试过程中发现问题的简要描述。

  更改的判定条件覆盖(Modified CondiTIon/Decision Coverage, MC/DC):对设计足够多的测试用例,使得判定中每个条件的所有可能结果至少出现一次,每个判定本身的所有可能结果也至少出现一次,每个入口点和出口点至少要唤醒一次,并且每个条件都显示能单独影响判定结果。

软件测试最容易陷入的28个误区(集成测试怎么做)(2)

2、测试猿课堂-软硬件集成测试过程

  软硬件集成测试应该在嵌入式软件集成测试完成的基础上进行。此时软件已按照功能模块组装成子系统,为了有效验证该子系统软件与硬件功能的协调性,保证软件在特定的硬件平台上能够按照设计的要求进行工作,完成其要求的功能、性能指标,就必须进行嵌入式软件的软硬件集成测试。

  2.1 测试猿课堂-嵌入式软件测试过程

  软件开发人员在开发过程中,一般遵循如下步骤:

  ① 系统软硬件功能划分,形成软、硬件研制任务书。

  ② 系统软件需求分析。

  ③ 系统软件概要设计。

  ④ 系统软件详细设计。

  ⑤ 软件编码。

  测试人员恰恰以相反的步骤实现测试过程:

  ① 单元测试。软件单元测试的目的是检测程序模块是否符合《详细设计说明书》的要求。通常会采用白盒测试技术,如基于路径覆盖原理等。

  ② 集成测试(配置项测试)。软件集成测试的目的是检测程序是否符合《概要设计说明书》的要求。通常采用黑盒测试技术,但有时为了确保主要控制路径的覆盖测试,也会采用一定的白盒测试技术。

  ③ 软硬件集成测试。软硬件集成测试的目的是为了检测系统划分软硬件功能后,在软件集成测试完成的基础上,测试模块软件在硬件平台上的运行情况,主要是对嵌入式软件的实时性、嵌入性及功能性能指标的测试。

  ④ 系统测试。关注所设计的系统,在模块与模块集成之后构成完整系统时所表现出的质量指标,包括正确性、可扩性等。

  ⑤ 确认测试。针对确认标准的测试。确认标准由需求分析产生,所以实际上就是指规格化的需求,通常采用黑盒测试技术。

软件测试最容易陷入的28个误区(集成测试怎么做)(3)

  2.2 测试猿课堂-软硬件集成测试过程

  软硬件集成测试主要是在软件集成测试完成后,形成独立的配置项,加载到相应的硬件平台上进行测试,以确定软硬件是否能够协同工作,实现系统既定的功能。


,