架构师学习计划.docx
- 文档编号:16523435
- 上传时间:2023-07-14
- 格式:DOCX
- 页数:13
- 大小:22.97KB
架构师学习计划.docx
《架构师学习计划.docx》由会员分享,可在线阅读,更多相关《架构师学习计划.docx(13页珍藏版)》请在冰点文库上搜索。
架构师学习计划
架构师学习计划
篇一:
从菜鸟到测试架构师
第2章
万事开头难:
软件从安装开始
在凯文的指导下,小艾开始对于测试有了初步的了解,就这样忐忑地开始了自己的测试生涯。
“可是,测试要从哪里开始呢?
”他坐在办公室对凯文问出了这样的问题。
“测试要先熟悉自己的产品。
这样吧,我先安排你到安装测试组工作,熟悉一下产品。
”“安装测试组?
安装也需要测试吗?
这不是很简单的事情吗?
”小艾想起自己在读书的时候,经常给自己的计算机安装系统和各种软件,是一件很轻松的事情。
于是不由得有些失望。
“以前你所使用的软件都是经过安装测试后发布的,所以你可以简单顺利地完成安装过程,但是事实上安装测试并不像你想象得那么简单,试一下你就知道了。
而且,你平时用的都是个人桌面计算机上的简单应用,而对于大型商用软件来说,它所需要支持的各种集成环境、集群配置等,都是很复杂的。
”凯文笑着说:
“你去安装测试组报到,安装测试组的组长安岩会安排并帮助你熟悉工作,遇到任何问题都可以请教她。
”
2.1软件,是装出来的
“安装测试组都需要做什么呢?
”这是小艾问安岩的第一个问题。
安岩给小艾的解释是这样的:
安装可以很简单,像一些简单的桌面应用程序,只是简单地复制一些文件,对于这种应用,不需要专门的安装测试组,安装测试能够和其他测试合并在一起。
安装也可以很复杂,比如说企业级JavaEE应用软件的安装,一般来说,它要支持多个操作系统平台、多种数据库、多个版本的中间件、多种网络服务器(webServer)、多种拓扑结构,等等,这就是要求测试人员具有较好的操作系统、数据库及网络服务器等知识。
一般需要一个专门的安装测试组来进行相关的测试。
我们正在测试的就是一个企业级的JavaEE应用软件。
小艾接着问:
“企业级JavaEE应用软件?
能举几个例子吗?
”
安岩说:
“没问题,JavaEE应用软件是符合JavaEE技术规范开发的相关应用,一般需要部署JavaEE应用服务器上才能对外提供服务。
一般来说,企业级JavaEE应用,都需要使用数据库软件。
典型的拓扑结构是三层结构:
前端是网络服务器,中间是应用服务器,后端是数据库服务器。
”
“典型的企业JavaEE应用软件,像iBmwebSpherecommerce应用套件,提供一整套完整的电子商务解决方案。
”
2.1.1安装测试概念解读
小艾仍然略带疑惑地接着问“那什么是安装测试呢?
”
安岩说道:
“软件产品多种多样,很难就所有产品特性下一个安装测试的定义。
就一般的企业级JavaEE应用软件来说,安装测试应该做到以下几点:
”1
?
确保待测产品能够在所有支持的操作系统、数据库,应用服务器中间件、网络服务器、拓扑结构等各种组合情况下,被正确地安装和卸载。
?
确保安装文档的正确性和易读性。
通俗来说,就是确保安装相关代码和相关安装配置文档的正确性。
”
安岩继续说:
“了解了安装测试的概念,我介绍一下我们如何规划安装测试的,就是安装测试计划。
可以这么说,一个好测试计划将成就一个软件产品。
一个坏的测试计划将毁灭一个软件产品。
”
“每一个测试人员都需要认真仔细地阅读安装测试计划,并且按照这个文档的规定,来进行具体的测试,这是对每一个测试人员的最基本要求。
测试计划的主体部门详细描述了安装测试的测试配置和测试场景,这部门内容也最多,我们以后还会详细讲到。
”
小艾听了安岩对安装计划的讲解之后受益匪浅,又跟安岩要了安装计划相关的材料,暗下决心,一定先要把安装测试计划搞懂、搞透。
“纸上得来终觉浅,绝知此事要躬行”。
第二天,安岩安排小艾开始进行基本的安装测试,通过实践来熟悉安装测试。
安岩接着详细介绍了安装测试的基本流程,小艾认真地做着笔记。
1.学习测试计划与测试用例
正确的开始点非常重要,学习测试计划与测试用例是每个安装测试人员开始的第一步,这个原则对其他测试类型同样适用。
在安装测试计划中,包含所有测试用例,一般要求每个测试人员对所有测试用例有一个基本的了解,对自己要测试的那部分,要有全面和细致的了解。
比如,对于一个三个节点的安装测试用例,需要搭建一个典型的三节点的环境(网络服务
节点、应用服务器节点、数据库节点)。
测试用例中规定了详细的测试步骤和检查点,这些需要认真阅读和特别加以注意。
2.搭建测试机器
每个产品对其运行的软件和硬件都有具体要求,测试用例会明确规定使用什么样的硬件配置和操作系统版本,测试人员需要自己来搭建测试机器,并且必须保证与测试计划的描述严格一致。
此外,安装测试人员在此阶段还有一个重要的工作,就是检查安装文档中关于软硬件配置描述的正确性。
千万不能闹出“产品实际支持的是windows20XX操作系统,文档中却说是支持windowsXP”这样的错误。
这可是非常严重的错误,这个错误可能会导致为客户提供的方案信息不正确,直接影响客户的预算和实施,甚至可能延误上线时间。
所以一定要认真对待。
一旦得到一套干净的测试环境之后,最好做做个备份,以供下次重复测试时直接恢复,从而节省部分测试时间。
3.准备待测试软件产品
这一步需要把待测试软件下载到测试机器上。
一般来说,构建测试组(BuildTeam)会准备待测试软件包,并且按照一定的频率(比如每天或每周)发布到某个文件服务器上,需要确认你要使用哪天的构建,并下载到测试机器上。
如果待测试软件需要依赖某些基础软件(如应用服务器软件、数据库软件等)来运行,你也需要在这个阶段把它们一并准备好。
4.按照安装手册中的步骤来执行
在实际执行中,这个步骤是最容易被忽视的一步。
资深的测试人员可能对安装测试非常熟悉了,就会常常不看安装手册而按照自己的经验来安装,这就导致安装手册有问题而未被发现纠正。
导致的后果就是用户按照安装手册来安装时,根本安装不下去,客户的失望和愤怒可想而知。
5.撰写测试报告,详细记录测试结果
最后我们要写测试报告,详细记录测试的流程和发现的问题及处理结果。
测试组长会仔细阅读每个测试人员的测试报告,掌握当前测试状态和进度情况。
小艾总结说:
“看来安装测试真的不简单呀,有那么多步骤,要准备测试机器,安装一堆的相关的软件,最后还要检查文档。
”
安岩说道:
“总结得不错,一份手册,n台机器,一堆软件,这是对安装测试执行很形象的总结。
”
2.2全面撒网,重点排查
一个月过去了,小艾顺利完成了安岩交给的第一份任务,对安装测试流程已经基本掌握清楚了。
然而,小艾一直有一个问题:
“一个好的可执行的测试计划是确保测试质量的关键,那么测试计划是怎么写出来的呢?
”
一天小艾困惑地问安岩:
“在测试计划中,为什么要选择这些测试配置和测试场景呢?
像我们这么复杂的产品又要支持这个,又要支持那个,要测试的内容好多呀,在时间和人力有限的条件下怎么保证既测得全面又测得完呢?
”
安岩笑着解释:
“好问题,这可是一门学问,是有规律可循的,听我慢慢道来。
”
2.21选择测试配置
前面曾经介绍过安装测试的概念,其重要的一部分是要确保待测产品在所有支持的操作系统,数据库、应用服务器中间件、网络服务器、拓扑结构等的各种组合情况下,能够被正确地安装和卸载。
撰写测试计划时,首先要清楚得列出产品所有能够支持的测试配置。
测试配置指待测软件所能支持的硬件环境、软件环境和配置方法的组合。
对于不同类型的待测软件,可以从各个角度来找出测试配置,对于JavaEE应用软件来说,可以尝试从下面角度来考虑。
?
操作系统:
JavaEE应用是跨平台的应用,一般都能支持多种操作系统,例如windows,aiX,Linux,Solaris等。
?
应用服务器:
JavaEE应用需要部署到应用服务器才能发挥作用,例如iBmwesphereapplicationServer,简称waS。
?
数据库:
JavaEE应用一般都需要使用数据库来存取信息,例如dB2和oracle两种数据库。
?
网络服务器(webServer):
像我们前面说过的,JavaEE应用一般都需要使用网络服务器来提高性能和支持可扩展性。
例如Sunone,internetinformationServices(下面简称iiS),iBmHTTPSERVER(iHS)等。
?
拓扑:
JavaEE应用部署时一般都支持不同的拓扑结构来满足不同的对性能和可扩展性的支持。
例如单节点、三节点、集群三种拓扑。
?
版本:
为了适应不同客户群的需求,JavaEE应用软件一般被包装成不同的版本。
例如企业版、专业版、精简版三种。
?
安装类型:
一般的JavaEE软件都会支持多种安装类型以满足不同的安装需求,例如快速安装、定制安装两种。
对于上面所列的每一个角度的具体取值,每个产品不尽相同,可以从设计文档中获得具体的信息。
对于上面多列的每一个角度,都可以看做一个变量。
所有变量的乘法组合有几十种甚至好几百种,每一个组合就是一个测试配置。
下面是一个例子:
aiX/waS/dB2/iHS/三节点/企业版/定制安装
我们能用一个乘法公式来计算测试配置的总数:
S?
?
Vii?
1n
其中,V表示某个变量的种类,n表示变量的个数,S表示可能组合的总数。
在时间和人力有限的条件下,不可能每种组合都测试,就需要根据一些限制条件来进一步缩小测试的范围,比如以我们总结得最佳实践。
1.每种支持的操作系统版本至少需要测试一次
每个支持的操作系统版本都至少需要被测试一次,为什么有这个要求呢?
因为在安装文档中,会叙述产品支持的操作系统版本,不测试哪一个,都会有比较大的风险。
这里要细化到操作系统版本,例如对于windows操作系统,某产品支持windows20XX和windows20XX,那么这两个版本都需要测试到。
2.每种支持的网络服务器版本至少测试一次
同理,安装文档中,会叙述产品支持的网络服务器版本,所以需要确保在测试配置组合中,每种网络服务器版本被测试至少一次。
3.每种支持的数据库版本至少测试一次
同理,安装文档中,会叙述产品支持的数据库,所以需要确保在测试配置组合中,每种数据库版本被测试至少一次。
4.设计文档中需要重点测试的配置必须测试
开发人员的一些代码可能在某些测试配置下会有问题,开发人员如果有这种担心,就会在设计文档中特别指出,测试人员就要特别注意,这个配置很可能会有问题的。
篇二:
架构师定义以及应具备的能力
架构师定义以及应具备的能力
20XX-07-0912:
46
架构师
架构师是软件行业中一种新兴职业,工作职责是在一个软件项目开发过程中,将客户的需求转换为规范的开发计划及文本,并制定这个项目的总体架构,指导整个开发团队完成这个计划。
架构师的主要任务不是从事具体的软件程序的编写,而是从事更高层次的开发构架工作。
他必须对开发技术非常了解,并且需要有良好的组织管理能力。
可以这样说,一个架构师工作的好坏决定了整个软件开发项目的成败。
架构师实际上就是软件的总体设计师。
首席设计师就是总设计师,打个通俗的比方:
邓小平是中国改革开放的总设计师,我们用现在的说法可以讲,邓小平是中国改革开放的首席架构师。
架构师的形成一定是在实践中积累起来的,而并非上了几次培训班,读了几本书就可以成功的,架构师是在工程实践中培养出来的!
架构师也并非是万能的。
架构师是客户需求和开发者之间的桥梁。
在软件行业中,一般提到的架构师是技术架构师,而忽略了领域架构师或者讲是领域工程师的概念。
一个好的领域专家一定是业务领域的架构师,他能够给出某一个业务领域的架构,我们可以称为业务架构,只有技术架构和业务架构紧密结合才有可能真正创造出一个好的系统!
近年来,软件领域也渐渐地流行起架构师的角色,特别是对一些大型软件产品或项目的开发,这一角色显得很关键,因为缺乏好的软件架构师而导致项目失败的例子不胜枚举,一个没有经验和能力的架构师也会使项目失败的速度加快。
软件架构师的重要作用
软件架构师在整个软件开发过程中都起着重要的作用,并随着开发进程的推进而其职责或关注点不断地变化,在需求阶段,软件架构师主要负责理解和管理非功能性系统需求,比如软件的可维护性、性能、复用性、可靠性、有效性和可测试性等等,此外,架构师还要经常审查和客户及市场人员所提出的需求,确认开发团队所提出的设计;在需求越来越明确后,架构师的关注点开始转移到组织开发团队成员和开发过程定义上;在软件设计阶段,架构师负责对整个软件体系结构、关键构件、接口和开发政策的设计;在编码阶段,架构师则成为详细设计者和代码编写者的顾问,并且经常性地要举行一些技术研讨会、技术培训班等;随着软件开始测试、集成和交付,集成和测试支持将成为软件架构师的工作重点;在软件维护开始时,软件架构师就开始为下一版本的产品是否应该增加新的功能模块进行决策。
如何成为优秀的软件架构师
显而易见,在软件开发过程中,一个优秀软件架构师的重要性是不应低估的。
那么如何成为优秀的软件架构师呢?
首先必须具有丰富的软件设计与开发经验,这有助于理解并解释所进行的设计是如何映射到实现中去。
其次要具有领导能力与团队协作技能,软件架构师必须是一个得到承认的技术领导,能在关键时候对技术的选择作出及时、有效的决定。
第三是具有很强的沟通能力,呵呵,其时这一点好像什么鬼角色都最好具备,软件架构师需要与各路人马经常打交道,客户、市场人员、开发人员、测试人员、项目经理、网络管理员、数据库工程师等等,而且在很多角色之间还要起沟通者的作用。
在技术能力方面,软件架构师最重要也是最需求掌握的知识是构件通信机制方面的知识,比如远程过程调用、JaVaRmi、coRBa、com/dcom、各种标准的通信协议、网络服务、面对对象数据库、关系数据库等等,另外,架构师应时刻注意新软件设计和开发方面的发展情况,并不断探索更有效的新方法。
开发语言、设计模式和开发平台不断很快地升级,软件架构师需要吸收这些新技术新知识,并将它们用于软件系统开发工作中。
当然,行业的业务知识对软件架构师也是很重要的,有助于设计出一个满足客户需求的体系结构,优秀的软件架构师常常因为要尽快获得对行业业务的理解而必须快速学习并且进行敏锐的观察。
上面的描述是枯燥乏味的,但作为一个架构师,在整个软件系统的开发过程中是乐趣无穷的,因为这个角色很具有挑战性,有时需要左右逢源八面玲珑,有时又需要果断坚定不留情面。
在国内,较少软件企
业拥有独立的架构师,通常一个软件高手身兼数职,既是项目经理,又是软件架构师,还是软件开发者,有时还要客串一个测试人员,这对软件的开发周期和产品质量是不利的,有时一个人的观点立场是很片面的,而且繁重的工作、沉重的压力会影响一个人的情绪,情绪会影响决策,决策影响结果,所以值得我们三思而后行。
构架师自我培养过程
构架师不是通过理论学习可以搞出来的,不过不学习相关知识那肯定是不行的。
总结构架师自我培养过程大致如下,仅供参考。
1、构架师胚胎(程序员)
学习的知识是语言基础、设计基础、通信基础等,应该在大学完成,内容包括java、c、c++、uml、RUP、XmL、socket通信(通信协议)——学习搭建应用系统所必须的原材料。
2、构架师萌芽(高级程序员)
学习分布式系统、组建等内容,可以在大学或第一年工作时间接触,包括分布式系统原理、ejb、corba、com/com+、webservice(研究生可以研究网络计算机、高性能并发处理等内容)
3、构架师幼苗(设计师)
应该在掌握上述基础之上,结合实际项目经验,透彻领会应用设计模式,内容包括设计模式(c++版本、java版本)、ejb设计模式、J2EE构架、Uddi、软件设计模式等。
在此期间,最好能够了解软件工程在实际项目中的应用以及小组开发、团队管理。
4、软件构架师的正是成型在于机遇、个人努力和天赋软件构架师其实是一种职位,但一个程序员在充分掌握软构架师所需的基本技能后,如何得到这样的机会、如何利用所掌握的技能进行应用的合理构架、如何不断的抽象和归纳自己的构架模式、如何深入行业成为能够胜任分析、构架为一体的精英人才这可不是每个人都能够遇上的馅饼……
一般来讲,系统架构师应该拥有以下几方面的能力:
1:
具备8年以上软件行业工作经验;
2:
具备4年以上c/S或B/S体系结构软件产品开发及架构和设计经验;
3:
具备3年以上的代码编写工作经验;
4:
具备丰富的大中型开发项目的总体规划、方案设计及技术队伍管理经验;
5:
对相关的技术标准有深刻的认识,对软件工程标准规范有良好的把握;
6:
对.net/JaVa技术及整个解决方案有深刻的理解及熟练的应用,并且精通webService/J2EE架构和设计模式,并在此基础上设计产品框架;
7:
具有面向对象分析、设计、开发能力(ooa、ood、ooP),精通UmL和RoSE,熟练使用RationalRose、Powerdesigner等工具进行设计开发;
8:
精通大型数据库如oracle、SqlServer等的开发;
9:
对计算机系统、网络和安全、应用系统架构等有全面的认识,熟悉项目管理理论,并有实践基础;10:
在应用系统开发平台和项目管理上有深厚的基础,有大中型应用系统开发和实施的成功案例;11:
良好的团队意识和协作精神,有较强的内外沟通能力。
不知何时能如此啊
篇三:
软件架构师的成长路程
软件架构师的成长路程
文章分类:
综合技术
软件架构师是软件行业中一种新兴职业,工作职责是在一个软件项目开发过程中,将客户的需求转换为规范的开发计划及文本,并制定这个项目的总体架构,指导整个开发团队完成这个计划。
架构师的主要任务不是从事具体的软件程序的编写,而是从事更高层次的开发构架工作。
他必须对开发技术非常了解,并且需要有良好的组织管理能力。
可以这样说,一个架构师工作的好坏决定了整个软件开发项目的成败。
软件架构师实际上就是软件的总体设计师。
首席设计师就是总设计师,打个通俗的比方:
xiaoping是中国改革开放的总设计师,我们用现在的说法可以讲,xiaoping是中国改革开放的首席架构师。
架构师的形成一定是在实践中积累起来的,而并非上了几次培训班,读了几本书就可以成功的,架构师是在工程实践中培养出来的!
架构师也并非是万能的。
架构师是客户需求和开发者之间的桥梁。
在软件行业中,一般提到的架构师是技术架构师,而忽略了领域架构师或者讲是领域工程师的概念。
一个好的领域专家一定是业务领域的架构师,他能够给出某一个业务领域的架构,我们可以称为业务架构,只有技术架构和业务架构紧密结合才有可能真正创造出一个好的系统!
架构师,首先让我想起的是高楼大厦的设计人员,通常一座大厦在建之前,都先由设计师将蓝图描绘出来,包括其形状、结构、尺寸、材料等等,然后建筑工程师带领工人们按照蓝图将大厦一层一层地建起来。
近年来,软件领域也渐渐地流行起架构师的角色,特别是对一些大型软件产品或项目的开发,这一角色显得很关键,因为缺乏好的软件架构师而导致项目失败的例子不胜枚举,一个没有经验和能力的架构师也会使项目失败的速度加快。
软件架构师的重要作用
软件架构师在整个软件开发过程中都起着重要的作用,并随着开发进程的推进而其职责或关注点不断地变化,在需求阶段,软件架构师主要负责理解和管理非功能性系统需求,比如软件的可维护性、性能、复用性、可靠性、有效性和可测试性等等,此外,架构师还要经常审查和客户及市场人员所提出的需求,确认开发团队所提出的设计;在需求越来越明确后,架构师的关注点开始转移到组织开发团队成员和开发过程定义上;在软件设计阶段,架构师负责对整个软件体系结构、关键构件、接口和开发政策的设计;在编码阶段,架构师则成为详细设计者和代码编写者的顾问,并且经常性地要举行一些技术研讨会、技术培训班等;随着软件开始测试、集成和交付,集成和测试支持将成为软件架构师的工作重点;在软件维护开始时,软件架构师就开始为下一版本的产品是否应该增加新的功能模块进行决策。
如何成为优秀的软件架构师
显而易见,在软件开发过程中,一个优秀软件架构师的重要性是不应低估的。
那么如何成为优秀的软件架构师呢?
首先必须具有丰富的软件设计与开发经验,这有助于理解并解释所进行的设计是如何映射到实现中去。
其次要具有领导能力与团队协作技能,软件架构师必须是一个得到承认的技术领导,能在关键时候对技术的选择作出及时、有效的决定。
第三是具有很强的沟通能力,呵呵,其时这一点好象什么鬼角色都最好具备,软件架构师需要与各路人马经常打交道,客户、市场人员、开发人员、测试人员、项目经理、网络管理员、数据库工程师等等,而且在很多角色之间还要起沟通者的作用。
在技术能力方面,软件架构师最重要也是最需求掌握的知识是构件通信机制方面的知识,比如远程过程调用、JaVaRmi、、com/、各种标准的通信协议、网络服务、面对对象数据库、关系数据库等等,另外,架构师应时刻注意新软件设计和开发方面的发展情况,并不断探索更有效的新方法。
开发语言、设计模式和开发平台不断很快地升级,软件架构师需要吸收这些新技术新知识,并将它们用于软件系统开发工作中。
当然,行业的业务知识对软件架构师也是很重要的,有助于设计
出一个满足客户需求的,优秀的软件架构师常常因为要尽快获得对行业业务的理解而必须快速学习并且进行敏锐的观察。
上面的描述是枯燥乏味的,但作为一个软件架构师,在整个软件系统的开发过程中是乐趣无穷的,因为这个角色很具有挑战性,有时需要左右逢源八面玲珑,有时又需要果断坚定不留情面。
在国内,较少软件企业拥有独立的架构师,通常一个软件高手身兼数职,既是项目经理,又是软件架构师,还是软件开发者,有时还要客串一个测试人员,这对软件的开发周期和产品质量是不利的,有时一个人的观点立场是很片面的,而且繁重的工作、沉重的压力会影响一个人的情绪,情绪会影响决策,决策影响结果,所以值得我们三思而后行。
构架师自我培养过程
构架师不是通过理论学习可以搞出来的,不过不学习相关知识那肯定是不行的。
总结构架师自我培养过程大致如下,仅供参考。
1、构架师胚胎(员)
学习的知识是语言基础、设计基础、通信基础等,应该在大学完成,内容包括java、c、c++、、、、socket通信(通信协议)——学习搭建应用系统所必须的原材料。
2、构架师萌芽(高级程序员)
学习分布式系统、组建等内容,可以在大学或第一年工作时间接触,包括分布式系统原理、、corba、com/com+、webservice(研究生可以研究网络计算机、高性能并发处理等内容)
3、构架师幼苗(设计师)
应该在掌握上述基础之上,结合实际项目经验,透彻领会应用设计,内容包括设计模式(c++版本、java版本)、ejb设计模式、构架、Uddi、软件设计模式等。
在此期间,最好能够了解软件工程在实际项目中的应用以及小组开发、团队管理。
4、师的正是成型在于机遇、个人努力和天赋软件构架师其实是一种职位,但一个程序员在充分掌握软构架师所需的基本技能后,如何得到这样的机会、如何利用所掌握的技能进行应用的合理构架、如何不断的抽象和归纳自己的构架模式、如何深入行业成为能够胜任分析、构架为一体的精英人才这可不是每个人都能够遇上的馅饼……
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 架构 学习计划