听说测试“有手就行 ”?华为 20 年测试老兵干货分享!
![听说测试“有手就行 ”?华为20年测试老兵干货分享!](https://static001.geekbang.org/infoq/92/92e5722583d7743ac363db936ec10360.jpeg)
你理解的测试工程师是怎么样的?是不是觉得测试工作很简单呢?
测试简单,但也乐趣无穷
作为在华为从事大型软件系统测试工作 20 年的测试老兵,阿钟老师透露,20 年前正是因为听信了朋友的一句“测试有手就行”, 即使不是科班出身,也自信地加入了华为测试部,从此开始了 20 年的测试生涯。
进入华为后,阿钟的工作内容主要是程控交换机测试,通过打各种长途电弧、国际电话、本地电话、企业内部电话,确认交换机能否正常处理呼叫业务。在阿钟看来,虽然听起来简单,但是他却能从工作中挖掘到无尽的乐趣,通过不断地解决问题,让产品越来越成熟可靠,本身就是一件很有成就感的事情。
而在后续 14 年里,长期从事测试工作,不仅让阿钟对测试有了全面且独特的认知,还让他成为了一个“懂产品”的测试工程师。
从“人与人”的联接到“物与物”的联接
2018 年,阿钟来到了华为云 IoT,他的工作内容,从测试“人与人”之间的联接,变成了“物与物”的联接。
![](https://static001.geekbang.org/infoq/18/18baa66268905b58ae949700b0066d46.png)
从测试的角度来看,阿钟认为华为云 IoT 物联网平台有三大特点:Service On Service,海量接入,高可靠性。
所谓“Service On Service”,是指华为云 IoT 是构建在华为云底座上的服务,但同时,华为云 IoT 也是各行各业构建物联网应用的底座。而当各行各业都开始数字化之后,势必就会有海量的设备接入需求,这就要求华为云 IoT 必须能提供一个高可靠性运行环境,保障业务的稳定运行。
![](https://static001.geekbang.org/infoq/22/225f14bce33acb57a2b01e933bec8685.png)
而物联网作为一个全新的领域,对于阿钟来说亦是充满了挑战。它不仅要求测试人员具备很好的创新能力,需要理解各种前所未有的需求天马行空地设计处理方案,还对时效性要求非常高,在保证高质量的同时,还要高效地为伙伴提供可靠的方案。
自此,阿钟的测试工作变得不再是“有手就行”。测试的对象看不见、摸不着了,怎么测可靠性呢?如何确保平台的性能呢?
![](https://static001.geekbang.org/infoq/e9/e9aa073a09c41f8b46a9b4b88d34cc9c.png)
本次直播,阿钟从物联网平台数据的仿真,到数据流转、平台可靠性以及性能的测试,为大家分享了详细的方法的思路。由于文章篇幅有限,下文仅简单概括,欢迎开发者朋友们观看直播回顾视频了解详情。【戳我观看直播回顾视频】
如何生产仿真海量物联网数据?
首先要解决物联网协议多,数据结构多样性的问题,阿钟选用了生态较完善的 Java,借助 Java 丰富的第三方组件,模拟不同协议的物联网设备。为了实现海量物联网设备仿真,阿钟设计了性能仿真工具,解决物联网数据生产的问题:
复用功能仿真脚本,仿真不同类型的物联网设备
高并发,单执行机 500 并发线程,可仿真 50000 设备在线
容器化,可横向扩容多个执行机并发测试
![](https://static001.geekbang.org/infoq/7c/7cf58a23c0ab4e8348be567de8cdcf28.png)
数据到哪了?通过数据染色跟踪海量数据流转
数据生产出来之后,接下来就是想办法采集数据。传统的调用链,一般会将数据事无巨细都采集上来。这种做法一方面影响微服务的性能,另一方面,测试服务也需要分析无效数据。为了解决这个问题,阿钟有更好的实践:通过数据染色跟踪海量数据流转,不仅可以端到端地跟踪数据,还可以确保数据的时效性。
![](https://static001.geekbang.org/infoq/a9/a9a989cdc133c55ae0f6982e13a4f67b.png)
平台忙得过来吗?运营性能数据,自动输出性能报告
为了实现测试数据的自动化分析,华为云 IoT 的测试通过对云服务、微服务两个层面的测试数据分别进行建模,对测试数据进行更有效的管理。不仅可以从整体上对云服务的性能进行有效的评估,当云服务性能下降,还可以从微服务数据中挖掘出问题所在。
![](https://static001.geekbang.org/infoq/91/91322e4d57798bdec85deafae9dfa0ae.png)
可靠性怎么测?故障模式+爆炸半径=可靠性自动化
测试服务先分别实现以下三部分能力:
一、故障模式能力,通过故障模式实现故障注入能力;
二、可靠性测试流程编排能力,通过编排可实现可靠性自动进行故障注入与数据检查;
三、故障对象自动探测能力,通过调用 K8S API 接口,探测 IoT 服务的所有微服务实例信息,含虚拟机 IP 与容器 IP 信息,从而感知故障对象位置。
以上三种信息结合起来,就可以得出用什么故障、测什么对象、怎么测、如何分析测试过程数据,从而自动生成可靠性自动化用例。
![](https://static001.geekbang.org/infoq/d5/d587000056dd19bb9cb216c3c24e4e4f.png)
可靠性怎么测?基于录制回放评估微服务健壮性
云服务可靠性测试通过仿真运行环境故障的方式,对云服务架构的可靠性进行了评估。微服务可靠性测试,聚焦于微服务依赖的第三方组件运行故障场景,评估微服务是否可以感知第三方组件状态异常,快速通过重建客户端的方式恢复业务。测试方法是通过 JVM agent 对微服务进行流量录制、回放、仿真组件异常,检测故障过程中,微服务的业务是否会受到影响,如果受到影响,能否自愈。
![](https://static001.geekbang.org/infoq/c7/c7c9abcc4e37e1b09e42734079bebd86.png)
如何快速评估?基于流水线,快速评估代码变更影响
完成了性能、可靠性自动化能力的构建之后,可以通过测试服务提供 API 接口的方式,让微服务发布流水线进行调用,实现对微服务新开发代码快速进行功能、性能、可靠性维度的评估,十分钟级输出评估报告。同时,可以通过云服务级验证流水线调用测试服务 API 接口,对整体云服务可以高频地进行性能、可靠性的全面评估,让云服务、微服务长期处理健康的状态。
至此,测试活动回归“有手就行”!
![](https://static001.geekbang.org/infoq/7a/7a5e327245603e2de27b566ea765720c.png)
端边云协同,构筑全场景物联网云服务,使能行业智能升级
阿钟认为,物联网不是单纯的某一个“行业”,而是各行各业数字化的一个“过程”。在全球数字化转型趋势下,华为云 IoT 作为一个高性能、高可靠物联网云服务,融合了设备接入、设备管理、安全可靠的双向通信、消息灵活流转引擎、监控运维、最优发放等功能。我们的客户、伙伴、开发者可以基于华为云强大的技术底座,配合华为云其他产品同时使用,可以帮助物联网行业用户快速完成设备联网及行业应用集成,简化海量设备接入、管理的复杂性,节省人工操作,提升效率。
![](https://static001.geekbang.org/infoq/e0/e03f9a7fcc6c70353633ebe8208ae7a0.png)
同时,华为云 IoT 面向各类型开发者,提供多样化的能力开放,帮助各行业有效提升数字化方案构建效率。欢迎访问华为云 IoT 官网,体验安全可靠的智慧物联!
![](https://static001.geekbang.org/infoq/1b/1bccaa6c1040e09c5f28e5f84450c664.png)
版权声明: 本文为 InfoQ 作者【华为云开发者联盟】的原创文章。
原文链接:【http://xie.infoq.cn/article/b8496045f54ccdcf2e10bce1b】。文章转载请联系作者。
评论