求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Model Center   Code
会员   
订购 | 案例 | 建模扩展语言 | 模型框架 | 学习资源 | 培训&咨询 | 解决方案 | 用户组 | 客户专区 | 联系我们
  11516 次浏览  37 次
Integrator
工具链
购买
服务

嵌入式软件集成测试平台integrator
作者:俎涛 (火龙果软件工程)
什么是嵌入式软件集成测试平台
嵌入式软件集成测试平台用于构建嵌入式软件持续集成测试的完整工具链,实现持续集成测试的执行的可视化和自动化。
解决的问题
嵌入式软件一般都用于汽车、飞机、工厂等跟人身安全相关的领域,所以对软件的质量要求都比较高,这也就需要建立完善的软件质量测试体系。嵌入式软件基本上要进行全周期的软件质量保障。如下是一个典型的企业的嵌入式软件开发过程中涉及到的测试工作流程图:
软件开发人员把开发完的软件提交给测试人员进行测试,测试人员要进行如下的质量工作:
  • 代码检查:对代码进行静态分析和检查,发现代码的规则性问题。
  • 单元测试:把代码编译为可以组件后,对组件的接口进行测试。
  • 集成测试:按照软件架构设计,对需要对接的各个组件进行集成测试,验证集成后能否正常运行。
  • 系统测试:按照系统需求,把可执行的软件和硬件集成为一个系统,对系统的功能、性能和可靠性进行测试,以便验证系统能否实现需求,并且正常运行。
  • 在当前的嵌入式软件开发测试过程中,存在如下问题:
  • 工具链不完整:
  • 在嵌入式软件领域,有些环节缺乏有效的工具,例如代码检查、单元测试、集成测试。
  • 工具集成不紧密:
  • 整个测试过程设计多个工具,而各个工具来自于不同厂家或者开源产品,互相之间衔接不紧密,造成效率低,而且容易出差错。
  • 工件太分散,难以管理:
  • 整个集成测试过程涉及多种工作输入、工具和交付物,包括:程序代码、测试用例、测试脚本、测试报告、测试工具。这些工件分散在各个地方,缺乏集中的管理,造成找不到、可能用错。
  • 缺乏统一的质量视图:
  • 各个环节都有自己的测试工具,这些工具输出各自的测试报告,缺乏统一质量视图,对质量难以跟踪。
  • 为了解决嵌入式软件集成测试过程中的质量和效率问题,我们全面的分析了工作中相关的活动、工具、数据,研发了各种问题的针对性解决办法, 推出了嵌入式软件集成测试平台integrator。
    嵌入式软件集成测试平台integrator有什么
    Integrator包括如下内容:
    1) 集成测试项目管理和复用。
    2) 集成测试过程建模为工作流,用户可以配置各个活动的时序参数,方便执行和复用。
    3) 活动自动执行与监控。
    4) 嵌入式软件集成测试工具链:代码检查、单元测试、集成测试、系统测试。
    5) 为各种工具提供统一的适配接口,工具接入插件化、可扩展。
    6) 对各种测试报告集中管理,并可以根据需要合成质量报告。
    7) 集中管理集成测试的各种资源:源代码、测试用例、测试脚本、测试报告、测试工具。
    Integrator包括如下内容:
    1) 集成测试项目管理和复用。
    2) 集成测试过程建模为工作流,用户可以配置各个活动的时序参数,方便执行和复用。
    3) 活动自动执行与监控。
    4) 嵌入式软件集成测试工具链:代码检查、单元测试、集成测试、系统测试。
    5) 为各种工具提供统一的适配接口,工具接入插件化、可扩展。
    6) 对各种测试报告集中管理,并可以根据需要合成质量报告。
    7) 集中管理集成测试的各种资源:源代码、测试用例、测试脚本、测试报告、测试工具。
    如下是integrator 的集成测试解决方案示意图:
    嵌入式软件持续集成测试工具链
    嵌入式软件集成测试因为涉及到多种测试工作:代码检查、代码比对、软件编译、单元测试、集成测试、虚拟运行环境构建、系统测试。而这些工作在嵌入式软件开发过程中很少有一个完整的工具环境,这就需要首先构建一个完整的嵌入式软件集成测试工具链。为此,基于嵌入式软件开发的经验,并通过面向开发和测试团队的调研,收集了常用的嵌入式软件集成测试各个环节的工具,组织成完整的持续集成工具链,如下列表:
    序号 工作 代表工具 用途
    1 软件版本控制 SVN插件/Git
    StarTeam
    管理源代码的仓库。
    2 代码差异分析 Beyond Compare
    Diff Merge
    对比代码不同版本的差异。
    3 代码规则检查 QAC
    CppCheck
    对代码的各种规则进行检查。
    4 代码质量度量 Testbed
    NCSS
    度量代码的复杂度
    5 单元测试 C++Test
    对软件类进行单元测试。
    6 代码编译构建 Workbench
    Visual Studio
    编译源代码为目标程序
    7 集成测试 Tessy
    Tessy 进行各个组件的集成测试。
    8 虚拟运行环境 Simics插件
    构建软件运行容器,支持环境模拟和运行调度。
    9 部署
    目标文件下载工具
    目标文件下载、运行。
    10 测试覆盖率分析
    DT10
    基于动态运行测试分析代码的测试覆盖率。
    部署方案
    如下是嵌入式软件集成测试部署方案,主要是建立集成测试的工作环境、工具和平台,支持集成测试的具体工作。
    各个节点的功能描述如下:
    节点 功能
    集成测试平台 可以定制集成测试流程,
    调度集成测试的执行
    统计并浏览集成测试质量报告
    测试工具 可以设计集成测试用例
    执行集成测试
    定制集成测试数据
    仿真测试虚拟设备 提供虚拟的设备运行环境
    运行设备控制软件
    通过接口对集成测试工具提供响应。
    实物测试设备 提供真实的设备运行环境
    运行设备控制软件
    通过接口对集成测试工具提供响应。
    使用场景
    嵌入式软件持续集成测试平台的使用场景如下:
    管理员配置持续集成工作流 :
    1. 建立项目
    2. 为项目创建持续集成工作流程
    3. 为流程添加job,为job配置插件
    4. 定制质量报告模板

    工程师执行持续集成工作流:
    1. 选择项目
    2. 启动工作流
    3. 系统执行job,调用插件工作,生成质量数据,
    4. 整个工作流的所有job执行完后,系统采集质量数据,生成质量报告;
    5. 工程师如果对代码进行了修改,需要二次持续集成,则只需要命令重新执行工作流,则平台会自动地调度执行每个工具,对报告结果进行收集,大大提高了效率。

    为了方便后续的持续集成测试项目复用,可以把当前的工作流或者一个job作为可复用组件,提炼到可复用组件库里。在后续的项目中,可以复用的组件库中的工作流或者job,大大提高质量和效率。
    下面是嵌入式软件集成测试平台 integrator的运行界面截图。
    运行前配置的集成测试工作流界面:
    启动工作流,依次执行各个job,调用集成测试服务器上的各个工具,执行集成测试整个流程,执行进度跟踪界面如下所示:
    说明:绿色代表执行成功,红色代表失败,蓝色代表当前正在进行的job。
    执行后各个测试工具执行的输出显示在运行状态属性框。
    在项目tree的报告节点,用户可以看到生成的质量报告,用户选择一个质量报告,查看,则列出该质量报告:
    用户可以查看有多个测试报告合并而成的质量报告。操作方法如下:
    用户可以选择【合并…】,在弹出的表单选择要合并的源文件和要输出的目标文件,然后点击合并,则合并一个整体的报告。
    则合并生成一个整体的质量报告:
    11516 次浏览  37 次