AI测试|利用OpenAI的文本生成模型,自动生成测试用例的几个场景示例_ai测试自动生成用例(1)

2401_84562810 2024-07-24 15:31:01 阅读 55

img

img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

2.安装 OpenAI 包:

<code>!pip install openai -q

第2步:导入库

在你的笔记本中,导入必要的库:

从openai导入 OpenAI

第3步:OpenAI认证

获取你的 OpenAI API 密钥并进行身份验证,如下所示:

openai.api_key = 'your-api-key' client = OpenAI(api_key=openai.api_key)

第4步:定义测试用例生成函数

定义一个函数来根据软件需求生成测试用例。

def generate_test_cases(requirement): response = client.chat.completions.create( model="gpt-3.5-turbo", messages=[ {"role": "system", "content": "You are a helpful assistant capable of generating software test cases."}, {"role": "user", "content": requirement} ] ) return response.choices[0].message.contentcode>

第5步:测试功能

使用示例需求测试该功能:

requirement = "The system shall allow users to securely login with a username and password."test_cases = generate_test_cases(requirement)print(test_cases)

第6步:输出分析和细化

评估输出的相关性和完整性,根据需要完善提示或参数。

第7步:与测试管理工具集成

(可选)将输出与测试管理工具或存储库集成,以自动将新测试用例添加到套件中。

结论

你现在已经创建了一个工具,可以使用 OpenAI 的文本生成模型生成测试用例。该工具不仅节省时间,还能确保人工难以达到的一致性和彻底性。

未来的增强功能

集成GPT-4-vision-preview 以进行 GUI 测试。实施可重复的输出以保持一致性。使用 JSON 模式进行与测试管理工具兼容的结构化输出。

在软件测试中的人工智能动态领域,保持适应性和探索性至关重要,从而释放其全部潜力。

示例2:为购物车(Shopping Cart )功能生成回归测试场景

目标:自动生成电子商务应用程序中购物车功能的回归测试场景,确保新的更改不会破坏现有功能。

代码演练:

设置身份验证:

使用你的 OpenAI API 密钥向 OpenAI 客户端进行身份验证。

<code>从 openai导入 OpenAI客户端 = OpenAI(api_key= 'your-api-key' )

定义测试用例生成器函数:

该函数将获取功能描述并返回回归测试场景。

def generate_regression_tests(feature_description): response = client.chat.completions.create( model="gpt-3.5-turbo", messages=[ {"role": "system", "content": "You are a helpful assistant capable of generating regression test scenarios for a shopping cart feature."}, {"role": "user", "content": feature_description} ] ) return response.choices[0].message.contentcode>

调用具有功能描述的函数:

提供购物车功能的描述以生成测试场景。

feature_description = "Ensure that the shopping cart allows users to add items, remove items, and proceed to checkout."regression_tests = generate_regression_tests(feature_description)print(regression_tests)

评估和完善:

分析生成的测试场景,并根据需要迭代提示以确保全面覆盖。

图片

示例3:验证天气预报服务的API响应

目标:生成测试用例来验证天气预报服务的JSON API响应,确保数据结构和值符合预期。

代码演练:

设置身份验证:

使用你提供的 API 密钥通过 OpenAI API 进行身份验证。

<code>from openai import OpenAIclient = OpenAI(api_key='your-api-key')code>

定义测试用例生成器函数:

此函数将获取 API 端点描述并返回测试用例以验证API的JSON响应。

def generate_api_validation_tests(api_description): response = client.chat.completions.create( model="gpt-3.5-turbo", messages=[ {"role": "system", "content": "You are a helpful assistant that generates test cases to validate JSON responses from an API."}, {"role": "user", "content": api_description} ] ) return response.choices[0].message.contentcode>

使用API描述调用函数:

提供 API 端点的描述以生成验证测试用例。

api_description = "The weather API should return a JSON response with fields for temperature, humidity, and precipitation forecast for the next 5 days."api_validation_tests = generate_api_validation_tests(api_description)print(api_validation_tests)

图片

评估和完善:

检查生成的测试用例的准确性和完整性。确保测试用例检查每个字段是否存在以及数据格式的正确性。

用户说明:

确保替换’your-api-key’为实际的 OpenAI API 密钥。在 Jupyter Notebook 环境(例如 Google Colab)中运行每个代码块。运行测试用例生成器函数后,查看建议的测试用例。如果输出不令人满意,请细化功能或 API 描述以使其更加具体,或调整系统消息以更好地指导模型。迭代输入和系统消息,直到生成的测试用例满足您对覆盖范围和细节的要求。

通过遵循这些示例,你可以扩展 AI 驱动的测试生成的功能,以涵盖软件测试的各个方面,从而使测试过程更加稳健和高效。

让我们为此创建一个Web应用程序

第1步:创建 GitHub 帐户

1.访问GitHub 的网站。(https://github.com/)

2.单击右上角的“注册”按钮。

3.在必填字段中填写新 GitHub 帐户的用户名、电子邮件地址和密码。

4.通过 GitHub 发送给你的电子邮件验证你的帐户。

5.按照屏幕上的说明完成设置。

第2步:创建新存储库

1.登录后,单击右上角的“+”图标并选择“新存储库(New repository)”。

2.为你的存储库命名,例如“streamlit-test-case-generator”。

3.选择你希望存储库是公共的还是私有的。

4.使用 README 文件初始化存储库。

5.单击“创建存储库”。

第3步:将文件添加到你的存储库

1.在你的存储库中,单击“添加文件”并选择“创建新文件”。

2.创建一个名为app.py—这将是 Streamlit 应用程序的主 Python 文件。

3.将你的 Streamlit 代码写入app.py. 确保您的代码包含 API 密钥的错误处理,以避免暴露它。

4.创建另一个名为requirements.txt. 此文件应列出你的应用程序依赖的所有 Python 库,包括streamlit和openai.

5.单击“提交新文件”来提交新文件。

这是app.py:

<code>import streamlit as stimport openaiimport os

![img](https://img-blog.csdnimg.cn/img_convert/14257fb5cfa79b94f70f3807ce23244e.png)

![img](https://img-blog.csdnimg.cn/img_convert/64b5647dfdd82ec95b4ff646657d4dcc.png)

**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**

**[需要这份系统化的资料的朋友,可以戳这里获取](https://bbs.csdn.net/topics/618631832)**

**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**

)]

[外链图片转存中...(img-vxXAcMjj-1715721638098)]

**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**

**[需要这份系统化的资料的朋友,可以戳这里获取](https://bbs.csdn.net/topics/618631832)**

**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。