需要针对互联网的架构来设计有针对性的测试,另外对于互联网的压力测试以及结果分析也需要对架构知识有比较清楚的认识.
诸如负载均衡器、缓存集群、数据库读写分离、消息队列、CDN、 反向代理服务器和分布式数据库等概念,在测试执行中也经常会和这些系统打交道。但是,很多时候, 你只是知道网站在架构设计上有这些组件,并不清楚这些组件真正的作用,在对应的测试设计时也很难 做到“有的放矢”
同样是对架构知识的学习和掌握,不同角色的工程技术人员都有不同的视角,需要了解和掌 握的全局知识和细节程度也各不相同.以消息队列知识为例:
- 系统架构师,不仅要掌握各个不同消息队列实现的技术细节,还清楚不同方案的优势和劣势,最关键的是能够根据业务的应用场景和特点来选择最合适的消息队列方案
- 软件开发人员,掌握消息队列的使用方法、消息push和pull的模式,以及在应用中如何以异步方式来对消息进行妥善处理,并且还要考虑到异常场景的处理
- 软件测试人员,你需要知道消息队列的基本原理以及在被测系统中的部署情况,同时应该知道如何访问消息队列或者队列中消息的情况。在需要模拟消息进行解耦测试的场合,你还需要知道如何添加测试消息以满足测试的目的
学习架构知识遵循“由广度到深度”和“自 上而下”两个基本原则
- “广度”是指在平时工作以外的时间中,应该多注重全领域架构知识的积累,此 时那些系统性地介绍架构知识的书籍或者专栏就可以给你最大程度的帮助了
- “深度”是指,对于架构中某一领域的特定知识在项目中要实际使用的时候,必须要刨根问底,通过实际的测试来加深对架构知识细节的理解
- “自上而下”是指,在实际测试项目中,当需要设计涉及架构的测试用例和场景的时候,千万不要直接 基于“点”来设计测试,而是应该:首先通过全局阅读理解上层架构设计;然后,在理解了架构设计的 初衷和希望达成目的的基础上,再向下设计测试场景和用例
这个过程,一方面可以帮你设计出有针对性的测试用例,另一方面可以帮助你理解架构在实际项目中是 如何落地的