测试工程师了解架构知识可以帮助我们确定测试范围和用例设计。转载至茹炳晟老师的《软件测试52讲》
一、高性能架构设计
(1)前端性能:通过各种技术手段去优化用户实际感受到的前端页面展现时间
(2)后端服务器相关的性能优化和架构设计:业内采用的最主要的技术手段是缓存。同时,集群也可以从计算能力的角度,提升后端的处理性能。
测试时需要关注的点:
(1)集群容量扩展。也就是说,集群中加入新的节点后,是否会对原有的 session 产生影响。
(2)对于无状态应用,是否可以实现灵活的实效转移。
(3)对于基于 session 的有状态应用,需要根据不同的 session 机制验证会话是否可以正常保持,即保证同一 session 始终都有同一个确定的节点在处理。
(4)当集群中的一个或者多个节点宕机时,对在线用户的影响是否符合设计预期。
(5)对于无状态应用来说,系统吞吐量是否能够随着集群中节点的数量呈线性增长。
(6)负载均衡算法的实际效果,是否符合预期。
(7)高并发场景下,集群能够承载的最大容量。
二、高可用性架构
高可用是指:在绝大多的时间里,网站一直处于可以对外提供服务的正常状态
造成网站不可用的主要原因有以下三大类:(1)服务器硬件故障;(2)发布新应用的过程;(3)应用程序本身的问题。
为了解决以上问题,可能有三类解决方法:(1)从硬件层面加入必要的冗余;(2)灰度发布;(3)加强应用上线前的测试,或者开启预发布验证。
三、可伸缩性架构
可伸缩性是指:通过简单地增加硬件配置而使服务处理能力呈线性增长的能力。最简单直观的例子,就是通过在应用服务器集群中增加更多的节点,来提高整个集群的处理能力。
四、可扩展性架构
可扩展性,指的是网站的架构设计能够快速适应需求的变化,当需要增加新的功能实现时,对原有架构不需要做修改或者做很少的修改就能够快速实现新的业务需求。目前业界普遍使用消息队列。
引入了消息队列后,测试人员需要关注的点:
(1)从构建测试数据的角度来看,为了以解耦的方式测试系统的各个模块,我们就需要在消息队列中构造测试数据。
(2)从测试验证的角度来看,我们不仅需要验证模块的行为,还要验证模块在消息队列中的输出是否符合预期。
(3)从测试设计的角度来看,我们需要考虑消息队列满、消息队列扩容等情况下系统功能是否符合设计预期。
(4)我们还需要考虑,某台消息队列服务器宕机的情况下,丢失消息的可恢复性以及新的消息不会继续发往宕机的服务器等等。
网友评论