当前位置: 首页 > news >正文

LLM与动态符号执行生成测试用例的比较

LLM与动态符号执行生成测试用例的比较

在软件测试领域,生成有效的测试用例是确保软件质量和可靠性的关键步骤。近年来,大型语言模型(Large Language Models,LLM)和动态符号执行(Dynamic Symbolic Execution)技术在测试用例生成方面展现出巨大潜力。本文将详细探讨LLM和动态符号执行在测试用例生成中的应用,并对这两种方法进行全面的比较分析。

一、LLM在测试用例生成中的应用

大型语言模型(LLM)在自然语言处理领域取得了显著成就,并在代码生成、代码评审及单元测试等任务中得到了广泛应用。LLM利用深度学习技术,通过大规模数据集的训练,能够生成高质量的代码片段和测试用例。

  1. LLM生成测试用例的基本流程

    • 准备数据集:收集相关的软件功能描述、用户需求、历史bug等信息,用于训练LLM模型。
    • 构建LLM模型:利用深度学习框架(如TensorFlow、PyTorch等)构建LLM模型,并对模型进行训练。
    • 生成测试用例:根据训练好的LLM模型,输入相关的软件功能描述或用户需求,自动生成自然语言的测试用例。
    • 执行测试:将生成的测试用例交给测试人员执行,对软件进行测试。
    • 结果分析:对测试结果进行分析,评估软件的质量和稳定性。
  2. LLM生成测试用例的有效性

    论文《An Empirical Study of Using Large Language Models for Unit Test Generation》为软件测试领域的进展提供了重要的实证研究。该研究以三种生成模型(StarCoder、Codex和GPT-3.5-Turbo)为对象,分析它们在单元测试生成任务中的性能。研究采用了两个基准测试(HumanEva和Evosuite SF110),并通过对编译率、测试正确性以及覆盖率等方面进行评估,深入探讨了这些LLM在生成测试用例方面的有效性。

    • 编译率:在HumanEval数据集上,StarCoder的编译率高达70.0%,而其他模型只有不到一半是可编译的。在SF110数据集上,编译率普遍较低,最高的StarCoder仅有12.7%。通过启发式修复后,编译率平均提高了41%,Codex(2K)增幅最大。
    • 测试正确性:在HumanEval数据集方面,StarCoder表现最好,测试通过率为81.3%,而ChatGPT的“Somewhat Correct”指标高达92.3%。在SF110数据集方面,表现最好的同样是StarCoder,有51.9%的测试通过率。
    • 覆盖率:在HumanEval数据集方面,LLM的行覆盖率在67%87.7%,分支覆盖率在69.392.8%,但低于手动测试和Evosuite生成的覆盖率。在SF110数据集方面,LLM的覆盖率更低,均不到2%。
  3. LLM生成测试用例的优势与挑战

    • 优势:LLM可以自动生成大量的测试用例,覆盖更多的软件功能和场景,从而提高测试的全面性和准确性。
    • 挑战:尽管LLM能够生成一些对输入/输出有用的测试用例,但生成的测试覆盖率和可读性仍然无法完全满足人们的需求。此外,全面覆盖仍然是一个难以实现的目标。
二、动态符号执行在测试用例生成中的应用

动态符号执行是一种动态分析技术,它通过将程序输入值用符号值代替,系统探索程序的所有可执行路径,并自动化地生成测试用例。相比于黑盒测试,动态符号执行具有较高的代码覆盖率,并且测试准确性更高。

  1. 动态符号执行的基本原理

    动态符号执行技术是在传统符号执行技术基础上发展起来的。它通过将程序输入值用符号值代替,系统探索程序的所有可执行路径。在达到目标代码时,分析器可以得到相应的路径约束,然后通过约束求解器来得到可以触发目标代码的具体值。

  2. 动态符号执行在测试用例生成中的应用

    • 符号执行分析:使用符号值作为输入,探索程序的所有可执行路径,并收集路径约束。
    • 约束求解:通过约束求解器,得到可以触发目标代码的具体值。
    • 生成测试用例:根据路径约束和具体值,生成相应的测试用例。
  3. 动态符号执行的优势与挑战

    • 优势:动态符号执行技术能够实现测试用例的自动化生成,并在此基础上实现一些常见软件漏洞的主动式发掘。它具有较高的代码覆盖率,并且测试准确性更高。
    • 挑战:动态符号执行技术主要用于软件安全和软件漏洞挖掘方面的研究,对软件性能缺陷方面的研究较少。此外,动态符号执行过程中需要实际执行被测试程序,可能会受到程序复杂性和资源限制的影响。
三、LLM与动态符号执行的比较分析
  1. 生成测试用例的方式

    • LLM:通过大规模数据集的训练,LLM能够生成自然语言的测试用例。它依赖于模型的泛化能力和对语言的理解,能够生成多样化的测试用例。
    • 动态符号执行:通过符号执行和约束求解,动态符号执行能够系统地探索程序的所有可执行路径,并生成相应的测试用例。它依赖于程序的语义和路径约束,能够生成针对特定路径的测试用例。
  2. 测试用例的质量和覆盖率

    • LLM:虽然LLM能够生成大量的测试用例,但生成的测试覆盖率和可读性仍然无法完全满足人们的需求。LLM生成的测试用例可能包含一些无效或冗余的测试,需要进一步的筛选和优化。
    • 动态符号执行:动态符号执行能够生成具有较高覆盖率的测试用例,因为它能够系统地探索程序的所有可执行路径。然而,由于程序复杂性和资源限制的影响,动态符号执行可能无法覆盖所有路径,特别是对于大型和复杂的程序。
  3. 适用场景和局限性

    • LLM:LLM适用于生成多样化的测试用例,特别是在缺乏具体路径信息或程序复杂性较高的情况下。然而,LLM生成的测试用例可能无法完全满足特定路径的测试需求,需要与其他测试方法相结合。
    • 动态符号执行:动态符号执行适用于针对特定路径的测试,特别是在软件安全和漏洞挖掘方面。然而,由于程序复杂性和资源限制的影响,动态符号执行可能无法在所有情况下都有效。此外,动态符号执行需要实际执行被测试程序,可能会受到程序状态和环境的影响。
  4. 自动化程度和可扩展性

    • LLM:LLM具有较高的自动化程度,能够自动生成大量的测试用例。随着模型的不断优化和训练数据的增加,LLM的生成能力将进一步提升。
    • 动态符号执行:动态符号执行的自动化程度取决于路径约束的复杂性和求解器的性能。随着求解器技术的不断进步和程序分析方法的改进,动态符号执行的自动化程度和可扩展性将得到进一步提升。
  5. 安全性和隐私保护

    • LLM:LLM在生成测试用例时不会直接访问被测试程序的内部状态或数据,因此具有较高的安全性。然而,在训练LLM模型时,需要收集和处理大量的数据,可能会涉及隐私保护的问题。
    • 动态符号执行:动态符号执行需要实际执行被测试程序,可能会访问程序的内部状态和数据。因此,在安全性方面需要采取额外的措施来保护敏感信息和防止数据泄露。
四、结论与展望

LLM和动态符号执行在测试用例生成方面各有优势和挑战。LLM能够生成多样化的测试用例,具有较高的自动化程度;而动态符号执行能够系统地探索程序的所有可执行路径,具有较高的测试覆盖率和准确性。然而,两者都存在一些局限性,需要与其他测试方法相结合以提高测试效果。

未来,随着人工智能技术的不断发展,LLM和动态符号执行技术将在软件测试领域发挥更大的作用。一方面,可以通过优化LLM模型的结构和训练策略来提高测试用例的质量和覆盖率;另一方面,可以结合程序分析和静态测试方法来弥补动态符号执行的局限性。此外,还可以探索将LLM和动态符号执行技术相结合的新方法,以进一步提高测试用例的生成效率和准确性。

总之,LLM和动态符号执行技术为软件测试带来了新的机遇和挑战。通过不断的研究和实践,我们可以更好地利用这些技术来提高软件测试的效率和准确性,为软件开发过程中的质量保障提供有力支持。

相关文章:

LLM与动态符号执行生成测试用例的比较

LLM与动态符号执行生成测试用例的比较 在软件测试领域,生成有效的测试用例是确保软件质量和可靠性的关键步骤。近年来,大型语言模型(Large Language Models,LLM)和动态符号执行(Dynamic Symbolic Executio…...

torchvison.models中包含的哪些模型?

1.模型 Alexnet AlexNet 是一个具有 8 层的深度卷积神经网络,结构上比早期的卷积神经网络(如 LeNet)要深得多。它由 5 个卷积层(conv layers)和 3 个全连接层(fully connected layers)组成。Al…...

安装v2x,使用docker安装deepstream,安装v2x步骤,并使用tritonServer进行推理步骤,以及避坑问题

1,安装步骤 大致分为下面的安装过程: a 安装docker,b 本地安装环境,c 拉取docker镜像,d,本地下载数据 e,移动数据到docker下目录,f,docker下解压数据,g,docker下engine化数据,h,docker下编译v2x并运行离线数据,r,rtsp数据流替换并运行 To install these packages…...

2022 年 6 月青少年软编等考 C 语言三级真题解析

目录 T1. 制作蛋糕思路分析T2. 找和最接近但不超过K的两个元素思路分析T3. 数根思路分析T4. 迷信的病人思路分析T5. 算 24思路分析T1. 制作蛋糕 小 A 擅长制作香蕉蛋糕和巧克力蛋糕。制作一个香蕉蛋糕需要 2 2 2 个单位的香蕉, 250 250 250 个单位的面粉, 75 75 75 个单位的…...

java opcua server服务端开发 设置用户密码访问

前言 关于使用milo开源库,开发opc ua服务器,之前的教程中,都是使用的匿名访问,有网友咨询如何设置服务端使用用户密码访问,于是我完善了这部分的空缺整理整了这篇教程,希望能解决有同样需求,但是遇到困难的网友!因为milo没有官方文档的教程且网上详细的教程很少,本人…...

SQLite:DDL(数据定义语言)的基本用法

SQLite:DDL(数据定义语言)的基本用法 1 主要内容说明2 相关内容说明2.1 创建表格(create table)2.1.1 SQLite常见的数据类型2.1.1.1 integer(整型)2.1.1.2 text(文本型)2…...

Spring-Smart-DI !动态切换实现类框架

背景 一般我们系统同一个功能可能会对接多个服务商,防止某个服务商的服务不可用快速切换或者收费不同需要切换,那我们一般做快速切换逻辑传统无非就是先将每个服务商实现,然后在配置点(数据库或者nacos)配置当前正在使…...

【SCT71401】3V-40V Vin, 150mA, 2.5uA IQ,低压稳压器,替代SGM2203

SCT71401 3V-40V Vin, 150mA, 2.5uA IQ,低压稳压器,替代SGM2203 描述 SCT71401系列产品是一款低压差线性稳压器,设计用于3 V至40 V (45V瞬态输入电压)的宽输入电压范围和150mA输出电流。SCT71401系列产品使用3.3uF…...

浅谈网络 | 应用层之流媒体与P2P协议

目录 流媒体名词系列视频的本质视频压缩编码过程如何在直播中看到帅哥美女?RTMP 协议 P2PP2P 文件下载种子文件 (.torrent)去中心化网络(DHT)哈希值与 DHT 网络DHT 网络是如何查找 流媒体 直播系统组成与协议 近几年直播比较火,…...

Brain.js(六):构建FNN神经网络实战教程 - 用户喜好预测

在前文不同的神经网络类型和对比 针对不同的神经网络类型做了对比,本章将对FNN稍作展开 测试环境: chrome 版本 131.0.6778.86(正式版本) (64 位) 一、引言 Brain.js 是一个简单易用的 JavaScript 神经网…...

重学设计模式-建造者模式

本文介绍一下建造者模式,相对于工厂模式来说,建造者模式更为简单,且用的更少 定义 建造者模式是一种创建型设计模式,它使用多个简单的对象一步一步构建成一个复杂的对象。这种模式的主要目的是将一个复杂对象的构建过程与其表示…...

linux下c++调用opencv3.4.16实战技巧

目录 参考:在图像上绘框在图像上绘圆在图像上绘文字在图像上绘制线灰度图rgb转yuvOpenCV 读取视频,设置起始帧、结束帧及帧率获取(1.1)简介(1.2)Mat类型(1.3)IplImage类型将OpenCV抓拍的图片进行x264编码并保存到文件c++调用opencv,读取rtsp视频流参考: https://blog…...

记录css模糊程度的属性

记录需要模糊以及透明化图片需求: opacity: (0到1之间数字,dom透明程度)。 filter: blur() 括号里需数字,单位为px,值越大模糊程度越大。 关于css中filter属性记录 filter 滤镜属性: blur&…...

K8S的监控与告警配置有哪些最佳实践

在 Kubernetes (K8s) 集群中实现有效的监控与告警是确保集群稳定性、性能以及及时响应潜在问题的关键。以下是 K8s 监控与告警配置的最佳实践,涵盖了监控工具的选择、告警规则的配置、数据存储与可视化等方面。 1. 选择合适的监控工具 Kubernetes 生态系统有多种监…...

如何在Ubuntu 20.04上安装和使用PostgreSQL:一步步指南

如何在Ubuntu 20.04上安装和使用PostgreSQL:一步步指南 在Ubuntu 20.04上安装和使用PostgreSQL数据库包括几个明确的步骤:安装、配置、创建用户和数据库、以及基本的数据库操作。下面,我将详细解释每个步骤,并提供具体的命令行示…...

PostGis学习笔记

– 文本方式查看几何数据 SELECT ST_AsText(geom)FROM nyc_streets WHERE name ‘Avenue O’; – 计算紧邻的街区 SELECT name,ST_GeometryType(geom) FROM nyc_streets WHERE ST_DWithin( geom,ST_GeomFromText(‘LINESTRING(586782 4504202,586864 4504216)’,26918),0.1); …...

JDK17 线程池 ThreadPoolExecutor

文章目录 线程池ThreadPoolExecutor状态向线程池添加任务 executeWorker线程池新建工作线程 addWorker 拒绝策略 线程池 线程池将创建线程和使用线程解耦。优点是 避免重复创建和销毁线程,降低资源消耗。任务不用等待创建线程的时间,提高响应速度。统一…...

Dify+Docker

1. 获取代码 直接下载 (1)访问 langgenius/dify: Dify is an open-source LLM app development platform. Difys intuitive interface combines AI workflow, RAG pipeline, agent capabilities, model management, observability features and more, …...

分布式会话 详解

分布式会话详解 在分布式系统中,用户的会话状态需要在多个服务器或节点之间共享或存储。分布式会话指的是在这种场景下如何管理和存储会话,以便在多个节点上都能正确识别用户状态,从而保证用户体验的一致性。 1. 为什么需要分布式会话 在单…...

Java进阶

Java进阶 java注解 java中注解(Annotation),又称为java标注,是一种特殊的注释,可以添加在包,类,成员变量,方法,参数等内容上面.注解会随同代码编译到字节码文件中,在运行时,可以通过反射机制获取到类中的注解,然后根据不同的注解进行相应的解析. 内置注解 Java 语言中已经定…...

Qt/C++实现帧同步播放器/硬解码GPU绘制/超低资源占用/支持8K16K/支持win/linux/mac/嵌入式/国产OS等

一、前言 首先泼一盆冷水,在不同的电脑上实现完完全全的帧同步理论上是不可能的,市面上所有号称帧同步的播放器,同一台电脑不同拼接视频可以通过合并成一张图片来绘制实现完完全全的帧同步,不同电脑,受限于网络的延迟…...

hhdb数据库介绍(10-33)

管理 数据归档 归档记录查询 功能入口:“管理->数据归档->归档记录查询” 需要确保配置的归档用户对数据归档规则所在的逻辑库具备CREATE权限,以及对原数据表具有所有权限。 清理归档数据 (一)功能入口:“…...

UE4_材质节点_有关距离的_流体模拟

一、材质节点介绍: 特别注意:距离场需要独立显卡支持。 1、什么是距离场? 想象一下空间中只有两个实体, 一个球,一个圆柱. 空间由无数个点组成, 取其中任何一个点, 比如,它跟球面的最近距离是3, 跟圆柱面的最近距离是2, 那么这个点的值就…...

SpringBoot集成 SpringDoc (SpringFox 和 Swagger 的升级版)

阅读 SpringDoc 官网 - Migrating from SpringFox 只需要导入以下一个依赖即可&#xff1a; <dependency><groupId>org.springdoc</groupId><artifactId>springdoc-openapi-starter-webmvc-ui</artifactId><version>2.7.0</version>…...

分布式推理框架 xDit

1. xDiT 简介 xDiT 是一个为大规模多 GPU 集群上的 Diffusion Transformers&#xff08;DiTs&#xff09;设计的可扩展推理引擎。它提供了一套高效的并行方法和 GPU 内核加速技术&#xff0c;以满足实时推理需求。 1.1 DiT 和 LLM DiT&#xff08;Diffusion Transformers&am…...

《Vue零基础入门教程》第十七课:侦听器

往期内容 《Vue零基础入门教程》第九课&#xff1a;插值语法细节 《Vue零基础入门教程》第十课&#xff1a;属性绑定指令 《Vue零基础入门教程》第十一课&#xff1a;事件绑定指令 《Vue零基础入门教程》第十二课&#xff1a;双向绑定指令 《Vue零基础入门教程》第十三课&…...

【人工智能-基础】SVM中的核函数到底是什么

文章目录 支持向量机(SVM)中的核函数详解1. 什么是核函数?核函数的作用:2. 核技巧:从低维到高维的映射3. 常见的核函数类型3.1 线性核函数3.2 多项式核函数3.3 高斯径向基函数(RBF核)4. 总结支持向量机(SVM)中的核函数详解 支持向量机(SVM,Support Vector Machine)…...

RoBERTa- 稳健优化的 BERT 预训练模型详解

一、引言 自 BERT&#xff08;Bidirectional Encoder Representations from Transformers&#xff09;问世&#xff0c;预训练语言模型在自然语言处理&#xff08;NLP&#xff09;领域掀起革命浪潮&#xff0c;凭卓越表现大幅刷新诸多任务成绩。RoBERTa 承继 BERT 架构&#x…...

20.(开发工具篇github)Git上次超过100M单文件

1:安装lfs git lfs install 2: 撤销所有更改&#xff08;包括未暂存的更改&#xff09; git reset --hard 3:查找大于100M的文件 find ./ -size 100M 4:加入到 track git lfs track “./data/geo_tif_zzjg/2023年_种植结构影像.tif” git lfs track “./data/geo_tif_zz…...

Redis使用场景-缓存-缓存击穿

前言 之前在针对实习面试的博文中讲到Redis在实际开发中的生产问题&#xff0c;其中缓存穿透、击穿、雪崩在面试中问的最频繁&#xff0c;本文加了图解&#xff0c;希望帮助你更直观的了解缓存击穿&#x1f600; &#xff08;放出之前写的针对实习面试的关于Redis生产问题的博…...

uniapp Electron打包生成桌面应用exe文件

1.uniapp Electron打包生成桌面应用exe文件 随着跨平台开发的需求日益增长,UniApp 成为了开发者们的首选之一。通过 UniApp,你可以使用 Vue.js 的语法结构和组件系统来构建原生应用、Web 应用甚至是桌面应用。本文将详细介绍如何使用 UniApp 将你的项目打包成 Windows 桌面端…...

【机器学习】Sigmoid函数在深层神经网络中存在梯度消失问题,如何设计一种改进的Sigmoid激活函数,既能保持其概率预测优势,又能避免梯度消失?

为了解决 Sigmoid 函数在深层神经网络中的梯度消失问题&#xff0c;可以设计一种改进的 Sigmoid 激活函数&#xff0c;使其同时具备以下特性&#xff1a; 减缓梯度消失问题&#xff1a;避免在输入值远离零时梯度趋于零的问题。保持概率预测能力&#xff1a;保留 Sigmoid 的单调…...

SpringBoot中实现EasyExcel实现动态表头导入(完整版)

前言 最近在写项目的时候有一个需求&#xff0c;就是实现动态表头的导入&#xff0c;那时候我自己也不知道动态表头导入是什么&#xff0c;查询了大量的网站和资料&#xff0c;终于了解了动态表头导入是什么。 一、准备工作 确保项目中引入了处理 Excel 文件的相关库&#xff…...

前端用到的一些框架

拖拽框架&#xff1a;Vue.Draggable Vue.Draggable是一款基于Sortable.js拖拽插件 官网&#xff1a;https://github.com/SortableJS/Vue.Draggable 分屏插件&#xff1a;fullPage.js fullPage.js 是一个基于 jQuery 的插件&#xff0c;它能够很方便、很轻松的制作出全屏网站…...

“量子跃迁与数据织网:深入探索K最近邻算法在高维空间中的优化路径、神经网络融合技术及未来机器学习生态系统的构建“

&#x1f3bc;个人主页&#xff1a;【Y小夜】 &#x1f60e;作者简介&#xff1a;一位双非学校的大二学生&#xff0c;编程爱好者&#xff0c; 专注于基础和实战分享&#xff0c;欢迎私信咨询&#xff01; &#x1f386;入门专栏&#xff1a;&#x1f387;【MySQL&#xff0…...

10个Word自动化办公脚本

在日常工作和学习中&#xff0c;我们常常需要处理Word文档&#xff08;.docx&#xff09;。 Python提供了强大的库&#xff0c;如python-docx&#xff0c;使我们能够轻松地进行文档创建、编辑和格式化等操作。本文将分享10个使用Python编写的Word自动化脚本&#xff0c;帮助新…...

【青牛科技】D35摄氏温度传感器芯片,低功耗,静态工作电流小于60 μA

概述&#xff1a; D35是基于模拟电路的一种基本摄氏温度传感器&#xff0c;其作用是将感测的环境温度/物体温度精确的以电压的形式输出&#xff0c;且输出电压与摄氏温度成线性正比关系&#xff0c;转换公式为Vo0 10 mV / ℃*T&#xff08;℃&#xff09;&#xff0c;0C时输出为…...

无分类编址的IPv4地址

/20含义&#xff1a;前20比特位为网络号&#xff0c;后面32-2012为主机号 路由聚合&#xff1a;找共同前缀 所有可分配地址的主机都能接收广播地址&#xff0c;...

LeetCode - #150 逆波兰表达式求值

文章目录 前言1. 描述2. 示例3. 答案关于我们 前言 我们社区陆续会将顾毅&#xff08;Netflix 增长黑客&#xff0c;《iOS 面试之道》作者&#xff0c;ACE 职业健身教练。&#xff09;的 Swift 算法题题解整理为文字版以方便大家学习与阅读。 LeetCode 算法到目前我们已经更新…...

如何避免数据丢失:服务器恢复与预防策略

在当今数字时代&#xff0c;数据对于个人和企业来说都至关重要。数据丢失可能会导致严重的财务损失、业务中断甚至法律责任。因此&#xff0c;采取措施防止数据丢失至关重要。本文将讨论服务器数据丢失的常见原因以及如何防止数据丢失的有效策略。 服务器数据丢失的常见原因 服…...

pytorch中model.eval的理解

在复现simsam的过程中&#xff0c;看到在线性评估部分的训练函数中设置了model.eval,不太理解&#xff0c;印象中一直觉得&#xff0c;model.eval会影响梯度的回传&#xff0c;这里来拨乱反正一下。 事实上&#xff0c;model.eval()主要影响 BatchNorm 和 Dropout 层的行为&am…...

【AI+教育】一些记录@2024.11.19-11.25

通向AGI之路&#xff1a;大型语言模型&#xff08;LLM&#xff09;技术精要 https://zhuanlan.zhihu.com/p/597586623 在Bert和GPT模型出现之前&#xff0c;NLP领域流行的技术是深度学习模型&#xff0c;而NLP领域的深度学习&#xff0c;主要依托于以下几项关键技术&#xff1…...

CSS变量用法及实践

目录 一、基本用法 1.1、定义变量 1.2、使用变量 1.3 、修改变量的值 二、命名规范 2.1、使用有意义的名称 2.2、使用命名空间 三、变量值类型 3.1、如果变量值是一个字符串&#xff0c;可以与其他字符串拼接&#xff0c;例如&#xff1a; 3.2、 如果变量值是数值&a…...

【Python网络爬虫笔记】8- (BeautifulSoup)抓取电影天堂2024年最新电影,并保存所有电影名称和链接

目录 一. BeautifulSoup的作用二. 核心方法介绍2.1 构造函数2.2 find()方法2.3 find_all()方法2.4 select()方法 三. 网络爬虫中使用BeautifulSoup四、案例爬取结果 一. BeautifulSoup的作用 解析HTML/XML文档&#xff1a;它可以将复杂的HTML或XML文本转换为易于操作的树形结构…...

STM32 ADC --- 知识点总结

STM32 ADC — 知识点总结 文章目录 STM32 ADC --- 知识点总结cubeMX中配置注解单次转换模式、连续转换模式、扫描模式单通道采样的情况单次转换模式&#xff1a;连续转换模式&#xff1a; 多通道采样的情况禁止扫描模式&#xff08;单次转换模式或连续转换模式&#xff09;单次…...

使用PHP脚本实现GitHub API搜索与数据库同步

在现代软件开发中&#xff0c;自动化数据收集和同步是提高效率的关键。今天&#xff0c;我将分享一个我最近开发的PHP脚本&#xff0c;它能够自动从GitHub API搜索特定关键词的仓库&#xff0c;并将这些数据同步到MySQL数据库中。这个过程不仅涉及到API调用和数据处理&#xff…...

使用docker-compese部署SFTPGo详解

官网&#xff1a;SFTP & FTP as a Managed Service (SaaS) and On-premise 一、SFTPGo简介 SFTPGo 是一款功能强大的文件传输服务器软件。它支持多种协议&#xff08;SFTP、SCP、FTP/S、WebDAV、HTTP/S&#xff09;和多个存储后端。 借助 SFTPGo&#xff0c;您可以利用本地…...

JavaScript根据数据生成柱形图

分析需求 // 定义一个数组来存储四个季度的数据 dataArray = []// 循环4次,获取用户输入的数据并存储到数组中 for i from 0 to 3// 获取用户输入的数据inputData = 获取用户输入的第(i + 1)季度的数据// 将数据存入数组dataArray[i] = inputData// 遍历数组,根据数据生成柱…...

Android笔记【12】脚手架Scaffold和导航Navigation

一、前言 学习课程时&#xff0c;对于自己不懂的点的记录。 对于cy老师第二节课总结。 二、内容 1、PPT介绍scaffold 2、开始代码实操 先新建一个screen包&#xff0c;写一个Homescreen函数&#xff0c;包括四个页面。 再新建一个compenent包&#xff0c;写一个displayText…...

VirtualBox注册已有虚拟机:未能打开位于虚拟电脑E_INVALIDARG (0X80070057)

错误如下 解决办法1 产生虚拟机的机器&#xff0c;与当前使用机器不兼容。建议在当前机器重新产生虚拟机。比如我家里电脑是WIN7&#xff0c;公司电脑是WIN11。 原来的虚拟机内容&#xff0c;找老机器导出。 解决办法2&#xff08;存疑&#xff09; 搜索到一个说法&#xf…...