在编写测试用例的过程中,测试工程师会通过需求文档,研发的概要设计等信息编写测试用例,测试用例的输出格式常常为思维导图或者excel等数据信息。

图片

在以上的流程中,一个测试工程师可以根据比较详细的需求文档以及研发的概要设计输出对应的测试点,以及测试用例。而如果和人工智能进行结合的话,人工智能代替的工作就是测试工程师目前的位置。

图片

实践演练

需求说明

接下来,则通过一个小实战练习完成整个流程,以下为某个产品的需求文档(需要右键另存为)。

实战要完成具体的操作为,根据对应的需求文档,生成一个思维导图。

实现思路

图片

完整代码

  1. from langchain_community.document_loaders import TextLoader

  2. from langchain_community.vectorstores.faiss import FAISS

  3. from langchain_core.tools import tool

  4. from langchain_openai import ChatOpenAI, OpenAIEmbeddings

  5. from langchain.agents import AgentExecutor, create_openai_tools_agent

  6. from langchain import hub

  7. from plantuml import PlantUML

  8. # 声明模型

  9. llm = ChatOpenAI()

  10. # # 1. 读取文件。

  11. loader = TextLoader("./需求文档.md")

  12. data = loader.load()

  13. # 3. embedding

  14. embeddings = OpenAIEmbeddings()

  15. # # 4. 向量存储

  16. vector = FAISS.from_documents(data, embeddings)

  17. retriever = vector.as_retriever()

  18. from langchain.tools.retriever import create_retriever_tool

  19. retriever_tool = create_retriever_tool(

  20. retriever,

  21. "search_demand",

  22. "找到需求文档中具体说明需求的地方",

  23. )

  24. @tool

  25. def generate_png(uml_code, filename):

  26. """输入plantuml代码生成图像并保存为文件"""

  27. plantuml = PlantUML(url='https://plantuml.ceshiren.com/img/')

  28. image_bytes = plantuml.processes(uml_code)

  29. with open(f'{filename}.png', 'wb') as f:

  30. f.write(image_bytes)

  31. tools = [retriever_tool, generate_png]

  32. llm_with_tools = llm.bind_tools(tools)

  33. prompt = hub.pull("hwchase17/openai-tools-agent")

  34. agent = create_openai_tools_agent(llm, tools, prompt, )

  35. agent_executor = AgentExecutor(agent=agent, tools=tools, verbose=True)

  36. result = agent_executor.invoke({

  37. "input": """我是一个测试工程师,我需要从以上的需求文档中梳理出来需求信息,请帮我将所有的需求梳理出来,"

  38. "思维导图的第一级是需求文档中的4.x开头的标题信息,表示功能模块,第二级是该功能模块的测试点,"

  39. "请先输出一个 plantuml 格式的源码,源码格式如代码内所示

  40. @startmindmap

  41. * root node

  42. * some first level node

  43. * second level node

  44. * another second level node

  45. * another first level node

  46. @endmindmap

  47. 然后再根据源码信息输出一个plantuml格式的思维导图文件。生成一个图片文件,文件名为 hogwarts加任意随机数"""

  48. })

一键获取完整项目代码

总结

掌握 LangChain 中Retrieval的使用。

掌握 LangChain 中 agent 的使用。

掌握通过 LangChain 将需求文档转为测试用例的技巧

 感谢每一个认真阅读我文章的人!!!

作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

 

          视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐