大数跨境
0
0

大咖专访:AI在软件测试中的应用(3)

大咖专访:AI在软件测试中的应用(3) 51Testing软件测试网
2025-11-03
2
导读:本文深入探讨了软件测试中AI工具的实践场景与挑战。
图片
点击蓝字,立即关注
图片


前面两篇文章为大家讲述了AI技术趋势与核心原理AI工具与平台的应用及实践场景与挑战接下来继续为大家讲述AI工具的实践场景与挑战。




专访实录



03

实践场景与挑战


5、AI驱动的自愈合测试脚本如何应对UI微小变动?其技术实现路径是什么?

(技术细节:元素属性动态匹配、相对位置定位、脚本自动更新机制)


在 UI 自动化测试中,传统脚本依赖固定的元素定位符(如 XPath、ID、CSS 选择器)或坐标,当 UI 发生微小变动(如按钮位置偏移、文字微调、图标样式更新、局部布局调整)时,定位符容易失效,导致脚本中断,需要人工频繁维护。


而AI 驱动的自愈合测试脚本通过 “理解 UI 元素的本质特征” 而非 “依赖固定属性”,能自动适配微小变动,核心逻辑是 “用多维度特征匹配替代单一属性定位”,并结合动态调整机制实现自修复。


AI 如何应对 UI 微小变动?核心逻辑与优势


AI 应对 UI 微小变动的核心是 “多模态特征识别”+“动态适配决策”:


1

不依赖单一属性,而是识别元素的 “本质特征”


传统脚本定位元素类似 “按身份证找人”(依赖唯一 ID),而 AI 脚本类似 “按外貌 + 职业 + 人际关系找人”(多维度特征匹配)。即使某个特征有微小变动,其他特征仍可支撑定位:


  • 视觉特征:


    通过计算机视觉识别元素的形状(如按钮的圆角矩形轮廓)、颜色(如 “确认” 按钮的主题色)、尺寸(如输入框的宽高比例)等,即使位置轻微偏移,视觉轮廓仍可匹配;


  • 语义特征:


    结合 OCR(文字识别)和 NLP(自然语言处理)理解元素的文字含义(如 “提交” 按钮改为 “确认提交”,语义仍为 “提交操作”),或通过元素标签(如button、input)的语义属性定位;


  • 结构特征:


    分析元素与周围元素的关系(如 “搜索按钮” 总是在 “搜索输入框” 右侧,“确定按钮” 总是在 “弹窗底部右侧”),即使自身位置变动,通过上下文结构仍可定位;


  • 行为特征:


    部分场景下结合元素的交互行为(如点击后会弹出弹窗)辅助确认元素身份。


例如:当 “登录按钮” 从 “蓝色圆角矩形” 改为 “深蓝色圆角矩形”(颜色微小变动),传统脚本若依赖颜色属性会失效,但 AI 可通过 “矩形形状 + 文字‘登录’+ 位于‘密码输入框’下方” 的多特征组合,仍能准确定位。


2

动态检测变动并自动调整定位逻辑


AI 脚本在运行时会实时对比 “当前 UI 状态” 与 “基准 UI 状态”,若发现元素特征有微小差异(但未超出 “同类元素” 的特征阈值),会自动调整定位策略:


  • 若文字有微调(如 “立即支付” 改为 “确认支付”),通过 NLP 语义相似度计算(如余弦相似度)判断核心语义一致,自动匹配;


  • 若位置偏移(如按钮右移 10px),通过结构特征(如相对父容器的位置比例、与相邻元素的距离)重新计算定位坐标;


  • 若样式变动(如图标从线条风改为填充风),通过视觉特征的 “抽象特征”(如图标轮廓的拓扑结构)而非 “具体像素” 匹配。


3

基于历史数据学习 “变动规律”,提升适配能力


通过机器学习积累 UI 变动样本(如 “同类元素的常见微小变动模式”:按钮文字多为 “同义替换”、图标变动多为 “样式更新而非功能变更”),模型会学习到 “哪些变动是‘无关紧要的微小变动’,哪些是‘影响功能的核心变动’”,从而避免对 “非关键变动” 过度敏感。


AI 驱动自愈合测试脚本的技术实现路径


AI 自愈合脚本的实现需要 “数据支撑 + 模型能力 + 工程化落地” 三部分协同,具体路径可分为 5 个核心步骤:


步骤 1:

UI 元素特征库构建与数据预处理


  • 核心目标:


    为 AI 模型提供 “识别 UI 元素” 的 “基准特征”,覆盖正常 UI 和常见微小变动场景的数据。


  • 数据采集:


    通过录屏、截图工具收集 UI 界面在不同状态(正常显示、微小变动、极端场景)下的图像数据(含 PC 端、移动端、不同分辨率),并标注元素类型(如按钮、输入框、下拉菜单)、功能语义(如 “登录”“返回”)、结构关系(如 “子元素”“相邻元素”);


  • 特征提取:


    从图像中提取多模态特征,存储到特征库:


  • 视觉特征:


    通过卷积神经网络(CNN)提取元素的抽象视觉特征(如轮廓、纹理、颜色分布);


  • 语义特征:


    用 OCR 工具(如 Tesseract、PaddleOCR)提取元素文字,再通过 NLP 模型(如 BERT)转化为语义向量(如 “提交” 和 “确认” 的语义向量相似度极高);


  • 结构特征:


    通过 DOM 树解析或图像分割(如 Mask R-CNN)提取元素的层级关系(如 “按钮位于表单第 3 行”)、相对位置(如 “距离顶部 20% 高度”);


  • 数据增强:


    模拟 UI 微小变动生成训练数据(如随机偏移元素位置、微调文字、修改颜色亮度、添加背景干扰),提升模型对变动的适配能力。


步骤 2:

训练 “UI 元素识别与匹配模型”


  • 核心目标:


    让模型能 “看懂” UI 元素,并判断 “当前元素是否为目标元素(即使有微小变动)”。


  • 核心模型选择:


    • 元素识别:用目标检测模型(如 YOLOv8、Faster R-CNN)定位 UI 元素的位置和类型(解决 “哪里有按钮”);


    • 特征匹配:用对比学习模型(如 Siamese Network)判断 “当前元素特征” 与 “基准特征库中的目标元素特征” 是否匹配(解决 “这个按钮是不是我要找的登录按钮”);


    • 语义容错:用 NLP 模型处理文字微小变动(如通过编辑距离、语义相似度计算,允许 “登录” 和 “登录账号” 被判定为同一语义);


    • 训练目标:让模型在 “目标元素有微小变动” 时仍能输出高匹配度(如相似度≥80% 即判定为匹配),同时过滤无关元素(如把 “注册” 按钮排除为 “登录” 按钮)。


步骤 3:

实时定位与动态匹配(运行时自愈合核心)


脚本运行时,通过以下流程实现 UI 微小变动的适配:


  • 实时感知 UI 状态:测试脚本执行时,实时截取当前 UI 界面,传入模型;


  • 元素识别与特征提取:模型检测界面中的所有元素,提取其视觉、语义、结构特征;


  • 多维度匹配:将当前元素特征与特征库中的目标元素特征对比,计算多维度匹配分数(如视觉匹配占 40%、语义占 30%、结构占 30%);


  • 决策逻辑:若综合匹配分数超过阈值(如≥75%),判定为目标元素,执行操作(如点击、输入);若分数低于阈值,进入 “自修复逻辑”。


步骤 4:

自修复逻辑(应对匹配失败的微小变动)


若初始匹配失败(如特征分数略低),脚本触发自修复机制,主动适配变动:


  • 特征权重动态调整:若视觉特征匹配低(如颜色变动),临时提高语义和结构特征的权重(如 “文字还是‘登录’,位置也在表单底部,即使颜色变了也判定为目标”);


  • 结构推理:若元素位置偏移,通过结构特征反推新位置(如 “之前在输入框右侧 10px,现在输入框位置没变,按钮右侧偏移 20px,仍可定位到输入框右侧附近”);


  • 历史修复记忆:记录过往成功修复的案例(如 “‘确认’按钮曾因文字改为‘确定’被修复”),形成规则库,后续遇到同类变动可直接复用策略。


步骤 5:

反馈迭代与模型优化


  • 核心目标:通过实际运行数据持续提升自愈合能力。


  • 日志收集:记录脚本运行时的匹配结果(成功 / 失败)、UI 变动类型(如文字变动、位置偏移)、修复策略效果;


  • 模型更新:对频繁失败的场景(如某类图标样式变动始终匹配失败),补充对应数据重新训练模型,优化特征权重;


  • 规则沉淀:将高频有效的自修复逻辑转化为可复用规则(如 “所有‘返回’按钮优先通过左上角位置 + 箭头图标定位”),减少模型计算开销。


总而言之,AI 驱动的自愈合测试脚本通过 “多模态特征识别”“动态匹配决策”“自修复机制”,将 UI 元素从 “固定属性符号” 转化为 “可理解的实体”,从根本上解决了传统脚本对 UI 微小变动的脆弱性。


其技术核心是 “用 AI 的‘理解能力’替代人工定义的‘定位规则’”,最终实现 “UI 小变,脚本不变” 的自动化测试目标


6、如何利用AI实现测试数据的智能管理?避免数据冗余与隐私泄露?

(数据治理:数据标注规范、特征存储、GAN数据增强、隐私保护算法)


避免数据冗余:像整理衣柜一样清理数据


核心思路:让 AI 像 “断舍离达人” 一样,识别哪些数据是 “重复的旧衣服”,哪些是 “常用的新衣服”。


1

自动发现重复数据


AI 通过比对数据特征(如用户信息中的姓名、手机号、订单号),标记出相似度超过 90% 的记录。就像你整理衣柜时,AI 能自动找出两件款式、颜色几乎一样的 T 恤,提醒你 “留一件就行”。


技术实现:


  • 用聚类算法(如 K-means)把相似数据聚成 “小团体”,比如把所有 “北京地区、年龄 25-30 岁的女性用户” 归为一类;


  • 对每个 “小团体”,计算数据间的相似度得分,超过阈值的就标为冗余。


2

预测数据价值,提前淘汰“过期衣服”


训练 AI 模型预测数据的 “使用频率”,把长期不用的 “冷数据”(比如 3 个月没被调用的测试订单)自动归档或删除。就像你会把去年冬天的厚外套收进箱子,腾出空间给新衣服。


技术实现:


  • 分析历史数据访问日志,提取 “数据 ID、最后访问时间、访问次数” 等特征;


  • 用机器学习(如决策树)预测未来 3 个月内数据被使用的概率,低于 20% 的就清理。


3

动态生成测试数据,按需“定制衣服”


用 AI 根据测试场景动态生成数据,而非存储大量静态数据。比如测试 “搜索功能” 时,AI 实时生成包含各种关键词的测试商品,用完就销毁。就像你需要参加派对时,直接找裁缝定制一件礼服,而不是买一堆礼服放家里占地方。


技术实现:


  • 基于规则引擎(如 JSON Schema)定义数据结构(如 “商品名必须包含 2-5 个汉字 + 数字后缀”);


  • 用生成对抗网络(GAN)生成符合规则的逼真数据,如 “手机 001、电脑 002”。


防止隐私泄露:给敏感数据 “戴面具”


核心思路:让 AI 像 “变装大师” 一样,把敏感信息(如身份证号、手机号)变成 “看起来真实但用不了” 的替身。


1

自动识别敏感数据


AI 扫描数据仓库,识别出包含隐私的字段(如身份证号、银行卡号)。就像海关人员用 X 光机扫描行李,一眼认出违禁品。


技术实现:


  • 用自然语言处理(NLP)分析字段名(如 “id_card”“bank_account”);


  • 结合正则表达式(如匹配 18 位数字 + 字母的身份证格式),标记敏感字段。


2

智能替换敏感信息


用 “数据掩码技术” 对敏感数据做无害化处理。比如:


  • 手机号:138***1234(保留前 3 位和后 4 位,中间用替换);

  • 身份证号:420101********1234(保留前 6 位和后 4 位,中间用 * 替换)。


就像明星出门戴墨镜口罩,虽然外貌变了,但 “身份” 还能被模糊识别。


技术实现:


  • 基于规则的替换(如用固定算法生成假数据);

  • 用差分隐私技术(在真实数据中加入随机噪声),让攻击者无法反推原始数据。


3

实时监控数据访问


AI 监控谁在访问数据、访问了哪些字段,一旦发现 “异常行为”(如测试人员频繁下载用户身份证信息),立即预警。就像商场的监控摄像头,发现有人总盯着珠宝柜台看,就通知保安注意。


技术实现:


  • 用行为分析模型(如孤立森林算法)建立 “正常访问基线”;


  • 当检测到偏离基线的行为(如非授权人员访问敏感表),触发警报。


工具使用:AI 数据管家 “三件套”


  • Data Masking 工具:

    如 Delphix、Informatica Data Masking,自动识别并替换敏感数据,支持批量处理和实时掩码。


  • 数据血缘分析工具:

    如 Alation、Collibra,用 AI 分析数据的来源和去向,帮你理清 “数据家谱”,避免重复创建相似数据。


  • 智能数据清理工具:

    如 Trifacta、OpenRefine,用机器学习算法自动识别冗余数据,支持自定义清理规则(如 “保留每个用户最近 3 个月的订单”)。


总体来说,AI 管理测试数据的终极模式是:AI 自动完成 “发现冗余→清理→掩码→监控” 的闭环,我们只需定期检查 AI 的工作成果(比如每周抽查 10% 的掩码数据是否合规)。


就像你雇了个管家整理房子,虽然他能干,但你偶尔还是要检查一下,确保衣柜没被误清空,敏感物品都藏好了。这样既能大幅提升效率,又能守住数据安全底线。


......


本文节选自51Testing软件测试网【专题

AI在软件测试中的应用

专题后续还介绍了

“相关实战场景与挑战、职业发展与技能转型


长按识别下方二维码

查看本期专访!

图片




每日有奖互动











你在工作中用到过哪些AI 工具?

你觉得最好用的是哪款?





【声明】内容源于网络
0
0
51Testing软件测试网
博为峰51Testing软件测试网提供各种线上招聘、线上课程等网络服务,出版软件测试系列丛书及电子杂志,组织线上技术交流活动;同时还举办多种线下公益活动,如软件测试沙龙、软件测试专场招聘会等。
内容 3878
粉丝 0
51Testing软件测试网 博为峰51Testing软件测试网提供各种线上招聘、线上课程等网络服务,出版软件测试系列丛书及电子杂志,组织线上技术交流活动;同时还举办多种线下公益活动,如软件测试沙龙、软件测试专场招聘会等。
总阅读98
粉丝0
内容3.9k