ChatGPT与代码分析结合(二)

目录

一、利用人工智能自动找bug

应用场景与适用对象

常用工具

相关工具介绍

二、结对编程助手GitHub Copilot

环境准备

使用介绍

注意事项

相关快捷键

应用场景

三、利用ChatGPT生成自动化测试脚本

四、利用ChatGPT生成基于po的驱动数据测试框架

五、利用ChatGPT进行代码分析与bug检测

应用场景1 - 提升效率

应用场景2 - 发现各种类型的bug


一、利用人工智能自动找bug

在程序员编程的过程中,产生Bug是一件稀松平常的事情,以前在编码的过程中提前找出Bug,需要通过单元测试、CodeReview等各种方式。

当今,人工智能技术的发展给软件开发和测试带来了许多机会。利用人工智能技术,可以开发出自动化的 bug 检测工具,从而提高软件质量和可靠性。

除了Bug 检测,人工智能甚至还能根据需求说明,自动编写代码,这都是目前基于大语言模型的编程工具能做到的事情。

应用场景与适用对象

  • 通过文本生成需求,发现Bug
    • 对应工具:ChatGPT
  • 将需求(英语)翻译成代码,通过注释生成代码
    • codex + copilot + ide

常用工具

相关工具介绍

ChatGPT:通过提示词,让ChatGPT检查是否有bug。比如提示词:请帮我查找以下代码中的Bug,并添加注释信息

Codex:OpenAI Codex是由OpenAI开发的人工智能模型。它能解析自然语言并生成相应的代码。使用Github数十亿代码训练而成。该模型驱动了GitHub Copilot,一个为选定的IDE(如Visual Studio Code和Neovim)提供的编程自动补全工具。

Codex官方网站:https://openai.com/blog/openai-codex

GitHub Copilot:GitHub Copilot 是由 GitHub 和 OpenAI 共同开发的人工智能代码辅助工具,可以自动地生成高质量代码片段、上下文信息等。通过自然语言处理和机器学习技术,能够通过分析程序员编写的代码、注释和上下文信息,自动生成代码,减轻程序员的工作量,节省开发者的时间和精力。

GitHub Copilot 支持多种主流语言,包含:

  • Python
  • JavaScript
  • Go
  • TypeScript
  • 其他多种语言

同时也支持多种IDE工具:
    

二、结对编程助手GitHub Copilot

GitHub Copilot 是一款 AI 结对程序员,可帮助您更快、更少地编写代码。它从注释和代码中提取上下文,以立即建议单独的行和整个函数。GitHub Copilot 由 GitHub、OpenAI 和 Microsoft 开发的生成式 AI 模型提供支持。它可作为 Visual Studio Code、Visual Studio、Neovim 和 JetBrains 集成开发环境 (IDE) 套件的扩展。官网地址:https://github.com/features/copilot

环境准备

进入官网github-copilot注册信息。github-copilot 收费 10 美元一个月,需要先填写信用卡信息,但是可以免费试用 30 天,所以可以在 30 天到期前取消续费。

取消 github coilpot 订阅:这里显示 10 美元是下个月的扣费本月是没有费用产生的。点击右上角头像 -> settings -> billing and plans -> plans and usage 划到下处取消 github coilpot 的订阅。

使用介绍

PyCharm 右下方状态栏中,红圈表示 GitHub Copilot 的logo,表示开启 GitHub Copilot 插件。不论是编写代码中的注释,还是一句执行代码,或是一个代码块、一个函数,GitHub Copilot 都会随着你的输入过程,不断提供代码补全建议。

注意事项

  • GitHub Copilot 也可能猜错你打算写的代码,但只要你继续输入,它就会给出新的建议。
  • 对于任何给定的输入,GitHub Copilot 可能会提供多种建议。可以根据需求选择要使用的建议,也可以拒绝所有建议。
  • 用户可以启用或禁用 GitHub Copilot:单击 PyCharm 右下方状态栏中的状态图标选择启用或禁用 GitHub Copilot 的建议 。

相关快捷键

应用场景

1. 使用 Copilot 编写一个快速排序,比如输入相关注释以及开头

它会自动开始补全代码。灰色部分是它提示的代码,点击 tab后就可以接收它的建议了。

2. 合并两个列表,并且排序,输入注释与要求: 合并两个列表,并且排序。

根据提示的需求,一直按tab键,中间会自动产生注释以及实现的代码,以下所有的代码都是自动生成:

编写一个单元测试用例,测试是否实现,编写一个函数名为def test_merge_list():,其他使用自动补全,最终单元测试用例生成的结果为:

Copilot 的环境安装与使用都非常简单,可以把它当作一个在 IDE 中使用的ChatGPT。一些明确的代码逻辑,可以交给它完成。Copilot并非所有的输出都是正确的,在使用的过程中,需要适当进行纠错。

三、利用ChatGPT生成自动化测试脚本

自动化测试脚本可以模拟用户与应用程序的交互,例如点击按钮、输入数据、导航到不同的页面等等,以验证应用程序的正确性、性能和稳定性。

提示词:请帮我编写一个接口自动化测试脚本,要求使用 pytest + requests 。只需要对响应状态码完成断言即可
提示词:请帮我编写一个 Web 自动化测试脚本,要求使用 pytest + playwright。


提示词:请结合 harmcrest 优化断言。

  • 在使用 ChatGPT 编写自动化测试脚本的时候,提示词最好明确相关的技术栈,这样可以在生成的脚本基础之上做对应的修改。
  • 写清楚需求:在要求ChatGPT编写自动化测试脚本的时候,需要给它明确使用的技术栈,方便基于脚本做修改。
  • 将复杂的任务拆分为更简单的子任务/系统地测试变化:通过多次提问,进一步修正ChatGPT的回复,直到满足需求。

四、利用ChatGPT生成基于po的驱动数据测试框架

PO(PageObject)设计模式将某个页面的所有元素对象定位和对元素对象的操作封装成一个Page 类,并以页面为单位来写测试用例,实现页面对象和测试用例的分离。

数据驱动测试(DDT)是一种方法,其中在数据源的帮助下重复执行相同顺序的测试步骤,以便在验证步骤进行时驱动那些步骤的输入值和/或期望值。

无论是 PO 设计模式还是数据驱动测试,其实都是目前测试工程师在编写自动化测试框架中的常用技巧与设计模式。而以前复杂的设计模式与框架,可以利用ChatGPT轻松生成,只需要在其基础之上做适当的调优即可。

提示词:请示使用PO设计模式编写一个Web自动化测试脚本,要求使用到pytest测试框架和selenium web自动化框架。


提示词:现在用户名密码,需要使用数据驱动+参数化的方式传入,请修改你的 test_login 的代码。


提示词:测试数据要求放在一个yaml文件中,然后代码读取该yaml文件

五、利用ChatGPT进行代码分析与bug检测

应用场景1 - 提升效率

人工智能前,如何检测bug?

  • 研发编写单元测试。
  • 代码扫描工具,SonarQube、findbugs。
  • 测试人员进行集成测试。

通过人工智能提升效率,辅助开发与测试发现更多的问题,降低成本和提高软件质量。

当前通过人工智能,如何检测bug?

  • 单元测试
    • Copilot+Codex
  • 集成测试
    • 通过 ChatGPT 或者辅助工具,例如 AutoGPT 开发脚本、编写测试用例

应用场景2 - 发现各种类型的bug

  • 代码执行报错。  
# 错误代码
a = [1, 2, 3, 4]
print(a[5])

复制代码到ChatGPT聊天框,提示词:请找出以上代码的bug,先说明错误在哪并修复。

也可以根据 GitHub Copilot 的智能提示展示后面的代码内容。IDE工具中输入“# 请找出以上代码的bug,先说明错误在哪并修复” Copilot 能精准的定位到了问题并返回的信息。

  • 没有实现需求。
# 错误代码
def bubble_sort(list):
    for i in range(len(list)):
        for j in range(i+1,len(list)):
            if list[i] < list[j]:
                list[i],list[j] = list[j],list[i]
    return list

复制代码到ChatGPT聊天框,提示词:# bubble_sort()是一段实现了冒泡排序算法的函数请找出缺陷,先提示问题是什么,然后再给出修改后的代码

也可以根据 GitHub Copilot 的智能提示展示后面的代码内容。IDE工具中输入“# ubble_sort()是一段实现了冒泡排序算法的函数请找出缺陷,先提示问题是什么,然后再给出修改后的代码” Copilot 能精准的定位到了问题并返回的信息。

  • 变量命名不规范。
# 输入不规范的代码
	def getAge():
    pass

提示词:请指出以上代码不符合规范的地方,并予以修改

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 您可以使用以下步骤将ChatGPT与Excel进行整合: 1. 使用API:您可以使用OpenAI的API将ChatGPT与Excel进行整合。您可以在Excel中编写代码,并使用API请求ChatGPT的回答。 2. 导出Excel数据:您可以将Excel中的数据导出为CSV或JSON格式,然后使用ChatGPT读取数据并进行处理。 3. 使用第三方工具:您可以使用第三方工具,如Zapier,将ChatGPT与Excel进行整合。该工具可以实现数据的自动获取和处理。 以上是将ChatGPT与Excel进行整合的一些基本方法,您可以根据您的需求选择最合适的方法进行实现。 ### 回答2: 将ChatGPT与Excel办公相结合可以实现多种应用和功能。以下是一些利用ChatGPT与Excel结合的方法: 1. 自动化数据输入:ChatGPT可以用来编写一个机器人助手,在Excel中自动填充表格或者更新数据。你可以使用ChatGPT编程,输入相关指令,它可以根据你的语音指令或输入文本来执行数据录入的任务,从而更高效地进行数据处理。 2. 数据分析与预测:ChatGPT可以结合Excel的数据分析功能,帮助你进行数据的可视化和预测分析。你可以利用ChatGPT提问关于数据的问题,它可以通过分析Excel中的数据提供相应的答案。例如,你可以询问某个数据的趋势、相关性或未来的预测值,ChatGPT可以通过Excel中的数据进行计算并给出答案。 3. 自定义函数和宏:通过结合ChatGPT与Excel VBA(Visual Basic for Applications,Excel的宏语言)可以实现自定义函数和宏。你可以向ChatGPT提出需求,它可以生成相应的VBA代码来达成目标。这样可以极大程度地提高Excel的自动化和可扩展性,使得办公效率更高。 4. 数据清洗和处理:ChatGPT可以作为一个智能助手,帮助你在Excel中进行数据清洗和处理。通过与ChatGPT的交互,你可以提出清洗和处理数据的需求,ChatGPT可以根据你的指令进行数据转换、筛选、去重等操作。 5. 编写报告与演示文稿:通过ChatGPT和Excel的结合,你可以向ChatGPT输入报告或演示文稿的要点和数据,它可以帮你生成相应的报告内容或演示文稿。这可以节省大量的时间和精力,同时确保报告和演示文稿的准确性。 综上所述,结合ChatGPT和Excel办公可以实现自动化数据输入、数据分析与预测、自定义函数和宏、数据清洗和处理,以及编写报告与演示文稿等多种功能。这能使你的办公工作更加高效、准确和方便。 ### 回答3: 将ChatGPT和Excel办公结合起来可以为用户提供更高效和便捷的沟通和数据处理体验。以下是一个可能的结合方式: 1.数据导入和导出:通过ChatGPT与Excel结合,可以方便地将数据导入或导出到Excel中。用户可以向ChatGPT发送指令,要求它将指定的数据从Excel导出到聊天窗口中,或将聊天窗口中的数据导入到Excel中,以便进行进一步的分析和处理。 2.数据查询和分析:用户可以向ChatGPT提出关于Excel数据的问题或分析需求,ChatGPT可以根据用户的要求读取相应的Excel文件,并提供相关的数据查询结果或统计分析。例如,用户可以询问ChatGPT某一列的平均值、总和、最大值、最小值等统计信息,并得到相应的回答。 3.数据处理和编辑:ChatGPT可以具备Excel数据的处理和编辑功能。用户可以通过ChatGPT的指令,要求对Excel中的数据进行排序、筛选、合并、分组等操作,并实时查看和确认结果。此外,ChatGPT还可以通过自然语言的方式,帮助用户进行数据清洗、格式调整、公式运算等操作。 4.自动化任务:ChatGPT和Excel结合还可以实现一些自动化的任务。例如,用户可以通过ChatGPT设置自动化的数据导入、导出和更新任务,定期执行特定的数据处理操作,以减少用户的手动劳动和提高工作效率。 总之,ChatGPT和Excel的结合可以为用户提供更智能、更高效的办公体验,使用户能够更轻松地处理和分析数据,并节省时间和精力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值