人工智能在软件开发领域的应用正日益增多,不仅改进了开发流程,也提高了软件开发的效率和质量。在各个行业技术会议上出现了越来越多的人工智能与测试结合的topic,这无疑成为了2023年测试行业最亮的技术方向。那么,为什么人工智能会突然爆火,又会给大家带来哪些价值呢?
12月09日,由CSDN与霍格沃兹测试开发学社联合主办的CMeet系列技术生态沙龙在京举办,此次沙龙以“人工智能与测试开发自动化”为主题,重点放在ChatGPT大模型的开发应用、企业私有大语言模型的部署与应用,以及将测试开发自动化与人工智能相结合的全面探索。
会议特别邀请霍格沃兹测试开发学社创始人思寒作主题分享《人工智能与测试开发自动化——系统掌握大语言模型在测试领域中的应用》。
为什么人工智能与测试的结合话题开始火爆?
在当今这个数字化时代,人工智能已经渗透到我们生活的方方面面,而以“生成式人工智能”(Generative AI)为核心技术的聊天机器人ChatGPT火爆全球,它无疑是人工智能相关话题的重要推动力。
另一方面,人工智能与测试结合离不开测试生成技术的发展。霍格沃兹测试开发学社也在大量地使用人工智能技术。ChatGPT的崛起,导致了很多原来因为人工智能实现起来成本比较大的事情,现在变得成本越来越低了。而且产品本身也非常好用,我们测吧内部所有部门,从开发到测试在到运营及销售全部都在使用AI。
思寒介绍,他所在的测吧科技在测试产品,应用人工智能的过程中,发现了很多的亮点,而且能解决测试行业很多的根本问题。他希望通过本次沙龙的分享,能普及相关的技术与应用,也号召更多同学能够去用起来人工智能。
本次沙龙主要分享人工智能与自动化测试相结合,通过ChatGPT、Copilot、如何 搭建私有大模型、如何自动生成测试用例以及通过知识图谱来解决持续维护业务及内容的更新等内容。
思寒指出,测试技术的发展先后经历了测试用例数据驱动、测试用例自动生成等发展阶段,测试用例数据驱动使用yaml、json等数据化手段来实现自动化测试,用户使用数据驱动可以更简单更容易地维护测试体系,降低使用成本、提高测试效率,增强了测试的可维护性。
测试用例自动生成技术则是通过转化其他的输入源比如har抓包数据、openapi接口规范、ui dom结构等数据到测试用例,实现测试用例的自动生成。测试用例的数据化与生成技术可以让测试人员扩大自己的能力边界,实现更全面的测试体系构建。
Chatgpt助力测试开发自动化
大语言模型(LLM)提供了一个非常强大的人机交互方式,让机器的语言理解能力追上人类,它能相对准确地理解人类语言,并基于GPT的方式为用户提供准确的预测结果。
思寒介绍,在ChatGPT快速发展的同时,基于代码分析的codex项目也自然顺势推出。具备敏锐嗅觉的GitHub 很快与Openai合作推出了IT届的王炸 GitHub Copilot,可以说是“代码界最强辅助生成工具”。
在演讲中,思寒着重介绍了GitHub Copilot的特点和优势。首先,Copilot能够根据上下文和代码库的分析,为开发者提供实时的代码建议,减少了编写代码时的重复劳动;其次,Copilot能够自动生成代码片段,提供快速的自动补全功能,提高了编码效率;此外,Copilot还能够处理复杂的逻辑和算法为开发者提供高质量的代码示例,帮助他们更好地理解和应用编程概念。
由此,一系列与ChatGPT相关的工具应运而生,例如由霍格沃兹测试开发者学社打造的Chatgpt智能学习助手,作为垂直领域的人工智能答疑助手,以其个性化学习路径规划、实时智能辅助学习、跨学科知识全覆盖、构建学习社群等亮点,为学习者提供更好的学习渠道。而基于人工智能的场景应用霍格沃兹开发学社模拟面试系统也能够助力技术提升,“升职加薪快人一步”。
当“知识图谱遇到深度学习”
知识图谱本质上是结构化的语义知识库,用于分析我们开发测试中各个关键领域对象通用的知识构建方法。首先要识别领域面里的对象,这个对象有自己的属性及对应的行为。这个东西在我们测试行业里叫PO,配置Object或API Object或者叫Domain Object。它可以识别研发写的某一个类,先识别出所有的对象,然后把对象之间的关系连接起来。关系里面本身也会有属性,把无数个知识点进行连接,最后就形成了一个知识图谱。
比如测试登录页,登录页本身是一个小的顶点,登录之后跳转到另外一个界面,另外的界面又是一个模型。如果登录失败又回到原来的界面,自己指向自己也是一个通用的模型,所以说利用这个方式,你需要有一套建模技术去生成图谱。
为什么要推知识图谱呢?因为现在的通用大模型本质上走的是一条基于连接主义的模拟人脑结构神经网络深度学习,最后导向聪明的人工智能。这条链路是基于连接主义,大量的数据连接,计算它们之间的关系,构建神经网络从而去生成一个聪明的人工智能。它能理解所有知识之间的连接关系,给它一个内容,它能非常方便的生成你要的结果。
还有一种是基于符号主义,虽然可以基于已有的知识进行连接,但是有些东西是需要很专业化的体系才能够进行构建。这就是知识表示、知识图谱和有学识的人工智能。比如说,可以利用它去查,我和在座的每位同学之间是怎么认识的。中间经过了多少人?它可以算出来这中间所有的关系。
基于知识图谱,我们就可以把前面很散乱的东西进行统一化的生成。比如说代码更新了,所有的东西没必要重新生成,只需要更新图谱里面部分章节、部分内容后,基于图谱让它帮我自动生成就可以了。
测试用例的本质是图谱里一条或多条,从一个顶点到最终另外一个顶点之间,所有经过的路径。像 graph worker 这类的工具,它就会帮你解决测试的生成问题。你只需要维护知识图谱,通过维护这个图谱你的用例规模会缩小10倍,比如原来有几千条用例,现在只需要维护一两百个具体的关系就可以了。
只要我们把图谱画好,利用模型驱动测试,利用知识图谱的概念就可以很好的解决测试用例爆炸的问题。
总体来说,我们用商业大模型 ChatGPT cloud,包括 Google 新出的大模型,国内的通义千问和文心一言等等,利用这些大模型帮我们分析文档。私有部署可以使用LLAMA等开源大模型,也可以分析所有的执行路径。它能分析出来你的知识有多复杂,生成对应的图谱,并导出到图数据库里,然后人工去修正部分逻辑。在基于一些工具,检索出你想要的测试路径,最终生成测试用例。
利用大模型、知识图谱等这些知识点的融合,大家就已经可以搞定测试里面的很多应用。像用例的生成、流程图的生成、代码的缺陷分析、 bug 的挖掘等,所有这些东西都是可以做到的。
会议现场
结尾
至此,由CSDN与霍格沃兹测试开发学社联合主办的“人工智能与测试开发自动化”专题沙龙圆满举办。如今,软件测试从最初的手工测试到自动化测试再到云测试,其智能化脚步也越来越快,随着人工智能技术的进展及其在软件测试中的应用,人工智能赋能软件测试在未来将会受到更广泛关注。CSDN将秉持信念,持续分享最新的技术和最佳实践,与大家携手应对AI所引发的新挑战,共同开启AI行业新篇章!
CSDN CMeet是 CSDN 基于城市域开发者成长与交流的活动品牌,CMeet 系列活动不仅包含技术生态沙龙、技术实践研讨会、CXO 闭门会、开发者读书会等线下聚会交流,同时还有“访谈位”中视频访谈栏目、线上技术交流间、公开课等线上交流形式。CMeet 系列覆盖北京、上海、深圳、杭州、武汉、长沙、成都、重庆、广州、南京、苏州、合肥12个城市,希望能使当地开发者在自己的城市中找到组织,共同成长进步、升职加薪。