0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

VectorCAST|Docker场景下的代码白盒测试实施

北汇信息POLELINK 2023-10-10 10:04 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

作者 |吃井不忘挖水人

小编 | 不吃猪头肉
Docker是一个开源的应用容器引擎,它可以实现让开发者打包他们的应用、依赖以及配置到一个可移植的镜像中,并且可以发布到任何可运行Docker的Linux或Windows操作系统的机器上,并可以无需再次进行配置便完美执行。Docker容器是使用的沙箱机制,任何容器之间的创建、运行和关闭不会相互影响,相互之间也不会有任何接口。容器和虚拟机虽然都使用虚拟化技术,但容器并不是模拟一个完整的操作系统,而是在宿主机操作系统上应用虚拟化技术,可实现软件应用的秒级启动和响应,相比而言,虚拟机冗余步骤多、启动太慢、占用内存硬盘资源,过于笨重。
在敏捷开发模式越发流行的现在,Docker技术的使用也越发普遍,开发过程中对迭代版本中的代码的测试成本也逐渐增长,如何方便快捷地对代码进行测试也随之成为了一个越来越值得关注的问题。
在众多种类的代码动态测试工具中,北汇信息所采用的是Vector旗下的代码动态测试工具—VectorCAST/C++。VectorCAST/C++工具是德国Vector公司的一款白盒测试工具,主要用于实现代码的单元测试和集成测试。工具最大的特点以及优势就在于经受了多个大型量产项目的实践,证明了工具对C++高阶特性、Linux系统和CI平台的强力支持。
那下面为大家介绍VectorCAST这款强力的动态代码测试工具在Docker场景中的使用。

5c4b5888-6711-11ee-9788-92fbcf53809c.pngVectorCAST使用
基于Docker技术进行开发,实际情景一般是代码与编译环境同时部署在镜像中,或是代码和编译环境分开部署在本地服务器和镜像内,那么这也导致在使用工具时可能会采用不同的方式。
挂载工具方式
在使用多个Docker镜像进行代码版本迭代或控制的开发场景下,不需要将VectorCAST工具先放置到镜像中,而是使用挂载的形式,将工具在启动容器时挂载到对应容器中,以实现在容器中对工具的使用,此方式大大减少了工具重复的安装过程,并且实现同一个工具对不同镜像的复用。下面简要说明使用的流程。
i.容器的启动5c55c098-6711-11ee-9788-92fbcf53809c.jpg

参数解析

1、docker:Docker的二进制执行文件。2、run:与前面的docker组合来运行一个容器。3、-v:设定共享目录,为了将安装包保存到容器中,需要指定目录。D:\Docker\Data指本地目录,可以自定义;/dev/shm是指容器中的目录。将需要复制到容器中的文件放置到D:\Docker\Data中,在容器中就可以进入/dev/shm来访问这些文件。4、-i: 以交互模式运行容器5、-t: 为容器重新分配一个伪输入终端 6、-e:设置环境变量在启动容器时将工具所在的目录通过-v选项挂载到容器内。
ii.修改工具启动文件
5c641d00-6711-11ee-9788-92fbcf53809c.png工具在容器内打开后使用的是容器内部的文件树,所以需要将启动文件中对应的路径进行修改。
iii.工具启动与使用
5c740ec2-6711-11ee-9788-92fbcf53809c.png
工具成功启动后可以在工具顶端会标识出正在运行工具的容器id号。
工具镜像方式
若是需要进行经常性的工具迁移使用,使用工具挂载方式会显得不便捷,那可以选择另一种方式在容器中使用工具,即将工具放置在镜像内,实现快捷的工具迁移。以下对此方式进行介绍。
i.编写Dockerfile
5c7f38ba-6711-11ee-9788-92fbcf53809c.png使用dockerfile在制作镜像时将工具目录同时拷贝进去而形成一个新的镜像。
ii.构建镜像
5c91d236-6711-11ee-9788-92fbcf53809c.png
iii.启动容器
5c9ff9ec-6711-11ee-9788-92fbcf53809c.jpg使用指令启动刚刚新制作的镜像,而镜像里本身就已经包含着工具,不需额外对工具进行挂载。
iv.修改工具启动文件
5ca87a22-6711-11ee-9788-92fbcf53809c.png
工具在容器内打开后使用的是容器内部的文件树,所以需要将启动文件中对应的路径进行修改。修改后可启动工具。
v.工具使用
5cb9284a-6711-11ee-9788-92fbcf53809c.png工具成功启动后同样可以在工具顶端标识出正在运行工具的容器id号。

5cd1d624-6711-11ee-9788-92fbcf53809c.png总结
在敏捷开发模式越发流行的现在,Docker技术的使用也随之越发普遍,使用Docker会给开发带来一些优势,如更高效的系统资源利用、更快速的应用启动、提供统一的运行环境、利于实现持续集成与部署、更易于移植以及更便捷的维护和拓展。但对开发过程中对迭代版本中的代码的测试成本也逐渐增长,方便快捷地对代码进行尽可能早的测试也成为了越来越多用户所追求的。
VectorCAST作为一款强力的C/C++代码测试工具,不仅可以与Docker技术进行结合,并且可以适配实际的交叉编译链,对代码基于最真实编译环境进行完备的测试检验,大大减少因代码测试中测试工具与环境分割或适配带来的花费,提高测试效率和降低测试难度。
如果您想了解更多有关信息请联系北汇信息,北汇信息作为Vector公司的中国合作伙伴,拥有专业的VectorCAST测试服务团队,可为您提供周全完整的研发、测试解决方案及优质的技术支持服务。注:文中部分图片来源于Vector。


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 测试
    +关注

    关注

    9

    文章

    6491

    浏览量

    131765
  • 容器
    +关注

    关注

    0

    文章

    541

    浏览量

    23050
  • 代码
    +关注

    关注

    30

    文章

    4981

    浏览量

    74505
  • Docker
    +关注

    关注

    0

    文章

    540

    浏览量

    14449
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    生产环境中使用Docker的常见问题分析

    Docker 已经是现代运维和开发的基础设施,但在生产环境中使用 Docker,由于环境的复杂性和容器的特殊性,很多在物理机或虚拟机上不会出的问题在容器环境会集中爆发。本篇从实际生产故障中提炼出 10 个最容易踩的坑,每个坑都
    的头像 发表于 05-14 10:28 300次阅读

    【文章转载】你不知道的Vector | VectorCAST/C++的AI辅助测试功能

    从2026版本开始,VectorCAST/C++推出首批AI辅助测试功能,旨在帮助开发团队解决单元测试过程中的两个核心难点:1.如何根据需求描述自动生成可验证逻辑功能的单元测试用例(R
    的头像 发表于 04-29 10:03 340次阅读
    【文章转载】你不知道的Vector | <b class='flag-5'>VectorCAST</b>/C++的AI辅助<b class='flag-5'>测试</b>功能

    使用VectorCAST/C++的AI辅助测试功能

    从2026版本开始,VectorCAST/C++推出首批AI辅助测试功能,旨在帮助开发团队解决单元测试过程中的两个核心难点:
    的头像 发表于 04-27 14:37 391次阅读

    VectorCAST/QA与Bazel集成配置方法

    VectorCAST/QA是VectorCAST产品族中用于统计系统测试过程中代码覆盖度的软件工具。
    的头像 发表于 03-11 17:00 618次阅读
    <b class='flag-5'>VectorCAST</b>/QA与Bazel集成配置方法

    还在手写C++测试用例? Parasoft级AI正在接管代码安全

    深度“内建” 。 今天,我们就来深扒一款被全球顶尖车企和军工企业悄悄当作“测试永动机”的工具—Parasoft C/C++test。它不是普通的测试插件,而是能深入代码盒内部,进行
    的头像 发表于 03-06 10:46 376次阅读
    还在手写C++<b class='flag-5'>测试</b>用例? Parasoft<b class='flag-5'>白</b><b class='flag-5'>盒</b>级AI正在接管<b class='flag-5'>代码</b>安全

    200W 功率 + 全色域适配,LED 场景 “色”“光” 全拿捏:FP7208 五路调光调色方案 “光色双控” 硬实力

    ,满足中高负载 LED 场景需求;控制通道:集成 RGBW(红 / 绿 / 蓝 / 暖)+ 冷共 5 路独立调光调色通道,每路均可单独调节亮度与开关;硬件配置:搭载大体积铜线圈电感(保障升压稳定性
    发表于 01-05 16:30

    如何高效构建与测试非结构化道路场景

    高保真虚拟数据集开源发布,兼容nuScenes,开箱即用!01引言随着智能驾驶仿真测试等技术的快速发展,行业评估体系已从单一的“测试里程数”向更全面的“场景覆盖度”及“边缘场景”检验演
    的头像 发表于 01-04 17:33 787次阅读
    如何高效构建与<b class='flag-5'>测试</b>非结构化道路<b class='flag-5'>场景</b>?

    汽车中央控制与线束的自动测试设备

    费思FTS6000线束检测设备汽车线束与中央控制测试系统覆盖客户测试需求,方案成熟。
    的头像 发表于 11-28 15:23 520次阅读
    汽车中央控制<b class='flag-5'>盒</b>与线束的自动<b class='flag-5'>测试</b>设备

    如何选择适合的智驾仿真工具进行场景生成和测试

    在自动驾驶技术日益发展的背景,选择合适的智驾仿真工具进行场景生成和测试显得尤为重要。该工具不仅需要支持高精度的场景重建,还需满足多种环境条件和传感器模型的兼容性。本文将深入探讨如何评
    的头像 发表于 11-25 10:32 530次阅读
    如何选择适合的智驾仿真工具进行<b class='flag-5'>场景</b>生成和<b class='flag-5'>测试</b>?

    嵌入式软件测试与专业测试工具的必要性深度解析

    场景中,单比特错误可能导致刹车失灵或呼吸机故障。嵌入式系统一旦部署后修复成本极高,专业测试工具是防止致命缺陷流入终端的核心防线。某欧洲Tier 1供应商曾因仿真环境测试遗漏导致量产
    发表于 09-28 17:42

    创龙 瑞芯微 RK3562 国产 2GHz 四核A53 工业开发板—Docker容器部署方法说明

    不会有任何接口。使用Docker,可像管理应用程序一样管理基础结构。通过利用Docker的快速发布、测试和部署代码的方法,可显著减少产品开发时间。
    的头像 发表于 07-03 11:00 710次阅读
    创龙 瑞芯微 RK3562 国产 2GHz 四核A53 工业开发板—<b class='flag-5'>Docker</b>容器部署方法说明

    docker无法启用怎么解决?

    mengxing@mengxing-virtual-machine:/etc/docker$ sudo systemctl daemon-reload
    发表于 06-23 07:17

    电线一根黑线一根线代表什么线

    在日常生活中,我们经常会遇到各种颜色的电线,其中黑线和线尤为常见。这两种颜色的电线在不同的场景下有着不同的含义和用途,理解它们的区别对于安全用电至关重要。本文将详细探讨黑线和线在不同场景
    的头像 发表于 06-12 17:24 1.8w次阅读

    Docker Volume管理命令大全

    Docker Volume管理命令大全
    的头像 发表于 05-28 17:14 1184次阅读

    如何使用Docker部署大模型

    随着深度学习和大模型的快速发展,如何高效地部署这些模型成为了一个重要的挑战。Docker 作为一种轻量级的容器化技术,能够将模型及其依赖环境打包成一个可移植的容器,极大地简化了部署流程。本文将详细介绍如何使用 Docker 部署大模型,并给出具体的步骤和示例。
    的头像 发表于 05-24 16:39 1421次阅读