|
|
嵌入式软件持续集成平台(integrator)
| |
|
工作 |
工具 |
功能描述 |
CI引擎 |
Integrator |
完成CI的资源管理调度 |
代码仓库 |
GitHub |
版本管理 Pull request合并流程 |
代码检查 |
SonarQube |
代码静态检查 |
自动化构建 |
Maven |
Java编译脚本 |
单元测试 |
XUnit |
编写单元测试的各种框架
|
自动化部署 |
Ansible |
NA,流行脚本语言,本演示中未应用 |
功能测试 |
Selenium |
功能测试框架 |
性能测试 |
Jmetersaltstack |
接口与性能测试框架 |
|
|
|
解决的问题
|
现在嵌入式软件开发过程涉及到各种工作,这些工作采用了各种专业工具,各个角色的工作衔接不紧密,进而给质量留下了隐患。
|
现在研发过程典型的流程组织如下图示:
|
|
|
|
为了解决软件开发过程中的质量和效率问题,应该全面的分析工作中的过程、工具、数据,充分分析各个环节的问题,然后建立可靠的持续集成工作平台。
|
如下图所示,持续集成平台的建设目标包括如下几个方面:
|
1. 持续集成工作流自动化、可定制化。 |
2. 工具接入插件化、可扩展。 |
3. 数据报告可以集成化、根据需要定制。 |
4.工程相关的各种资料和数据可以集中管理。 |
5. 为持续集成项目建立目录管理。 |
嵌入式持续集成的特点
|
嵌入式软件开发所用的开发语言、开发工具和仿真测试环境,完全不同于通用系统的开发。目前广泛应用于通用软件研发的持续集成平台jenkins难以 |
适应嵌入式开发的需要。为此,我们专门研制了嵌入式软件开发持续集成平台,能够支持如下的嵌入式软建开发完整的持续集成工具链,而且支持特定 |
的虚拟机运行容器,目前支持的工具如下列表: |
|
|
序号 |
业务名称 |
插件名称 |
插件描述 |
1 |
软件版本控制 |
SVN插件/Git |
该插件调用SVN/Git工具,实现指定版本代码的获取。 |
StarTeam插件 |
该插件调用StarTeam工具,实现指定版本代码的获取。 |
2 |
代码差异分析 |
Beyond Compare插件 |
该插件调用Beyond Compare工具,实现对比两版代码的差异。 |
3 |
代码规则检查 |
QAC插件 |
该插件调用QAC工具,实现指定版本代码的代码检查规则 |
CppCheck插件 |
该插件调用CppCheck工具,实现指定版本代码的代码检查规则。 |
4 |
代码质量度量 |
Testbed插件 |
该插件调用Testbed工具,实现指定版本代码的代码质量度量。 |
NCSS插件 |
该插件调用NCSS工具,实现指定版本代码的代码质量度量。 |
5 |
单元测试 |
C++Test插件 |
该插件调用C++Test工具,实现指定版代码的单元测试。 |
6 |
代码编译构建 |
Workbench插件 |
该插件调用Workbench工具,实现指定版本代码的编译。 |
Visual Studio插件 |
该插件调用Visual Studio工具,实现指定版本代码的编译。 |
7 |
集成测试 |
Tessy |
该插件调用Tessy工具,进行单元与集成测试。 |
8 |
虚拟运行环境构建 |
虚拟路由插件 |
该插件调用虚拟路由工具,实现虚拟运行环境的总线通信通道配置 |
虚拟时钟插件 |
该插件调用虚拟时钟工具,实现虚拟运行环境的 |
Simics插件 |
该插件调用Simics工具,实现虚拟运行环境的虚拟机(Simics)节点名及IP地址 |
9 |
目标文件下载运行 |
目标文件下载插件 |
该插件调用目标文件下载工具,实现指定版本代码的目标文件下载至目标机。 |
10 |
嵌入式系统动态测试框架 |
啄木鸟插件 |
该插件调用啄木鸟工具,实现指定版本代码的动态测试。 |
11 |
测试覆盖率分析 |
DT10插件 |
该插件调用DT10工具,实现指定版本代码的测试覆盖率分析。 |
|
|
应用场景分析 |
如下是持续集成平台支持的业务流程: |
|
|
相对应的文本描述如下: |
|
业务流程名称 |
持续集成工作流程
|
流程描述 |
管理员配置持续集成工作流 :
1. 建立项目
2. 为项目创建持续集成工作流程
3. 为流程添加job,为job配置插件
4. 定制质量报告模板 工程师执行持续集成工作:
1. 选择项目
2. 启动工作流
3. 系统执行job,调用插件工作,生成质量数据,
4.整个工作流的所有job执行完后,系统采集质量数据,生成质量报告。 |
相关的数据 |
项目信息,工作流信息,job信息,插件信息,质量报告模板 |
|
|
功能分析 |
通过用例模型分析用户的使用场景,如下是用户视角的功能用例模型图: |
|
|
|
嵌入式软件持续集成平台对用户的用例提供完整的功能支持。 |
典型界面 |
如下是持续集成工作流自动化执行界面 |
用户点击【执行】,则启动工作流执行,绿色代表执行成功,红色代表失败,蓝色代表当前正在进行的job。 |
|
|
|
执行后各个工具执行的输出显示在运行状态属性框。 |
在报告列表商的【质量报告】节点是汇总各种工具插件报告为整体的质量报告,用户点击一个质量报告,可以查看该质量报告详细信息。 |
|
|
|
则显示该报告到一个独立的页面 |
|
|
|
|