上位机图像处理和嵌入式模块部署(树莓派4b进行自动化测试)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】

        硬件、软件功能开发ok只是产品开发的第一步。怎么做到自动化测试、保证产品质量才是关键。很多时候,我们给客户提供了功能,这只是相当于一只脚踏入了行业的门槛而已。产品是不是稳定、性能够不够好,才是提高产品竞争力最重要的环节。

        当然,一个产品的测试很多,有软件测试、硬件测试、结构测试和系统测试。大部分测试都是黑盒测试,即测试人员不需要对功能的实现进行过多的理解和分析。这有成本的考量,也不失为一种方法。但是对于开发人员来说,他们自己的测试应该更加充分、更加完善一点。今天,我们就如何做好自动化软件测试简单讨论下。

1、静态代码检查

        静态代码检查是软件测试很重要的环节。目前这方面的工具很多,开源的有splint,商业软件有pc-lint。对于一些大公司或者是有特殊安全要求的行业来说,静态代码检查是非常重要的。它对代码的检查,比gcc、g++里面的-Werror选项还要高。

2、单元测试

        单元测试,就是利用编写的测试代码对功能代码进行测试。一开始的作用可能并没有那么明显,甚至看起来觉得有点浪费时间。可是等到测试用例积累到一定程度的时候,单元测试就会发挥它真正的威力了。我们都知道,软件fix bug,一般都是fix几个问题之后,往往会带来1-2个新问题,这是规律。而单元测试可以帮助我们降低相关问题的风险,至少出不会触发明显的bug问题。

3、功能测试

        基本的功能测试还是非常有必要的。这里的功能测试最好就是无界面的测试,这样比较好做成自动化脚本的形式。以树莓派4b+opencv为例,我们就可以利用python+xmlrpc的形式对开发板子上面的功能进行测试。相关的测试可以是用camera采集图片,也可以直接拿已有的图片进行测试。因为中间不会涉及到界面的部分,所以用脚本测试就够了。

4、python+autogui测试

        除了功能测试之外,还有一部分界面也需要进行测试的。这部分测试有上位机的测试,也有网页的测试。建议大家,还是用python+autogui的方法进行测试。python自不必多少,关键是如何使用autogui,这里面主要就是用autogui模拟鼠标和键盘的动作。有了这些动作之后,结合xmlrpc就可以实现相关的界面+功能测试了。

5、压力测试

        压力测试是检测软件鲁棒性非常好的一个办法。有些问题如果短时间没有办法通过脚本看出来的话,那么压力测试就可以帮助我们确认,比如系统长时间运行,确认是不是有问题。再比如说,内存会不会越界、程序并发有没有问题、内存会不会泄漏,只有压力足够大、时间足够长,有些问题才会很快地暴露出来。

6、性能分析和测试

        基础功能和压力测试都没有问题之后,下面就需要对一些关键的性能进行分析和优化了。优化之前,一般需要自己分析出软件程序的瓶颈点。比如哪部分花的时间最多,哪个流程花的时间最多,甚至是哪个函数花的时间最多。优化的顺序也应该是自上而下的,首先对流程进行优化,接着是模块,最后才是驱动、函数和汇编级别的优化。目前的经验表明,越是上面流程的优化,效果越明显;越是底层的优化,花的时间越长,不过可移植性会变差。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/5346.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Leetcode-17.04. 消失的数字

面试题 17.04. 消失的数字 - 力扣(LeetCode)https://leetcode.cn/problems/missing-number-lcci/ 目录 面试题 17.04. 消失的数字 - 力扣(LeetCode) 题目 解题(注释) 第一种方法 第二种方法 第三种方法 题目 数组nums包含…

73、栈-柱状图中最大的矩形

思路: 矩形面积:宽度*高度 高度如何确定呢?就是在宽度中最矮的元素。如何确定宽度,就是要确定左右边界。 当我们在处理直方图最大矩形面积问题时,遇到一个比栈顶柱子矮的新柱子时开始计算面积的原因关键在于如何确定…

医院手术室麻醉信息管理系统源码 自动生成麻醉的各种医疗文书(手术风险评估表、手术安全核查表)

目录 手术风险评估表 一、患者基本信息 二、既往病史 三、手术相关信息 四、风险评估因素 五、风险评估结果 手术安全核查表 一、患者身份与手术信息核对 二、术前准备核查 三、手术团队与职责确认 四、手术物品与设备核查 五、术中关键步骤核查 六、术后核查 七…

远程桌面的端口配置与优化

在现代企业环境中,远程桌面连接已成为日常工作中不可或缺的一部分。然而,随着网络攻击的增加,确保远程桌面连接的安全性变得尤为重要。其中一个关键的安全因素是端口配置。 一、远程桌面默认端口 远程桌面协议(RDP)默…

亚马逊关键字搜索商品列表API接口:探索海量商品的利器

亚马逊关键字搜索商品列表API接口允许开发者通过输入关键字或特定参数,在亚马逊平台上进行商品搜索,并返回符合搜索条件的商品列表信息。这些信息包括商品的标题、图片、价格、评价等,为商家、开发者以及市场分析师提供了丰富的商品数据支持。…

docker里部署SpringBoot项目,访问不到扬声器,如何解决??

🏆本文收录于「Bug调优」专栏,主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&…

# 从浅入深 学习 SpringCloud 微服务架构(七)Hystrix(1)

从浅入深 学习 SpringCloud 微服务架构(七)Hystrix(1) 一、Hystrix:基于 RestTemplate 的熔断配置 1、Hystrix 介绍: 1)Hystrix 是由 Netflix 开源的一个延迟和容错库, 用于隔离访…

《21天学通C++》(第十二章)运算符类型与运算符重载

1.为什么要重载运算符&#xff1f; 通过重载运算符&#xff0c;可以将复杂的操作封装成简单的运算符形式&#xff0c;简化代码&#xff0c;提高可读性下面举一个简单的例子 计算两个点的坐标之和。 1.不重载运算符 #include <iostream> using namespace std; class P…

GCB | 陆地生态系统C:N:P化学计量对降水变化的响应

西北农林科技大学水保学院上官周平研究员团队在陆地生态系统C:N:P化学计量对降水变化的响应方面取得新进展&#xff0c;并以“C:N:P stoichiometry of plants, soils, and microorganisms: Response to altered precipitation”为题发表在国际生态环境领域著名期刊Global Chang…

AI发展势头强劲,或许会催生这些职业!

AI&#xff08;人工智能&#xff09;的发展正在并将继续催生多种新的职业&#xff0c;这些职业通常与AI的设计、开发、测试、部署、监管、维护以及与其互动和应用相关。 按照现在AI发展的趋势来看&#xff0c;可预测的一些新兴职业大概有下面这些&#xff1a; 当然以上只是一些…

中职数字化校园网络建设

中职&#xff08;职校&#xff09;数字化校园的校园网建设立足于职业教育、职业学校的特点&#xff0c;充分注意到信息技术的飞速发展、通信成本的迅速降低的特点。在规划和建设校园网时&#xff0c;遵循以下原则&#xff1a; 采用通用和成熟的技术&#xff1a;采用通用的、成熟…

【国产NI替代】NI-9235 10 kS/s/ch,120 Ω四分之一桥应变计,8通道C系列应变/桥输入模块

10 kS/s/ch&#xff0c;120 Ω四分之一桥应变计&#xff0c;8通道C系列应变/桥输入模块 NI‑9235可同步测量所有通道的动态应变&#xff0c;从而实现了高速同步测量。 该功能对于需要在特定时刻对多个通道进行比较的应用&#xff08;例如冲击测试&#xff09;非常重要。\n\nNI…

算法入门ABC

前言 初学算法时真的觉得这东西晦涩难懂&#xff0c;貌似毫无用处&#xff01;后来的后来&#xff0c;终于渐渐明白搞懂算法背后的核心思想&#xff0c;能让你写出更加优雅的代码。就像一首歌唱的那样&#xff1a;后来&#xff0c;我总算学会了如何去爱&#xff0c;可惜你早已远…

【漏洞复现】若依druid 未授权访问漏洞

0x01 产品简介 若依&#xff08;Ruoyi&#xff09;框架是一款基于Spring Boot、Spring Cloud、OAuth2与JWT鉴权等核心技术的快速开发平台。它支持多种安全框架和持久化框架&#xff0c;并采用前后端分离的模式进行开发&#xff0c;具备高度的灵活性和可扩展性。若依框架提供了…

C语言指针和数组的一些笔试题

文章目录 前言一、一维数组二、字符数组-1三、字符数组-2总结 前言 C语言指针和数组的一些笔试题 一、一维数组 #include <stdio.h> int main() {int a[] { 1,2,3,4 };printf("%d\n", sizeof(a));printf("%d\n", sizeof(a 0));printf("%d\n…

经典网络解读——Efficientnet

论文&#xff1a;EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks&#xff08;2019.5&#xff09; 作者&#xff1a;Mingxing Tan, Quoc V. Le 链接&#xff1a;https://arxiv.org/abs/1905.11946 代码&#xff1a;https://github.com/tensorflow/t…

【笔试训练】day15

1.平方数 水题直接看代码 代码&#xff1a; #define _CRT_SECURE_NO_WARNINGS 1 #include <iostream> #include<math.h> #include<algorithm> using namespace std; typedef long long ll; int main() {ll x;cin >> x;ll a sqrt(x);if (abs(a * a -…

git 配置相关

问题一&#xff1a;ssh-keygen -t ed25519 -C "Gitee SSH Key" 这个命令中的 ed25519 字符是什么意思&#xff1f; ssh-keygen 是一个用于生成SSH密钥的工具&#xff0c;SSH&#xff08;Secure Shell&#xff09;是一种网络协议&#xff0c;用于加密方式远程登录和其…

2024抖音AI图文带货班:在这个赛道上 乘风破浪 拿到好效果

课程目录 1-1.1 AI图文学习指南 1.mp4 2-1.2 图文带货的新机会 1.mp4 3-1.3 2024年优质图文新标准 1.mp4 4-1.4 图文如何避免违规 1.mp4 5-1.5 优质图文模板解析 1.mp4 6-2.1 老号重启 快速破局 1.mp4 7-2.2 新号起号 不走弯路 1.mp4 8-2.3 找准对标 弯道超车 1.mp4 9…

JMeter 请求头信息配置详解

在进行 Web 测试和 API 测试时&#xff0c;正确配置 HTTP 请求头是关键步骤之一&#xff0c;尤其当使用诸如 JMeter 这样的强大工具时。在本文中&#xff0c;我将详细介绍如何在 JMeter 中有效地配置和管理HTTP请求头。 在 JMeter 中添加和配置 HTTP 请求头 步骤 1: 打开 HTT…