分层的变化:界面层,接口层,业务逻辑层,实体模型层
部署的变化:从单机运行到双机热备份再到负载均衡,最近进化到分布式系统。
存储的变化:关系型数据库,非关系型数据库,缓存数据库,搜索引擎数据库
Database -> Component->Service->API->UI
Cache|SearchEngine Database|NoSQL->Message Queue->APP Server->WEB SERVER-> CDN
浏览器->WEB服务器->APP服务器->缓存->数据库,中间会经过各种代理,负载均衡,分布式文件系统等等
CDN测试,域名解析测试,
WEB UI测试,包括HTML,Ajax
API 服务器测试,api 是非人机交互界面,它是通过特定协议与API服务器交互通信。
代码单元测试
配置测试,配置管理过程中配置变更后的测试,含系统与应用
安全测试,接口安全,认证,权限
注入测试,JS注入,SQL 注入,Shell 注入
缓存测试,命中率测试,包括CDN,WEB服务器,缓存服务器,搜索引擎
压力测试,健壮性测试
扩展性测试,水平扩展测试,垂直扩展测试
高可用测试,集群测试
压力测试环境
首先准备测试环境,如单机测试要考虑CPU速度,磁盘IO速度,RAID卡的速度,RAID卡缓存大小,内存速度,PCI—E总线速度,甚至会涉及多对称CPU相关配置,内存与CPU通道的问题......等等
如果是测试分布式系统,除了上述单节点的注意事项,还要考虑到路由器/防火墙的包转发与连接数限制,交换机的背板带宽以及吞吐能力,负载均衡器的转发能力。
测试顺序上多数人是从UI(人机界面)切入,即由UI驱动业务逻辑,这种测试顺序是错误的,例如用户->浏览器->WEB服务器->APP服务器->缓存->数据库等等
Web Server -> APP Server->Cache /MQ->Database->Disk IO