软件架构与测试架构分析论
上一篇 / 下一篇 2012-04-09 08:47:01 / 个人分类:杂谈
\ g#C|g1T|X x0 一、生活中的架构51Testing软件测试网NHPI/M)E.k+k*I S)rf0y
~Ou.Y\ \/`j:pd0 相信大家都知道“马斯洛需求层次理论”,在其理论中,把人类需求分成生理需求、安全需求、归属与爱的需求、尊重需求和自我实现需求五类,依次由较低层次到较高层次排列。这里不讨论其理论的正确性,这也是一种架构,将人类需求实现的各个层次进行了细分,每一个层次之间都有详细的职责细分,每个层次之间都有清晰的关系接口,因此普通人能够快速基于此架构拓展自己的特性需求。
_1Q#T)E+T^9mv051Testing软件测试网:Z\W_-Ra(U$oC t$E在我想来,人的思想意识也需要自己的架构,你的最底层是你的原则,也就是做人方式,是固定的,不会轻易更改,变动越大,影响越大,然后依次是做事方式和表现方式,可以随着环境的不同进行适应。51Testing软件测试网vW4Asq'T#k-[s
]b;P2[a i,_0 二、软件设计架构
[/c2X*t-d*^6LJ051Testing软件测试网/F I-IwW J?1、软件设计流程:
F,s)IxP xJ8i*M0,G d8lN TGCWk*`0 一般的软件设计基本流程会是:需求分析—架构设计—系统设计—系统开发—测试上线。当然,从产品整体上而言,需求分析前期还有战略制订以及可行性研究,上线后期还包括应用数据分析等。
h%pa+Xs$RL%c051Testing软件测试网!l#y Pa!e ezw-D|2、软件架构介绍:51Testing软件测试网&DkkSk}
?7r0q,H.tpu0 软件架构简单而言,觉得有一句话说的很好:在一定的设计原则基础上,从不同角度对组成系统的各部分进行搭配和安排,形成系统的多个结构而组成架构,它包括该系统的各个组件,组件的外部可见属性及组件之间的相互关系。其实说的简单点:软件架构就是从整体上定义软件系统的运作流程、各个模块以及模块间的接口。51Testing软件测试网@/j0{,Y e-a;P9G.nw,d
51Testing软件测试网4lU OJ#_!@T3、软件架构作用51Testing软件测试网4]k8D3\*?6HF
F0a-e#V#J/n1y0 软件框架的作用是使软件设计层次清楚,可以达到不同模块细分到不同个人开发的效果,各个接口之间能够无缝连接。但是架构虽好,也需要看实际情况,不能一味为了追求花哨的架构,而忽视了其成本。软件架构的真正作用是分离关注点、提升软件需求灵活性和维护性。但是相应的,其前期复用的成本效益也显著提高。因此,需要根据软件项目的规模综合考虑,选择一套合适自己的架构,只是为了临时住而搭建一个草房子,就没必要又是设计地基、又是设计扩展性等问题了。
7W*L ~ V{ H6Zy0T4Uo8r9v:F9s)R:[8}R3t0 4、软件架构师发展51Testing软件测试网;E9\o_ a!B#fJ!C
.FSOL9xHP"y$R$W u7}$s0 从一个从软件实现角度上说,写代码并不是其最重要的工作,最重要的工作就在于其架构的设计,当架构设计好之后,其具体代码细节则是一个填充的过程。就像做房子,房子图形架构都设计好了,那么水泥和各材料就只是按照其形式搭建而已。
)q5?,AGii051Testing软件测试网R`3^Jy!L}E而根据我的总结,要成为一名软件架构师:则必须经历这么一个过程:
C%fc"^e8f051Testing软件测试网!^R Se-Q9]\kN软件业务学习——开始能够写函数和类(即能够写得了过程性的函数和对象性的类集合,能够应用数据结构和算法实现)———写模块和引擎(能够写一些给外部调用的模块和引擎,能够应用模式,能够定义好自己的接口)——写框架与平台(能够应用抽象思想,善于利用各种架构以及搭建自己的架构,能够区分和选择技术重点、快速验证技术实践等)。自我认为自己还在第一个阶段。反思以前开发的测试项目,大都接口定义太少,更多的是面向类实现的编程,而不是面向接口的编程,最近一直在看java的源代码,才深有体会面向接口的编程和一些简单模式的真正应用——软件业务分析。51Testing软件测试网@OW$xwM t"p
1、测试架构介绍
:b eN9x kXS x051Testing软件测试网z0v R9r m0R#\c测试架构,业界常分为“测试管理架构”和“测试技术架构”,也许很多公司,大多数测试经理就担任着这两类的测试架构师,他们往往对测试流程设计负责,也对测试技术的应用选型负责。51Testing软件测试网 IOX'L8ajC
51Testing软件测试网nbo)i]其作用不言而喻,但是很多人将架构误认为测试框架,其实不然,测试架构不等于测试框架,其架构还包括测试业务应用定位,例如:一个公司刚开始做自动化测试时,最容易犯的错误是没定位好实施自动化测试的架构流程,一开始就大规模的套用测试框架,然后开始调用测试人员写脚本,到头来却发现这套框架根本不适合测试的形式,其实脚本录制算是一个必然要经历的阶段,只是这个阶段可以大可小,可以通过录制去满足好一部分的测试业务需求,然后等需求稳定和饱和之后,再设计发展适合自己的框架等。所以说,凡事都如造房子,得一步一步来,才能建出好的房子,否则一味的求快,架构不牢固,只会吹散在风中。51Testing软件测试网H}LJL'KDT-R#M
v(?q%m(K?0 2、测试架构师发展
'D2?bCJvJ yj0(y.BD4? m3u0 测试技术架构,从业务角度而言,可以是以可重用的测试框架来思考测试点和测试方法,例如:采用的测试方式是功能测试、探索性测试、例行测试、实验局测试还是性能测试等。然后规范出各个测试设计模板。深入技术角度而言,就是对测试方法的技术重点的选择和部署,例如,功能自动化测试和性能测试架构设计。因此,测试架构在技术上是与软件架构理念相通的,而成为一名技术型的测试架构师,需要经历为: