• 软件测试/测试开发丨利用人工智能ChatGPT批量生成测试数据


    点此获取更多相关资料

    简介

    测试数据是指一组专注于为测试服务的数据,既可以作为功能的输入去验证输出,也可以去触发各类异常场景。

    测试数据的设计尤为重要,等价类、边界值、正交法等测试用例设计方法都是为了更全面地设计对应的测试数据集。

    实践演练

    在批量生成测试数据中,我们需要明确数据的类型、格式、还有需求。然后再将这些信息输入到ChatGPT中,由ChatGPT帮助我们自动生成测试数据。

    那么如何让ChatGPT自动生成测试数据呢?

    1.要把对应的需求信息给到ChatGPT。

    2.规定好数据的输出格式。

    假设以下是我们的需求内容:

    要求添加一个输入框,输入框只能输入中国的手机号码。那我们可以使用如下的方式编写我们的提示词:

    • 提示词:要求添加一个输入框,输入框只能输入中国的手机号码。请根据以上需求帮我生成一些测试数据。
    很抱歉,由于我目前无法直接操作图形界面或添加实际的输入框,我无法为您生成实际的测试数据。但是,我可以为您提供一些模拟的测试数据,以供参考。请注意,这些数据是随机生成的,仅用于测试目的。
    模拟的中国手机号码测试数据:
    1. 13812345678
    2. 15098765432
    3. 13456789012
    4. 13987654321
    5. 13678901234
    
    请确保在实际测试中使用合法的手机号码,并根据您的需求进行适当的验证。
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    这样的返回信息明显没有考虑到异常场景,并不满足我们的需求,可以继续做进一步的补充。

    • 提示词:请考虑异常场景的测试数据
    当然,为了全面测试输入框的有效性和鲁棒性,您可以考虑以下异常场景的测试数据:
    
    1. 非数字字符:
       - 输入:abcde123456
       - 输入:1a2b3c4d5e6
    
    2. 长度不正确的手机号码:
       - 输入:1391234567(缺少一位)
       - 输入:138123456789(超过11位)
    
    3. 非中国手机号码:
       - 输入:+8613812345678
       - 输入:02012345678(固定电话)
    
    4. 特殊字符:
       - 输入:13912#45678
       - 输入:15098&65432
    
    5. 空输入:
       - 输入:(留空)
    
    6. 其他异常情况:
       - 输入:00000000000(看起来像是假号码)
       - 输入:19912345678(虽然长度和格式正确,但可能是未来的号码)
    
    请确保您的输入框能够正确地识别并处理这些异常情况,并向用户提供相应的错误提示或反馈。这样可以确保用户输入的有效性和系统的稳定性。
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26

    由此即可让生成的测试数据更加的完成。

    除此之外,还可以限定生成的测试数据的格式信息,比如需要将生成的测试数据给代码使用,可以限定测试数据生成的格式。

    • 提示词:以上的测试数据,请使用yaml格式输出
      a248f5da0326261e0bf8bf5765cd3bb2.png

    如此一来,即可通过不同的提示词,生成满足需求的测试用例。

    总结

    测试数据的生成其实也是遵循提示词的技巧与原则:

    1. 写清楚需求:需要明确测试数据的内容范围、数据类型等。
    2. 将复杂的任务拆分为更简单的子任务:如果一开始就计划生成一个比较复杂的数据信息,可以从输入的范围、格式等逐步拆解。
    3. 系统的测试变化:如果中间步骤输出的数据不满足需求,可以通过提示词进行纠正与补充。
  • 相关阅读:
    宝藏又小众的覆盖物PBR多通道贴图素材网站分享
    Git引起的 gitlab-runner 报错
    centos 上redis以及远程连接工具rdm安装与使用
    c++: 引用能否替代指针? 详解引用与指针的区别.
    Mac M1芯片Java开发环境搭建 · Maven安装
    信息学奥赛一本通2061:【例1.2】梯形面积
    (一)Apache log4net™ 手册 - 介绍
    C/C++学生综合测评系统
    项目人力资源管理
    使用Spark读写Parquet文件验证Parquet自带表头的性质及NULL值来源【Java】
  • 原文地址:https://blog.csdn.net/Ceshiren666/article/details/133017080