期望用 GPT 来生成测试用例,如果通过功能模块名称标题去生成基本是很难达到理想效果。
原因就是 GPT 不懂私有的业务,也找不到这块的语料,开源的项目,之前有人统计过不到市面上总共项目的 0.02%,可以说是语料匮乏。
常见做法,靠人去梳理一次交给 GPT 补充内容一段段喂给 GPT 在提取总结,但是会花费时间比较多,分享一个昨天遇到的提速的思路。
常见做法的确也是,可以落地的思路是产品需求文档,主要分为 2 块,流程图图片和文档内容,通过图片来提取核心内容的大纲,这里先实现流程图的部分。
题外话,如果让更精准回答问题呢,自强 RAG 肯定是最好的。流程图如果不是最新是错的,也不在本次思路范围中,因为 QA 会假设是对的,先开始编写,如果后面发现是错的,就是一个流程规范的问题
做得事情就是流程图提取文本内容自动化的方式去形成步骤化的结论
答案是可以的,调研后,昨天已经把 1.0 代码实现了,版本是比较基础的,思路也可以帮助少走弯路。
思考方案是读取流程图和结合案子的文本拆成带顺序的步骤,套上提示词工程分配喂给 GPT。
选择流程图代表是大纲,流程图识别出来的部分会是 L1 和 L2 的标题,然后结合文档里面提取的关键字去进行完善,最后套一个提示词工程,会拆分成一段段喂给 GPT。
流程图需要解决 2 个问题:
中英文识别,以及返回数据结构
{"bbox":List,"text":String,"prob":float}
- bbox:文本 Text 在图片上面的坐标矩阵,一共 4 个点
- text:文本识别的内容,英文后面需要补充 (中文的翻译)
- prob:置信度,这值会决定是否采纳这段文本的,也可以在某个范围下把识别的结果进行词法的纠正。
这个数据结构最后会变成 map 对象,key 是重排后的 bbox,value 是 text。
顺序会收到箭头和图片结构的影响,先解决图片结构 (图片结构中的图层嵌套暂时无法解决),在把图片结构结果和箭头识别做验证
解决了第一个部分,识别出了上面数据结构,bbox 解决思路就是从 x 开始从左到右 (x1 取左上角第一个点),每次移动一定范围的窗口
主要是 x 轴变化,当 x 相等或者很接近时,就参照 Y 的坐标,这个具体多少算接近可以根据图片的宽度定义一个范围。
滑动窗体这个越短,解析速度越慢但是越准。
输出:排序后在识别的文本信息前面,添加一个 step 的提示词汇
箭头需要先找出箭头这个分类,然后在计算箭头和图层上面 txt 的关系。
二个方案:
方案 1:尽量使用使用边缘检测和轮廓检测和形状匹配的开发,使用特征层面来做识别出疑似箭头的。
方案 2:自定义模型做会更好,支持不是很标准的箭头,比如有的用宽,有的用扭曲的等等。
箭头数据结构会添加一个字段叫重合度,重合度是一个数组,会记录分别靠近哪些文本
{"id":Integer,"bbox":List,"prob":float,"coincidence":map}
计划是图片结构中的图层嵌套需要用和箭头重合判断的方式。