行业资讯
分享专栏文章,携手打造高质量产品
当前位置:首页 > 行业资讯 > 健康码频频宕机给软件测试行业的启发
健康码频频宕机给软件测试行业的启发
发布时间:2022-02-10 浏览数:0
自新冠疫情暴发以来,“健康码”已成为民众出行,查验个人健康状况的必要条件。然而因各地的运维方式与水准不同,两年来多个省市的本土“健康码”曾先后出现系统崩溃等问题,导致民众出行一度受阻,政策性风险频发。

自新冠疫情暴发以来,“健康码”已成为民众出行,查验个人健康状况的必要条件。然而因各地的运维方式与水准不同,两年来多个省市的本土“健康码”曾先后出现系统崩溃等问题,导致民众出行一度受阻,政策性风险频发。

2020年5月6日,杭州市健康码无法正常打开;

2021年5月7日,澳门特别行政区健康码连续两日出现异常情况;

2021年8月2日,山东省健康码出现阶段性卡顿;

2021年12月20日,西安市一码通崩溃;

2021年12月25日,天津市健康码出现异常;

2022年1月9日,天津市核酸检测系统出现崩溃;

2022年1月10日,广东省粤康码系统出现崩溃;


针对近期多省市大面积出现健康码、核酸检测系统相继被曝系统崩溃,国家发展改革委、交通运输部、公安部等十四个部门联合发布《关于全力做好2022年春运工作的意见》。其中提出要落实健康码全国“一码通行”,鼓励各地区推广刷身份证自动核验健康码服务。

健康码频频出现问题,这是为什么?

1.限流问题:市民遇到无法刷出健康码的情况,于是多次尝试刷新进入,导致服务器压力变大,承载负荷,说明该系统并无合理的限流措施。

2. 服务器问题:不管是企业还是个人, 租用服务器时都会有峰值限制,一旦超出了其承载范围,服务器就会出现瘫痪的情况,应用程序也就无法正常使用了。而造成服务器崩溃的主要原因就是,在同一时间段内访问人数过多,造成高流量的突进,超出服务器承载范围。

3. 架构问题:有些健康码功能模块影响核酸检测服务,说明模块间从界面到数据调用互相影响,可能不是微服务架构。

4. 性能过载:典型的性能过载场景,其内部根因不管是是数据库瓶颈点,还是网络链接数瓶颈点等等,究其外因就是过载。

5. 场景问题:可能上班高峰期大家都在访问同一个服务,导致服务器瞬时访问流量急速上升,数据库性能也跟不上,最终整个健康码服务挂了

6. 设计漏洞:没有考虑高流量高负载的情况,导致测试不充分;产品设计未考虑千万级的并发访问,交付前未进行同等级的压力测试。

7. 压力测试:在市民长时间无法看到健康码的情况下,多次退出刷新重试,导致服务器压力变大、承受负载增加。说明压力测试不够。



当然,万幸这件事没有造成更加严重的后果,后来顺利解决了问题,但我们作为软件测试企业能从这件事里得到哪些启发呢?

一、系统要时常进行性能测试。

作为测试工程师,一定要时不时的对自己家的项目和系统进行一下性能测试,尤其是对系统进行一下并发测试和压力测试。并发测试能够确定系统能够在同一时间服务的用户的数量。而压力测试则能够检验系统能够在什么样子的压力下和条件下崩溃。

二、要仔细研究业务流程,避免产生死循环。

在一个业务设计的关系中,要避免死循环的产生,或者说,在一个系统中所有的条件和路径都要考虑到。例如西安一码通的业务设计:系统支持正常运转,产生通行绿码,配上48小时核酸,进入园区,然后可以保证系统正常运转。

但是,测试人员要能够在这样的业务中,分析出来一种极端情况:如果系统崩溃了,没有绿码,没有48小时核酸,那就无法进入园区,也无法维护系统,导致软件的维护人员只能眼睁睁看着系统宕机……这也是系统设计的一种Bug。因为没有很好的将特殊情况考虑进入。所以,测试人员也要懂需求和业务流程的设计,并能够找出其中的Bug。

image

测试建议


1、 添加高性能自动化测试,压力测试;在发布前做预防机制;


2、服务演练:日常中开展各种应急演练工作,提高问题处理效率及验证灾备系统可用性。