今天讨论一下究竟什么是软件测试架构?有哪些内容?给我们带来什么好处?】
周星驰主演的《武状元苏乞儿》最末尾有这样一段对话:
皇帝:你丐帮弟子几千万,你一天不解散,叫朕怎么安心?
苏乞儿:丐帮有多少弟子不是由我来决定的,而是由你决定的。
皇帝:我?
苏乞儿:如果你真的英明神武,使得国泰民安,鬼才愿意当乞丐呐!
言外之意就是说:如果皇帝干得好,人民没有什么疾苦,乞丐自然就少了,丐帮自然就小了。 皇帝要阻止丐帮的壮大,靠的不是官府差役,也不是加重刑罚,而是靠治国,把天下治理得井井有条,民富国强,丐帮自然就被消弱了!
这也好比软件开发和测试的关系,皇帝代表开发的一方,苏乞儿的丐帮就代表众多的Bug。如果开发人员把事情做好了,哪有那么多缺陷? 如果开发架构师真能把系统设计得很完美,哪需要测试架构师呢?
究竟什么是软件测试架构呢?2012年我写的书《完美测试:软件测试系列最佳实践》用了整整一章讨论这个问题,今天由于时间关系,就简明扼要讨论一下这个问题:
- 软件测试架构的定义与内容
- 测试架构的带来的收益
1. 软件测试架构的定义与内容
要了解什么是“软件测试架构”,可以先看看什么是软件架构。比较早而权威的解释是:Softwarearchitecture is“designing and specifyingthe overall system structure[Garlan andShaw,1993]”。
软件系统的架构是一个比喻,类似于建筑物的架构。
软件架构是指软件系统的基本结构、一个系统的草图,作为一个软件系统的高层此的抽象,描述直接构成系统的各个抽象(或逻辑的)组件、组件的性质和责任,以及各个组件之间的关系,如有哪些组件、某个组件起什么作用、组件之间的接口定义、模块之间是如何通讯或交互的等。软件架构是系统顶层设计的结果,包括软件设计中可能存在的特定结构的选择。
根据软件架构,我们也很容易得到测试架构的定义:测试架构是对软件测试解决方案的抽象性概括,通过逻辑结构(草图、模型等)来描述测试的解决方案,包括高层次或低层次的解决方案、整体或单个测试问题的解决方案。测试架构也可以理解为是针对被测试系统(SUT)如何进行测试(包括手工测试、自动化测试)的总体架构,包括如何定义/描述测试单元(如测试输入、测试操控、结果观察、测试输出等)之间的关系、测试单元和SUT之间的关系。这样说,还比较抽象,我们可以进一步探讨一下测试架构包含哪些内容,并给出不同的示例来给您直观的感受。
我2010年绘制的敏捷测试流程架构
图 Built in Self Test Architecture
JUnit单元测试架构
性能测试工具架构
分布式性能测试部署架构
2. 测试架构带来的收益
测试架构无处不在,不仅能解决技术问题,也可以解决流程、管理上的问题,除此之外,还带来其它很多收益,例如:
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!