AI测试 GPT 辅助写更精准用例之 从左到右流程图 解决随笔

陈子昂 · 2024年05月29日 · 最后由 有趣tester 回复于 2024年05月30日 · 3039 次阅读

前因

期望用 GPT 来生成测试用例,如果通过功能模块名称标题去生成基本是很难达到理想效果。
原因就是 GPT 不懂私有的业务,也找不到这块的语料,开源的项目,之前有人统计过不到市面上总共项目的 0.02%,可以说是语料匮乏。
常见做法,靠人去梳理一次交给 GPT 补充内容一段段喂给 GPT 在提取总结,但是会花费时间比较多,分享一个昨天遇到的提速的思路。
常见做法的确也是,可以落地的思路是产品需求文档,主要分为 2 块,流程图图片和文档内容,通过图片来提取核心内容的大纲,这里先实现流程图的部分。
题外话,如果让更精准回答问题呢,自强 RAG 肯定是最好的。流程图如果不是最新是错的,也不在本次思路范围中,因为 QA 会假设是对的,先开始编写,如果后面发现是错的,就是一个流程规范的问题

能不能把靠人去梳理尽可能改成自动生成

做得事情就是流程图提取文本内容自动化的方式去形成步骤化的结论
答案是可以的,调研后,昨天已经把 1.0 代码实现了,版本是比较基础的,思路也可以帮助少走弯路。
思考方案是读取流程图和结合案子的文本拆成带顺序的步骤,套上提示词工程分配喂给 GPT。
选择流程图代表是大纲,流程图识别出来的部分会是 L1 和 L2 的标题,然后结合文档里面提取的关键字去进行完善,最后套一个提示词工程,会拆分成一段段喂给 GPT。
流程图需要解决 2 个问题:

1.识别出图片中的 Text

中英文识别,以及返回数据结构

{"bbox":List,"text":String,"prob":float}

- bbox:文本 Text 在图片上面的坐标矩阵,一共 4 个点
- text:文本识别的内容,英文后面需要补充 (中文的翻译)
- prob:置信度,这值会决定是否采纳这段文本的,也可以在某个范围下把识别的结果进行词法的纠正。
这个数据结构最后会变成 map 对象,key 是重排后的 bbox,value 是 text。

2.流程图里面顺序问题。

顺序会收到箭头和图片结构的影响,先解决图片结构 (图片结构中的图层嵌套暂时无法解决),在把图片结构结果和箭头识别做验证

2.1 图片结构的简单模式:理解可以按从上到下,从左到右,识别流程图文字方案需要是记录文字的矩阵也就是 bbox

解决了第一个部分,识别出了上面数据结构,bbox 解决思路就是从 x 开始从左到右 (x1 取左上角第一个点),每次移动一定范围的窗口
主要是 x 轴变化,当 x 相等或者很接近时,就参照 Y 的坐标,这个具体多少算接近可以根据图片的宽度定义一个范围。
滑动窗体这个越短,解析速度越慢但是越准。
输出:排序后在识别的文本信息前面,添加一个 step 的提示词汇

2.2 添加箭头进行纠正

箭头需要先找出箭头这个分类,然后在计算箭头和图层上面 txt 的关系。
二个方案:
方案 1:尽量使用使用边缘检测和轮廓检测和形状匹配的开发,使用特征层面来做识别出疑似箭头的。
方案 2:自定义模型做会更好,支持不是很标准的箭头,比如有的用宽,有的用扭曲的等等。
箭头数据结构会添加一个字段叫重合度,重合度是一个数组,会记录分别靠近哪些文本

{"id":Integer,"bbox":List,"prob":float,"coincidence":map}
  • id 箭头的编号
  • coincidence 重合度一个 map 结构,会返回识别出来的 Text step 编号和箭头的距离 coincidence 重合度算法思路也是箭头 bbox 用滑动窗口和字体的 x1 和 x2 做运算。

未解决问题

计划是图片结构中的图层嵌套需要用和箭头重合判断的方式。

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 9 条回复 时间 点赞

传统派:研究抽取功能的共性需求,模版自动化生成测试用例

革新派:研究业务需求拆解投喂,让 ChatGPT 生成能执行的测试用例

用例执行人员:生成的测试用例在质量和准确性上有所欠缺,需要再次阅读需求文档,进行详细审核和修改,让工作变得更加繁琐和低效,MB 的😤

小黑子 回复

直接喂 GPT 生成用例太麻烦了,慢慢变成机器喂

😂 感觉过程还是挺抽象的,这个流程图是测试来输出吗?
之前也是考虑在需求喂给 gpt 前,测试做一层转化,这个转化过程类似流程图,要把需求点和技术方案的内容汇总下,gpt 主要做文本的整理输出,为的是保持用例结构的统一性,方便后面继续转成自动化

eason233 回复

流程图是产品设计提供的,只是通过自动化方式输出,节省了也就是你说的这个找测试把需求点和技术方案的内容汇总下。
这个只是全貌的一部分,流程图提取出来就是 L1 和 L2 级别的栏目等和文档核心内容做结合,然后一段段丢给 GPT。
算是 cv 和 llm 结合的产物,我比较擅长 cv 部分。
今天也弄了 7 张图测试了下,效果还行,主要是顺序是对的

已经通过自测和转换一些图片落地,代码肯定没法提供的。和我一起一步步建设,可以少走弯路。有做 llm,cv,cnn 等的欢迎交流。

L1 和 L2 具体是指什么呢

amy 回复

L1 和 L2 是指第一档标题和第二档标题,流程图通过计算机视觉提取出来的,会充当标题大纲

1.大纲标题(流程图提炼)
    1.1 流程图下面业务知识的文档内容也是分段的
    ... 等等

整个套上提示词工程,把业务的知识去投喂给 GPT,这个是流程图的一个解决思路 (只适合从左到右的流程图)

狠狠点赞

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册