AI测试之 TestGPT

news2024/11/24 4:29:49

如今最火热的技术莫非OpenAI的ChatGPT莫属,AI技术也在很多方面得到广泛应用。今天我们要介绍的TestGPT就是一个软件测试领域中当红的应用。

TestGPT是什么?

TestGPT是一家总部位于以色列特拉维夫的初创公司 CodiumAI Ltd.,发布的一款用于测试领域的人工智能模型(AI model),由 OpenAI 的 GPT-4 大型语言模型驱动。

官网地址: www.codium.ai

从官网的介绍可以看出,它是一个旨在协助开发人员测试他们的代码,为开发人员提供自动生成的软件测试套件建议,从而加快编码和错误扫描的AI工具。

image

如何使用?

目前TestGPT提供了针对VsCode和JetBrains的插件支持 

image

以VsCode为例,在vsCode的插件中心搜索CodiumAI即可安装

image

安装后可以Github账户直接登录连接。

下面我们来用一段有问题的python排序算法代码来看看它是如何使用的。

def insert_sort(lists):
    # 插入排序
    count = len(lists)
    for i in range(0, count): #range区间有误,这里是bug,应为(1, count)
        key = lists[i]
        j = i - 1
        while j >= 0:
            if lists[j] > key:
                lists[j + 1] = lists[j]
                lists[j] = key
            j -= 1
    return lists

切换到CodiumAI插件,连接后可以看到代码部分已经有了生成测试的入口

image

尝试生成下看看效果,稍等片刻,就可以看到AI的成果了

image

AI的辅助界面有三部分,分别是:

  • Test Suite 测试用例
  • Code Analysis 代码分析
  • Code Suggestions 代码修改建议

在用例配置部分可以做测试的基本配置

image

Coverage部分则可以看到AI生成的Case覆盖情况

image

Test部分则是具体的测试用例,本例中生成了6条用例

image

执行后可以看到用例的执行结果,但生成的测试代码都执行成功了,似乎没有通过测试代码测试出bug :(

image

Code Analysis则给出了代码的分析说明,可以

image

代码建议部分则给出了修改建议,这里倒是准确地指出了代码中的问题。

image

按照建议直接应用,可以看到代码已经修改并加了注释

image

总结

所以可以看到TestGPT还是非常优秀的,准确地分析出了代码的作用并发现了代码中有问题的地方。也帮助设计了测试用例覆盖及相关单元测试脚本。 善用这个工具已经无疑可以给开发工程师提供非常大的辅助,但是从初步的使用来看,自行生成的测试用例对于问题代码的覆盖还有不足,短期内应该还不足以完全代替测试设计。

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

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

相关文章

Android:记录一个打包发布版的release包以后闪退的问题

个人感觉其实release闪退的问题挺难排查的,因为release包运行起来as捕获不到相应的应用程序进程,从而不易查看到日志,也是我玩得不溜,大家有不同的方法可以评论区探讨,我也定期回复一些评论一起讨论。以下是我遇到的情…

高效的读书与笔记管理:打造个人知识体系

01 读书学习的常见问题 1、读书⼯具分散,划线和笔记分散,导致我们的复习、搜索效率低。⽐如不同书籍中,提到了同⼀个问题的观点,很难进行关联。 2、读书,仅限于读,知道别⼈的观点,但是缺乏内…

【AI论文精读13】RAG论文综述2(微软亚研院 2409)P5-可解释推理查询L3

AI知识点总结:【AI知识点】 AI论文精读、项目、思考:【AI修炼之路】 P1,P2,P3,P4 五、可解释推理查询(L3) ps:P2有四种查询(L1,L2,L3,…

学习记录:js算法(六十二):单词搜索 II

文章目录 单词搜索 II思路一思路二 单词搜索 II 给定一个 m x n 二维字符网格 board 和一个单词(字符串)列表 words, 返回所有二维网格上的单词 。 单词必须按照字母顺序,通过 相邻的单元格 内的字母构成,其中“相邻”…

crashrpt3 开源项目的Vs 2022 C++20及其以上的编译

1. 首先从github 下载源代码 crashrpt3 2. 用CMake Gui 编译成vs studio 工程文件 2.1 点击 config 按钮 2.2 依次点击 Generate 按钮、Open Project 按钮.之后vs 2022 会打开编译好的sln工程文件 3.全选解决方案里面的所有项目,设置C语言标准,我这里设置是最新C,即启用的是…

Solidity基础语法

Solidity的在线编辑器:https://remix.ethereum.org/ 一、合约结构 1、SPDX许可标识:指定代码的开源许可 2、pragma指令:声明Solidity版本 3、导入语句:引入其他合约或库 4、合约声明:使用contract关键字 5、状态变量&…

【关系模型】关系完整性约束

按照上面的框架我们已经讲了关系数据结构还有关系操作,今天来补充这一章的关系完整性约束 关系完整性约束 完整性约束 完整性约束可以保证数据的一致性和元组的唯一性 实体完整性约束 比如在学生表中,每一个元组都应该是唯一并且元组之间是可以区分…

JavaScript(Web APIs 作用和分类,DOM数是什么,document是什么,根据css选择器来获取DOM元素,修改DOM元素的方式,边量声明)

变量声明 变量声明有三个 var let 和 const建议: const 优先,尽量使用const,原因是: const 语义化更好 很多变量我们声明的时候就知道他不会被更改了,那为什么不用 const呢? 实际开发中也是,…

【unity框架开发8】unity场景Scene的使用, 如何封装一个场景管理器

文章目录 一、场景基本操作1、加载切换场景2、获取场景信息3、激活场景4、场景基本属性获取5、已加载场景个数6、获取场景中所有物体7、创建新场景8、卸载销毁场景 二、使用协程方法来异步加载场景1、AsyncOperation相关的代码应写在一个协同程序中。2、allowSceneActivation加…

AI深湖DeepLate人工智能的数据集格式开源项目

人工智能的数据集格式 文档 • 入门 • API 参考 • 例子 • 博客 • Slack 社区 • Twitter(推特) 用其他语言阅读这篇文章: English 深湖 Deep Lake Deep Lake 是一种数据集格式,提供简单的 API 以用于创建、存储和协作处理任何规模的…

Spring Security 与 OAuth 2.0 登录实现指南

文章目录 一、项目概述二、环境准备三、创建GitHub OAuth应用四、项目依赖配置五、配置OAuth 2.0六、创建控制器七、创建视图八、运行应用九、用户界面展示十、总结 在现代的Web应用中,安全性是一个不可忽视的因素。OAuth 2.0作为一种流行的授权框架,提供…

浅析主流监控告警系统基本架构和原理

浅析主流监控告警系统基本架构和原理 一,监控系统的作用和目前主流监控系统 1,作用:监控系统一般有以下这几个作用 实时采集监控数据:包括硬件、操作系统、中间件、应用程序等各个维度的数据。实时反馈监控状态:通过…

论文笔记:RelationPrompt :Zero-Shot Relation Triplet Extraction

论文来源: ACL Findings 2022 论文链接:https://arxiv.org/pdf/2203.09101.pdf 论文代码:http://github.com/declare-lab/RelationPrompt 本篇论文是由阿里达摩院自然语言智能实验室于2022年发表的关于零样本关系抽取的顶会论文,本篇博客将记录我在阅读过程中的一些笔记…

AI自动生成PPT解决方案,AI生成PPT-PrensentationGen-Java实现

AI自动生成PPT解决方案,AI生成PPT-PrensentationGen-Java实现。 利用大语言模型生成PPT文件的SpringBoot Web应用,主要功能是自动化创建演示文稿,适用于快速制作演示材料,特色在于其高效的模板处理和文本替换技术。 点击视频观看…

Python入门:如何在Python中优雅地书写多行字符串!

文章目录 📖 介绍 📖🏡 演示环境 🏡📒 多行字符串📒📝 什么是多行字符串?📝 三重引号📝 字符串连接📝 反斜杠⚓️ 相关链接 ⚓️📖 介绍 📖 在编程过程中,时常会遇到需要使用多行字符串的场景。例如,在编写长参数、描述文本或代码文档时,多行字符串…

java生成日历数据列表并按日历格式导出到excel

日历格式输出 日历数据列表导出封装日历格式实体类效果 日历数据列表 /**** 封装日历数据* param year 年份* param month 月份*/public List<InspectionDailyStaffPlanCalendarData> selectCalendarDataList(int year,int month,List<InspectionDailyStaffPlan> …

centos7 Oracle 11g rac 静默安装(NFS配置共享存储)

1.环境信息准备 注意&#xff1a; 在配置网络时&#xff0c;Oracle RAC的每个节点必须具有至少两个以上的网卡&#xff0c;一张网卡对外提供网络服务&#xff0c;另一张网卡用于各个节点间的通信和心跳检测等。在配置RAC集群的网卡时&#xff0c;如果节点1的公共接口是eth0&…

随机变量及其分布

定义 1.随机变量是一个从样本空间&#xff08;所有可能结果的集合&#xff09;到实数集的函数。样本空间中的每个结果都对应于随机变量的一个值。随机变量的值可以是离散的&#xff0c;也可以是连续的。随机变量通常用大写字母表示&#xff0c;如 X、Y 或 Z。 2.随机变量和事…

难点:Linux 死机定位(进程虚拟地址空间耗尽)

死机定位(进程虚拟地址空间耗尽) 一、死机现象 内存富裕,但内存申请失败。 死机时打印: 怀疑是: 1、内存碎片原因导致。 2、进程虚拟地址空间耗尽导致。 3、进程资源限制导致。 二、内存碎片分析 1、理论知识:如何分析内存碎片化情况 使用 /proc/buddyinfo: /proc/…

Java-sec-code学习2

Java-Sec-Code学习1-文件上传漏洞 case1 url: http://127.0.0.1:8080/file/any 这是一个典型的上传页面&#xff0c;我们尝试上传一个文件试试看。 直接上传一个jsp文件&#xff0c;发现可以直接上传&#xff0c;非常顺利。这意味这后端和前端都没有对文件类型进行任何限制。…