00:00
搞我都不敢上了,我觉得我们随意一点哈,因为都是咱们测试行业的人吧。然后测试跟开发这个圈里面的大家都比较熟了,我们就随意点,然后我讲的过程中啊,有任何的问题啊,大家反正也可以随时举手,随时举手去去提问他,不要搞得那么正式。今天的我内容啊,其实主要也是给后面的两位大咖呃做铺垫,算是抛砖引玉,那我由我说,我给大家讲一下我们呃人工智能以及跟呃跟测试跟开发这个领域里面的一个相关的一个结合,后面呢,会有两位大咖呃,来自于民企的大咖会给大家会给大家去讲关于视觉自动化在自己在行业里面的应用,以及用AI技术来去测试AI的产品,好,那我就先抛砖引玉,先带个头啊。好,那因为我们自己还也大量的在使用人工智能,那这个技术呢,从呃,从应该说理论说应该是从这半年开始吧,因为车GBT的崛起吧,导致了很多原来因为人工智能实现起来成本比较大的事情,那现在变得成本越来越低了,那而且是它的产品本身也非常好用,那我们几乎是我们所有的部门吧,从开发到测试到运营到销售全都在使用AI,那这个东西也非常好用,包括我们自己在测试行业里面的,呃,测试产品里面去应用它也非常发现了很多啊很多的这种亮点,而且能解决我们测试行业的很多根本的问题,所以呢,我们决定搞这个沙龙啊,能够普及一下相关的这个技术,那也号召更多同学啊,能够去用起来这个人工智能好。
01:40
OK,那接下来呢,我先来呃给大家去讲解一部分关于我们这一次的,呃呃,人工智能的在行业里面的一个使用,那我会主讲这样几个内容啊,第一个是test gpt,第二是cool,对吧,第三个是说我们如何去搭建私有大模型,第四个是说那我们呃搞搞定完你之后,如何运用它生成我们的测试用力,第五个那么测测试用力可以生成了,无论是自动化还是手工的,怎么持续的去维护我们所有的这些测试的资产。
02:13
那你的业务逻辑,你的自动化,你的页面以及开发的页面变更之后,你的用例如何及时更新?所有这些问题我们通过知识图谱来解决,所以我整个分享差不多分成这五部分。好,那接下来那我们就准备开始好,那在外面的同学啊,因为我们这一次也有直播啊,可能有些外面同学他可能也会也会看到那外面同学,如果说想交流的,大家也可以直接进这个群,然后在群里面如果想如果说如果说我们在直播的过程中,你可能不太好意思对吧,去举手提问的,你也可以在群里面通过微信的方式,然后直接那个在群里面去发一些你感兴趣的一个话题。好的,那人工智能在测业的应用啊,主要是分这三个方向,其实之前啊,我也给大家去讲过这一部分,那第一个是大语言模型,大语言模型呢,可以辅助我们做业务的分析,以及测试数据的生成。
03:06
那第二部分呢,是积极学习更深度学习应用,那主要是视觉自动化,区线预测的区预测和对应的一个挖掘,第三个是我们的大比较大的一个知识图谱,知识图谱是连接我们测试行业啊,测试开发行业的非常根本的一个技术,所以测试最后啊,无论怎么研究到最后一定会回归到知术部,好我们给大家讲一下这几个相关的方向如何去应用的,首先第一个是大语言模型,大语言模型最近这半年呢,非常火,有非常多的公司哈在搞啊,包括这前两天还比较火的一个,对吧,刚刚出来一个叫什么皮卡对吧,给你给一张图片,就会帮你生成各种各样的短视频啊,生成视频。啊,甚至说你基本上有用的拼凑电影都是可以的,那行业里面有非常多的非常多的这种啊,呃,人工智能的一些应用,那边有不少也是大元模型的,那也有一部分是其他的,可能用其他技术来实现的,那这半年来非常的火,那涵盖了视频语音生成对吧,数字人,包括说内容生成,各个方各个方方面面,你可以列成一个企业啊,想干的所有事情基本上都可以,现在大部分80%就可以靠AI来实现了,当然这也带来一个很大的问题,对吧,就是人工智能的崛起的确会对我们人类的工作,应该是说已经形成了很大的一个威胁。
04:24
只不过这个威胁呢,距离我们目前的技术行业的人来说,相对来说还小一些,因为现在人工智能他做开发可以,但他开发不了一个完整的产品,因为它缺少对应的业务知识,缺少对应的领域特定的一个经验,这个是他现在没有办法快速去做的,但是通用的体系,比如说我让他去写一个小的自动化脚本,那么就写一个小的这种计算器,甚至说让他开发一个小型游戏都是轻松可以做到的,所有开放性的知识,基本上人工智能现在都已经可以实现了。好,呃,清华大学前段时间开了一个叫什么chat DB吧,好像是是吧,模拟产品经理,开发测试三个小角色,然后去写出来一个具体的一个某应用啊,你可以看到那人工智能对行业的这个影响,影响是已经越来越大,那么最早被那当然对我们来说啊,对我们开发,对于我们测试来说,这个微小是非常小的,影响是非常相对来说比较小,目前呢,只能提高我们的效率,比如说能提高我们效率到30%~40%。
05:22
如果可以提高效率,30%~40%,其实也意味着说,反过来说,有可能会有30%的左右的人,他可能不会使用人工智能,对吧,只是闷机写代码的这部分人,那可能会受到一定一定的一个影响,就是你效率提升了,那么企业所需要的人可能就没有那么多了,那那第一波是影响的是谁呢?第一波是一些原画师,我之前听一个朋友说,他们公司是一家游戏的公司啊,原来有80多个原画工程师,就专门负责画画各种设计图,画一些,画一些相应的各种图像的画面,后来这一部分基本上材料的80%,只留20%的人做基础的设计,然后剩下的人全部使用,呃,使用人工智能来进行生成。
06:01
好,所以大模型哈,对我们行业的影响还是比较大的,只不过是我们还好,我们属于呃最后面的这一层,我们倒不是特别的担心他的一个,呃,对我们的一个影职业生涯的影响更多是来自于哪里呢?我们如何用它,把它变成一个工具是吧,然后用到我们自己的工作中,从而提高我们工作效率,让我们成为是吧,效率提升30%的人,让我们成为公司里面那比较重要的,剩下的70%的这个任务,好,那么大院的模型行业非常多啊,很多企业可能要各种采购,那么大部分企业,呃,如果说做一些很基本的应用,比如数字人的直播。一些短视频的生成,一些视频的生成,一些声音的合成,声音的翻译,所有这些相关东西,基本上你用这种商业化的服务就可以了,但是如果说你想在自己的公司扎扎实实的落地去做它这些所有的这些大冒险都不太可能做到,为什么呢?因为企业里面会有一些安全的,一些安全限制,比如说我设密,或者说有一些东西比较敏感,是不能够使用外面这些商业化的大模型的,所以这个时候第二步你可能要使用对吧,真开源的大模型,如果用不了商业大模型,那我可以考虑使用开源的大模型。
07:12
上一代模型,比如有很多工具啊,比如像。呃,拆BT是其中最经典的,也是全球社会大模型里面,相对来说啊,是通用大模型里面做的最好的一个,呃,当然呃,这个最好也只仅限于这一周哈,呃,这一周之前,因为这周Google刚刚发布了一个,对吧,Google发布了一个大模型也做的是非常好,据说是全方位碾压彻底GPT4,那我们也正在进行测试啊,那所有开放的大模型可以通用大模型,包括说一些开放的东西,一些商业化的东西啊,它本身在企业内,尤其是在国内大部分的企业是没啥用的,小的企业是没问题,但是如果说你是一家大型公司。比如像银行,像保险,像军工,像一些国企,相关的一些东西都有很严格的安全限制,你是没有办法轻松使用的,所以这个时候呢,我们就得考虑在自己公司那样去部署开源的大模型,那开源大模型也有很多,比如像一些羊驼啊,像拉玛,像一些其他的MPT之类的,相比之前好像在手机里面是不是也集成,好像也集成一个大模型。
08:12
好,开源大模型其实是很多企业如果要真正落地,那用它是最方便的,因为为什么呢?举个例子,我想分析一段我企业内的源代码,如果说我有一个GA仓库,GA仓库多少几十万行代码,几十行代码,你如果说你想用大模型对他做分析,你去调拆gpt,这个钱的销耗量是非常非常可观的,基本上用个一段时间,你就发现你就已经用不起了,或者说它的消耗是是比较大的,因为每一次非常简单的测试啊,或者说对代码有个有个更新,我需要去重新再分,再分析一遍,所有的相关的检索分析的都是很大的,尤其是这个原始的数据是非常大的,所以拆gpt这个费用虽然它非常非常便宜,但是呢仍然还是成本非常高的。我们之前给大家开源开放了一个大冒险啊,就是使用了呃gpt3.5,包括说部我们给部分同学开放了GPT4。
09:02
那GPT3跟GPT4,其实我们开放了一个网站,大家可以在每天都可以使用免费的,然后我们内部呢,也统计它每天的消耗量,每天通消耗量现在已经在逐渐的飙升哈,以前可能一天只有几美元,现在每天已经达到十几美元,几十美元,那可能后面随着大家应用越来越多,可能也会逐渐往上涨吧,到一定程度的企业就很难接受了,而且是目前使用我们开放的这个GPT3 gpt4的模型的这些同学,他们只是简单的模体,并没有真正的开始分析他们内部的企业的源代码,因为我没有开放的功能。一旦说分析了企业的源代码,那这个token消耗量是非常巨大的,所以在这个时候你没有办法再使用商业化模型了。这个时候我们就只能使用开源的大模型,那开源大模型里面有很多,然后国内的基本上就是通一些阿里的通讯,先问还有清华出的那个叫GM模型,这两个模型在国内算是做的最好的啊,我们我们也做过相相关的一个测试啊,简单测试这两个是目前国内做的是最好的一个,那呃,除此之外呢,还有一个是呃,有Facebook,就是现在的Meta Meta公司开源了一个叫做呃拉玛的大冒险。
10:09
那拉曼拉模型呢,有一些简单的限制,所以大非常大的公司是有限制的,那对于大部分的这个企业,其实用起来应该是这就没什么问题了,所以拉模型也是一个非常好的一个模型。好在开源大模型这一块,那么这里有一条什么,这是有呃浪禅官方给我们出出的一个,他画的一个开源大模型的一个图,里面画的也是比较全,所以我就引用这个图,好,那推荐的大模型就是基本上就是像拉玛,拉玛是目前可能目前特性里面是做的最好的,它不是完全开放,但它的能力到目前为止是里面最强的一个,所以大家可以如果在企业内要使用,比如说我用来开发一些做一些小型任务的开发,做一些自动化测试,脚本的生成,那么使用这个拉模型是其中最好的一个。包括阿里吧,阿里应该是前段时间也开了一个大模型,对吧,叫test agent,呃,Test agent里面它的底层其实也是使用了拉啊,一个是用他们自己公司的大模型,再一个是还有一个是好像是基于拉玛做定制啊,忘记是阿是蚂蚁还是还是另外一家公司,我忘了,反正有一家是基于拉玛做的定制的,还有一个是他们自己公司一个大模型,好,所以从目前来看,还有很多公司啊也在基于拉玛做定制,那拉曼的定制性,呃,就是它的本身的能力非常强,所以很多公司都会倾向于使用它来做定制,那我们其实直接用就可以了,你也可以基于拉曼的模型在上面做微调,那那怎么去答呢?后面会会做介绍的。
11:34
好,这是之前啊,我们给大家开放的一个小的服务,相信大家应该都用过啊,就是说就是网网址应该就是测PT点测试。com。然后这个网址呢,就是基本上是我们是长期面向怎么测试行业,呃面面向测试开发行业,我们整体全部是是一直保持开放的,那在这里面啊,你可以每天在使用它,如果你没有办法访问测PPT的官网,那你可以你可以使用我们这个小型的网站,那这个网站呢,它是3.5的模型,我们还单独搭了一个四点模四的模型,因为四的模型token的付费量是3.5的十倍,那十几倍,所以呢,那个我们会申请才能才能使用好,这是两个主要的一个,我们自己还搭了一个网站,除此之外呢,我们还做用人工智能哈,也做了很多有趣的小东西,也就说两个小的一个小,这两个小的呢,是我们是一个叫做。
12:23
呃,小的一个模拟面系统,这个是借鉴了某一家大的公司,他们有人工智能开发一套模拟面试系统,所以我们也借鉴了他的这个思路,自己也搞了一个小的啊,这是我们随便呃两个比较简单的一个应用,你可以通过这两个小的服务了解一下拆机PT页对吧,包括这些通用的模型的一些基本的一个用法,好,那么有P可以干什么事呢?PT。呃,PT啊,包括Co,包括说那个一些啊,其他的这些公司开大,包括百度的文吧这个文献言,那么他们能做什么用途呢?对吧,首先是所有这些通用的大模型,它有个共鸣特征,就是首先他们本身是基于深度学习,基于底层的,对吧,人的模拟,人的一个神经网络,神经网络呢,现在呃,之所以很原来很多深度学习的框架,它本身啊,能力一直上不上去,那这些大家一直在优化很多方法,其实后来呢,是从开始这家公司采用了一种暴力伪的方法。
13:21
就是它采用的是更加啊简单暴力的办法,那我简单的提高我的参数量,那为什么要提高参数量非常有效呢?是因为人脑就是人脑的,之所以人比机器啊,到到现在为止啊,人比机器有更多更强的一个推理,主要是人脑本身的神经元对吧,神经突出那就决定了,那现在人脑的神经元数量有多少,好像我记得是应该是1000亿左右。突触差不多,呃,就是有这些神经元组织,那一个突触差不多是在100万,好像100万亿左右,也就是说如果一个大模型的参数,如果它也模拟神经网络这个计算的体系,那么它的参数量如果说也往上进堆,往上去堆,堆到1000亿,堆到100万亿,那么这个机器所产生的智商是肯定会要超越人类的,是吧?当然可能还有一些其他的因素,在整体上是它采用这个方式,如果用这个方式来去做,那么它的很多的对人类知识,如果有充分的一个检索分析,再加上本身这个深度学习的一个应用,那么理论上说它的智商会逐渐的超越人类,你只要对硬件,对参数量,对训练时间,那么你就可以超越这个人的这个,呃,人的一个智商,所以说很快啊,很快说。
14:31
因为最近这半年很多大通用大冒型的参数呢,都在网上的快速的是吧,在上升,尤其是英伟达出了大量的那个显卡,对吧,我记得有一天我表较现的是英伟达本身那个叫做嗯,叫什么呢?就是呃呃,它有一个大机,那个叫叫什么型号我忘记了,就是就把所有的显卡,尤其大型的计算,呃计算芯片整合到一起,多大呢?那之前应该有看过那个它那个发布会吧,应该是。基本上就跟一个房子一样大小,我们知道我买一个小的40904090显卡,对吧,非常小,可能也就这么大对吧,那就跟一个小盒子一样,那很多奇迹呢,会买,呃A100对吧,A100包包括H800对吧,各种各种型号往上去堆,那这个呢,可能稍微大一点,然后再往上,它直接堆了一套房子,因为大直接造一套房子,专门用来做这种相关的一个计算,按照这个对吧,这种硬件按照你的训练时间,加上你的训练的一个语料,你人力的知识库整体结合起来,那基本上现在大模型可以说已经逐渐的或者很快就超越我们整个人类的一个推理能力,但是现在的推理整体还比较弱,但是随着说它的这个对吧,整个参数量的增加,训练时间的增加,超越人类是很快的一个事情。
15:45
好,那么由此带来一个什么变化呢?就是。整个CBD或者通用大模型,它解决了两个问题,第一个是人类语言的识别问题,那以前我们使用ARP啊,使用各种技术,那效果可能也不是特别的好啊,但是效果也OK,但是不是特别的好,那现在使用大模型的这个方式,那简单对算数量结果呢,他对人类的语言理解是非常非常准确的啊,甚至说你还能揭示,还能接受人类的各种暗示,那么至说还有一些自己更强的一些自己的一个推理能力,所以说基于这一点,他会形成两个最基本的能力,第一个是所有人类语言的理解能力,无论是哪一哪一国的语言,甚至说对一个未知的语言,它也可以,它可以也可以有能力进行相关的一个解析,所以这很强的能力。第二个呢,是所有的编程语言,Pyon Java,然后skyva,对吧,包括一些R脚本,所有这些东西他也可以做到,所以基于这两个重要的能力。
16:39
那尤其是他们训练语料里面带有一个通用的人力知识库,什么知识库呢?微机百科吧,所有的图书,所有的一些那个就是GI上的大众的这些代码,所谓这些能力结合起来,基本上这就是一个跟人一样聪明,同时呢,又能够深入的理解每一类是吧,相关语言的这种这种能力,有了这两个能力就能带来非常大非常大的应用,对吧,那我们,哎,我们说一下它常见的几个场景,对吧?第一个是说常见的一个代码的检查,代码的生成,代码的检查,Bug的一个识别。
17:09
进入代码生成方面,微软最近出了一个工具叫auTo Gun也非常不错,Auto根叫做可以模拟啊,模拟帮你执行任务,比如你只要给个任务,它会自己编程,编完成之后呢,然后自动去执行,执行完成之后呢,再逐渐的修正自己,最后给你一个反馈,所以这个是智能体,这也是个非常非常做了一个非常好的一个智能体了,好,我们从里面挑几个,对我跟我们测试来说啊,关系比较多的。第一个是说那做一个测试程师,我想让他去分析我们公司里面大量的代码啊,那拆PD呢,基于拆PT,包括拉这样的模型可以对代码进行分析的,那这个是拆gpt官方官方给的一个例子啊,一旦错误摆出的一单代码,然后让他扔给拆gpt通有同一个模型制作分析,那分析完成之后呢,让他给一个对应的结果,你可以看到,如果说基于下PT,那做基本的代码检查和一个基本的大ug识别是没问题的啊,最后呢,他会告诉你说这单代码总共有多少条报错那一条一直到七八条啊,他都可以帮你分析的出来。
18:08
好,所以基本的代码的分析能力都是可以的,那代码的生成更是没问题,大家用过get have的扣类的,一会我们给大家做个演示啊,Get的扣类的,它也是可以轻松可以做到的,那甚至说对代码进行修复,我不只是发现缺陷,我还可以修复你的代码。它可以直接进行修复,那修复完成之后,给你一个正确版本的一个代码,那这也是目前get up的Co所干的一个事啊,大家问,呃,应该是有用过,叫呃呃Co吧,比如说这个工具。找一个。选一个。好,我打开一个弹幕项盘,好,这有两个比较有意思的,就是giitar的客呢,我本身本身已经装了,那么giitar的客呢,它本身来自于谁,来自于open技术啊,是open I,原来有个最早的模型叫code X code X模型呢,可以分析代码,对代码进行相关的一个解析,它最早是基于这个模型的,然后get up呢,最早是跟open进行合作,同时呢,把自己get up上所有的这代码。
19:11
所有的代码的问题,Github拥有什么东西呢?Getthub拥有全世界的代码,全世界的拥有项目,它都它都拥有,第二个呢,它还拥有另外一个问题,什么东西呢?是你在GIHUB里面所提交的那些代码修改记录,还有giub上的大量的A手讨论一手。里面有什么有所有的bug的bug的,呃,一些问题,那bug讨论的一些原因,包括bug的修复方案,所以get up,你可以解成get up,它可以训练出来全世界最智能的写代码一个工具,怎么用他的写代码呢?我给大家,呃,然后我们找一个随便找一个。课里的例子啊。我就以这段代码为例啊,这个代码重面写一个啊,我放大一下,我就简单给大家演示一下,嗯,好,比如说你可以这样说,那么啊,这个应该没有开启吧,看没开启。
20:12
好OK,谢好你,其实你可以这样想,当然我能这样了,好,看一下我就把这个代码复制过来啊,嗯。是这个,比如说你可以这样写,叫做实现对吧,一个计算器。嗯,那你看,当我刚开始刚写前面几句话的时候,它会自动提示我后面可能是你想写的东西,那他说输入两个数字计算加减乘除是吧,按一下贴不键对吧,也就说不只是代码,它你连你简单简单写这些注释它都可以猜,然后自动帮你去推理生成,好,那我们就实现这一个简单东西,那接下来我就可以写写代码了,对吧。
21:02
对吧,然后clc。我改成CAC。你看,嗯,简单的话,我们挑的总共也就是几个字符,然后从知识的编写到代码的直接生成,就可以实现按一个贴键,那么最简单的一个代码可以写出来,当然这个代码写的很弱啊,如果说你想给他做增强,那你就补你的,补你的这个提示词,这其实本质上就是提示词,客号里干你什么事呢?就是当你输入个东西的时候,他会实时去查查,你可以解成他自己的一套服务,他自己的服务其实就是类似于的这种服务。然后接收到你的检索,从里面推论出来你下一步可能要写的东西,然后把注释给你生成出来,当你写了一部分代码的时候,同样把这个代码同样通过拆PBT啊,类似于BT的东西当然是他自己搭的服务,然后检索出来剩下的代码直接给你生成啊,同样你也可以这样实现说我有了上面这个函数了,我想对它执行对应的测试。
22:01
嗯,行,我下面还没写呢,他已经可以猜出来了,基于我过去写代码的习惯,因为猜出来你现下一步是不是要生成,对吧,下一步要生成这个函数单位测试用例,我再放大一点,嗯,是吧,然我才能是这样子的,要求覆盖所有的分支,它为什么能出来呢?是因为我以前写代码的时候,我也留的这一部分东西,因为他本地分析的时候,他会分析你所有写过的代码。再结合开放的,开放的类似于一样全球的知识库,最后帮你总结出来,你大概写个那什么,你看这个东西完成之后呢,这个只需要写代码就可以了,你看我啥没写呢,我就简单一个回车,所有的测试用例也直接帮我们写好。嗯,这个这个测试用例里面,而且是你给他提要求,你让他覆盖所有的分支,那就可以帮你覆盖所有的分支。啊,那这个功能是其实啊,虽然说这个小的例子,这个例子啊非常小,但是呢,可以告诉大家,就是如果说你用它分析更大规模的代码,它其实也是能做到的啊,比如说你给他一个大型的加构项目,你让他分析一下,说这个架构项目里面帮我写一个整体的一个单元测试,呃,整体的一个单元测试,他可以把Mo怎么去,Mo对应的函数怎么去执行,怎么去填充数据,执行到特定分支的所有的东西全都会帮你实现,你可以试着给分,让他分一个更加复杂的价格项目都可以搞定。
23:24
好,所以说的两个小例子啊,你可以看到go get up的扣号的扣号力呢,本质上跟PD啊,是属于非常非常接近的两个栏目实现,因为get up的扣号本身就是基于open a技术,Open a最早的一个叫code的X模型,专门分析代码的。好,那对于我们来说,我们用来干什么?当然是分析我们自己研发的那些代码权限。我们会有两个事情啊,第一个是让它生成我们的自身用力,第二个呢,是分析研发的代码有没有去对应的缺陷,利用这两个就可以搞定它本身啊,缺陷的能力,理解能力现在还不是那么的强,他所拥有的是通用的知识,通用的知识呢,比如说代码语法错啦,然后某些东西计算逻辑上有问题,所有的人类的经验它都可以赋能给你,你用它可以发现代码中的很多,呃,对吧,我们想不到的一些异常情况,它是可以分析出来的,但是还有一些啊,属于特定。
24:15
非常复杂的一些,比如特定领域,领域里面的一些这种分析方法,他目前还不是那么的擅长,像什么地子领域不擅长呢?举个例子,我们有很多代码分析的工具,像像一些SC,像find,对吧,像各种各样的一些这种安全漏洞的一些扫描工具,这里的东西是他所不是那么擅长的。那这一部分怎么让他擅长呢?你把这个规则解析出来,同样扔给人工智能,扔给通讯大模型,他进行微调就可以了,对,那通讯大模型选什么呢?我后面就是给大家推荐的,就是选拉玛就可以了。好,整体来说就是基于get的扣,能做的事情是,呃,能够让你的开发的效率吧,提高百分之二三十是没问题的,官方统计都是30%以上吧,应该是。
25:03
啊,我们实际写的过程呢,因为我们也经常经常在用它实际写的过程中,百分之二三十是是没问题的,都没问题的。好,能生成circleql,能生成代码,各个语言代码能够帮你生成单位测试,甚至还能生成集成的测试,比如我让它生成一个web的,Web自动化的测试加呃接口的测试,其实都可以生成啊,呃,Co本身其实就是啊,就是open AI BT这个模型的一个延伸,但是呢,它结合了get up自己大量的这个开放的这个代码数据,就这一点是get get Co get up Co的最大的一个优势。如果说你要使用使用这个东西,它现在是付费的,它底层是有API的,如果说你想拥有拥有这个能力,这这个能力呢,是是open没有的,就拆的gpt都,如果在写代板能力上都没有扣发墙,如果使用它你就可以使用它的API是吧,融入到就结合起来就就可以了,当然这个是呃商业化的模型,就是也要付费,或者要把你的代码传到外面去,这个呢会有一点问题啊,安全隐私上会有一些问题,所以大家用的时候呢,呃,如果你的公司接受,那么你可以使用它啊,或者调到API来分析自己公司的代码,那如果说涉密的话,那你就采用开源大方型来解决就可以了。
26:20
好,那前面我们提到的几个几个方案,那商业化的大模型,商业大模型目前最小的就是呃,国外最小的GBT啊,包括Google刚刚开放的这个大模型,也包括cloud的大模型是吧,这这几个是通用大模型做的最强的一个,就整体来说,GT目前来说仍然是全球生态最好的,做的最智能的一个。那第二个是说国内,国内的像通讯千万啊,百度文心语言做的也OK,对吧,然后是开源端模型,我想用起来,那么这有这样几个选项,一个是由Meta发布的叫拉码模型拉玛,尤其是就的拉MA2,它有三个分支,一个是基于聊天的chat模式的这个优化的一个一个方式,一个是基于指令集做改进的一个一个一个分支,再一个是基于纯代码生成的一个分支,叫code code拉这三个模型大家可以用起来,所以目前来说啊,通用大模型最好的其实就是这个拉码啊,把它呃在自己公司里面你可以布起来,怎么布它呢?
27:23
一个非常简单的显卡就可以做到,基本上就是4090嘛,40904080都其实也都可以,然后再低一点,4070对吧,4070其实也是能不起来了,4090只是说因为特殊的原因可能被被嗯被美国制裁了,至少说英伟达的,呃,官方好像我看已经下架了,不知道什么原因啊。好之前,然后是还有一些就是消费级的显卡,基本上就是4090以下的,其实也是能跑得起来的,然后是服务器,随便找一个小的服务器,基本上说你有一个30多G60多G以上内存,基本上都可以跑起来,所以这个在自己公司里面很轻松就可以部署起来了啊,我的个人电脑上都已经部了,然后如果说在学习的过程中,哎,你想用它还是非常方便的。
28:09
那国内然后如果说你想来自己公司部署,自己公司部署就是使用质的这个这个A型。那他是顶着清华的名义啊,就发布的叫Cha GM,然后他的保险本身的费用还挺高,嗯,所以这个呢,呃,大部分公司呢,可能应该是30万起步吧,还是挺贵的,那大部分公司如果说不太愿意,不太愿意用这么贵的,那么你就使用拉玛一般是什么呢?国企的军工的,他们出于安全隐私的需要,他们也会布。因为Meta本身是来自于海外的,所以国企也不会用,那没得选择,所以我唯一能选择的就是这个清华他们出的这个叫GM,所以国企现在有不少的公司啊,在在买这个平台,然后在部署。好,然后阿里开源的婚礼千万也做的非常的不错。阿里本身也有对应的硬件嘛,然后有大量的也买了非常多的显卡,国内买显卡比较多的几家公司嘛,阿里。
29:03
然后那个百度吧,还包括一些其他的公司吧,就这两还还有腾讯,反正就这三家公司里面是买线卡买那么多,所以他们现在的模型是肯定属于最好的,因为人类知识他们基本上都有,而且都差不多,然后训练的成本,现在就是训练的时间和成本,那么目前从英伟达的销量上基本上可以看得出来,这三家公司属于真真真正的是花了非常多的钱,花了好几个亿,然后就买了各种显卡,然后所以他们甚至的大冒险肯定是最好的,对吧,所以大家选其中一个就行了,其中开放性最强的就是阿里的,你问然后其他的公司百度啊,好像是没有没有开放,对吧。好,国内的三个选择,如果说你是国企和军工,那么你可以考虑清华的这个GM模型,如果说你是一家普通的互联网公司,互联网公司我不是特别的在乎隐私,我只是想用这个东西打码,那么足够了,不用花钱,其实就可以不起来,只需要买一个硬件的成本。第三个如果说我想在公司里面对吧,能够呃,用的更用的更好一点啊,同时也有一些啊中文,中文方面非常高的要求,那么可以考虑使用阿9000。
30:12
好,那么在这里面要想用好它,使用几个经典的技术,一个微调,一个是IG,把你所有的文档扔到向量,使用向量数据库去做,这个用来做检索,第二个呢,微调把你企业的知识库,垂直领域的知识库,以及你的各种内部的。各种各样的一些代码知识,全部喂他啊,当然微调也是稍微全部训练,有成本,微调也有成本,成本最小的是IG的技术,使用这个检索增减生产来搞定,那么整体来说你的成本就会降的非常非常的低,对吧?好,这是几个通用的知识,那我们自己啊搭了一个小的两码模型,比如我在本地啊,大力非常小,Lava呢,具有完整的open AI的,呃,就是跟openi兼容的一套体系。布完之后呢,它有一套API,跟check pd是一样的,既有推行界面又有API,你可以用它来分析你公司所有的代码,那如果说简单使用,那肯定把搭一些简单的这样的方式就可以进行部署,那如果说你想呃分析你的代码,这个时候通常是需要使用API的方式去去进进生成的,所以这个时候呢,简单的一个界面可能已经满足不了你的一个需要了,所以这个时候你可以是考虑自己去开发对于你的体系。
31:29
怎么开发呢?前以前的时候也相对来说比较困难,现在有了很多的技术啊,已经逐渐的可以实现,让你很轻松的去开发出来对应的对应的这个,呃,大模型的一个应用,那我举一个小的例子啊,给他推荐几个技术吧,好,第一个是什么技术呢?是说我要我想开发这些东西。开发大模型,第一个是有一个叫long这个嗯,是吧,好long呢,Long那个做的是什么事情呢?就是大语言模型的通用开发。
32:00
他干了什么事呢?我给大家放大一下这个图啊,我肯定也就我就直接看官网。他给你提供了一个所有通用大模型的一个封装,也就是说我想用open AI想用拉玛,想用GM,你用任何的模型都是可以轻松实现的,它有,它把所有的模型都做一层封装,也就是在这个代码里面,你的模型可以自由切换的,然后第二个是什么呢?是说嗯。他给你提供了一套大模型开发的通用流程,比如说我的提示词工程,我要做调整,那么OK,他给你提供了提示词,呃,相关的一个功能的封装,然后我让他,我让大家通一下模型生成了一些代码,对吧,生成了一些Python的Python代码,生成了一些自动化的测试用例,生成了一些手工的测试用例。这些东西如何把它导出呢?那官方也封装了一个东西对吧,就是pass可以解析你的内部的代码,嗯。然后是那个,呃,然后是,然后剩下的是一些其他的,比如他也集成了一些向量存储,你可以在里面分析你内部的文档代码,把它放到你的向量的存储里面去,同时呢,也提供了一些智能体的实现啊,简单的一些QA模型,一些推理模型啊,利用这个方式帮你实现这个编程实现,那么里里面你使用Python轻松就可以开发出来,所以long是其中比较推荐的一个比较经典的一个框架。
33:28
第二个呢,我有这个体系,我是不是已经可以做到一些啊通用打模型的生成了,如果还有一些视觉的,比如说我要做视觉自动化,我要去识别一些视频图像,音频的一个转换,那这个时候你可以使用哪一个呢?就是hugg face哈,Face呢给我们提供了一个叫做呃Hu根face平台,是一个非常强大的大模型平台,你可以列成所有的全世界大模型都可以通过这个平台找出来,这个叫做hugging face。好呢,它内部我们提供了一个叫transform transformers的一个库。在这个地方,Transformer。
34:04
你可以利用transform呢,开发调调全世界所有大模型,不只是大阅模型,还包括说以及其他的各种各样的一些模型,深度学习的模型都可以实现,从音频到视觉到各种对吧,通用的模型对吧,I'm都可以实现啊,就我们举个例子啊,我们QA上跟我们测试来说啊,测试开发来说,我们非常关注的是什么视觉自动化。世界自动化,比如我有个游戏,我想做自动化,那我怎么做?我有两个选择,以前的话使用的是什么?Secret使用那个叫做呃,阿里网易的l test l test呢,可以通过截图来实现对图片的自动化,但是截图这个东西很难维护的,是吧?那我举个例子,比如说我们做一个游戏,游戏上有一个小的logo,就有一个小动物,它直接来跑,但这个游戏呢,因为各种原因,我需要啊,满足不同行业的应用,可能今天呢是个兔子,明天就变成一条狗,后面变成一条狼,后面变成一条熊。
35:04
啊,就跟棋牌类的游戏一样,我的牌我不同的情况下,我也许里面的主持对吧,可能是美女,可能是个帅哥,可能是好多好多东西你要靠截图去适配它,是不是比较费劲,对吧?那我怎么办呢?以前是靠是靠截图,现在怎么办?哎,我们就可以靠深度学习了,甚子运因怎么做呢?Transform呃呢,就给你提供了这个能力,它可以做一个视觉的一个,呃,视觉图像的一个识别,对吧,我就以这个为例。啊,比如说我们选择说这个里面,我们找一个找一个官方的一个例子啊,官方购的一个例子。OK,官方更新了。比如说这这是一个对象探测的一个例子,那如果说我找到一个APP或者一个网页,我在网页里面去尝试去识别其中的一个关键角色。啊,到底是一个人还是一个,有没有人脸,OK这样子,比如说我是个棋牌类的小游戏,现在主持人天天在换啊,今天是个美女,下一次变成帅哥,可能又是个小孩子,那或者说又是某个小动物,OK,那么你只要把对应的数数据给到他,截图给到他,让他自己去分析,图里面到底有东西,有多少东西,他能分析出来什么呢?里面的基本的对象,以及对象的X轴Y轴的距离,在X轴Y轴两个顶点。
36:21
也就是说我通过这个框就可以框出来这个关键角色的位置,有了这个位置,我是不是可以通过计算两个坐标来算出来它的中心点,接着呢,发送自动化的点击就可以实现了,是吧?所以你可以看到啊,对象的识别就可以集成到我们现在的ipm s这样的测试框架里面去。那怎么击中它呢?就使用串方库就可以了啊,串库给我们提供了可以对图片进行分析,然后分析出关键的一个角色,识别出它的坐标轴,然后接着你就会模拟点击就可以实现自动化了。好,这个技术呢,其实在IPM很早的时候就已经实现了,IPM有个插件叫做AI的一个插件。
37:01
好,只不过那家公司现在应该是好像是呃,美国一家公司啊,好像是不是那么靠谱,对吧,其实有另外一个叫IPM,那个叫AI的一个框架。嗯,这个代码当时合同年前IM就已经实现了,有人开发出来一个四年前。最早是集成了test.ai但是AI这家公司好像是已经倒闭了,应该是。所以这个插件可能是不太能用了,但是它是可以对吧,它所有的探测代码在里面都是有的,那用起来也非常的简单,比如说我想用Python写一段这种用AI去做自动化代码,你可以参考,你可以参考它的事例是吧,比如说在这里面它是这么去做的。嗯。啊。在这里面,比如说选一个,看有没有例子。嗯,他代码写的稍微有点长。好在这里面吧,Crpc文档写的也一般对吧,只是提提供了一个简单的一篇啊,在这有个。
38:02
可以看到啊,它差不多就这么写的,client.get我先打开一个网址,打开一个网址之后呢,我用client find element是不是匹配一个标签,我打开网网站看下这个网站里面有没有一个推小logo,如果有对吧,我就点。这个方式你会发现非常简单,通过这样的一个方式,我就可以实现说,呃,基于图像识别啊,去完成我的一个自动化。好,我们后面当然也还有后面还有两个专家会给大家去讲视觉自动化更强的应用,好我们回到PPT,所以你可以看到利用呃商业化模型设BT跟GI他的口抛类的,以及各种的一些客类的系列,可以帮我们交互式的生成代码,生成测试,然后是自动化的去执行它。所以这些东西是能力上已经可以满足需要了,如果说企业内向私有部署啊,尤其是一些注重隐私的公司里面,那么你可能要使用拉玛这样的体系来进行部署,拉玛怎么来玩呢?给同样也给大家推荐一个好的方案,什么样的方案呢?这个欧拉玛这个方案在所有方案里面,当然有很多很多也非常不错啊,比如像provide GT,好,同样这有几个项目啊。
39:16
我把这个好,嗯。一下这个叫做呃T这个小项,这个项里目前可以把大部分的源GT集成到你的,集成到你的这个自己企业内部去的,所以使用这个技术啊也是非常不错的,它提供一套这样的一个私有化的一个界面啊,是有化的一个模型。好看这里面,好这个在这里吧,好看差不多这样一个界面,就是先给您提供一个小的界面,同时呢,也支持你支持集成大部分的模型。
40:00
是吧,大部分的模型多少模型呢?我们在下面看一下,它结构了一堆的像。看他有没有列表哈。这个。问问吧。好,官网里面实际上难以模型呢,是在40点。啊,所以私有化部署的时候,我给大家推荐啊,推荐这这几个模型找一下对这个文章。手册啊。那它这个LM后端。嗯,找一下。I。就是它本身呢,提供一个大量的后端,利用这个方式你就可以实现说呃,发一些通用的拉拉模型啊,一些常见的各种模型来看一下是不是在这儿。
41:07
它的。看一下官方有没有体验。嗯,就是常见的拉模型,它是可以支持的,但是官方文档可能被他挪走了。看一下它的官网。他没写啊,关了调整了。啊像就是基本上大部分的模型可以通过它可以被寄承过来,它其实只是个通用性的工具,好这个叫做provide gpt,还有一个也非常方便啊,在国内是目前还没有被拦截的一个,在奥拉玛,奥拉曼呢是可以,它也集成了大量的模型,这个模型里面啊,在这这个网站能看的比较清楚一点,对吧,比如说它的各种各样的一些聊天模型,然后代码生成模型,图像生成模型。然后LA玛主要是其中的Lama two跟Co LA玛这两个模型是我们现在啊主到的这个模型呢,在国内还没有被抢,速度是最快的,使用欧拉玛简单几个小命令就可以快速部署起来,它我本地也不啊非常非常方便,然后国内下载速度是十兆以上,轻松就可以当到本自己本地来,就是目前我少数的几个还没有被封对吧,不用去挂代理去上的,去上获取这个模型,这欧拉玛。
42:23
欧拉模型也非常不错,一个provide gpt,一个欧拉玛,这几个模型呢,都是有launch官方推荐的吧,这里有个文档会告诉你说对吧,怎么在本地部署你的私有大模型吧,在这应该是有这个叫做。这好,他推荐了几个方案,CPPGT,然后以及provide GT这几个模型,嗯。好,所以这通用大模型都很简单,就是它内部集成了多个开源的大模型,然后云你在里面啊,通过一个API的方式直接进行调用。
43:00
好,这就是几个开放,呃开源的大模型的一个情况,那基于这大模型部署到你的公司里面,就可以创造创造对应的价值了,好,然后大模型已经有了,通过的查询能力已经有了,我如何让他去解决自己公司那文档的查询,查询问题,我们需要一定程度的开发,虽然说现在很多公司啊,都提供了一些标准版的聊天机器人。啊,比如说有个聊天的界面,那类似于gpt问他问题给你回复,那这样的东西,虽然说他能够解决你的一些问题,但实际上是我们想让他生成更加深度任务的时候,还需要一些额外的一些操作,额外的什么额外的一些专门的一个开发,需什么的开发呢?前面我们讲到一个叫long,那个long是可以的,然后微软的一个auto模型也非常不错,然后呢,结合一些图形化的一个界面,同样呢,这里面除了给大家推荐了有大模型,我给大家推荐两个方案,一个欧拉玛,一个provide GT。
44:00
那还有一个是什么,还有一个是个,如果想一个也是使用做前开发的。这个大模型呢,让你非常简单的代码啊,多么简单呢。差不多是属于有这类的嘛。啊,行不断代码就可以让你编写一个自定义的大模型的一个交互界面啊,比如说这个例子啊。有一个简单的输入,然后给你一个输出,那如果说你想去开发基于这种呃聊天的对吧,聊天室的一个模型不是生成的,要基于聊天的,怎么做呢?他也给你提供对应的一个开发的技术,就是在这个里面有一个叫chat的interfa,好,所以这个的工具呢,也非常简单,你用Python很快也可以实现出来,好找下它的例子啊,在这。这个工具本身也非常好用,我们内部的开发,开发我们自己的人工智能平台的时候,我们也在使用这个对应一个技术啊,就是这个也非常方便,刚才你可以看到provide g所提供的界面啊,基本上也是这一个。
45:08
然后输入你你想要的问题就是它的生成只需要释放不断的代码。是按不到代码,然后就可以生成你的一个聊天的私有模型,我可以用它做什么事情呢?啊,以前通用大模型只需要一个聊天窗口就可以了,现在你需要分析自己公司的代码,分析自己公司的一个文档,那这个时候呢,可不只是一个聊天这么简单的事情,后台还需要说做一个通用的界面,允许用户输入你公司的get地址,输入公司内的文档,输入公司内部的各种内部的文档的网址。然后再进行分析,所以你就需要一个通用的功能,既有聊天室的窗口,又可以让我便捷的去构建各种界面的,那么radio是其中做的比较好的一个。所以大家可以用这个技术啊,去扩展,去用它去生成自己的私有的一些一些一些大冒险。啊,包括说开发一些具体的大模型的一个应用,好,这是这是一个叫做通用的,叫做呃,通用的大模型开发的几个关键的技术。
46:12
好,那么还有一些视觉深度学习,视觉自动化的,刚才我给大家已经顺手举了几个例子了,所以我就不再那个不在这讲了,我们后面有个专家会重点讲这一块,讲视觉自动化,讲大模型的一个一个一个,呃,相关的应用。好,那这样我就快速跳过去。好,那代码的生成对吧,代码缺陷的一个分析,那除了说我使用通用的这种,呃,各种大模型去开发生成我们代码之外,还有我们用它做一些bug挖掘也可以的,Bug挖掘的时候除了说通用的规则之外,你也可以把行业里面最近这些年来最新的一些漏洞。最新的一些代码缺陷规则,甚至说你自己都可以直接教他,对那个规则啊,比如说我有一个控制帧的一个异常,那么控制帧异常我只要告诉大模型说我有这样的代码,这个这样的代码是怎么样的一个调用逻辑的,那么如果调用它的时候会出什么样的异常,把这个规则交给大模型,然后他就可以帮你更分析出来你代码中类似的这这些有缺陷的一个地方,所以你自己也可以教确交这种类似私有的大模型,告诉他通用规则,让他能够帮你进行识别。
47:26
好,所以以前的话,我们要做一个bug特征的抽取和识别是非常费劲的,对吧,用到各种磁向量,磁嵌入的一个模型,自然语言处理梯度下降算法,然后分析代码的抽象语法数是吧,然后就构造卷积神经网络,做特征的提取,特征的融合,做训练,做预测,以前是非常非常费劲的,现在有了大模型就容易的多了,你只要人工去教他啊,告诉他通用的规则,让他去分析find back,分析sc build相关工具的规则,就可以轻松实现啊,所以通讯大模型这几年那应用起就是这这半年来应用起来是已经非常非常好用了。
48:04
啊,把你核心的一些东西开放给他就可以。好,那么除了这些之外,刚才提到这几个用途哈,除了这个用途之外呢?啊,那我们还可以用它生成对应的一些模型啊,怎么去生成呢?我举个例子啊,我放到另外一个地方,嗯,找一个用力生成的一个小例子,嗯。OK。
49:00
好用生成的一个模型,如果说我要我要做用力的生成,对吧,那。类似于说我要哪怕做一个私有的知识库,在这种情况下,其实呃,通用的所有的这些小小工具已经满足不了你了,这个时候我们大概率是要做自己的一个专属定制工具的使用浪这个技术之前跟大家说过,开源大模型选择其中一个,然后使么使用,使用什么的技术呢?就是基于提示词的这个生成模式,那现在给你提供了一个叫做model IO这个技术吧,Model IO里面有,呃,有对应的一个输入的模板,提示词模板的一个封装,有多种大模型,你可以去使用。包括说对结果进行解析,其实你使用这个最简单的基于提示词的工程,加上一点点的IG的技术就可以实现。怎么去分析呢的,官网上也给了一个对应的示例,那我基本上就采用这个示例是吧,你对应的源代码。我通过各种呃我呃,通过各种向量计算,把它存入到一个向量存储里面去,有了向量的存储,接着呢,你通过对应的问题去问他,或者说让他直接利用各种提示词去生成,哎,针对这一段代码的一些单位测试,外部自动化测试,接口的测试,其实都可以实现,我在这就随便举两个例子啊,之前我们在自己课程里面给大家教的两个小例子。
50:23
好,这是之前我们我所以说之前我们虽说写了一个小的例子啊,就是。呃,首先第一个是说,呃,告诉他,我先给他一段外部界面的一个一段一段源代码,然后请他呢,为这类代码生成一个可以用来做自动化测试的一个po的一个类。那其中呢?每个元素的定位符单独保存为一个变量定位的时候呢?使用一个find element方法,而不是find element方法。啊,执行方法的时候呢,能够对控件定位啊,能够呃,在执行方法的时候对控件啊再进行定位,并且呢,执行对应的一个动作,然后基于Slam技术实现吧,合理的提示词,加上你给他的一些向量,一些那个上下文,或者说你直接提给他一部分代码,它就可以帮你生成满足你特征的特定的一个代码,然后这个是基于端称的实现,可能不是那么直观,我就用官网啊给大家编设立一个小的例子啊。
51:21
那我举个例子啊,我这啊复制一下,这是一个比较小的一个提示子工程。啊好,比如说我们去用PPT。啊,我举举个例子啊,我想让他为我的某一个部分小的网页生成一个啊,这个网有问题,好,我们举个你小例子啊,我想让他呢,为我的某一个网页,某一个小的网页生成一段自动化测试的代码,我怎么做到呢?
52:02
你把这个提示词喂给他还是发给他,这个时候呢,你只要把你的网页的一小部分片段输入给他就可以了,我举个例子,那有测试,你看这是个网址对吧?网址里面呢,有一个小的搜索功能啊,当然你也可以用其他任何其他的例子啊,比如说这一段代码,那我希望说为这一端小的区域生成一段它的自动化的代码,那你只需要把这个代码的。这个这个代码的网页的这个地址,那这个整个内容代码的变量直接复制复制进去就可以了。对吧,直接合并,那过实际实际执行过程中,我们会肯定会使用一些大模型开发的工具,嗯,在这我就随手举个小例子,比如说我们通过这个的技术。啊,我告诉他说我有一段小的小的网页,这个网页呢,我们用HL传给他,就不要发给他截图,发截图的话就要调另外额外的图像识别的API。
53:03
嗯,用这个方式,我有一段代码告诉他,这是一段外部页面的代码,请微这段代码呢,生成一个可以用来做自动化测试的一个一个用例。好,我敬敬他。嗯。啊,这个时候呢,PPT就会帮你分析这个网页所代表的结构,同时呢,自动帮你生成测试,测试的一个代码。这一段写的测试代码其实比我们大部分同学自己写的比较标准,嗯。上面申请这些代码。难一点。好,看下这张网页写的,首先它是基基g Python吧,应该是Python,嗯,去Python,然后找到根据你所给的网页,把提示对应的定位符给你生成出来了是吧,生成生成了一个定位符,接着呢,在初始化里面,呃,扔了一个叫driver方法,这是基于po的时间。
54:04
通接有个索东这个内容,然后对这个空间进行定位,然后先清空一个内容。进行输入,下一步呢,是说同样一个东西,然后做一个点击,然后再往下呢,是同样element找到一个进行点击好。好,所以你可以看到哈,利用这个办法,如果说我想进行一个搜索,把三个自动化的行为封装合并到一起,形成了一个po的一个方法,是吧?通过这个P方法,它就可以生成出来一个将来你可以用来做调用的自动化测试的一个类,OK,这是一个非常简单的实现。同样如果说我要让它生成接口测试怎么做,其实也是一样的,是吧,你随机时找一个接口文档的一个描述,只要这个文档里面有足够多的信息。它就可以生成,它可就可以生成大量的代码,我们再找一个。
55:04
一下有没有HB。啊,举个例子啊,我们找一个请求。IP。嗯。文档从S官方法啊,如果说你是个接口的怎么办呢?其实也是一样啊,你找到只要找到接口原始的文档,我把接口的内容输入过去也是可以的啊,同样我们选择一个叫find。找一个接口啊,以这个接口为例。好,这一段接口呢,是是在在这个地方,那这段接口呢,我我们把嗯,它的整个内容。
56:06
叫你可以把这整个内容呢,同样也。也扔进去,甚至说你可以把整个的文档,整个的文档全部扔给PT啊,但是可能会有一些文的限制,我在这儿就随手写一部分。嗯,好,当然这个本身它是有一定的,有一定的外部模型的一个引用的。找一个叫Penny。好是吧,这段内容其实你也类似的,你可以把这一段接口输入给他吧,告诉他说那么这是一段对吧,对吧,这是一段什么接口对吧?接口定义的一个swag的一个文档,好利用这个方式啊呃,接口的文档,那么请为这个A篇对吧,编写自动化测试,那么基于request,但是我这个里面没有给它用L,它生成的可能不一定对。
57:11
对吧,我只是给大家最后演示一下这个效果。那这个东西你使用可以生成,接下来就是一些标准的开发,调用标准开发。对吧,把它集中到你的内部平台里面就可以了。好吧,好,OK,这就是一个例子啊,你看,虽然说我也没有告诉他我的地址是什么,他自己造的,所以说造了个地址,接着写了几个测试用例,Request数里面一个第个pen,你数排列一个可能几个选项,它不会每个选项都生成一条测试用例,发起请求,断言结果是否符合预期。
58:00
所以你可以看到CP你能做的事情,有的大模型其实一样也是都是可以实现的,只不过说你要调对应的一个模型,调对应的一个开发框架,把它最后转成代码维护起来。好OK,这是呃,通用大模型那几个,哎,比较简单的一个实现啊。好,那假设说无论是功能大模型还是私有的大模型,那如果说你一旦说可以通过这个,呃,所有的大模型可以生成一些简单的任务了,对吧,简单的手工测试用例啊,自动化测试用例啊,这些东西已经能搞定了,那这个用例将来的维护性就会变成一个比较大的问题。怎么让它可维护?如果说基于以前的方式,很多公司里面大家都会喜欢说直接生最终代码,直接生成最终代码的时候,你会发现说每家公司使用的框架是不一样,因用Java Python的有用自己做的框架定义的,就是说你要PT去生成你自己公司特有的测试框架的这些用例是不太可能做到的,是吧?PT可以说基本上就做不到啊,或者说你就算让它生成通用框架的所用力,比如说基于。
59:06
他身的用力本身也是非常简单的,就是里面有一些异常处理,有一些呃,各种东西他可能做不到,你需要去用大量的引导提示词才能搞定的,那这种情况下怎么办呢?我们就得上知识图谱,通过知识图谱来去解决,知识图谱本质上是一个什么东西呢?是一个是一个叫做结构化的一个语知识库,是用于啊分析我们。呃,开发测试中各个关键领域对象的一个呃,这样的一个通用的的一个呃,知识构建的一个一个方法,这个方法里面有自己大概的一个规范,也就是所有的实体,所有对象,它首先要识别你领域里面的对象,要有一个领域对象,这个领域对象有自己的属性,有自己的,有自己的一些对应的行为。好,那这个东西叫什么呢?在我们测试行业里面,基本上就叫做po对object或者叫API object或者object,它可以识别,包括说有一段呃,研发写的某一个类,其实本这些东西啊,本质上都是一个类似于这个领域对象,先识别出来所有的对象。
60:11
然后呢,把这个对象之间的关系你连接起来,谁跟谁之之间有什么样的一个关系,然后这个关系里面啊,本身也会有属性的,那把无数五个这些知识点进行连接,最后就形成了一个三知识图谱,一个知识图谱是个大的知识图谱呢,是一个,你可以列成是类似于是一个图的图的一个结构是类似于是一个呃,有生图结构。然后这个原图里面的每一个节点,每一条边和每一条这个点都有自己非常复杂的这种属性,比如说我们要做测试,做测试的时候有一个登陆页是吧,那一个登录页本身就是一个小的一个顶点,如果他登录之后去了另外一个界面,OK,那另外一个界面又是一个模型,如果说登录失败了,又回到原来的界面,OK,他自己指向自己,也是一个通用的模型,对吧,自也回到也回到了自己。
61:06
所以利用这个方式,你需要有一套建模的技术去生成这个图谱,其中这个图谱因为非常非常大,我怎么去拆分里面的部分呢?诶,这里面就有个小的概念,叫做元组的概念,最小的一个单元从一个点到另外一个点中间通过一个边,这个方式叫做什么叫做一个,呃,最小的我们还原圈里面一个叫做三人组的。三组的一个关系啊,那为什么要去推知识图谱呢?是因为在以前啊,就是我们现在用到大通用大模型,本质上走的第一条基于连接主义的模拟人道结构,神经网络,深度学习,最后导向聪明的人工智能,好这条链呢,是基于连接主义,就是我我大量数据的连接计,计算他们之间的关系。然后构建神经网络,从而去生成一个聪聪明的一个大模型啊,或者聪聪明的一个人工智能,他解决的什么问题呢?他能理解你的所有知识之间的一个连接关系,你给他一个东西,它生成东西会特别特别方便啊,所以这个是基于连接主义的,第二个呢,是基于符号主义的,虽然说你可以基于已有的知识进链接,但是还有一些东西呢,是需要。
62:17
是很专业化的一个体系,能够进行构建的好,这个东西叫做什么呢?叫做知识的一个表示知识多普和有学识的一个人工智能好,这是两个不同的方向,一个是基于连接主义的,它能让你的所有的知识的融合是能做的非常的好,第二个呢,是对你的结构。结构的一个定义,有非常好的一个知识,那也就是说我记一个符号,表示了我所有系统之间的关系,那我就可以利用它去查,那查什么东西呢?就是最典型的,比如说我跟在座的每一位同学,我们之间是怎么认识的,中间经过了多少个人,他能算出来这中间所有的关关系。所以利用符号主义,我们可以实现这种叫非常专业的,或者叫有一定知识的知识的,这个人工智能上面呢,是基于最简单的办法,那我实现了通用知识的一个连接融合问题,而它解决的是结构化的问题。
63:10
所以这两个话更有自己的一个发展方向,基于图谱,我们就可以把前面说的很散乱的东西,最后进行统一化的生成。比如说如果代码更新了,我所有东西没必要重新生成,我只需要更新图谱里面的部分章节、部分内容,然后继续图谱,让它自动帮我生成就可以了。好,这是基于图图谱的一个应用,图谱的应用呢,我给大家讲一个小的例子哈,行业里面有几个小的啊,基于啊,强化学习啊,基于一些这种小的领域模型做的几个工具啊,第一个呢,就是说呃,自己调动的一个叫发,相信很多同学如果做测试,尤其是做APP测试,我相信你大概率就会用过吧,因为这个东西比较好用,机己操动已经是完全开源了哈,它的基础版本,基础的版本是完全开源了。那这个工具非常好用,在自己内部呢,带来一个什么效果呢?在自己内部啊,它是。
64:05
自己内部是呃。他是这么说的啊,就是叫目前fast已经呃自动化任务呢,已经较好的呃,发现了APP内的一些稳定性的问题。它可以帮助你,呃,帮助头条拦截了50%左右的一个异常问题,那此外呢,它可以,呃此外呢,这个体系呢,呃,它也结合了一些其他的算法来实现录制啊,一些生成啊,包括其他方向的一个测试啊,这是他当时提到的一个价值。好,Fast就是这样一个小型应用,它是怎么做的呢?它类似啊,它采用的是强化学习,本质上是它也是在构建一个小型的一个小的突破,就是不断的探索一个状态空间,找下一个,找下一个要点击的或者要输入的一个地方,找到新的界面之后呢,重新富模型啊,再进行分析。所以它本身就是一个也是一个小型的图谱吧,只不过使用的强化学习的一个办法。
65:02
好,这是一个,那么类似呢,还有一些其他的像小的测试框架模型驱动测试框架gra worker after worker啊也做的也是类似的东西,使用一种叫类知识图谱的概念,我们知道我们有用力,对吧,可以用力,如果说真有个。几千条几万条的时候,你维护起来是非常非常吃力的,尤其是研发更改界面了,更改一些接口的定义了,你要去改这些测试,你改起来非常费劲的。是吧,那那那如果说有了图谱,那么我们就可以不用去解决用力的问题了,因为用力本质上是什么呢?用力的本质是图谱里面的一条,对吧,或者叫一条或者多条,从一个顶点到最终另外一个顶点之间所有经过的路径。这其实就是我们测试用例的一个本质。好,那像graph worker这类的工具,它就会帮你解决这个测试的生理问题,他怎么解决的呢?他只需要让你维护知识图谱,就是你可以练的就是小的这个模型流张图。通过维护这个小的图谱,你的用力的规模会缩小十倍,就是原来我有几千条用力,现在我只需要维护一两百个具体的这种呃关系就可以了,这一两个关系,一一两百个关系无所谓,就是A界面到B界面。
66:16
到C界面,A界面本身有几个按钮,有几个输入框,你只要把这个东西维护好,它剩下所有的测试用例全部自动化帮你生成,它有一套算法可以帮你生成啊,走向各个路径的这个所有可能的测试用例,因为它的用例是可以基于算法,基于指定算法来直接生成的,比如说我要求所有的页面100%开档。我要求所有页面里面的所有的行为100%覆盖到。它可以推论,自动帮你推论出来的,所以利用图谱啊,它其实是可以很好的去解决我们的测试的维护问题的,那也就说我不需要在一条用例一条用力去写了,我所有用力让它生成,我只要把这个图画好,或者说把这个图表示好。所以利用模型驱动测试,利用知识图谱这个概念,就可以很好的去解决测试用力爆炸的这个问题啊。
67:06
那好,这是两个非常有趣的技术,一个是提前帮你,一个是提前做好模型,然后我让他去生的测试用例,那fast类似的工具,相当于说它。我也不提前生成所有的模型,我是一边执行,一边发现问题,一边补充模型,然后一边再去生成更多的测试路径,一个叫online的模式,实时生成测试路径,生成实时维护更新模型。还有一个办法就是提前定义好所有的模型啊,这种适合于功能测试,另外一个适合于自动化的探索式测试。对吧,所以基于脚本呢,我们用知识图谱,基于探索的,我们就使用刚才那个吧,这种动态生成模型的办法就可以做到。嗯。好的就是。动态生成模型的这个行为啊,本身其实就是智能便利啊,智能便利这个测试,智能便利呢,已经被华为作为一个就是测试规范之一了,就是它的测试行的标准功能性能,这个安全,除这些测试之外,还有一个叫做智能编译测试,把你所有APP所有可能的行为全部查一遍。
68:15
好,这就是几个啊,最小的基于模型的,基于知识图谱的这个东西啊,利用它结合大模型,以前为什么模型其实是很难落地,是因为很多公司里面构建这个大模型它很费劲,比如有个大模型,而不是大模型啊,是有一个一些系统配系统。这个系统里面它的页面之间是非常多的,那我怎么画出来一条图,画出来一个图对吧?可能是思维导图一样,大家应该用思维导图写过测试用例是类似的概念,相当于以前大家都是手写的,对吧?手写所有的模型画出来一个大型思维导图,然后交给模型去测试进行生成,其中画这个图的过程是成本比较大的,对吧?我到底系统有多少个界面呢?可能连你自己都不知道,你得需要不断的去尝试,找出所有的路径来,然后才能知道。
69:00
好,这是以前所以模型去做测试呢,因为有一个叫建模的成本,导致了大家没有办法快速去落地它,但是现在有的大模型那就不一样了。大模型可以全自动的帮你分析出来这个模型,比如说你给他一个需求文档,他就可以帮你画出来这个文档里面所有的模型有多少,我有多少个模型,有多少个可能的方法。然后有多少个可能的操作路径,只要有一个文档给你生成,其次呢,有代码也可以生成,你把代码给他,他也可以生成,第三个你可以把你的成型的系统,比如我把一个网站给他,它也可以自动生成。所以基于这个东西你会发现呢,制图谱它有了大模型的这个,大模型的这个赋能之后,那么它生成模型的这个过程就可以直接帮你搞定了,但是这个模型呢,它100%生成的肯定是百分百正确是不太现实的,但是呢,你可以结合人工加自动化的维护,从而去更好的维护你所有的知识。好,那基于这个东西,我就可以构建起来我所有的模型之间的关联关系了。
70:04
好,那这个制度我怎么去玩呢?那同样哈,也有几个小的工具给大家做参考啊,一个是for,这嗯AU呢是一个这个呃图数据库啊。啊,大家明白啊,知识图谱,知识图谱它是分两个概念哈,知识图谱指的是一种抽象概念,是一种模型,知识图谱的构建是基于什么东西呢?是基于一种叫做。呃呃,就是呃是一种我通过编程,通过数学就可以进行表达的啊,怎么解释呢?我给大家画一个有个图啊,来找一下,嗯,我们有一个叫这个PPT啊。我用这个图案给大家讲一下。嗯。在这里看这个啊,就是这个吧,嗯。
71:02
嗯,这里就是如果说我有一个知识图谱,知识图谱呢,它是一个呃,这个抽象的概念。回到这个平。这是另外一个。我找到这个。嗯,这个。好,图谱呢,它是一个抽象概念啊,嗯呃,很图谱的每一个小的单元,我们称之为一个叫s po的一个三元组,一个三元组就是一条一个一个对象跟另外一个对象什么的关,这个关系可以用数去那我一个体的数的例子,找一个数据的调到最后。好,我以这个为例啊,多方形的一个例子,比如说我们这儿举一个人,那这里有两个人对吧,比如说一个叫做丹同学,那么他喜欢的一个叫安娜的一个同学。
72:00
那其中这个人,但这位同学他本身是有自己的名字,有自己的住址,有自己的年龄,有自己的爱好,所以呢,他其实就是属于典型的知识突破中最小的一个单元,最小的一个单元,一个顶点,那然后呢,另外一个叫安娜,它也是类似的,他可能也拥有自己的属性,但是两个属性不一定完全一致,有可能它的类型都不一样,对吧,比如说一个是男的,一个是女的。好,那么这它本身也是有一个自己的模型,模型的一个属性的,他们之间啊有一条关系,就谁喜欢谁,那其实这个喜欢里面也有程度,我有多么喜欢呢,对吧,那这里面可能有自己的一个一个数一个数数值,那也就是最小的一个模型,其实是有一个这种很小一个三组,那很多这种三组组合到一起,就会形成一个小型的一个图谱。好,这个小型图谱,它不断的延伸,就会变成一个大的啊,不断的扩展,扩展出更多的东西,比如我有100个页面啊,APP啊,有每个页面之间可能有两三种跳转关系,有有输入完成之后有不同的选择,这个时候呢,随着它的构建,这玩意越来越大,就变成了一个知识图谱,注意啊,当这个时候,当我们去说一个知识图谱的时候,它是一种抽象概念。
73:08
一个抽象的知识图谱想落地下来,想落地下来需要变成一个东西进存储,我可以把它存到什么关系型数据库,关系型数据库也可以进存的,然后还有什么呢?还有一些专门的图数据库,那我刚才提到的ne for j本质上就是帮你去存储,这种抽象的概念其实你是知道的,比如说一家公司里面,我是一家银行,我银行的业务非常非常复杂,大模型是不知道的,只有你知道吧,这就是你的唯一性,你的专属的一个竞争力。那大部是不知道的,那你的人脑所知道的公司内的业务知识,它如果沉淀下来,其实就是这样的一个图的一个结构,你把它画出来,所有的关系画出来,其实就是个图,这个时候停留在人脑是你认为的一种逻辑概念,业务概念,对吧?还有就是业务概念想把它存下来,对吧?你要知道很多人的大脑的知识都存不下来的,对吧?你公司很多业务专家没有文档给你,对吧?或者有一些非常非常简单粗略的文档,他给不出你全的文档,是因为他也不知道用什么东西去存储他所掌握的知识。
74:09
如果说我把它存下来变成一个东西,变成个东西,大家可以看到以前的话,我们存的什么文档是吧,大家写文档对吧?做测试开发都知道我们要写概要设计,详细设计,那测试呢,要写文档,写测试用例,所以这些写的东西其实都是图谱,只不过它的格式因为没有定义清楚,导致了写出来的东西五花八门,有用思维导图的,有用Excel的,有用传道的,有用test link的,所以知识是五花八门的啊。那我如何把这些知识最终存下来呢?其实就用到一个概念,这个概念就是我刚才给他提到的一个叫做图谱的概念,叫做n nu,呃,叫nu for g的概念。好是一个叫做,嗯。看一下咱俩那个网页。
75:04
好,直接给它打开吧。A和这呢,本质上就是把抽象的思维导图,呃,抽象的置位制图谱变成一种可落地的可检索的一种图数据,一种数据库,它是用来存图的一个数据库是吧?是由和这家公司开放那一个图的数据库的管理系统,当然这个翻译有问题啊,不是图形,是图。啊,视图的一个东西,那这个东西呢,它可以让你解决很多的知识图谱的通用的一些使用问题,那什么样的使用问题呢?比如说呃,建立起来你公司的一个业务的地图,对吧?然后呢,呃,有了这个业务地图之后呢,做一些相关的一些预测啊,生成啊,呃,查询啊,包括各种的一些用途啊,通过这个方式它就可以实现好这个图数据库其实叫。那我们前面的那么多东西就可以通过它构建起来,因为它是有自己规范的,你要把数据存进去就跟一样。
76:04
它也支持类似于circleq的一套语法,你只要按照它的标准生成进去,你就可以把你的图谱,哎,真正的落地存储起来,那我的大冒型怎么跟这种图联合到一起,哎,这个时候就要用到PPT或者说拉模型的这个基本能力了。开源大模型或者是拉嘛,包括这个gpt,他们都有个共同特征是什么呢?他们认识所有人类的知识,也就是他理解的人类所有的知识,其中就包括这个图数据库,那由此我就可以诞生一个什么用途呢?比如说我的嗯嗯,比如说你可以让他帮你公司生成自己公司里面某一个领域,某一个文档的所描述的一个支图谱。你要想让他设那个知识图谱对吧,他自己可能,呃,这个时候并不知道你使用的格式是什么,这个时候你可以告诉他我使用哪一种格式,对吧?我就举个最简单最简单的例子啊。
77:04
呃,行业里面有个大有一个比较经典的测试的项目,叫换一下。啊,这是一个行业里面比较知名的项目,这个项目呢,是很多的知名的开源,知名的测试项目都会用它做练习的。啊,这是一个非常经典的项目,那这个项目呢,呃,大模型,因为在学各种知识的时候,他是知道这个系统的,所以他一开始就了解这个系统,所以呢,你可以问他说,那你是否去了解,对吧,举个例子。你先认认对吧,你是否了解supreme clinic这个叫这是一个类似于电商啊,一个叫资产管理系统。呃,是否对对吧,对页面对其中的,比如说某一个页面啊,宠物主人的,呃,主人主人搜索页面。
78:08
是否了解其中的宠物上面页面的基本因素吧?嗯,你可以验证一下,问他了不了解,如果他能回答你,说明他了解,说明之前训练他的时候的,就是人们去练车PT的时候是知道说里面是有这个东体系的,同样拉嘛也是一样,你可以问拉玛你了不了解这个系统。他会告诉你这个系统里面的东西,你会发现呢,他知道这个页面里面有什么。也就是他之前曾经读过这个项目的文档。然后读过这个项目的代码,也读过这个项目当时的页面的一个,呃,一个HTL的结构,好,那有了这个结构对吧,一旦他回复你就说明OK,没问题了。这个时候你只要问他对吧,那既然他了解了,那你可以直接告诉他对吧,请呃,请生成对吧,请返回对吧中对吧,比如说物人相关的。
79:08
对吧,所有业务模型啊,按照知识图谱的方式返回。嗯。好,你看这个时候呢,他就会告诉你说,呃,在这个系统里面到底有多少个宠物的,呃,就是有多少个知识图谱中关键的一些角色,这个这个里面呢,虽然它没有画图,但是它里面告诉你的就是里面的每一个顶点,每一条顶点和每一条边的一个大概的关系,他会告诉里面有个宠物主人,对吧,有一个宠物,有宠物有宠物类型属性,这个东西怎么分析出来的呢?就是他读了大量的文档,读了大量代码都知道的。类似的方式,你自己公司的文档,你扔给他去分析,它也能生成这样的一个结构体。
80:03
是吧,然后是这样的结构体,如果说我把它。转成图谱。怎么转呢?对吧,这种方式你是画不出来的,包括说我们前面去各种自动化测试用例的时候,其实自动化测试用例呢,也是图,也是图中的一个小点,代表了某个页面本身有多少个可能的控件,只是这样一条小的记录而已,嗯,如果说他理解你的文档,理解你的,对吧,这这个这个业务。嗯,基于这一点,我就可以让它生成,先生成一个图谱,基忆图谱,可维护的一个图谱,然后我让它去生成手工测试用例,生成自动化测试用例就可以实现了。好,那么有了这个东西我怎么做呢?接下来可以再告诉他,这个东西我不好管理,那你要告诉我使用一个特定的标准化的格式,我好把它导到图谱里面去,对吧?比如说我以刚才的nu方这为例,AU发这是不是有。是吧,是不是有它是有自己图数据库啊,这个图据库里面它是有自己的语法的啊,这个图数据库是可以让你去管理自己的,就是呃,各种复杂的一个投资机构。
81:06
呃,数据的一个基本元素。然后他那有个文档。嗯,这个文档里面是。我们两个算是吧。在这嗯,文档里面啊,有告诉说他支持外部数据导入。AU支持外部数据导入,也支持一些呃,自自定义的语法,所以你可以以这个关键字告诉他,那大型帮你生成这个图谱的构建过程啊,比如说是吧,请以。AU for AU for的格式返回整个知识,整个pet clinic。嗯。
82:00
好,这个时候他就会告诉你说。嗯。嗯,因为刚才我看到那个有人还问了一个说基于AI生成的可控性如何保障,对保证AI生成的可控性,其实就是靠图谱来解决,就是AI所生请东西不一定100%合适啊啊啊,甚至说有些东西可能是错误的,我也如何去修正它,你不能让他生的东西这上面直接去改,那太费劲了,研发只要改一个文档,改一段代码,所有东西重新生成,那有大量的数据,你要去改太费劲了,那怎么做?变成说我先让他生成大模型,如果生成的不对,我去修正它。然后呃,就是那个叫知识图谱,知识图谱里面如果有东西不对,我人工去补充它,就是80%让大冒险帮你生成这个图谱的东西,20%我人工去维护的,给他增加更多的一些路径。
83:01
然后反过来,我把这个知识图谱再返返回过来,就告诉风大模型,那这个知识图谱是这个样子的,那你一会要按照这个方式进行输出,这样子它的范围就已经可以变成可控了,对吧。所以你看这里面,他告诉你说制图谱大概有什么样的关系。这个关系呢,用a Ford的大概是用这样的语句啊,是可以去生成的。好,我就以最小的这个例子啊,啊,比如说这个例子设置完成之后,我怎么导入到图数据库里面,你可以在本地启动一个,呃,启动一个数据库,我们看一看,比如说我看一下我本地有没有啊WPS我在我本地啊,简单启动一个N用方。嗯。那个没有了,我就直接一个。嗯。
84:05
那我就随手找一个,找一个图数据库的例子啊。好在这里要随手生成一个。嗯。好,我简单用do快速启动起来一个小的图数据库,大家举个例子,嗯。计启动。
85:07
好OK,启动好了啊,比如说那这有个小的数据库啊,小的一个图图的数据库啊,我启动它进去,嗯。啊。看下密码叫啥。创建密码叫。看。好,比如说那么通过这个小的方式呢,其实也很简单,就是本地一个小的小的一个呃命令啊,一个do命令可以先启动它,启动之后呢,比如说刚才大模型是不是帮我们生成了最简单的一个知识图库,我把它复制过来。
86:01
对吧,然后扔到图谱里面来进行分析,对吧,扔到这里面这东西帮我生成这个小模型,好这样填充完成之后呢,这样就会生成。他就可以把我们刚才的那个小的图谱生成过来是吧,升级进来之后呢,我怎么去看它呢,你就可以简单写一下语法,比如说那嗯。看一下啊,是不是写错了much。嗯。好,那我们我们刚才跟他生成的这些这些那个。就是的,这个小的结构可以放大。那里面深圳的很多东西,其实当然这个是以前的数据啊,老的数据,那新大概率是在某个地方,因为这三个点,那起名叫啥。嗯,起名字叫。John Danny是吧,John Danny。
87:01
嗯。这样类型是。搜一下。好的是有的啊。里,应该是在能这个太大了,数比较类的一个一个结构,就类似于这样的一个小的图谱。要么?啊,那比如说这这里面啊,我就可以在里面找到两个图谱啊,通过刚才非常简单,让大模型简单帮我分析里面的一两个小小模型的一个关系,它就会帮你生成出来,同时呢,对吧,就是画出来一个,呃两个设置一个小的circle,这个circleq呢,可以把数据填充到图谱里面去。
88:06
当你补充更多的数据的时候,就会生成这么庞大的一个一个网,这个网呢,是官方的一个测试数据啊,但是它塞了各种类型,所以看起来会稍微好看一点,那也就是说我这么多东西到底可不可维护?其实我就是靠知识图谱把所有的这些知识连接起来,如果你能把所有的知识连接起来,那么将来你就可以生成,对吧?举个例子,我在每个定点里面,我让大模型帮我分析出来这个页面所有的结构。比如说我有大概有多少个模型,这个模型的搜索界面,它有几个按钮,你把所有这些东西全部建模成这个图数据库里面,然后呢,通过算法,通过自己编程实验出来,说我检索出来从A页面到B页面之间到底经过哪些可能的路径。基于这些路径里面所经过的控件,把它所有的自动化用力手工测试用例全部生成出来就可以。所以利用这个方式,大模型,当然这个只是非常简单的一个例子,因为它简单生成一个小的东西,其实呢,你可以做的更加丰富一点,高是大模型,请生成更加完整的模型,生成所有宠物的owner的,宠物的宠医生的,OK,全都可以帮你搞定好。这就是关于图的这个方式,如果你使用图的这个方式把所有的数据全部构建不进去,那么你就可以做到说,当你文档更新了,代码更新了,我只需要更新图,图库里面的制图库里面的某一个小的节点或者某一条边,你只更新这个,所有我的测试用例的生成,我的呃,手工测试用例,自动化测试用例的生成,全部经过图谱的那条径来生成,通过这个方式你就可以搞定,对吧,就可以让你的大模型的生成用力的方式变得可控、可维护。
89:42
对吧,我会随便去生成乱七八糟东西,而且是还可以生成你公司特有的一些这种特有的一些行为,比如我要生成自定义的框架,利用这个方式也能做得到。好,这就是几个方式的生成啊,好,这就是涂模型的一个一个基基本的东西,好涂模型文章就是大模型,你看大模型,但是有些东西你可能不太了解了,就是大模型可以生成知识图谱,管理的知识图谱,知识图谱是有语言的,有自己的格式的,有一种叫total的一个语言,你甲骨文的一个语言,这个语言可以生成图谱的所有结构,你从外面让大模型帮你生成整个图谱,然后呢在图数据库里面直接导入进去。
90:23
那么你就可以实现说做出来那个一个完整图谱,有这个图谱我只要一查就行了,帮我查一下对吧,从登录界面到交易界面中间经过的所有测试路径,把这些路径生成自动化测试用例,或者生成手工测试用例给我。用这个办法就可以得到吧,因为突出机库支持最短路径检索这种语法,它可以检索出来最短的一条路径,从一个用户登录是吧,到我搜索,搜出来商品之后购买,购买完放在这购物车,放在购物车之后进行交易。好,这一条链路他都能知道啊,所以构建图谱才是我们最核心的一个一个目的。
91:00
有了这个东西,所有的测试用例的生成,业务逻辑的生成都变得是吧?有规律可维护,主要是这个模模型呢?这个图的模型因为是我们自己可控的,它不是在大模型里面,大家都知道大模型的底层逻辑是黑核的,我们很难分析是吧?虽然我们可以利用一些思维链,思维数的方式,现在生成每一步可能的行为,但是就是这个样子,我们也很难维护他。最好的办法是什么呢?往图谱里面倒是最容易的。好,那还有一些是什么呢?是属于如果说我要去实现它,怎么去实现模型,对吧,模型的这个维护问题,图谱是一个方式,编程也是一个方式,数学模型也是一个方式,那数学模型那个太难,很难搞,那我怎么办?那我用我用编程或者我用图来搞定,我用刚才教给大家的用图就可以基本上就可以实现了,还有另外一个方式是使用编程来搞定。啊,这个是属于另外一个知识,可能有点难,所以我就不提了,好,OK,那么回到我们最后的PPT啊,因为我们讲了很多东西,那回过头来我们再看这个好,本质上是说给大串一下我们整个知识点,我们有TP,各种工程啊,各种时间关系,我就没有大家。
92:12
仔细去讲啊,因为还有很多呃,大模型的一些各种通用的一些使用技巧,比如说其实磁工程对吧,一些那个它的一些模板,模板技术,微调技术,然后还有很多的很有趣的概念,包括它分程函数概念都有很多概念,呃,因为时间关系我就不列过去。总体来说,我们用商业大模型车gpt cloud,包括Google新出的这个大模型,包括国内的通,通讯节目和文献语言,我们利用这些东西帮让他分析我们的文档,是吧,可以做到,如果说私有部署,我使用拉玛,使用通讯前问使用那个叫呃,清华的GM使用这三个私有大模型,或或者叫开源大模型使用,呃,应该说应该叫开源吧,前面那几个叫闭源大模型。后面的三个呢,清华大学GM,包括说那个拉玛,主要是拉玛,呃代表的是开源大模型,用开源大模型也是一样可以分析所有的这种执行路径的,就是它能分析出来你的知识有多么复杂,生成对应的一个图谱,生成图谱之后呢,把它导到图数据库里面,然后人工去修正一部分逻辑。
93:20
修正完逻辑之后呢,你就可以基于一些工具,从图书里面检索出来你想要的测试路径,然后最终转成你的测试用例,好所以这几个体系是比较是比较好的,好那这个大模型呢,除了说哈就知图谱啊,除了说可以用来生成测试用例之外,还可以跟精准测试进行结合,之前有家公司吧,应该就转转转转,他们当时做了很有趣的小工具,就是他们做了一个精准测试平台,我看内部就是使用的是图数据库来直接做的。他们这个平台可以做到什么效果呢?就是呃,我把我的所有测试用例塞进去,我的所有代码之间的调用链也扔进去,这样我就可以查出来说哪些代码修改我影响了哪些测试用例,哪些测试用例呢关联了哪些代码,哎,它利用推荐数源,它其实也是用的图数据库的这个小技巧,就是图数据库结合小的知识图谱这个领域来关联代码到你的用例之间的关系,其实想,其实我们想一下我们所有做的测试工作,你会发现。
94:21
我们干的核心的事情是什么?我分析产品的需求对吧,编写测试用例,然后编写自动化测试用例,执行一些啊,除此之外还要执行一些专项的各个方向的一个测试。是吧?那所有这些过程,你会发现里面一个最核心,最核心的东西是什么呢?是你的业务模型。我的自动化测试能不能发现充分的发现问题,其实是取决于你自动化测试写的覆盖的路径到底好不好,它的断言丰不丰富,断言测试的路径是存在,跟手工测试是有紧密结合的,手工西是可以转自动化的,那手工测试用例写的全不全呢?靠谁?靠你对这个系统的认知,这个系统的认知又是来自于哪里呢?来自于产品档,来自于档,来自于沉淀下来的各种经验。
95:06
那所有这些东西能不能数据化,其实就可以靠这口这个方式来搞定,以前是很难数据化的是吧,以前你很以前就是很难做到,说我把所有的东西对吧,用一种一种方式,甚至说大家现在都做不到自动化跟手工结合到一起,现在很多公司还做不到呢,如何用一种规范搞定手工跟自动化,对吧,两个模型结合到一起,其实对吧,这这这本身就是一个很有趣的话题,大部分公司都还没做到,如果说你要做到它,其实用知识图谱是最好的一个方式,知识图谱可以把你的手工,把你的业务,把你的自动化完美的连接到一起,而且大模型可以持续的帮你优化这个模型里面的所有相关东西。好,所以利用这些知识点的融合啊,大家就已经可以搞定咱们,呃,测试还点面很多应用了,对吧?用力的生成,呃,也包括些流程图的生成,代码的缺陷分析,Bug的挖掘,所有这些东西啊,都是可以做到的是吧?好,那这里面有非常多的各种小的技术,技术点I技术爬虫的技术爬虫也会用到的。
96:13
为什么要用爬虫?刚才我说了,你想让他自动建模你的网站,你他怎么知道你的网站多么复杂了,他不知道,只有一个技术能让他知道爬虫,所以我们需要写一个爬虫,爬我那所有的文档,所有的页面,所有的接口,然后探测出来你的知识图谱,基于知识图谱,我生成规范化的,标准化的,覆盖我所有路径的测试用例,这个时候就可以做到。而且这个时候呢,还不会出现用力的爆炸是吧,你不会担心说用力我太多了爆炸了,不会的,因为你让它生成测用力本身的时候就有算法可以去进行封装的,好好OK,那我就整体就先给大家去讲这么多吧哈,那还有很多有趣的技术啊,我就不在这儿去去提了,好最后呢,我们留几个,留几分钟,我们简答一下,看给大家有什么关于大模型的应用,关于测试用例生成业务的分析,包括说一些制度方面有什么问题啊,我们可以在这交流一下。
97:12
对,咱们针对思他老师讲的拈块有同问题可以问,然后咱们积极参与的同学呢,就是在这面给大家一个这个手册啊,问你说的不一样啊,咱们还有模,还有精本手册都有的,所以说咱们可以积极的就问一下问题,这个机会对吧,爬虫是吧?啊自动去扫,扫出来页面,然后嗯,把这些是怎么啊,是的,其实我刚才举过几个小的例子啊,大家可能并没有那个,因为我讲的是个片段,我先说它的逻辑流程是什么样子。第一,爬一个网站,我什么,比如像测试样的网站,我随便包括都是类似的。
98:07
啊,比如说这样有一个网站,这个网站比如我想给他做测试,你必须知道说我网站有多少个类别,有多少个功能,有多少个界面,对吧,它有这么多的界面,你要每一个,你想你要以前写自动化测试用例,我咋写的,包括说我写手工测试用例,我必须了解一下这个网站,知道它大概有多少种可能路径,每一个路径里面每一个输入参数大概有多少种类别,然后去构建出来整个的手工测试,在这之前的话,我需要人工去了解这个系统,人工去包括说自动化也是一样,针对它的每一个接口,大家可以去编写出来对应的接口的测试和自动化的测试。这个东西以前全靠人来去了解这个系统,那爬虫呢,可以解决什么问题呢?我另一个爬虫,因为爬虫可以自动爬到所有的页面。也就是他可以知道你这个网站所有的页面和所有的接口,它都能爬的出来的。拍完之后,这个盘完出来这个体系之后,我它有了所有的页面结构,那这个页面结构你就可以通过拆gpt,我在gpt前面举例子的时候,我看看有没有那个页面啊。
99:08
我刚才举那个页面的时候,曾经提到一点是说嗯。啊,在这个例子啊,我当时曾经我大概应该是之前举过一个例子是叫做啊,他可能跳过去了啊。好,也就是说我给他一个页,所有的页面片段通过爬虫可以爬出来的,然后呢,把这个每一个页面爬虫所爬出来的每一个页面,每一个接口,你把它传给谁呢?传给这个,我看看能不能找到传到等一下。看一下能不能找到刚才那个BT那个访问页面,就是我把我的每一个页面片段我都传给这个BT这种方式。看一下是在哪个页面啊,在这吧,啊在这有你看好爬虫呢,它有个好处点是它能爬出来,类似于刚才我给你画到的这个东西。
100:04
HL代码,包括说安卓,安卓APP,安卓APP也有这个代码的,叫结构。对吧,通过可以down出来的这个页面结构,你所有的结构全部扔给通达模型,比如说如果有的话就是拉模型。扔给他之后,你让他分析这个页面里面到底有多少个定位符,有多少种可能的行为。对吧,他这个时候其实就可以帮你去生成部分页面的,已经自动化,当然已经可以生成出来了,但是我不建议在内部直接生成,因为那个时候爬爬出来的数据量是非常大的,可能是有几千个页面。这几个页面全部丢给大模型,让大模型分析出来所有页面的数据,但是不要直接生成代码,是生成一个什么东西呢?生成一个Jason,一个结构体里面记录下来这个页面的结构,对吧?它的可能的行为,包括说关键控件的这个定位方式,有了这所有的Jason结构体。一个页面对应的就是知识图谱里面的一个一个节点,一个顶点啊,我们刚才画讲到制图谱的时候,曾经提到一个概念叫做。
101:05
看一下前面那个啊。就嗯,应该是模型驱动测试,找到模型驱动测试的啊,这个我跳一下,也就是所有的页面信息,如果说哈,我可以全部拿取到,那我就可以让大模型帮我直接生成这样的一个知识图谱的一个结构,这个图里面就是记下来我的页面之间是怎么跳转的。怎么跳转,爬虫在跳的时候,它自己怎么计价关系的,我上个页面是什么点了什么按钮转到下个页面,它是有这个关系的,所以利用爬虫所爬出来的数据生成。对吧,生成所有的这个,一个是他爬的数据,一个是当时这个页面的这个数据,两者结合你就能画出来一个整个的知识图谱,这个图谱里面关系页面之间的关系,他从出来的,然后这个页面当时是有多少个控件,它本身有几个控件,有几种行为,这个是靠大模型帮你补全的。
102:04
对吧,所以可以到边是爬虫爬出来,然后页面结构是大模型帮你飞出来的,那么这个整个的知识图谱就可以全部生成出来了。然后利用这个方式之后,我怎么在第三步,下一步我怎么做自动化,你不能够让他直接去生成,直接生成的话,那么你是不靠谱的,因为我要生成的用例到底是不是全都是生成,我可能只要生成100条用力,其他的不要生成,这时候你需要指定一种测试用例的生成办法,我要求覆盖哪一条路径。把这条径看,所有的行为全都给我生成出来。所以到这一步的时候,你需要一套使用知识托破的语法,从里面抽取一个子数,然后转成用力的一个过程,只有这个,只有这个过程需要,目前是需要一些公司的同学自己要去实现,因为这个那开源的好像没有,就是你要了解图数据库的一个查询语法。查出来两个顶点之间的路径,然后把这个路径里面所有的数据你是有的,拿到这份数据,利用模板技术直接转成自动化测试用例就可以了,所以是基于这个这个流程。
103:10
大模型分析模型构建图谱索概,嗯,一个果,但是这个结果应还是一个相对来说比较初步的,这里面它其实没有包含一些那个业务,嗯对,是的是的,对对,嗯嗯嗯,是的,它会更加丰富,对吧,相当于说他从排下的东西其实相对来说已经挺精细了,因为你如果说你已经有上线的网站,它是爬的很精细的,因为你网站上所有的东西都有,但是有一个输入框。我到底要输入什么东西对吧,那有其实有很多业务逻辑的,这个时候是不知道的,所以我刚才提到一点是说大模型所分析出来的图谱需要我们人工去补的啊,这一部分比如说这样一个输入框,这个输入框它到底多少个类型,大模型只能猜出来一个。
104:02
但是你有四个你怎么办,你自己补进去就行了。所以这里面因因为它是有规范的,我哪个页面到底有多少个输入参数,你只要把这个规范写进去,说我这个表顶点上,我再拆出来四个子数,分别表示四种类型,你再把子就把子节点再画出来就可以了。所以大风型一个好处就是说,我分析出来一个整体大风型之后,我没有办法说就是大风型到目前为止都没有办法完全代替人。人的一个经验就在于你申请的图谱不是那么靠谱,我来帮你修正一部分,这一部分叫做纠正,利用这个纠正,OK,那这个大冒险相当于90%以上的东西,我是不需要修正的。对吧,而且这个东西可工作可积累的,等到下一次他分析完成之后,哎,这少了一条路径,我单补一条路径就可以了,所以我只需要做对少部分的路径进行修剪,大部分的东西都是可以可沉淀的。嗯,所以用这个方式就能做到。嗯嗯嗯,对是的,对,因为这个框子是这样子的,就是为什么要搭这个框子呢?是因为大模型所生的东西知识是比较散的,对吧?单个的代码,单个的用例,以及说当文档更新了,重新再生成的时候,比如说我昨天生成1万条,今天研发改了某一个页面,重新再生成又是1万条,这1万条跟上一个1万条之间有很多是可能也发生变化,你都不知道哪些东西变化,你对付起来也很贼劲。
105:26
啊,所以这个时候我不想让它生成1万条,而是说你先给我生成一个最基础的模型,我去改这个模型,只要模型相对来说稳定,那么它生成的用例就应该要是稳定的。对吧,所以我要基于这个方法,大部型每一次生成东西,它是有有一定的,就是有一定的随机性,那我选的说,那我不用它直接生成,我先生成图谱,只要图谱稳定就可以了,我确保图谱的稳定,然后是图谱内部生成测试用例的时候,我用自己公司的框架来生成。比如说我有模板技术,有一个叫呃,大家如果学过Python吧,应该用一个叫什么金甲是吧,还有一个叫什么马克。
106:03
那其中SSPA有个叫自动生成测试的功能,它用的就是用ma克那个技术来生成的,它有一套模板,你只要把数据给到他,就可以帮你生成满足你公司各种框架的一种测试用例。对吧?所以用力的生成是一个很严谨的过程,包括说,呃,当我对一个输入框设定了它有四种参数化行为的时候,我要生成对吧,四个参数化的测试,用力这东西靠大模型让你生成,那你的提示词太多了,所以这一步不让别让大模型生成,而是转成说有自己的框架,自己来去生成它大模型的东西放在对代码,对文档的解析上。解析完成之后的东西,生成这样的一个模型,对吧,然后整个流程呢,其实用一个模型模型驱动测试的概念啊,可以完美的解释,你可以看到这里,我刚才这个这个是属于模型驱动一个模型驱动测试的一个比较重要的一张图啊,这个图刚才没给大家去讲,这个图呢,是来自于微机百科啊国外的,所以它的图不是那么清晰,呃,也不知道是哪位专家画的啊,他这个图很完美的解释了模型的四大四大过程。
107:08
一个模型的四大过程是什么呢?第一个叫做建模,就是我有一个复杂的倍增系统,可能是个网站,可能是个APP,可能是一个一个服务的接口。那么它到底有多少种行为,你从一个界面跳到另外一个界面,或者说这个输入参数有多少?参数本身你需要找一个方式进行建模。这个叫model,或者叫modeling建模完成之后,它建出来一个是什么东西呢?就是我里面有N多对象。如果说这个模型哈,就是我用一个大家用过的概念来解释的话,它其实就是po。配置object model po这个模型,Po模型进入了我页面有多少个件,有多少个可能的方法吧,然后这个方法里面,比如说我有个输入框,我就输入的,所以这块有一个输入概念在里面,有参数,也就这层过程,相当于说我建了无数个po,类似于po的概念,这里这是第一步,这个建模第二步,模型有了,模型呢,只是表示你系统大概的一个行为,这个模型可能不全,需要你自己来慢慢去补,对吧,模型一旦有了,模型到我生成测试,就是我有模型了,我要对它进行测试。
108:15
这个时候呢,我也可以基于模型的这个所有的行为自动去生成,所以这一部分要结合另外一个输入的地方,这个测试的一个需求,测试需求指的什么呢?我要求路径100%覆盖,我要求行为100%覆盖,我要求某个参数有四种可能,我需要它生成四种可能测试用力,这种就叫做测试的需求,就是模型结合你的需求。就可以生成一个。抽象测试机抽这个叫抽象测试套件,抽象测试套件呢,可以对你的模型进行100%覆盖率的测试,但是呢,它不能做自动化,它做不了自动化,因为这是所有的模型都是假的啊,都是一种编程的模型,或者数学的模型,或者说一个状态机。那这个时候呢,他只能模拟执行,模拟执行大概会生成多少个测试用力,然后有多少个覆盖。
109:02
但是他做不了自动化,我想让他做自动化怎么办?第三步。抽象测试,测试集变成一种可执行测试集,中间有一个行为叫做映射,叫做map,这个map是什么情况呢?你要给我。某一个页面它做自动化时候的定位符是什么,对吧,就是我知道怎么进去这个页面,但是我不知道说这个定位符当时啥,我知道这大概有个登录框。这个登录需要输入用户名和密码,但是我不知道具体怎么输入这一层。这第就是第三个核心的数据,你要提供这个页面的具体的信息,你可以从文档里面用大模型分析出来,也可以利用爬行爬出来的网页,然后再让大模型去帮你申请补,补上这个具体的定位符,具体的输入的具体的那个叫输入的一个空间的一个定位。这步完成了,相当于说抽象测试集,记录的是我登录,我有用户名、密码两个输入的东西。
110:00
我知道返回值已经可以到首页,就是登录之后会进入某个首页抽象测试,只记录到这一层行为,然后你补上了具体页面的控件信息之后。它就会直接转成一种叫可执行测试机,可执行测试机指的是说你有了web自动化之后,我这儿申请的是web自动化,如果你补给我的是接口的测试,比如登录这个接口的请求,我就会生成接口的测试的一个可执行测试机,好这一层关系做映射。映射完成之后,整个测试用力就已经完整可以执行了。好,所以说刚才我说的基于知识图谱的这几个核心概念啊,就是一个是模型,我们要借助于爬虫加大模型,帮你补充补充这个,接着人工补,补充一个,第二个呢是覆盖率要达到到多少,这个东西非常简单,它是很容易实现的,你甚至时候可以让它自动设置一个默认的标准,比如说所有的路径,所有的页面必须百分之100%它覆盖就可以了,所以这个是非常容易的。然后第三个是我要让系统知道说我有了一个业务模,抽象的业务模型之后,我希望每个页面的细节,每个接口的细节能够有所补充。
111:06
这两个是我们工作量重重心,一个是大模型,分析你的文档,分析你所有的页面,生成抽象模型,他只要告诉我行为,告诉我关系,这个模型对应的什么东西呢?我刚才用一个PT。PT搞过一个叫做啊,在另外一个页面。搞过一个叫做这个,这个就叫做抽象测试的模型,就是他记录了关系,谁跟谁之间有关系,有什么样的关系,有什么样的类别,他知道的,但他不知道,现在还不知道到底要不要做外部测试。然后是下一步。下一步就是图谱里面那个对吧,然后就我知道了所有的爬虫爬出来的一个大概的一个顺序,所有的页面结构了,知道你页面行为是干嘛的,甚至通用模型,接下来是我每个页面当当系统处于某一个顶点的时候,他当时的页面是什么,当时的接口是什么,通过这个数据提供这两个数据,其实你都可以用一个标准的数据结构来来进行描述。
112:08
来我的哪一个页面,在哪个页面的时候,它的内部有多少空间,有多少个行为从这里面实现出来,一个是抽象业务,一个是具体的你的你可以列成,如果我用最简单的概念就po来表示的话,这个代表po里面的类方法、参数、返回值,但唯一的没有测试步骤,下面的就代表测试步骤。是吧,我登录了到我到底要做自动化还是要做接口,要做外部做接口还是手工,然后在这里面去补充它。这两个东西都需要,一个是model,一个是下面这个叫测试的一个信息,都需要被放到图谱里面进行管理,所以这两个核心就是图谱这个概念其实也是突破人的概念,就是我给两个顶点,把经过这两个点的所有的测试路径全部生成出来,所以这三个因素都是知识图谱里面的东西,因为大模型帮你辅助,大模型可以辅助前面这这这两个是可以。
113:01
一个是模型,大模型可以辅助生成页面里面的每一个信息,我到底是接口还是UI,大模型也可以帮你管理,帮你做分析,所以这两个主要是有大模型来解决。测试需求我们人维护就可以了,最后吧,经过这三个数据整合,最后就会生成所真正的测试用例,并且是可执行的这一步过程吧,这这几个过程分别就叫做我前面应该还有一张图啊。是是,这个时候就分别代表的是有一个倍增系统,我首先完成第一层就做model,我要建模哈,建模完成之后,第二步收生成抽象测试集,这一步是根据你的测试需求生成一种抽象测试集,我先模拟跑一遍,看一下上面大概有多少个用例,那么他们会生成什么样的测试。模拟测试用例转成可执性测试用例,需要提供一个额外的信息。页面信息接口信息提供过来,最后转成测试级就可以直接执行了,好。
114:04
好,好,这就是整个的大概流程。嗯。嗯,好,我给他说下,嗯。嗯,缩小。嗯。看看还有什么问题啊?呃,有人提了一个说,呃嗯,能做能做us us动画测试嘛。
115:01
这个当然可以了,但是不建议啊,Us的话不建议图像识别的方式啊。我现现在大模型很聪明,大家都知道,尤其是GPT4啊,GP4有个叫GPT4FOR gpt for v可以分析你的视觉,其实现在大部你都已经很聪明了,他知道图像上有你所有的。有什么样的关键件,我在前面讲那个什么叫hugging face的时候提过一点,Ing face就有这个叫object,就是对象识别,这个东西就可以完整用在us化里,但是我的建议是说尽量少用。为什么呢?就是一个页面,一个一个APP的界面,或者HL的界面,它底层是有非常丰富信息的,比如说这个空间的定位符叫什么东西,对吧?如果说给你一张图片,你不知道定位符是啥,你的定位符只能知道说这是一个人对吧,这是一个小动物。他能知道里面的类别,但是里面的定位符,我只能是说根据这个类别进行大概的定义,那但是呢,里面的每一个定位,就我举个例子啊,里面有个十只兔子,你到底要找哪一只兔子,哎,大冒险就有点懵了,对吧,他不知道你到底要定位哪个兔子,但是呢,在开发的过程中。
116:15
每一个兔子里面可能都有自己业务含义,有的子要干一个事情,有的兔子要吃草,有的子要奔跑,在你的底层开发的时候其实是对他有一些额外的信息标记的。这种额外的信息标记靠图像识别是找不出来的,图像的识别丢了非常大的一些信息量。啊,所以我不建议说使用完全基于图像的自动化,而是说尽量的使用说底层的定位,如果说你实在没有这个信息了,你再可以考虑说使用视觉自动化的表率。所以回复的同学都跟你说。能做到视觉自动化,只不过是不是特别建议对吧。但是如果说我有一个领域真的需要视觉自动化,我就是只有的话,视觉自动化才能搞定的,那你就得必须要做了,比如说视觉自动化它有很多优势,什么样的优势呢?我图像黑边啊,对吧,有黑边有白边啊,我要在两个对象之间进行精准的对比,这个时候我能拿到只能拿到一个图像,那这个时候你就得靠视觉自动化的各种各种体系了。
117:18
对吧,所以在一般的做法中是说,你如果说有结构化的信息,就尽量使用结构化的,实在没有结构化的,那就只能分析图像再去生成结构化,再进行对比了,所以两个方式各有各的一个用途啊。那我问一下就是那个呃,因为我们公司就是就是这接算是有上问题,嗯,公司目前为止应该那小基本就包括自研的卖材应该有相300啊很多对,然后像刚才说的我我因外我想通过那我是这种方式把这个整个的东西都给看解的话,那呃是只能只能靠费代码方式来来做了,因为现在种了解就是说这个相关的文档,然后那个测试用力这个数据,OK,那这里面有几个关键的数据哈,就是第一个是文档对吧,文档是主要这有个文档我就可以分析它的基本流程,但是文档你要知道文档写的对吧,是不前你提的是个很真实的问题,尤其是公司里的各种小项目对吧,经本常就是文档压根就没有一上来就是接口的文档,可能有。
118:28
但是详细的文档给你解释那些东西,没有文档是第一层,如果有文档是最好的,但如果说没有文档怎么做第二层,第二层就是你没有文档,但是我会爬一些什么呢?一些重要的结构化的信息,你可以列成就我们做,你是做测试吗?OK啊,那做测试的同学可能知道一个概念,叫做分层测试。分层测试里面我们知道有个叫测试的金字塔,你不知道你有没有听说过,OK,测试金字塔里面就是说建议说底层是单元测试,中间是对吧,集成的这个测试中间集成就是有微服务啊,接口啊,再往上一层是UI的测试。
119:03
其实呢,我们如果说没有文档的话,那可以下扯一步,下沉到说只要你有UI,只要你有接口,我也可以做分析,那我怎么知道你300多,假设有300多个系统,我怎么进行分析呢?300个系统肯定要么有接口,要么有UI。是吧?那我拿到这些页面信息,把这些页面信息,把这些HTML结构,把这些接口的文档定义结构扔给大模型,它也可以帮你做分析,他能分析出来每个接口,哎接分析出来所有接口的调用关系,以及接口之间的参数的一些事例,他也都可以帮你生成出来,所以拿到这部分结口也可以有效的补充你们的一个一个测试。我举个例子,你们有s spag文档是吧?那有s spag文档,S spag文档或给大模型,让大模型去生成所有测试用率,这是一个办法。第二个是就算没有大模型,如果你有SSPA文档本身就可以生成测试用例的,它就用不了大模型,只是用大模型更简单,你就不用做工具了,这一步到位,直接呢,生成你的所有测试集,只要是U外。扫描系统里面肯定有一部分是有UI的,这个UI怎么做呢?UI里面其实也有好几个办法能做到。第一个办法是我使用爬虫,爬虫UI里面也有一种爬虫,它可以判定所有的页面,分析你所有页面的结构,有了这个页面结构之后同样也可。我刚才已经举过例子了,它也可以生成完整的模型,这个页面结构已经非常丰富了。除了这个之外,还有一个更小的技巧,如果你是开发,还有一个额外的技巧更简单。
120:24
你给所有的页面增加一个小的JS脚本,这个JS脚本干什么事呢?它有一个额外的方法,就是每当用户打开这个界面的时候,我通过JS分析我页面上所有的弹结构,我把它回传回来,这样就相当于说就算我不用爬虫,只要有人看这个系统,我就能拿到这个页面当时所有的页面啊,所以这也是一个小的技巧,这这种这种理念呢,就是am,类似于应用性能监控,只不过是我把它用在功能上。这个的好处有点类似于谁呢?React框架对吧?前台开发的时候应该知道react react有个叫它用来生成界面的时候,他用了一个叫down数的一个diff diff的一个方法,这个盗墓数diff就是说当你写段代码说我现在要更新一部分组件了,他不会更新整个页面,它要更新一部分,他怎么做到的呢?它就是一段小的GS,分析整个倒目数,然后最后决定,哎,根据新的东西算一下啊,找到只只需要更改一小部分就可以了。这个小技巧也可以用在这个里面,我不爬了,我利用我的JS框架自动读出来页面上所有的结构,同样回传回来就可以了,然后这玩意生成下来,就是一个个每一个页面的结构信息,有了这个结构信息,大模型也能知道里面有什么东西。
121:35
之了之了是很不错,然后因为合规问题,然后那个就国外的都了,然后那个公司内部目前可以用的就是那个的,那然后是其实差你们是买的,买的是多少,这个就太啊啊啊,那说明你们公司还舍得投钱呢,因为我知道GM最便宜是30万,30万起步,说明你们公司至少花了可能有几百万吧,我可能要买这个东西,但也有可能是买了30万的最低版本,那GM呢,它是属于国内清,呃,清华应该是在智付是吧,啊智付这家公司搞的。
122:25
顶着清华的名义是清华下面的应该是子公司,清华大学是中国典型,典型的就是最容易最会对吧,搞公司,最会搞商业的一家就是高等学府,它里面清华大学的很多的子公司,清华大学自己都控制不了,很多人在顶着清华的名义在在搞各种这种产品。那质其实也是属于其中一家哈,然后那个质的质的问题就是说,呃,GM的问题在哪啊,它的参数量比较小,另外一个是它的就是本身的时间,它是属于比较早期的一个实现了它的整个实现方式啊,然后就是包括他训练的时间,训练的参数量都跟国外大模型相比差很多倍。
123:03
你可以列成,我记得清华最开源出来的是6B,但我不知道你们买了多少。行业里面一般是这样的啊,6B到7B基本上只能完成最简单的生成,然后13B有一点点的这种,就是有一点点的可以推理吧,或者说更加聪明一点,53B以上,然后基本上就有了非常复杂的一些推理能力。如果说你公司里面要进行商用,所以建议是说五十五十币以上的是更合适一点的,那。那那他就那他智商告诉你肯定很弱的,对吧,那如果这种比较弱的情况下怎么办?其实也可以解决,就就不要让他做非常复杂的东西,比如说全流程的推理,你就别让他做了,他根本搞不定,就是我可以让他做的更简单一点,简单到什么程度呢?就是我只让他,我给他一段弹结构或者一个接口的文档,你帮我生成对的测征力,或者再生成一种中间结构化的一个结构体。你让他只完成这样简单的功能就行了,生成这些东西之后呢,把这些东西然后再扔给知识图谱,然后将来有知识图谱干后面的事儿,就别让他干太多复杂的事情。
124:04
那这是第一条,第二条呢,是它本身也支持微调,对吧?6B的模型我结合微调就行了,我把公司所有的文档,我把测试的文档,开发的文档全部堆进去啊,你这堆的还不只是你们自己公司的文档,你还得堆行业内的文档,对谁的文档呢?我举个例子,如果你要做测试,肯定有接口的测试,有外部的测试。那用的哪一个框架,这个框架的官方文档整个的扔进去,也经过这个东西进行回调,所有这些数据都扔进去做微调,这个时候才会有效果,不然生成出来的东西就是你想下清华大学,他可能他可能练关门档,他压根就没有给你分析,训练的时候没有训练他就不可能生成出来靠谱的代码了。所以这部分靠他这个已经不行了,那你就只能使用微调或者结合IG的技术,两种结合就能够搞定,就是减速增减生成就可以搞定,你的测试溶液生成会稍微靠谱一点。是吧,所以我建议是说企业内用用正好是13啊,13以上50以上最好的,但那个比较贵,正常是13B的运行是是成本最低的,13B是呃,差不多是4090的显卡加上一个呃一个一个正常的1万的服务器就能搞定,整个成本下来,5万以内就可搭出来一个私有模型,所以这个东西就已经可以了,6B7B,如果你用6B7B也可以,但是别用国内的这几个模型,国内的几个模型训练起来,它训练的应该是也是有问题的,就是内部的很多的数据量有问题,尤其是技术类的问题是最弱的。
125:27
你想清华大学他他也本身就不太搞什么测试开发这种东西,他接触的东西非常少,他能训练的就是国内的一些素材,你让他谁训练代码最强,Giar get up的Co其实是最强的代码生成测试兄率生成模型的,我们现在虽然在用PT,其实最强的还是Co,就是get up的Co,只是大家一直因为他没有去开放入口,他只是在卖收费的,而且就一个插件,所以大家基本上很少,就是用的起还不太多,但是他们模型是最强最强的。吧,如果自己公司要用,你要微调的对吧,如果你的模型参数不强,那你就得微调对吧,明白了,嗯嗯,那我们看其他同学还有啥问题。
126:10
啊,刚才有,我看网上有个同学问到说AI这块成本怎么样?成本我刚才说了,最便宜的是要买一个类似于4090的这样的显卡,4090好像是不是被封了是吧?我刚才查了英伟达的官方网址,因为有另外一家公司啊对,你们公司如果将来想用这个模型的话,也可以考虑采购我们公司,我们也在做这个产品,我们那个便宜哈。呃,因为另外一家公司正好也买我们一套内部的测试平台,他问我们想换成他不像英伟达的显卡,他要买华国内华为的,华为有个叫圣腾的芯片也可以,但是圣腾圣腾腾的芯片它呃本身一直是面向大企业的,华为买了买了几百万吧,好像是就花了几百万买了各种各种各种NPU的这芯片,但是呢,他对TOC的不是那么友好,TOC的压根就没有购买的入口,只能在网上买这种二手的或者代理商的,所以华为这个还没有构建起来TOC的销售体系,它主要是To B的,所以它那个费劲一点,也就说它的成本是多少呢?刚才提到的2万的服务器就已经够了。
127:08
2万左右的服务器,但是最好内存要大,CPU可以弱,没关系,内存要大是吧,CPU适中,内存要足够大啊,100多个G是最好的啊,因为你跑的可能不止是一个大模型,我要拉满要跑对吧,GM要跑几个加起来都是已经是五六七八十个G以上了,所最好是一百一百个G对吧,实在不行就64个G也是最低的吧。啊是跑单个模型至少是30g 202024G以上,所以基本上说一万五左右,2万左右的一个服务器,加上一个一万五到2万的一个显卡,差不多加起来也就是不到5万,你就可以搞定了,搞定这个时候呢,它只是搭建起来常见的一些聊天的东西,你想把文档怎么扔进去,你想把你的代码怎么扔进去,它提供了对应的能力支持,但是你需要自己自定义一些工具。你要开发对应的工具才能做得到。啊,所以这一块啊,需要你开发一点工具,用什么东西来开发呢?我刚才提到了,第一个是叫那个叫浪,这个浪呢,可以帮你开发各个大模型的一个应用。
128:09
啊,Long称是一个,我刚才呃,我重新给他打一下吧,大模型开发比较好的一个框架叫long称,那这个东西呢,可以帮你搞定啊,文档的分析,代码的分析,我刚才举过几个图啊,官方有几个事例,你可以看到也非常不错,相到什么实例呢,就是这个。呃,IG的技术帮你分析公司内部的代码,帮你分分析公司内部的文档,使用IG的这个技术可以搞定,然后是第二个是说还有一个图数据库,它支持对知识图谱进行各种检索,所以这里面还有个知识图谱的应用,我刚才提了一个叫u for,你发现u for呢,它也是支持直接连接AG的知识点,然后帮你去生成,然后去检索库啊,去生成各种语法,去里面的各种数据啊,也可以搞搞定。好,所以基本上是说框架可以解决大部分的需求问题,如果是视觉动化可能要用到一部分的上的transform库可以搞定,那除这个有个要做。
129:16
其这个工具呢,可以让你几乎是非常少的代码,但是你要构建一个大型网站,那肯定还要花点功夫的,那如果说只是简单的一些天的工具生成,网上有大量开源的,有开源的可以做到,另外一个是说本身它也提供了这种非常简单的界面支持,对吧?你可以用这个工具开发,也就十几代码就可以轻松实现,所以用这个工具开发你的前端哦,我们公司自自己的平台怎么做呢?前端我们当然有自己的前端开发框架,基本上就是view框架,结合g radio开发出来一个整体的前端。好,那么钱能搞定之后怎么办呢?我看一下我们公司那个有没有文档哈。我给大家看一下我们那个,嗯,看一下有没有啊。
130:06
有一个叫。找一下啊。简单找一下,找一个我们内部的内部的一个开发的一个临时的文档啊,给大家简单做个参考。就是怎么去开发呢,就是。放大一下。我这个图不太不是那么清晰啊,嗯。好,算了,可能不是那么清晰。啊,这个图还好一点吧,将就着就看一下吧,就是。我们用的开发技术呢,也非常简单,使用view做前端,使用前端,然后构建你的各种对吧,菜单,点面点面栏,然后内部呢,使用radio做嵌入,然后把你的各种大模型能力全部扔进去吧,这样你可以交互式的问他问题,相当于对应的代码,那这是一种情况。
131:16
那第一个是说文档的分析,文档的分析需要一个后端,所以说你要支持,你要开发一个后台功能,允许公司传GA的地址,把GA的项目扔进去,把网站地址升进去,如果是网站,你可能要结合爬虫,如果是代码,那你使用要用编程来实现它里面所有的代码做一些分析,那公司如果有word PDF,你可能要做一些这种具体的解析,这样通过文档导入进去,你需要一个后台,做后台的管理,搞定之后呢,你就可以查相应相关东西了,对吧,交互式的生成用例,查询一些基本的业务知识。那包括说呃,如果说你领域里面有大量的C框架,IPM框架,你要去开发一个测试开发领域里面那个大模型,通过它来搞定啊,然后当然我们实验的也比较简单,就是呃,利用简单的I技术,简单的一些文档分析技术。
132:03
然后网站爬取技术,然后最后生成我们最终的一个所有的数据,最后呢,你通过查询就可就可以了啊,所以我们也是差不多做了一个这样小型的工具,之前给大家开放的那些工具,比如说像。像那个chat GM叫TT,我们自己公司给家费开放个技术,刚刚问个东西对吧,这个也是,我们也都是类似的,就是使用简单的简单开发框架结合及radio就可以帮你开发出来比较灵活的这种小的一个网站。然后内部的话,你只要了解大模型内基本使用I的技术,微调的技术是吧,Face那个Hu face上的transfer分库,了解这些知识点,花一点功夫你也能做出来这种人工智能的一个平台。所以从技术上它并不难,更多的是你的经验,最难的是在哪一块呢?是图谱哪一块儿?大模型帮你生成的是零碎的知识,你想让它生成最终的可用的东西,你需要了解这样几个概念,对吧?就是散乱的东西,如何去生成结构化的数据,就是爬爬出来的东西,我要生成各种数据,数据数据结构,然后存起来。第二个呢是图谱,把所有的东西扔到图谱里面去,让图谱就帮我们维护大量的业务知识。第三个是说我生成用力,我要结合模型驱动测试,就是我刚才PPT里面提到的几个,呃,模型驱动测试的概念。
133:27
只有模型驱动测试能够让我们去,对吧?跟大模型结合,它是最最完美的一个方案。如果说你让大模型直接去生成最终测试用例,告诉你很难应对变化了,就是我的代码稍微一变,文档一变,你生成的很多用力都已经废掉了,或者生成的用例不符合你公司的需要。所以真正想让它可用,一定是离不开模型驱动测试跟制图这两个概念的,那不然的话,你用的就是非常浅,就是简单聊个天而已,你干不了其他的事。好,看一下大家还有啥问题啊,嗯。我刚才不是举了一个例子嘛,就是目前来说哈,只有一些顶部的公司在落地。
134:14
就是大量这公司还没搜到,我知图不谁什么情况在用到呢,其实你在网上搜一下也能搜得到啊,就是测试里面搜的时候,之前转转分享精神测试的时候,他们用过这个,他们用的是AO,就是用图数据,用图数据库去查,去关联代码跟用例之间的关系,就是精准测试用这块用的,呃,最经典的。那剩下的是还有一部分公司,华为,然后是蚂蚁金服,呃,蚂蚁金服里面是,我想是他们哪个产品线啊,蚂蚁金服是刚刚开始做,但是他图谱好像是没用,但我看到他们好像提到这一点了,因为我给他们的人有交流,华为用了,华为是咱们行业里面做的非常牛的公司,人家做就模型去测试啊,你看模型去测试人家什么时候开始用的,八年前开始用的。八年前他就已经在做模型跟测试,对吧,然后现在是前段时间我们也跟他有交流,基本上也在聊图谱跟模型如何进行结合,我们也跟他有沟通,所以华为也在用这一块。
135:09
然后爱奇艺,我记得好像爱奇艺在做精准测试的时候,好像也提到了,他们也用了这个技术站,其实你可以搜一下IU forg,然后加上测试这个关键字,就能搜出来行业内用它的所有的公司,因为这些公司在行业里面其实都有都有公开对应的文章的。所以说是稳成本,嗯,还是先这样子啊,呃,成本其实并不大,很多人为什么呢,他没有用啊,不是说这个东西很难。是,问题是大家都没有听说过知识图谱,比如我们在座的同学听到知识图谱,能知道知识图谱这个概念的人连一半都不到。也就是说我们怀远人其实都没有听说过这个概念,主要是因为国内用的少,那大家自然也不会去研究它,那理论也少,工具也少,生测试开源的工具也少,自然而然大家用的就就是就是就公司肯定就没那么多,那sli ipm你可以看到用的很多,但是你知道I有个插件叫做AI的一个插件,它可以通过AI来做自动化,但是我们我们行业内的公司有多少人知道的,其实做的也很少。
136:13
对吧,所以你可以看到是第一个是国内跟国外技术上有差距,这是第一点,第二个是我们国内学测试的时候呢,有一些测试方法被我们给漏掉了,最典型的就是模型驱动测试。模型学测试,你看在我们国内用的人也比较少,对吧,但是在国外这个东西有开源的,有开源的工具啊,也有不少的公司在用,但是在我们国内用的来说就少很多吧,如果说我们做了模型驱动测试,然后基本上你就会自然而然去用到知识图谱的吧,所以本质上还是说我们国内前一年是,呃,可能是种自动化测试,自动化测试用的比较多,测试框架用的比较多,然后再往上再发展一步,到了模型这一层,就是概念就比较少了。另外一是模型在国内的资料真的是非常非常少,比如说一个领域模型是什么,Po的模型还好一点点,对吧,大家听说过,但是用的人也很少,Po模型用这么少,Po模型是一个基础,再往上什么呢?领域模型,再往上是。
137:06
模型驱动测试,再往上是知识图谱,所以这里面总共有四层概念,我们在国内用到的应该是最属于第一层到第二层的概念,就是第一层自动化测试,第二层po模型,再往上的模型驱动测试啊,对吧,领域模型啊,知识图谱啊,这些东西我们现在国内文章太少了。但是国外的东西还是很多的是吧,所以可以多去看一看这种海外的资料,他们有很多很有趣的研究,嗯呃,由于时间关系啊,就是我当时没有讲文型学测试模有个很经典的概念,就是国外有个那个项目,他们做了一个完整的例,就是把宠物商店的一个自动化测试完整的模型测试的概念做出来的,那个也非常有意思,你回头可以去看一看。对吧,然后从技术上它并不难。因为制度部的核心概念是什么呢?就是如果你有编程来实现的话,行业里面有开有标准的库,除了标准库之外呢,里面还有一些就是它的核心算法,就是什么东西呢?就是叫做呃,这作图的算法,或者叫二叉数多查数的一个算法,主要是多叉数,你只要搞定多叉数的算法,制图表的分析就轻松可以可以搞定。
138:14
是吧,所以本质还是说我们国内因为各种原因嘛,还是呃,就是技能数点错了,就没有往这个方向点呢,没有往这个方向去点,结果结果是到大模型崛起的时候,你不点就不行了,因为大模型跟它结合是最好的,嗯。嗯。这就有请咱们的云飞老师啊,云飞老师从事任百度的测试开发专家,然后有丰富的实范经验,他将为我们分享深度学习与视觉自动化测试应用的最新研究成果,以及在测人工智能时代如何推动测试开发的创新。下面有请一下咱们的于飞老师,嗯,欢迎。
139:09
稍等一下。
我来说两句