AI测试之 TestGPT

ops/2024/10/18 12:23:58/

如今最火热的技术莫非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 - 1while j >= 0:if lists[j] > key:lists[j + 1] = lists[j]lists[j] = keyj -= 1return 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.ppmy.cn/ops/125023.html

相关文章

apache.poi读取.xls文件时The content of an excel record cannot exceed 8224 bytes

目录 问题描述版本定位:打印size最大的Record定位:RefSubRecord解决代码 问题描述 使用apache.poi读取.xls文件时有The content of an excel record cannot exceed 8224 bytes的报错。待读取的文件的内容也是通过apache.poi写入的,我的文件修…

“网络安全等级保护测评入门:基础概念与重要性“

网络安全等级保护测评(简称“等保测评”)是依据国家网络安全等级保护制度,对信息系统安全等级进行评估和评定的过程。它是提高信息系统安全性、保障信息安全的重要手段。以下是关于等保测评的基础概念与重要性的详细解读: 一、等…

【c++】用程序来模拟三权分立的必要性

源代码&#xff1a; #include<iostream> //立法 class legislating {int YourVar; public:legislating() {}~legislating() {}bool judge(int num){return num>10?true:false;} }; legislating s; //司法 class judicial {public:judicial() {}~judicial() {}void w…

【OceanBase诊断调优】—— 错误码 5065 和 5066 的区别

适用版本&#xff1a;V2.1.x、V2.2.x、V3.1.x、V3.2.x 5065 与 5066 是两个近似的报错。 OB_ERR_QUERY_INTERRUPTED(-5065): Message: Query execution was interrupted。 含义为执行中断, 例如终端执行 SQL 过程中按 ctrlc 终止 SQL 执行会报 -5065。 OB_ERR_SESSION_INTER…

ubuntu22.04 安装wine9.0 全网首发

wine官网推荐安装方式&#xff1a;https://gitlab.winehq.org/wine/wine/-/wikis/zh_CN/Debian-Ubuntu 博主按照这种方式是失败的&#xff0c;虽然开启了“低调上网”&#xff0c;貌似代理对于终端不起作用&#xff0c;后面会介绍替代方案&#xff0c;一样完美。 一、官网的安…

.NET 通过C#设置Excel工作表的页面设置

Excel文件数据准备就绪并需要以报告形式呈现时&#xff0c;调整Excel文件的页面设置变得尤为重要&#xff0c;不仅关乎文档的专业外观&#xff0c;还直接影响到打印或电子分享时的可读性和实用性。通过C#来自动化这一过程&#xff0c;不仅可以节省大量手动配置的时间&#xff0…

初识C语言:数据类型、运算符与表达式

目录 数据类型&#xff1a;理解信息的不同形式 数据类型转换 运算符&#xff1a;进行各种计算和操作 表达式&#xff1a;数据与运算符的结合 小结 C语言是一种广泛使用的编程语言&#xff0c;被称为"现代编程语言之母"&#xff0c;因其高效、灵活的特点而备受青…

消息队列面试题——第二篇

1. rocketmq、rabbitmq、kafka的区别 架构设计和消息模型 特性rocketmqrabbitmqkafka消息模型基于主题和消费组&#xff0c;支持发布/订阅和点对点两种模型基于队列模型&#xff0c;支持发布/订阅和点对点两种模型基于分区的主题模型&#xff0c;主要用于日志流式处理和高吞吐…