结合大模型进行降本增效之自动化测试

发表于:2024-3-29 09:35

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:木法星人    来源:CSDN

  软件测试中,有哪些步骤能结合大模型的AIGC和数据分析能力?
  1.生成测试用例
  利用GPT-3.5 Turbo的自然语言生成能力,让它根据需求自动生成测试用例。例如,你可以向GPT-3.5 Turbo提供关于某个功能或者页面的描述,然后让它生成相应的测试用例,包括输入、预期输出等。
  2.智能测试数据生成
  借助GPT-3.5 Turbo的文本生成能力,让它生成各种测试数据,比如随机的用户名、密码、电子邮件地址等,用于测试覆盖各种测试场景。
  3.自动化测试脚本优化
  在编写自动化测试脚本时,利用GPT-3.5 Turbo来辅助生成一些常用的测试脚本代码片段,或者根据具体场景生成特定的测试脚本逻辑。
  4.测试报告和分析
  结合GPT-3.5 Turbo的自然语言理解和生成能力,让它帮助我们分析测试报告,识别出潜在的问题点,并生成相应的分析报告。如文字分析报告,让它分析测试报告中的文字内容,提炼出关键问题、异常情况、改进建议等内容,并以文本形式输出分析结果。如图表展示,让它在测试报告中生成图表,用于可视化展示测试数据和分析结果。例如,通过生成柱状图、折线图、饼图等图表来展示测试覆盖率、通过率、失败率等数据指标,从而更直观地呈现测试结果。还有概要摘要,让它将测试报告中的关键信息进行提炼和归纳,以便快速了解整体测试情况,包括通过的测试用例数量、失败的测试用例数量、测试覆盖范围等。最后是建议和改进方案,基于对测试报告的分析,让它生成相关的建议和改进方案,帮助团队识别出问题,提供解决方案,并指导下一步的测试工作。
  今天我们用第二个“智能测试数据生成”来举例子
  使用免费的GPT-3.5 Turbo来生成适用于电子商务网站的虚拟用户评论。让它创建大量多样化的评论数据,用于测试产品页面的评论显示、情感分析等功能。
  案例说明:
  1.准备环境
  假设有了GPT-3.5 Turbo的token,并且拥有能够调用API的工具或者代码环境。
  2.明确数据需求
  思考你想要生成的评论类型和内容。例如,你可能需要积极的、消极的、中性的评论,涉及不同种类商品的评论,如电子产品、服装、食品等。
  3.调用大模型,例如GPT-3.5 Turbo API,使用Python编写代码。确保你的请求包括以下内容:
  ·提供上下文:例如商品的描述或图片链接,以便GPT-3.5 Turbo了解评论的背景。
  · 指定生成数量:确定你需要生成多少条评论。
  · 控制评论风格:如果你希望评论具有特定的情感色彩或者语气,可以在请求中指定。
  #使用Python调用GPT-3.5 Turbo API来生成模拟用户评论
  import openai
  # 设置你的API密钥
  api_key = 'YOUR_API_KEY'
  openai.api_key = api_key
  def generate_product_review(product_description):
      # 调用GPT-3.5 Turbo API生成评论
      response = openai.Completion.create(
        engine="text-davinci-003",
        prompt=f"As a tech enthusiast, I recently purchased a new electronic product. Here's my review of the product: {product_description}\nReview:",
        max_tokens=100,
        n=3,  # 生成3条评论
        stop=None,  # 可以在这里指定生成评论结束的标志
      )
      
      # 解析并返回生成的评论
      reviews = [item['choices'][0]['text'].strip() for item in response['choices']]
      return reviews
  # 生成评论
  product_description = "This new smartphone has amazing features and a sleek design. It exceeded my expectations."
  generated_reviews = generate_product_review(product_description)
  # 打印生成的评论
  with open('comments.yml', 'w') as file:
  for i, review in enumerate(generated_reviews):
      print(f"Generated Review {i+1}: {review}")
      documents = yaml.dump(review, file)
  4.保存生成的评论
  将生成的评论保存到yml文件中,后续用于测试。可能还需要对生成的评论进行去重或者筛选,以确保评论的多样性和质量。
  import yaml
  # comments是已经生成的评论列表
  with open('comments.yml', 'r') as file:
      data = yaml.safe_load(file)
  comments = data['comments']
  # 去重
  unique_comments = list(set(comments))
  # 筛选
  filtered_comments = [comment for comment in unique_comments if len(comment) > 10]  # 这里假设筛选条件是评论长度大于10
  # 再次保存到YAML文件
  data = {'comments': filtered_comments}
  with open('new_comments.yml', 'w') as file:
      documents = yaml.dump(data, file)
  5.应用于测试(selenium
  将生成的评论数据应用到测试流程中,例如用于测试产品页面的评论展示功能、情感分析算法等。
  # 假设你使用Selenium进行网页自动化测试
  from selenium import webdriver
  import time
  # 模拟用户在产品页面查看评论的操作
  def test_comment_display(comments):
      driver = webdriver.Chrome()
      driver.get("https://www.test.com/product-page")
      # 模拟用户滚动页面查看评论
      # 假设评论显示在页面底部,需要滚动到底部才能看到所有评论
      driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
      time.sleep(2)  # 等待页面加载评论
      # 验证评论是否正确显示
      comment_elements = driver.find_elements_by_class_name("comment")
      displayed_comments = [element.text for element in comment_elements]
      if set(comments) == set(displayed_comments):
          print("评论展示功能测试通过!")
      else:
          print("评论展示功能测试未通过!")
      driver.quit()
  # 模拟情感分析算法的测试
  def test_sentiment_analysis_algorithm(comments):
      # 假设这里是调用情感分析算法的代码
      # 这里只是一个示例,假设情感分析结果是基于评论中的关键词来判断情感倾向
      positive_keywords = ["棒", "满意", "好"]
      negative_keywords = ["失望", "不好"]
      for comment in comments:
          sentiment = ""
          for word in comment.split():
              if word in positive_keywords:
                  sentiment = "positive"
                  break
              elif word in negative_keywords:
                  sentiment = "negative"
                  break
          print(f"评论 '{comment}' 的情感倾向为:{sentiment}")
  # 从YAML文件中加载评论数据
  import yaml
  with open('comments.yml', 'r') as file:
      data = yaml.safe_load(file)
  comments = data['comments']
  # 应用评论数据到测试流程中
  test_comment_display(comments)
  test_sentiment_analysis_algorithm(comments)
  6.监控和反馈
  在之前这个测试过程中,持续监控生成的评论数据在测试中的效果和应用情况。根据实际测试反馈,可以进一步调整生成评论的方式和内容,以满足具体的测试需求。
  你是否对AI技术感兴趣,想通过掌握AI技术高效完成测试工作?现在私聊恬恬圈/甜甜圈,或识别下方二维码,添加天天圈,回复“AI”,了解更多关于AI的内容↓↓↓
  本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号