《步绍鹏-从自动到智能:LLM赋能软件测试和质量保障.pdf》由会员分享,可在线阅读,更多相关《步绍鹏-从自动到智能:LLM赋能软件测试和质量保障.pdf(36页珍藏版)》请在三个皮匠报告上搜索。
1、从自动到智能:LLM赋能软件测试和质量保障主讲人:步绍鹏演讲嘉宾介绍步绍鹏 微软中国高级研发经理 负责Phone Link项目工程系统,保证产品质量和团队能效 多年研发和管理经验 软件工程最佳实践作者 在软件质量保障系统方面获得多项专利 领导构建开源云测系统Hydra Lab 推动微软Azure OpenAI Service在产品端、工程系统端赋能 爱好:篮球、电影、脱口秀支持三星和荣耀手机的深度连接集成体验Phone LinkHydra Labhttps:/ Lab和测试工程化从自动到智能020304 智能化测试的探索从手动到自动软件测试的“逆分工”测试解决方案的多元化自动”替代”手工测试?
2、自动化的挑战软件质量保障软件测试自动化测试0151%of previously manual test cases have been replaced by automation.Still,it is not a magic tool that can remove the need for manual testing.The State of Testing Report,PractiTest,202351%软件测试的时代印记by Alan Page 2008by James2010GitHub TestPilot2023Software Test EngineerSoftware D
3、evelopment EngineerSoftware Development Engineer国内的“测开”在国外一般叫:软件测试工程师(Software Test Engineer,STE)或软件开发测试工程师(Software Development Engineering in Testing,SDE/T)20142018“逆分工”Design&Coding 设计和编码 功能实现 数据上报和诊断 安全、无障碍、隐私和国际化CI构建和持续集成 静态代码分析 代码审查 单元测试、集成测试 冒烟测试 BVT:构建验证API测试测试 压力测试、错误注入 性能测试 端到端测试 验收测试 测试报告
4、和问题追踪CD持续部署监控 上线仪表盘 发布流水线 异常指标监控系统用户反馈和数据报告 应用、服务质量报告 数据监控大屏 用户反馈追踪系统开发预生产/生产内测卓越软件工程自动化工具&文档团队文化:成长型思维Continuous Testing测试金字塔自下而上集成度提高、接近用户视角更“生动”、“保真”和完整运行慢、成本更高、脆弱更“黑盒“调试和归因难度提高自上而下运行速度越来越快成本更低范围小、针对性强、目标明确更“白盒”,接近开发视角保真度低、远离用户范围局限、增加信心程度低和体验相关性低单元测试集成测试UI测试系统测试性能测试手工测试随机测试无障碍兼容性自动化测试的挑战质量很重要,但测试
5、很“无聊”自动化测试并不自动,依然需要维护如何合作?责任在谁?自动化测试的广义和狭义工具多、选哪个?7/24/202311框架名称支持平台社区情况EspressoAndroidGoogle Android 官方测试框架XCTestiOSApple iOS/Mac OS 基于XCode平台的官方测试框架Xamarin.UITestiOS and AndroidMicrosoft Xamarin跨平台应用技术社区研发和主导PlaywrightCross-browser web应用自动化,移动Web应用GitHub 52.6K starsSeleniumWeb applications and we
6、bsitesGitHub 21.1K starsAppiumAndroid,iOS,Windows,Web应用GitHub 16.6K starsNightwatch.jsWeb applications and websitesGitHub 11.4K starsDetoxAndroid,iOSGitHub 10.4K starsRobot FrameworkWeb,Android,Windows(with tools lib support)GitHub 8.2K starsAirtestAndroid,iOS,Windows,Web(基于游戏场景定制)GitHub 7.2K starsm
7、aestroAndroid,iOS,ReactNative,Flutter应用GitHub 4K starsWinAppDriverWindows AppGitHub 3.2K stars测试工程化持续集成系统代码仓库构建任务和执行系统构建任务流水线测试管理系统测试设备管理测试任务分发和管理测试设备和环境控制测试任务执行器设备测试驱动测试记录系统日志收集录屏截屏测试结果分析系统问题发现和分析报告和问题追踪02Hydra Lab 管理中心设备和代理管理用户和测试任务管理Web UIDocker容器Hydra Lab监控系统PrometheusGrafanaNginxPrometheus 推送网关
8、Port MappingPush metricsAgent 2Agent 1RPC(WebSocket connections)CI/CD系统集成UI你的测试设备RESTful APIAgent N测试工程化开源方案:Hydra Lab为什么不选择Firebase或者其他第三方云平台?定制化开源可信免费使用三方平台潜在问题:把公司的包含调试信息的内测应用开发包上传到第三方平台https:/ Test最”受欢迎”的自动化测试1603从自动到智能一百万只猴子在一百万个键盘前敲一百万年“-莎士比亚作品”DALL-E 2三个盒子模型输出逻辑处理输入AB1C1C2B2C3输入输出1输出2输出3白盒测试黑
9、盒测试灰盒测试白盒视角的LLM测试应用:TestCopilot19帮我对选中的代码生成单元测试,要求验证边界情况和异常情况“”黑盒视角:聪明的猴子黑盒视角的测试理解程序界面找到可交互元素进行交互20DALL-E 2智能化测试的探索测试环境的模拟生成。测试数据生成。智能探索型测试。测试用例生成和优化。测试结果分析解读。测试智能分析调度:提升运行稳定性。基于测试结果的诊断建议。Rule basedModel basedLLM based04Start初始化Extraction提取元素Comprehension理解转化Decision分析决策Action执行动作Evaluation评估反馈智能探索S
10、EE模型Model based的探索:强化学习观察(提取)理解决策行动评估(反馈)进入了新界面发生了异常到达了目的状态将应用看做“状态机”BertClassTokenInput位置信息元素类型文本类特征元素截图position:0,322,1440,576,clickable:true,element_type:“input,text feature“:Enter your email,image:arrayOutput页面和元素特征IconTextButton理解Comprehension 页面张量元素特征向量Sentence Transformer 编码特征提取预处理多层感知机页面分类Co
11、sine Similarity=0.4579这两个页面不相似(0.9)Cosine页面向量相似度理解Comprehension 广义自动化测试视角下,大语言模型如何发挥作用?LLM-Based Solution如何理解用户的测试需求?如何智能探索?如何理解界面和应用程序?如何交互?如何评估?如何整合测试信息?分析测试结果?测试智能化中LLM面向的问题在Token限制条件下,如何将复杂的测试信息转化为有效的Prompt提示词?有效利用LLM能力?UI/UX信息被测试应用信息测试日志信息测试结果信息LLM能力推理、决策信息摘要和分析内容和代码生成不同问题的上下文的规模28白盒测试生成:单元测试黑盒
12、测试生成测试结果分析白盒测试生成:集成测试EXESRCSRC探索测试LOGERRORWARNLLM-based:单步探索特征提取:可交互元素的关键特征页面上下文应用上下文相关原理UX交互设计的原理探索式测试的理论29面对这样一个界面,你会如何向GPT描述?你想点哪里?LLM-based:黑盒用例生成这是应用的解析数据和状态转换图的文本表示,基于这些生成基于Maestro的UI测试用例:“”LLM赋能下的全面测试智能化探索理解生成执行分析31路径决策数据生成状态图分析页面元素理解用例生成测试日志分析测试结果分析提示词作家LLM ServiceHydra Lab 后端管理中心应用测试结果处理模块探索测试模块设备管理提示词作家测试报告模块UI元素提取UI理解和解析模块页面结构探索模块Hydra Lab前端Web应用测试报告视图聊天界面提示词作家动作决策模块页面解析提示词作家Hydra Lab 测试平台服务这是这次应用内存测试的时序结果,请帮忙用自然语言进行描述,提供如下四个方面的内容:1.统计值:平均值、中位数、最值、P90“”Q&A感谢关注我与微软专家胡晓武、莫曲合著的软件工程最佳实践即将出版,书中将对该领域有更多深入探究。敬请期待!https:/