首页 每日干货分享 AI编程实战:用AI开发测试平台之需求分析与用例生成

AI编程实战:用AI开发测试平台之需求分析与用例生成

发布时间: 浏览量:33 0

前言

这是关于AI编程实战于以AI开发测试平台相关的序列文章的第4篇,先前的三篇各自进行了分享,具体内容为:

本篇会持续进行分享,怎样借助 AI 编程助手并且此助手主要是 Code,为测试平台添加如下功能,也就是“需求分析、自动生成用例”的功能。当前这次所要开发的功能清单涵盖了:

输入需求

分析需求

生成测试用例

下面是详细的思路介绍和开发过程记录。

一、开发智能“需求分析”功能1.基本功能开发

之前于网上见到过一个基于大模型之自动生成用例的开源项目,我于本地进行运行,加以试验,生成情况尚可。于此索性便是直接将其丢给着,让借助这个项目的功能逻辑,先期开发出一版瞧瞧效果,若不理想便再更换别的方案!

我当下期望达成一项需求分析,接着自动生成测试用例功能,借助用户给出的需求描述,或者上传的附件,经由大模型A自动剖析需求之后生成测试用例,再由大模型B对测试用例予以评审补充,附件支持word、PDF、TXT格式。能够单独分配一个菜单,其名字称作“需求分析”;实现思路和写法你能够参考这个项目:

/Users///

大概十五分钟左右,完成了功能开发。已实现的关键功能包括:

回到前台页面,查看功能展示:

2.增加需求输入框

这一迅速被开发并完成,然而此处不存在那能够让使用者进行输入的文本框,这阻止其放入需求描述,(前面指令中说了那有关用户所提供之需求描述或者是传送而上的附加上的材料,大概是它并未全把指令本意理会明白)使得要把输入框添加过来:

存在这样一种情况,需求分析界面里不存在进行输入操作的框体,致使使用者没办法依靠手动方式去输入有关需求的描述内容,在此请你于“上传需求文档”这个区域的上方增添一处供用户进行输入的框体。

开发已进行到一半,却突然抽风,连接不上了,到夜间时又恢复正常状态了,与此同时,会话也断掉并重新进行连接了,所以,对功能是否完好需展开检查:

项目,路径是

我不太明确你提供的“/Users///”具体意图,下午我交代你于需求分析页面的“上传需求文档”上方增添用户输入框,以此供用户进行需求输入,然而开发进展至一半时,网络出现断开情况,期望你再度核查一遍输入框功能是否处于完好状态,在正式开启之前,要记得激活虚拟环境,其路径为

/Users////.venv

检查完成,页面功能完好:

刷新前端需求分析页面,输入框已增加:

让我们来测试一下,手动输入需求后,分析的功能。输入需求:

会议控制功能:

主持人具备控制成员静音入会开关的能力,在打开该开关之后,每一位进入会议的成员都会被强制处于静音状态 。

主持人能够通过一键操作实现全体静音,还能够运用一键操作达成全体解除静音,并且能够针对某个成员单独进行静音或取消静音操作。

需求分析其功能流程不存在问题,具备开展分析的能力,能够给出分析结果,并且可以进行展示。然而在这儿分析得出的结果与预期严重不符,所以后续还需要进行优化,要先将流程跑通才行。

3.修复上传附件时选择不到项目问题

在我上传需求附件后,发现关联项目下拉没有任何选项。

最开始进行分析,而后给出了相应的结论,这个结论表明是用户未登录造成的,为此在与关联项目相关的地方加了一行登录的提示。然而我感觉到它朝着修复问题前进时明显方向有误。因其我当下处于登录的状态,而且在项目管理里也配备有多个项目。我是经过在后台日志观察,才看到了一个接口404的报错提示,这个提示应该是和前端请求路径不正确存在关联:

于是,我把问题重新抛给:

就上传附件时选择不到项目这一问题而言,我感觉或许是你修复问题的所朝着的方向出现了差错。由于我已然处于登录状态,而且在项目管理当中也能够看见项目。所以,恳请你把同“暂无项目数据,可能需要先登录”相关的逻辑以及提示予以去除。另外我于后台日志里看到了一个404的提醒,会不会它就是和这个存在关联呢:2025 - 07 - 29 21:35:02,026 log 19212 Not Found: /api/api//

果然如我所料,是请求的接口路径不对导致的。

回到前端页面,关联项目正确加载数据:

4.修复需求文档分析失败问题

我上传附件、提交后页面提示分析失败,code 404.

交给解决:

上传附件之后,“需求分析”模块的需求分析失败了,提示为with code 404,请你帮我修复这个问题。

重新上传附件,分析成功:

5.解决生成测试用例失败问题

前需求分析已运行通过,然而生成测试用例却失败,生成的测试用例数量为0 。

唉......继续丢给解决:

需求分析完成了,然而在分析之后去生成测试用例时却遭遇了失败,页面弹出提示,该提示内容为“成功生成0个测试用例”,而后台日志此时出现报错,报错内容是:You call this from an async - use a or.

这回倒没出现报错情况,产生了5条用于测试场景的例子情形。然而,该已经生成而成之后出来的此类例子情形要去往什么地方找寻查探观看了解咧?

6.增加用例生成记录列表

我似乎也未清晰表明在何处查看所生成的供待验证规格说明的详细事例等有关需要。无妨,持续让其进行研发去吧!

此刻,页面给出了生成用例业已成功的提示,然而,生成之后的用例究竟去往哪里方可查看呢,烦请你添加一个名为"用例生成记录"的列表,借此用于查看生成而后的测试用例。,

使页面发生刷新,将附件予以上传,对需求展开分析,再次去生成用例,生成之后的用例情况如下:

AI编程实战用AI开发测试平台 需求分析自动生成用例 ClaudeCode 测试用例生成_ai工具自动生成测试用例

先说对于列表字段我们暂且不去理会它,再来瞧瞧这里所存在的一个问题,那就是当把列表收起之后就没办法再找寻到生成的用例记录了,这种体验相当糟糕的,交付于大模型去修复:

用户输入需求,或上传附件输出需求分析结果,之后点击“生成测试用例”,这时需求分析页面底部会展示生成的测试用例列表,然而点击“收起列表”之后就不再显示“展开列表”按钮,也就无法再展开列表。

问题修复成功,收起后增加了展开按钮,问题解决!

7.创建用例生成记录子菜单

列表于此时虽可进行展开收起操作,然而在刷新页面之后便无法再度查看所生成的用例记录。因而我提议在需求分析菜单之下创建一个子菜单,用以专门记录所生成的测试用例,以便于在后段进行查找。

用例生成成功之后,于底部此刻有了用例生成记录列表。然而此处存在一个问题,收起列表之后便无法再度找到生成的用例记录,这般体验颇为糟糕,因此我提议在需求分析菜单之下创建一个子菜单,用以专门记录生成的测试用例,籍以便利后续查找。

不能不说,比我所设想的要更为全面。要是让我一次性就给它这般诸多数量的提示词从而让它去开展那种功能,我一转眼也是没法琢磨而出的。所以呢,我通常情况下都会选取偷懒的做法,先是交代给它简洁的指令促使它去做,让它先自在地发挥一番,之后再依据它所达成的效果,结合自身经验进而给出提议再让它进行修改!

无测试用例的情况:

有测试用例记录的情况:

用例详情:

不管怎样,现在总算是有菜单入口了,可以反复查看生成的用例。

8.修复二次生成测试用例失败问题

第一次生成用例完成,没问题,但针对相同需求,再次去生成测试用例,就会出现下面这样的报错 。

交给:

完成需求分析后,依据结构化需求列表首次能够成功生成测试用例,然而再次生成测试用例之际,

若访问:3000/api/-/api//这个接口 ,便会出现报错类型为500的情况 ,响应的相关信息是 "error": "生成测试用例面临失败: (1062, \" entry '23-' for key '" 。

.'\")"

2分钟后,问题修复成功:

重新刷新页面,生成两条测试用例,之后基于同一个结构化需求进一步再次生成三条测试用例,生成成功,验证通过!

9.修复需求分析不准确问题

当下流程是已经跑通了,接下来就要专注于处理需求分析不准确的难题。为何想要处理这个情况呢?是由于不管我向其中录入怎样的需求描述,或者上传涵盖何种内容的需求文件,经其分析得出的始终仅仅是寥寥几句话,完全谈不上精确与全面。

你再次对项目进行参考,借鉴其优秀实现思路,将需求分析之中的后台逻辑重新开展梳理与书写,页面布局保持不变,力求输出的需求分析报告既精准又全面,如此方可使后续测试用例的生成变得便利

哎唷喂,简直呈现出一种中规中矩的态势,并足以清楚领会明了自身所存在着的欠缺之处,还能去旁征博引其他项目范畴之内所彰显出来的优异范例来:

这块,花费的时间相对较长,token呢,消耗得特别迅速,无论如何,只要能够达成我的核心诉求就可以了。

进行了一回测试,其效果跟之前一致这般情况透露修改未起到效用,持续扔送给处理:

原来是,在views.py视图文件中,有硬编码分析器,没有调用最新优化的分析器,导致。

好家伙,这次直接弄出了个分析引擎的另一个版本,也就是2.0版本,输出的内容数量有了变化,变多了:

嗯,行吧,我觉得或许是我先前没能表述清晰明白,我所需的是测试方面的需求剖析,并非业务功能范畴的需求解析。

你很不错,如今分析引擎V2.0版本的确起作用了,分析报告的内容也增多了,然而我方觉得或许你误解我方意图了,当下说的需求分析意思是依据用户送进去的需求讲述事实或者依需求文档里的需求表述,划分成好几个类别的测试种类,每一个测试种类都含有好些个测试要点,之后在结构化需求清单里呈现出来句号。

有些时候,我发觉自身在进行描述时,讲了大量内容,还比不上收到指示之后,仅用三两句就提炼、归纳出来的关键之点称得上精准,看起来若想确切表述提示的词汇本身也是一项蕴含技术要点之处颇多难以完成之事,岂不正是人们所说的人工智能呈现出的特性 !

10.解决生成用例重复问题

我在开展的具体实际测试做完以后,察觉到,结构化需求被勾选起来过后,运用的每次得以生成的既定用例皆是完全一样没有其他差别的,这本该被普遍承认自然清楚知晓情况之下的逻辑常理显然不符合。

为何勾选结构化需求,逐个生成的每条测试用例均是相同的呢,这个问题昨天你协助我解决了一部分,忽然间就断连了,请持续帮我解决,在着手之前记得要先激活虚拟环境,其路径是

Users,多个斜杠,点venv 账户,除此之外 如果 通过执行接口进行的程序调用中间存在 并且意味着 关联于认证的情况 能够 实施使用 账号 以及 密码 开展登录认证操作。

修改完毕后,我又一次进行测试当下新流行的测试,结果发觉所生产产生的进行生成的测试用例的得到的效果成效情况依旧是不曾达到理想的良好状态。大概估计也许是由于自己没能如愿以偿成功能够成功模仿借鉴到了使用这个开源项目的独特设计的“先着手将其形成生成了出相应的结构化需求、之后再去生成得出测试用例结果”的技术方案精华所在特点核心内核。另外仍然存在有一个值得让人产生怀疑的可疑之处地方:生成测试用例所达成的做出的成绩速度速率相当之非常快,仅仅只需要2秒钟就已经获取得出相应想要的结果了,竟然完全根本丝毫表现不出有任何思考思索过程经历经过过往的时候。我果断判断认定作出决定从头到尾自始至终一直都没有调用启用大模型。

这一方案必定是要进行大幅度修改的了,在此处也先行设置埋下一个伏笔,下一篇会持续接着分享经过修改后的方案实现情况!

二、开发AI测试用例采纳和弃用功能

你或许会思索,既然已然既定生成的那个用以列举情形的事例都不符合所规定的标准了,为何另外的功能还被创造并且开展接下来相关的工作呢?句号

之所以这么认为,是由于我察觉至测试用例不论作何变化,它均需含有 "标题"、"前提条件"、"操作步骤" 以及 "预期效果" 这几个恒定字段。只不过所生成的效果未能达至预期,往后的功能之间并无任何影响,像是编辑、删除甚至导入之类的情形便是如此。。

1.用例增加编辑和删除功能

AI生成的测试用例,标题不够贴切,描述不够贴切,或是用户还有想要补充的内容所以这里需要给用例加上一个编辑功能,我最开始想的是在列表中加上编辑按钮但这样似乎只能编辑标题,只能编辑优先级这些。

于是,有了一个想法,就是该想法更大胆,进一步是要在操作栏,针对AI生成的用例,去添加一个按钮,此按钮为“采纳”和“弃用”按钮 :

拿起就行动,将上头的需求描述径直交予大模型着手开展,后续出现问题再予以调整。

改完后,起码在样式上是那么回事了:

看“采纳”弹框,哇,真的是极其牛哇,我仅仅是让它给我添加上关联项目以及关联版本而已,但它居然就连“用例描述”、“状态”、“测试类型”这几个字段都为我考虑进去咧,跟先前手工录入的测试用例的字段达成了超高的统一!

2.优化关联版本选择

然而我也察觉到了一个状况,于编辑弹框之际,“关联版本”属于在选择归属项目之后会自行带出的,没办法实施单独选择,欠缺足够的灵活性,因而在此处予以调整一番 ,向大模型下达指令 。

特别棒,你极为出色地达成了我所期望达成的那种功能呢!给你再提供一项优化方面的建议听听哈,在“采纳测试用例”这个屏幕弹出的框当中呀,“关联版本”这个字段要改成下拉式的可供选择形式哦,并且呢,要和“归属项目”这个字段之间呢,进行数据方面互相有关联的那种联动呢:

AI编程实战用AI开发测试平台 需求分析自动生成用例 ClaudeCode 测试用例生成_ai工具自动生成测试用例

归属项目被选择之后,所选的归属项目关联的所有版本乃是关联版本下拉数据范围,单选。

未选择归属项目,直接选择关联版本时,下拉数据范围是 当前系统 的所有版本列表 。

这里不清楚有没有领会我的意图,它修改完毕后,当我进行验证时不选取项目,关联版本便不存在下拉数据了,罢了,我还是径直跟它讲要用哪个接口去查询版本数据吧。

你依旧没能明白我的意思,我提到的是不选项目亦可单独选版本,这时关涉版本的下拉数据范围乃是当前系统版本管理里的所有版本数据是能够经由

:3000/api/接口查询版本数据

刷新页面,重新查看采纳测试用例弹框,这次改对了:

3.修复测试用例采纳失败问题

这里我补充填写了相应信息,但是提交的时候报错了。

然而,我查看了测试用例列表,可其中呈现的是刚刚提交过的数据,这表明实际上已经将其成功导入了:

交给大模型来修复:

采纳测试用例,提交时提示“采纳测试用例失败”,接口

/,那么此返回{"":"方法“ /-/-/。现在所讲状况之内返回内容会包括方法特定陈述指明这种方法本身确实并未得到许可、允许这种/ "不被","得到在针对着329这个数的测试环境之下的API关联的405标准代码陈述规则下的表述出现状况之时即3k测试所用途径情况下关于其测试实例数量标准代码规定之内的信息在对应的测试案例明细之中,已经,成功展开导入对应数据的操作了。",":"方法却 "}},不过在那个时候状态返回为按照特定的一种针对数字数字所对应的测试路径之下的代码规定之内就是在这个/3000/api/-这种特定的测试路径之下的/api/test "不被允许”,返回{"":"方法 “" 不被允许。"},但测试用例列表中已经导入数据成功。":即在针对基于数字为:3000/api形式环境条件下的/api/test-cases/29/这种特定的测试途径之内的标准代码陈述规则之内的状态代码为405的情况之下所出现的返回内容会包括方法特定陈述指明这种方法本身确实并未得到许可许可这种方法 “" 已经有了成功导入数据的情况在测试用例列表之中。

刷新网页页面,再一次进行导入,出现提示采纳成功的情况,测试用例列表也将所显示最新采纳的数据展现出来。然而采纳接口仍是出现报错405的状况。

当下采用的用例,给出采纳成功的提示,测试用例的列表同样呈现最新采纳出的数据。只是采纳的接口

把“: ”置于3000/api/-/api/test-cases/17/之处,结果仍旧显现为报错405。

又一次采纳,采纳达成,控制台径直滤除掉了先前老是呈现 405 报错的接口:

4.采纳测试用例设置字段必填项

当点击采纳后,要是不针对归属项目这个方面进行选择,同时也不选择关联版本跟优先级,继而直接提交,那么就会致使采纳失败。所以呢,在这个地方需要将有关归属项目的字段设为必填项。并且,还需要把关联版本的字段也设为必填项。另外,优先级的字段同样要设为必填项。

将采纳测试用例弹框中的“归属项目”设置为必填项后并“关联版本”也设为必填项,此时“优先级”不用填,不过在提交的时候,会默认带着“低”这个字段值开展提交操作的 。

刷新页面再次查看,修改完成:

5.采纳测试用例增加状态流转

当下,AI近期新生成出来的用例呈现的是“已生成”这种状态,在其被采纳以后,我打算将它标记成“已采纳”这样一种状态。

当用例采纳后,请将它由"已生成"标记为“已采纳”状态。

可是修改完毕之后,列表之中就不会再去展示已经被采纳的测试用例了。然而被弃用的用例却依旧在展示。看起来这是把逻辑给写反咯,在这儿把逻辑更换一下:

请你调整用例采纳和弃用为以下逻辑:

进行到刷新页面这个操作之后,而后又一次开展了测试,在采纳后的情况之下状态完成流淌变得没错,转变为了处于显示“已采纳”的状态;在进行弃用这个行动之后于列表之中就不再呈现出该用例了 。

6.页面布局和统计信息调整

查看AI生成的测试用例,管理AI生成的测试用例,其顶部留白区域实在是太大啦会比较占用空间说不定我截图出来的效果显著程度不足此外在用例统计这儿实际运用中并不关乎已批准与待评审以及已拒绝相关逻辑所以要改成统计并展示测试用例总数还有已生成以及已采纳 。

位于AI生成用例列表界面的,将“查看和管理AI生成的测试用例”展示于其中的,顶部拥有的留白区域实在是太大了,把它调整得紧凑一点;

另外,该页面的用例统计变动为,统计“测试用例总数”,展示 “已生成”等状况,过滤掉不是此项的状况,再统计“已采纳”这一项,过滤掉除此之外别样的状态 。

嗯,这下看起来舒服多了!

7.列表增加分页,每页展示10条数据

当前,关于AI生成用例列表,在默认请求的情况下,是展示所有数据的状态,此处要将其调节为,每页默认会展示10条 。

AI生成用例列表,进行增加分页,每页默认十条数据,并且底部支持调整为每页二十条展示,底部还支持调整为每页五十条展示,同时支持输入上一页跳转查看,支持输入下一页跳转查看,支持直接输入页码跳转查看。

当前页下,已于此处底部增添和分页跳转相关的功能。然而,随之出现和显现的麻烦乃顶部统计的统计逻辑也同样产生变动:仅统计当前页的资料。交付给大模型进而使它去调整统计逻辑:

不得了啊,干得那叫一个漂亮至极!在经过一番调试过后,AI所生成的涉及用例列表的底部,已然是加上了跟那分页跳转有莫大关联功能的东西啦,可是怎么搞的呀,顶部那里有关用例统计所遵循的逻辑莫名也出现了变化呢?求求你了,请务必把用例统计逻辑做相应调整,使其恢复到之前的状态,要进行统计的应当是所有的数据呀,而绝不是仅仅针对当前处于显示状态这一页的数据。 ,

调整后,数据统计正确,无论切换到第几页,都统计所有数据。

8.修复状态筛选未生效问题

在AI生成用例列表这儿,状态筛选存在诸多未使用的状态,而且当选择已评审状态时,实际筛选出来的却是所有数据,这表明筛选功能没有发挥作用 。

根据状态筛选AI生成用例列表中未生效的内容,选择后,筛选出的为所有状态里的数据,要修复此;移除已评审、评审中这些多余状态,只保留已生成、采纳、弃用;针对已弃用状态数据,设置如下逻辑:列表默认未展示已弃用状态数据,当做已弃用状态筛选时,展示相关数据。

刷新列表,状态已更新,筛选功能正确:

小结

上述所说也就是借助 AI 工具去开发需求分析功能,开展智能生成用例功能,进行用例导入功能进而完成了删除功能的整个过程。有了 AI 工具,其大大的降低了编程的门槛,致使没有编程基础的大众也能够去插入其中;也具有巨大程度使原本编码效率得以提升;在此之前人工作业需要花费几天时间才能够完成的活计 AI 工具使用十几分便能够解决完成。与此同时 AI 工具与人类表现出较多的大同小异之处:也存在遗漏需求的情形;也难免作出曲解人的意图之事样态;也同样有出现错误的情况,如若举例说明那便是最为刚刚完成开发的功能在各个方面均呈现出报错的情况;对于同一个问题出现 bug 甚至修改非常多次却始终也修不对情况;修改妥帖一个问题之后却未曾料到又带出另外一个问题......

人工智能若不具备持续进化的能力,将会被淘汰,人要是处于不思进取,并且长期保持停滞不前的状况,同样也会被淘汰。

欢迎 发表评论:

请填写验证码

评论列表

暂无评论,快抢沙发吧~