其他
如果你是工作在传统软件企业的工程师的话,网站的架构设计知识对你来说可能没那么重要。因为,你的测试对象是传统软件,此时你需要对你的被测软件的架构有比较深入的理解。而现在如你所知,互联网企业已经占据软件产品的大半壁江山。如果你想跳出传统软件产品测试这个舒适区的话,那互联网企业将是一个最可能的去向。而在互联网企业进行软件测试的话,很多时候需要针对互联网的架构来设计有针对性的测试,另外对于互联网的压力测试以及结果分析也需要对架构知识有比较清楚的认识。这时,不懂得网站架构设计知识,在开展测试时,就真的会有处处被掣肘的感觉了。更别提,这还会直接影响到你的能力提升和职业发展了。在测试过程中,你可能会经常遇到诸如负载均衡器、缓存集群、数据库读写分离、消息队列、CDN、反向代理服务器和分布式数据库等概念,在测试执行中也经常会和这些系统打交道。但是你可能并不清楚这些组件真正的作用。还有些时候,特别是性能测试,如果你不清楚详细的架构设计以及其中的技术细节,你可能根本无去解读和分析性能测试的报告。我来举两个实际的例子吧。基于消息队列的分布式系统测试设计的例子在分布式系统的架构中,为了减少各个应用系统之间的直接耦合,往往会引入消息队列来实现解耦。也就是说原本的功能实现是由系统A调用系统B来完成业务功能的,而引入了消息队列后,系统A不会再直接去调用系统B,而是将调用B所需要的数据放到了消息队列中,此时我们将系统A称为消息的生产者,然后系统B通过监听该消息队列,主动从消息队列中依次抓取数据进行系统B的处理,系统B在这种情况下称为消息的消费者。通过这种方式,就完成了系统A和系统B之间的调用解耦。那么,我们再来看测试的设计。测试用例的设计可以站在黑盒测试的视⻆,完全不需要知道消息队列的存在,而直接从业务功能的层面去设计用例。但如果只这么做的话,你会发现虽然你的测试全部通过了,但是产品一旦到了线上,还可能会出现很多问题。比如说,消息的生产者产生消息的速度远远大于消息消费者处理消息的速度时,很可能会造成消息队列满的情况,此时系统的行为是怎么样的?