4.1 大数据应用测试介绍
4.1.1 大数据应用测试要解决的问题是什么
离线系统:数据处理与算法模型的建模与训练
在线系统:处理用户的实时请求
大数据应用测试的六大领域
功能性测试和验证
数据更新和实时性测试
数据请求响应的及时性测试:性能
算法的效果验证
AI算法系统的线上稳定性保障
工程效率方向
4.1.2 大数据应用的技术质量体系综述 1 离线工程系统的测试验证工作,即算法测试
2 在线系统的测试工作
3 搜索推荐广告系统的效果如何评估问题
4 端到端测试的验证
5 线上稳定性建议 6 工程效率:
研发测试
工程发布(灰度、监控、回滚)
模型发布(模型可视化、在线实验A /B平台、Debug平台)
客户反馈(体感评估、众测、客户问题Debug)
4.2 算法系统的定义
4.1.1 算法测试定义
定义:为了保障算法实现过程无偏差而使用的一套验证活动。
做正确的事;正确地做事
4.1.1 算法工程质量
1 小样本验证法概念
原因:目前特解还没有一套算法预估服务本身进行验证的成熟方案
在线样本在离线跑一边,分析在线数据与离线数据得分的一致性(从在线到离线)
离线数据灌入在线在线,分析在线数据与离线数据得分的一致性(从离线到在线)
1)离线部分:生成在线预估服务使用的验证小样本
2)在线部分:部署模型、小样本预估结果数据
2 小样本验证数据处理流程
1)离线小样本准备
2)离线小样本反查
3)在线验证工具准备:1)系统具备Mock功能2)在线系统要具备强大的数据透出能力 3)由于一些技术的演进,对计算图有很多联合优化,可能影响结果,需要采取特殊手段
4)数据和工具打包上传:将离线小样本 模型 在线验证工具统一上传至远端储
5)预估服务自动部署及验证
6)问题定位及报告收集
7)监控报警
3 小样本验证工具框架
基础模块:odps为数据持久化,erpc是通信交互模块,executor支持多线程并发
验证业务逻辑处理流模块
在线请求处理:
特征检查:返回结果中的在线特征与离线特征比较
样本检查:返回结果中的在线样本与离线样本比较
权重检查:返回结果中的在线权重与离线权重比较
分数检查:返回结果中的在线分数与离线分数比较
质量特征提取:
报告加工:
算法模块
业务模块
4.小样本验证的核心策略
精确离线、在线对比验证
非精确离线、在线对比验证
4.2.3特征质量与评估
1.整体思路
(1)辅助特征设计
(2)风险影响力评估
正向链路
反向拓扑
2.特征指标
缺失率占比:统计每个特征值出现NULL的频次,该频次除以所有样本数量。
高频取值占比:统计特征值大于某个阀值(中位数与最高值之间)的数量与特征样总数的比值。
IV和WoE。特征效用分的核心是看该特征取值下正负样本分布的倾向性(Weight of Evidence,WoE),对某个特征组的所有特征取值下的倾向性进行有效加权合并,特征组的效用分(Information Value,IV)。
4.2.4模型质量的评估
模型质量评估领域的核心问题在于我们是否可以信任AL系统
1.挖掘模型的内在信息
状态量=神经元的状态 边权重(和偏置)
梯度数据=神经元的梯度 边权重(和偏置)的梯度
2.理解模型抽取的表征
3.泛化效果与神经元状态波动
4.特征影响力
4.2.5深度学习平台质量(大规模分布式训练系统的测试)
(1)实验预跑法
(2)模型之模型(Model on model)的模型验证法。
(3)模型基础功能校验法(Model Based)
4.3工程系统质量
4.3.1功能测试平台Markov
示例4-1:通过用例膨胀和推荐技术更快地生成测试用例
(1)用例推荐
(2)用例膨胀
示例4-2:基于遗传算法动态生成有效测试用例的技术
1)动态判断用例有效性
2)生成效率问题
3)基于遗传算法高效生成
遗传算法(Genetic Algorithm,GA)是模拟达尔文生物进化论的自然选择和遗传学机制的生物进化过程的计算模型,是一种通过模拟自然进化过程搜索最优解的方法,简单而言就是“优胜劣次,适者生存”
示例4-3:基于用例动态编排的回归技术
示例4-4:用例画像建模的排查
示例4-5:功能A/B测试、性能A/B测试
1.轻量级单模块功能对比——功能A/B测试
MarKov
(1)通用接入管理
(2)环境部署管理
(3)对比核心任务
(4)单条冒烟调试
(5)数据分析与报告聚合
2.一键单模块性能对比方案——性能A/B测试 核心功能
快速一键式压测
压测稳定准确
低成本接入
性能追踪
服务
任务管理服务
环境管理服务
数据加工服务
发压服务
数据采集服务
数据分析服务
4.3.2无人值守的性能测试
1.测试数据生成
(1)基于业务逻辑的顺序抽取
(2)时序抽取:
(3)采样与抽样抽取:
(4)随机抽取等模式:
具体过程
(1)将两个查询请求作为父样本,进行参数解析和分割,就像对基因的染色体进行拆分一样。
(2)对两个父样本的字段进行随机组合、叉乘,培育出新的子样本个体。
(3)染色体变异:
2.用例智能化自动执行—一梯度多轮迭代爬山方案
过程详解:
(1)梯度增加压力,小流量探测预热,然后压测系统依据训练的性能模型数据自动逐渐加压。
(2)自动判断被测系统是否达到极限状态,得到多个局部最优解。
(3)在达到波谷或波峰以后,压测系统开始向上或向下迭代,最终得到局部最终得到局部最优解。
(4)持续迭代以上3个步骤,直到得到基于历史的全局最优解。
4.4 效果评估
在业界,A/B测试通常指流量端的AB测试。
4.4.1效果评估的挑战
第一,项目的中长期效果很难评估。
第二,评估的合理性。
4.4.2 用户体验保障
1 相关性评估
相关性评估流程如下。
(1)根据特定的规则抽取代表性的关键词,组成一个规模适当的集合。
(2)构成查询集合后,使用这些关键词和不同的(新旧)算法环境在数据抓取平台中进行数据抓取。
(3)对抓取结果进行(人工)标注。
(4)根据标注的评估结果,使用预定好的评估计算公式,用数值化的方法评价搜索系统的准确性。
相关性评估的规则。GoB评估规则:我们将关键词与返回结果的匹配程度统的准确性。
(1)Good(完全相符):图片内容、重要属性、行业等,都与关键词相符。
(2)Fair(部分相符):行业相符,但有个别非重要属性不符
(3)Bad(完全不符或重要属性不符)
(4)Nj(失效数据):query语义不明或链接失效。
2.舆情监控
(1)用户反馈
(2)主流媒体
(3)其他业务的动态
3.众测
众测评估利用大众的测试能力和测试资源,在短时间内完成大量的用户体验测试,并在第一时间将体验结果搜集反馈至平台,是来自用户的最直接、最真实的声音。
(1)确定评估形式
(2)确定用户范围
(3)确定评估对象
(4)确定众测入口
5)确定问卷内容
(6)确定样本数量
(7)分析与反馈
众测是一种基于用户主观感受的评估方式,难点在于是否能得到足够多的可信数据。
4.5对大数据应用测试的预判
(1)1979年,微软招聘了第一个专职测试工程师Lloyd Frink,从此有了软件测试行业。
(2)21世纪初,随着互联网的出现。让软件的发布和修复不必依赖物理介质,通过软件和服务的在线更新即可实现。
”快速发布、快速发现问题、快速修复”
(3)伴随着移动互联网与智能设备的兴起,用户数据不断积累,进入大数据智能时代。
软件测试更多地从工程质量(正确地做事)向效果质量(做正确的事)转移,测试的主战场也从线下的发布测试逐渐走向线上发布后的稳定性测试与工程效能DevOps工具链的建设。
传统软件/IT时代(1980-1999年) | 互联网移动互联网(2000-2015年) | DT时代(2015年-) | |
---|---|---|---|
特点 | 发布周期长、需求明确CD交付/数据库 | 快速迭代、需求变化快浏览器/客户端/IDC机房 | 大数据、算法智能云 端 |
研发与测试模式 | 瀑布模式强测试流程、专职测试团队 | 敏捷模式弱流程、快速发布、快速发现与修复 | DevOps模式持续发布、工程效能 |
代表公司 | IBM、Oracle、Microsoft用友、亚信、神州数码等 | Facebook、Google、Amazon、Microsoft Azure百度、腾讯、阿里巴巴、头条、抖音等 |
关于大数据应用测试的未来,我们有三个初步的判断
一、后端服务测试的服务化与工具化
二、测试的线上化(Test In Production,TIP)
(1)一方面线下测试环境与真实的线上环境总会存在一些差异,导致测试结论置信度不够,消除这种差异需要较大的持续成本。
(2)许多真实的测试演练只能在线上系统进行。
(3)从质量的最终结果上看,不管是发布前的线下测试,还是发布后的线上位稳定性建设,其目的都是减少系统故障的发生。
三、测试技术的智能化