ChatGPT给测试工程师带来的机会和威胁

一、什么是ChatGPT

ChatGPT(全名:Chat Generative Pre-trained Transformer),美国OpenAI [1] 研发的聊天机器人程序 [12] ,于2022年11月30日发布 [2-3] 。ChatGPT是人工智能技术驱动的自然语言处理工具,它能够通过理解和学习人类的语言来进行对话,还能根据聊天的上下文进行互动,真正像人类一样来聊天交流,甚至能完成撰写邮件、视频脚本、文案、翻译、代码,写论文 [21] 等任务。

下面介绍几个ChatGPT的初步使用

二、ChatGPT对测试能做什么

2.1 ChatGPT 通过国际软件测试工程师(ISTQB)认证

近期,国外的一位工程师,放出了他用 ChatGPT 通过认证的相关信息

ChatGPT 相信大家都知道是什么了,ISTQB 相信很多测试小伙伴也不陌生,而且很多考证的小伙伴也对此梦寐以求。

ISTQB(International Software Testing Qualifications Board)全称国际软件测试认证委员会,是国际唯一权威的软件测试资质认证机构,主要负责制定和推广软件测试工程师认证 ( ISTQB-Certified Tester ) 体系。该体系由 ISTQB 授权各国分会,组织本国软件测试工程师认证,并接受 ISTQB 质量监控,合格后颁发全球通用的软件测试工程师资格证书。

ISTQB 是国外从事软件测试相关工作的必备证书;HP、IBM、Oracle、Siemens、SAP、SONY 等知名外企也是相当青睐 ISTQB 认证。

本次 ChatGPT 通过的 ISTQB 认证是 ISTQB 认证体系中的基础级别。ISTQB 基础级认证共 40 道选择题,单选,每道选择题分值为 1 分;考试时间为 60 分钟;26 分及以上视为通过 ISTQB 基础级认证。

ChatGPT 的最终得分是 31/40,正确率 77.5%。

这个正确率,拿出来足以打败很多软件测试从业者了。

2.2 使用ChatGPT编写测试用例和编写代码

在 ChatGPT 看到这么一个提问,如何针对携程订机票构建自动化测试用例。

下面是ChatGPT给出的答案:

1.给出测试流程,拆解测试点,并给出技术可行性方案

2.帮忙写自动化代码

对于测试用例的构建是仅供参考级别,但是已经足够惊艳到我了。

2.3 Python+chatGPT 编程 5 分钟快速上手

2.3.1 示例 1:利用 chatGPT API 实现文本处理响应

import os
import openai

OPENAI_API_KEY="xxxxxx"
openai.api_key = os.getenv("OPENAI_API_KEY",OPENAI_API_KEY)

prompt = "用Python写一个mock server"

response = openai.Completion.create(
  model="text-davinci-003",
  prompt=prompt,
  temperature=0.5,
  max_tokens=1024,
  n=1,
  stop=None
)

print(response.choices[0].text)

本示例是基于"text-davinci-003"模型来对 text 文本进行处理的,"text-davinci-003"是 chatGPT 最常用的模型之一。

运行结果如下:

这样就已经基于"text-davinci-003"的能力得到了我们想要的答案。

2.3.2 示例 2: 利用 chatGPT 实现 python 代码 bug 自动修复

import os
import openai

openai.api_key = os.getenv("OPENAI_API_KEY")

response = openai.Completion.create(
  model="code-davinci-002",
  prompt="##### Fix bugs in the below function
 
### Buggy Python
import Random
a = random.randint(1,12)
b = random.randint(1,12)
for i in range(10):
    question = "What is "+a+" x "+b+"? "
    answer = input(question)
    if answer = a*b
        print (Well done!)
    else:
        print("No.")
    
### Fixed Python",
  temperature=0,
  max_tokens=182,
  top_p=1.0,
  frequency_penalty=0.0,
  presence_penalty=0.0,
  stop=["###"]
)

从上面两者示例,大家不难看出,代码写起来并不复杂,不同功能实现起来的区别在于使用到的 model 以及设置参数的不同罢了,具体更多玩法,留给大家探索了。

“站在风口,猪都会飞!” 别人ChatGPT都用起来赚钱了,你可能连账号都没注册上。

三、参考文章

经验分享 程序员 微信小程序 职场和发展