type
date
slug
category
icon
password
一 、简介二、本地批处理三、自动化编译3.1 MDK命令行接口编译3.2 MDK生成编译脚本3.3 交叉编译链 arm-none-eabi 编译3.4 Cmake + VScode四、静态测试4.1 静态分析工具 - Cppcheck4.1.1 与其他静态分析工具对比4.1.2 安装和使用4.1.3 支持的代码规范小节引用五、动态测试六、部署和监控引用
一 、简介
测试平台工具
- 付费:PingCode - 测试管理解决方案(25人以下免费)
API 接口工具
Gitee 测试管理主要功能
1. 管理测试用例
- 测试用例可复用减少测试人员的重复工作量
- 灵活模块分类,轻松组建测试用例库
- 一键导入本地测试用例,轻松维护用例库


2. 评审测试用例
评审测试用例,实时查看当前用例的评审状态

3. 规划测试计划
- 告别传统低效协作模式数字化协同测试计划
- 规划测试计划,确保全面的测试覆盖和及时交付
- 实时跟踪进度并识别阻碍,确保测试工作高效率进行

4. 全面的缺陷报告指标
- 可视化测试报告,帮助团队实现高质量交付
- 覆盖多种度量指标,帮助软件质量持续提升

5. 缺陷和测试双向关联
- 一键关联缺陷,有效预防延期风险
- 保证缺陷及时解决,防止遗漏

6. 用例版本管理
- 跟踪测试用例的更改,有效确保用例的准确性和完整性
- 版本备份功能,版本随意切换

7. 脑图视图
- 可视化用例结构,用例编写更简单
- 可视化测试过程,全面概览测试流程
- 快速确定需要改进的用例步骤、优先级、备注等,有效地管理测试过程

评价
今天我们聊聊软件测试。
我是觉着不管是系统工程师还是软件工程师,实际上很多时候我们干的都是测试的活。
真正的澄清需求啊,开发实现呀,有时候并没有那么多的工作量。
比如需求还没讨论清楚,有时候会寄希望于靠后面,边实现边测试来弥补,或靠测试来完善需求,这是不合适的。
不管怎么样,我想我们应该有一个共识,那就是测试是我们把好质量关的最后一道门槛。
等到你的产品上市了,客户开始上产线了,或者说是开始装车了。
这时候发现的问题,这个阶段发生的问题,很多时候会成为批量的问题。
大家即便不去了解ISTQB,也知道越往后解决问题,时间和成本就越高。
这个时候,你作为供应商,或者是整车厂,或者是项目经理。
可能会遇到想发货又不敢发货,想挣钱又怕担责任的尴尬处镜。
会担心这些问题在项目上,在部门,甚至在公司来看都是否能够承受。
写8D报告已经很麻烦,就怕到后面要天南地北的去给客户解决问题,刷件,甚至要给客户赔钱,甚至要导致召回。
一个重要的点,就是测试如果在开发中,在开发前期发现越多的问题,对我们的项目就越有利。
不要把我们啥活儿,都挂上开发的名义,实际上,很多活比如我们做个MiL验证,做个功能debug,就是在测试。
当然了,大公司和小公司,在这个测试范围上,包括态度,流程,工具等等也是不一样的。
有的小公司,因为人力和成本原因,为了生存、为了赶进度、赶需求等等,没有办法。
很多时候做的比较潦草,或者干脆不做。或者是非常依赖研发人员的项目经验。
小公司一些系统级的黑盒测试能够做好,就已经谢天谢地了。这个有时候也是没有办法。
话说回来,大公司就做的好吗?也不一定。
但是大公司也有小部门,也有它优势弱势的产品,也有火急火燎的项目。
条件是有了,但是大公司里面敷衍工作任务的工程师也有很多,比如用QAC,或者VectorCAST做个代码测试,很多时候都变成了跑流程。
总之,不管我们是什么角色,一旦我们发现我们是因为问题在测试。那么我们要想一想,测试该不该在你这里发生?能不能够避免?你是不是本来能够尽早做这件事?
DevOps的核心原则
- 文化变革:DevOps不仅仅是工具和技术,更是一种文化和思维方式。它强调团队之间的协作、沟通与共享责任。
- 自动化:自动化是DevOps的核心,旨在减少手动操作,提高工作效率并减少错误。
- 持续反馈:通过持续集成、持续部署与监控,确保在软件生命周期的任何阶段都能获得及时的反馈。
- 快速响应:能够快速响应市场变化和用户需求,加速软件产品的上市时间。
二、本地批处理
嵌入式开发常用脚本程序三、自动化编译
ARM Virtual Hardware(AVH) Jenkins + Gitlab/Gitee3.1 MDK命令行接口编译
见《Command Line》章节(当前楼主使用的)
3.2 MDK生成编译脚本
OUTPUT启用"Create batch file"即可。批处理一样的,生成一次之后,就不需要用户再打开MDK了,批处理文件里面生成了各种编译链接信息,头文件路径信息等。需要运行,点击这个批处理文件就行。

Create Batch File Generates a batch file (*.BAT) with commands that reproduce the "Rebuild" process. "Rebuild" the target to create the file. The "Build" process does not alter nor creates the file. However, with this flag set, the "Build" process compiles and links all files, just like a "Rebuild". The batch file name is inherited from the current target name. The file is saved in the root directory of the project. Use the batch file to "Rebuild" the project without using the µVision IDE.
3.3 交叉编译链 arm-none-eabi 编译
Makefile 编译 STM32 可执行文件
Jenkins做持续集成,只要你的工程能通过脚本进行触发构建可以整合进来。如果是arm架构,可以用gcc-arm-none 编译的。
交叉编译链 arm-none-eabi + Makefile3.4 Cmake + VScode
jenkins auto test embeded c code
四、静态测试
4.1 静态分析工具 - Cppcheck
Cppcheck 是一款 C/C++ 代码静态析工具,相较于其他静态代码工具,专注于bugs 和 未定义行为的检测,并且减少误检测发生。
Cppcheck is a static analysis tool for C/C++ code. It provides unique code analysis to detect bugs and focuses on detecting undefined behaviour and dangerous coding constructs. The goal is to have very few false positives. Cppcheck is designed to be able to analyze your C/C++ code even if it has non-standard syntax (common in embedded projects).
支持特性:
- 支持检测的未定义行为包括如下:
- Dead pointers 死指针
- Division by zero 除零
- Integer overflows 整数溢出
- Invalid bit shift operands 无效的位移位操作
- Invalid conversions 无效的转换
- Invalid usage of STL STL无效使用
- Memory management 内存管理
- Null pointer dereferences 空指针解引用
- Out of bounds checking 越界检查
- Uninitialized variables 变量未初始化
- Writing const data 修改常量
- 命令行和图形接口
4.1.1 与其他静态分析工具对比
Cppcheck 使用流敏感性分析(flow sensitive analysis),其他静态分析工具使用路径敏感性分析(path sensitive analysis)。虽然理论上路径敏感性分析更具优势,但Cppcheck 可以检测其他工具无法检测到的问题(参考bug和未定义行为)。
总体来说,两种方法各有优劣,推荐综合使用各种工具。比如你在做文本格式检查(stylistic issues),或者你想在版本发布之前,尽可能暴露更多异常,可以尝试选择其他工具。
4.1.2 安装和使用
- 安装本体
平台 | 安装 |
Windows | |
Debian | sudo apt-get install cppcheck |
Fedora | sudo yum install cppcheck |
Mac | brew install cppcheck |
- 安装客户端和插件:cppcheck 集成到许多流行的开发工具中
- Buildbot - integrated
- CLion - Cppcheck plugin
- Code::Blocks - integrated
- CodeDX (software assurance tool) - integrated
- CodeLite - integrated
- CppDepend 5 - integrated
- Eclipse - Cppcheclipse
- gedit - gedit plugin
- github - Codacy and SoftaCheck
- Hudson - Cppcheck Plugin
- Jenkins - Cppcheck Plugin
- KDevelop - integrated since v5.1
- Mercurial (Linux) - pre-commit hook - Check for new errors on commit (requires interactive terminal)
- QtCreator - Qt Project Tool (qpt)
- Tortoise SVN - Adding a pre-commit hook script
- Visual Studio - Visual Studio plugin
- VScode - VScode plugin

- 添加测试代码

4.1.3 支持的代码规范
Coding standard | Open Source | Premium |
Misra C 2012 - original rules | Yes | Yes |
Misra C 2012 - amendment #1 | Yes | Yes |
Misra C 2012 - amendment #2 | Yes | Yes |
Misra C 2012 - amendment #3 | ㅤ | Yes |
Misra C 2012 - amendment #4 | ㅤ | Yes |
Misra C 2012 - Compliance report | ㅤ | Yes |
Misra C 2012 - Rule texts | User provided | Yes |
Misra C 2023 | ㅤ | Yes |
Misra C++ 2008 | ㅤ | Yes |
Misra C++ 2023 | ㅤ | Work in progress |
Cert C | ㅤ | Yes |
Cert C++ | ㅤ | Yes |
Autosar | ㅤ |
小节引用
- Online Demo - Cppcheck (sourceforge.io) (在线检测工具,最多只支持1024个字符,无法在线分析多文件,大项目等)
高质量持续集成:VectorCAST与Jenkins实战指南 - Polelink上海北汇信息的文章 - 知乎
https://zhuanlan.zhihu.com/p/659831665
五、动态测试
动态测试工具厂商对比



六、部署和监控
引用
- gitlab CI/CD 实现自动编译 Keil 和 IAR 工程_iar自动编译
gitlab-runner 安装在 Ubuntu 服务器里,executor 选择 virtualbox,在 Ubuntu 服务器安装 virtualbox,在 virtualbox 内安装 Win10,在 Win10 安装 Keil 和 IAR
- Author:felixfixit
- URL:http://www.felixmicrospace.top/article/mcu_devframe_automatation
- Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!