• 0
  • 0
分享
  • AI测试技能卷起来!模型工程服务测试的流程和方法总结!——软件测试圈
  • 小丸子🍡 2024-08-16 15:46:16 字数 3352 阅读 799 收藏 0

  1、引言

  在上一篇中,我们聊到了《AI测试技能卷起来!目标检测算法测试流程与方法总结》,反响还不错。但是,也有测试同学给我留言:“能不能讲一讲模型工程的测试流程和方法”。这当然没问题了, 因为在整个工程中,算法模型只是其中的一个环节,我们模型测试完成后,需要部署到系统中,这样才能让模型真正的应用于业务中。 

  为了更好的让你们理解模型在系统中的流程,我以我的工作为例(当然,处于职业操守,部分内容进行脱敏),以流程图的形式给大家展示。

1-1.png

  通过上图,大家可以了解到模型的整体架构。

  这里说两点:

  1)数据流:即数据解析,保证数据的质量;

  2)特征库:即数据处理,提取数据特征进行模型训练。

  说到架构,其实模型服务工程的测试和传统测试也有很多相似之处,如:单元测试、集成测试、系统测试、A/B测试等,当然,差异的也有,否则,就没必要说模型工程服务测试了。 

  至于差异点有哪些,别着急,我们进入今天的这篇《模型服务工程测试》。在这里,你会学习到:

  ·模型工程服务测试涉及到的测试流程与方法;

  ·模型工程服务测试与传统测试的异同点;

  2、单元测试

  关于白盒测试,针对大部分的测试同学来说,多多少少都有了解。

  为了让不太了解的测试同学也加深印象,我也唠叨一句:白色测试也叫结构测试或逻辑驱动测试,通过审核代码逻辑设计,按照代码流程测试内部结构,确保代码中的每个分支都能按照预期工作,并返回正确结果。

  在这里(单元测试),模型工程服务测试与传统软件测试基本相同,也需要对代码的内容结构进行测试,主要包含测试点如下:

  1)项目规范检查:在项目中,项目规范检查范围包含:项目架构设计、数据库设计、接口设计、开发规范(代码缩进、注释、变量命名规范、请求方式等),测试同学需要按照技术规范,验证项目(项目代码、接口文档、数据库设计等)是否符合规范。 

  2)静态代码检查:根据业务需求、架构设计等对代码进行检查,提前发现一些隐藏的BUG,如配置错误、设计缺陷、无用代码及分支等。

  3)代码逻辑覆盖检查:在代码检查时要覆盖到每个分支节点,确保代码分支没有风险。

  4)算法高效性分析:由于模型工程服务涉及到大量的数学计算,对性能的要求比传统软件的要求更高,所以,对模型工程来说,需要关注每个算法的高效性,如:缓存、循环优化等。

  5)服务异常处理:对每个节点能触发到的异常进行相应处理,如:断言,抛出异常,返回错误信息,日志记录等,这也就对代码的理解能力要求的更高。

  3、集成测试

  集成测试,在软件测试中必不可少的一个环节,这说的集成测试,更趋近于灰盒测试,而并非有些企业所说的 “集成测试”,因为有些企业把联调测试也称呼为集成测试。

  所以,在这里,我也要强调一下。

  关于联调测试,是在系统测试之后,进行的是整个系统的测试,因为一些大企业一个系统会涉及到多个测试项目组,所以,在部署UAT/灰度环境前,需要进行联调测试,保证整个系统的流是通的,尤其是开发一个新业务,涉及到整个业务系统。

  言归正传, 在集成测试阶段,模型工程服务测试与传统测试基本相同,但是,也有一些差异,具体如下:

  · 接口工程测试:使用接口测试工具,不限于postman、Apifox、SoapUI等,或编写接口测试脚本进行测试,验证实际请求结果与预期是否符合。

  · 接口diff测试:在不同版本或环境下,对比相同接口的返回结果,换句话说,接口diff测试也是对功能接口测试的补充。

  · 数据校验:在数据校验环境,模型工程服务测试与传统测试就有区别了,上面我对数据流和特征库进行了解析,这也是模型工程服务测试中数据校验的重点,这也是既要保证他们之间的调用的正确性和稳定性,同时也要保证数据的质与量。

  4、系统测试

  系统测试,也就是俗称的业务测试、功能测试,即:黑盒测试。这个环节不再需要过多的关注代码逻辑,而更侧重于业务功能的实现,性能和稳定性的表现等方面。

  1)业务功能实现:业务的实现对需求最终表现。在传统测试中,主要体现在用户界面的操作过程,而模型工程服务中,主要模型对外输出结果,如:目标检测模型,主要是对图片/视频中目标人物/物体的识别准确率的体现。

  2)性能表现:说到性能,传统测试考察的维度如:响应时间、并发用户数、吞吐量、吞吐率、资源占用等情况(如果对传统性能测试不太了解,在51Testing中有专门的性能测试学习课堂哦),但是,模型工程服务测试中,由于涉及到特征计算、特征入模等过程,所以整个流程相对来说就稍长一些,而且涉及到的时间也不相同(差异也较大)。如:我企的目标检测模型:模型对图片的识别只需要0.3s~0.5s,但是识别后上传到系统(存储到数据库),时间大约要1s~1.5s中。

  3)稳定性表现:稳定性测试在大企业中都要且必要的一个测试环节,尤其是新上线一个服务,必须要进行稳定性测试,常见如:蓝绿部署、滚动发布等。这在模型工程服务中依然适用。

  ·蓝绿部署:新上线一个服务后,不对旧版本服务进行操作,而是在另一个相同环境进行部署,然后启动新版本服务后,先切流量,待稳定后再停掉旧版本服务。

  · 滚动发布:先在额外一台机器上部署新版本服务,然后停掉一台老版本服务,并在该机器上部署新版本服务,以此类推,直达所有机器上全都部署了新版本。

  5、A/B测试

  关于A/B测试,我想,不管是测试同学,还是开发同学,多多少少都有些了解。

  可能有些企的业务局限性,导致有些测试同学没有参与过或者很少参与过A/B测试。

  为了能让大家对A/B测试有一些了解,以及我们模型工程在A/B测试中应用。

  A/B测试(A/B Testing),又称为分割测试或对比测试,是一种统计学上的假设检验方法,用于在两个或多个版本之间比较哪个版本更优秀,以达到优化网站、应用、电子邮件或其他数字产品的目的。通过同时向不同的用户群组展示略有不同的版本(A版本和B版本),并收集和分析这些用户的行为数据(如点击率、转化率、停留时间等),来确定哪个版本更能吸引用户、提高用户体验或增加业务目标(如销售额、注册量等)的完成率。

  为了更好的便于理解,我这里画一个流程图:

1-2.png

  结合上面这个图,是不是就更好理解A/B测试的流程了。

  那么,上面的A/B测试,是否能应用于模型工程服务测试呢?

  答案当然是可以的。

  因为模型训练完成后,需要嵌入到系统中才能应用。

  所以,如果以系统为载体,A/B测试流程与传统测试是差不多的。

  但是, 也有差异点,如:由于模型在部署后,随着时间的推移,其性能是逐渐衰减的。

  为了保证模型服务的稳定性,就需要进行频繁的版本迭代(这里的版本迭代非业务需求变更和版本缺陷导致)。而此时,A/B测试的必要性就体现出来了。 

  若当前服务使用的是A模型,当根据需求要进行版本迭代,此时模型B会在离线环境训练,然后部署到线上环境,进行A/B测试。

  这里说一下: 在模型B部署到生产环境后,都会进行逐步引流,如:

  北京市场→华北市场→全国市场;

  当然,至于企业是否需要进行A/B测试,还需要根据实际情况来进行。

  只有选择最适合企业的方式,才是最有效的方式。

  6、总结

  在这篇,我详细介绍了模型服务工程测试流程的方法,并探讨了其与传统测试的差异。

  模型服务工程测试包含的测试环节,如:单元测试、集成测试、系统测试和A/B测试。

  而与传统测试相比,模型工程服务测试流程在以下几个方面有所不同:

  1)数据依赖性: 更加依赖数据和数据处理过程,测试过程中需要大量模拟和真实数据。

  2)算法验证: 需要验证和比较不同算法、模型的效果和性能。

  3)动态调整: 更加注重动态测试和持续改进,例如通过A/B测试等在线评估方法进行优化。

  最后,再唠叨一句:

  随之AI的深入各个领域,作为一名测试技人,不仅需要具备传统测试技能, 对模型测试也需要具备一定的能力,这也是当前对测试人的挑战。

  只要不断的学习,我相信,每个人都会掌握模型测试的技能。


作者:Carl_奕然    

来源:http://www.51testing.com/html/58/n-7802158.html

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   路透社消息,特斯拉中国正在准备向有关部门备案其 FSD 功能,以便在今年推送这一功能。  虽然特斯拉 FSD 还未在中国市场推送,但早在 Model 3 发售时,FSD 就已随车销售,售价 6.4 万元,他们还计划在中国推出 FSD 订阅制,价格可能为每月 98 美元(IT之家备注:当前约 711 元人民币)。  特斯拉正努力将最新版软件 FSD V12 引入中国,马斯克表示,特斯拉有一条提供完全自动驾驶系统的道路。  特斯拉还考虑向中国其他汽车制造商授权 FSD,FSD 在中国的销售将为特斯拉开辟新的收入来源。由于中国电动汽车制造商的竞争,2024 年一至四月特斯拉在中国的销量下降了 7...
            0 0 654
            分享
          •   安全测试工具Appscan也是软件测试实验室软件测试体系建设或申请软件测试CNAS资质时,很常见的一款工具。本文我们带大家一起来了解一下安全测试工具Appscan,它的四大套件以及最新版本的功能。  AppScan隶属于HCL品牌旗下 ,通过利用人工智能和机器学习来实施安全最佳实践和合规性,帮助软件开发人员检测和修复漏洞。它的静态、动态、交互式和开源扫描引擎,可以部署在开发生命周期的每个阶段,测试web应用程序、API和移动应用程序。经过扫描引擎驱动,通过风险管理仪表板,提供跨静态、动态、交互式和开源测试的可扩展应用程序安全测试,实现对风险和合规性的可见性。  AppScan 套件包括: ...
            0 0 2158
            分享
          • 一、安装1.免费官网链接:https://www.getpostman.com/postman,下载好后双击.exe程序安装即可2.注意事项:建议安装在非系统盘,即C盘以外的盘,路径最好用全英文路径3.打开chrome->更多工具->拓展程序->加载本地已解压的postman至chrome中4.打开postman,注册并登录,也可以跳过注册页,不登录也可以直接使用二、postman使用1.基本功能:导入项目:https://www.getpostman.com/collections/c8f98a1120357e0d4a5a环境变量url:http://postmanexam...
            3 3 1715
            分享
          •   据报道,当地时间周二,特斯拉首席执行官埃隆·马斯克在接受媒体采访时表示,在硅谷工作的“笔记本电脑阶层”需要放下他们的道德架子。  马斯克谈论的是回到办公室的必要性。这一问题在硅谷和美国各地的科技工作者中引起了极大的关注,其中许多人得到了高管允许他们远程工作的慷慨授权。  “我认为在家工作的整个概念有点像玛丽·安托瓦内特(译者注:法国国王路易十六的妻子)的假名言,‘让他们吃蛋糕吧,’”马斯克说。“这不仅仅是生产力的问题,”马斯克说,“我认为这在道德上是错误的。”  马斯克将科技工作者称为“生活在梦幻世界中的笔记本电脑阶层”,他对媒体说,居家办公却期望服务人员继续亲自上门是虚伪的。  “人们应...
            0 0 1015
            分享
          •   在江湖行走,尤其混迹于职场这片广阔天地时,总会有那么几句话飘荡在耳畔,如同魔咒般挥之不去,直戳心窝子。就像是下面这些金句,不论是在和学生们扯皮,还是在IT圈子里闲聊,甚至在饭桌上跟朋友们推杯换盏之间,它们都会时不时地冒出来刷一波存在感:  “哎呀,那家伙一天天划水摸鱼,正事没见干多少,结果一打听,人家工资竟然比我这个累死累活的老黄牛还高!”  “我们部门新来的毕业生愣头青一枚,啥都不会,全靠我手把手教,可笑的是他领的薪水几乎和我不相上下,这也忒不公平了吧!”  “我就纳闷了,我这儿拼死拼活干,职位比她还高,结果人家凭一张嘴皮子就把工资和绩效拿得比我漂亮多了,真让人憋屈得不行!”  乍一听,...
            0 0 386
            分享
      • 51testing软件测试圈微信