一个软件测试工程师的成长日记(连载一)

发表于:2013-4-28 11:17

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:《从菜鸟到测试架构师    来源:51Testing软件测试网采编

分享:

  软件的构建(Build)本身是依赖于Java的,因此没有平台依赖性。但是,Java虚拟机是安装在不同的操作系统中的,于是测试环境的安装就有了平台依赖性。构建完整的测试应该包括对多种平台的支持。不同操作系统平台结构通常很不一样,需要提供有针对性的自动化构建程序。构建完成后,构建组还必须完成对所有支持的平台的构建测试。

  有了自动化的构建程序和构建测试的步骤,可以保证测试环境正确和顺利地安装。但是,每次安装还是得花时间的。熟练的工程师使用构建程序在某个平台构建一个测试环境得花大半天时间。小艾从兴奋转为沮丧:每次安装半天时间的成本并不小啊,大家测试环境的资源耗费问题还没有解决。

  幸运的是,开发实验室利用虚拟技术构建了基于不同平台的测试镜像。有了虚拟技术,时间和步骤也是“可复制”的。由于测试环境必须支持多平台,使用自动化方式搭建第一个测试平台的时间是不可节省的;但是,第二个、第三个测试环境的搭建时间确实可以节省。奥秘就在于虚拟技术。成功搭建一套测试环境后,就可以把这个环境保存成镜像(Image)。以后任何时间需要再使用这套环境,不必重新安装,仅需要把镜像恢复,并替换必要的机器信息即可。虚拟技术被多个平台支持,包括AIX、Windows、UNIX/Linux。用于恢复镜像的硬件环境既可以是实际存在的,也可以是虚拟的。

  虽然没有仔细了解过虚拟技术,但小艾在学校的时候使用过Ghost克隆软件。凯文说:“虚拟技术的原理和Ghost有相似的地方,随着使用的深入,你会对虚拟技术有更多的认识。”

  对测试环境安装有了初步的了解,作为菜鸟,小艾接着需要知道的是中间件技术。要知道,功能强大的电子商务平台是建立在IBM的WebSphere中间件基础上的。凯文开始给小艾介绍一些基于中间件的应用服务的基础内容。

  中间件(Middleware)是提供系统软件和应用软件之间连接的软件,以便于各种部件之间的沟通,特别是应用软件对于系统软件的集中的逻辑。中间件技术在现代信息技术应用框架,如Web服务(Web Service)、面向服务的体系结构(Service Oriented Architecture,SOA)等应用中应用得比较广泛。中间件不提供具体的功能,但它却是系统中各个部件有机连接的桥梁。中间件可以提供对外围服务器,包括数据库服务器、应用服务器、Web服务器等的支持和管理。中间件技术建立在对应用软件部分常用功能的抽象上,将常用且重要的过程调用、分布式组件、消息队列、事务、安全、连接器、商业流程、网络并发、HTTP服务器、Web服务等功能集于一身或者分别在不同品牌的不同产品中分别完成。

  接下来的日子里,小艾开始研究WebSphere中间件提供的功能。经过一段时间的学习,他掌握了通过应用服务器对应用程序进行管理和监控的方法。这部分知识对于测试中发现和解决问题起着关键的作用。

  经过基本能力的训练,小艾基本上已经达到了进入项目组的要求。然而,对于项目如何运作,如何确保项目顺利达到预期结果,小艾却还是一知半解。接着,小艾在凯文的指导下,认识了敏捷项目管理的基本知识。

  对于敏捷开发(Agile Development)的定义,工业界其实还没有标准的定义,而相关的描述倒是五花八门,各种定义也出现在出版物或网络博客中。缺乏标准定义,其实是因为敏捷开发的实现方式非常多样化。我们可以容易地找到关于敏捷的方式、方法、实践及技术等的描述。在IBM的软件开发和测试中,团队使用了多种流行的敏捷开发方式进行项目管理。使用敏捷项目管理的目的并不复杂,是为了提高开发效率,激发团队的积极性并尽可能降低项目失败的风险。

  提到敏捷开发,会把某种开发方式作为“非敏捷”方式来对比,而这种开发方式通常会是传统的瀑布开发模型。在瀑布开发模型中,整个系统的开发被划分成需求分析、设计、实现、测试、集成和维护等阶段。这种划分本质上是把不同性质的项目内容分隔到不同的阶段,而某个阶段则专注地进行某种任务。专注在许多情况下带来了高质量,单一流程的划分却很容易带来资源浪费和失败风险的增加。如果在一个阶段,项目组只完成一组相同性质的任务,那么,团队中其他无关的人员在这段时间里就无事可做了。项目的成果必须到最后阶段才完成,中间任何步骤出现差错都有可能导致项目全盘失败,这样的项目风险是很高的。

  敏捷开发从根本上避免了瀑布模型的弱点,它有两个核心点--迭代开发(Iterative Development)和增量开发(Incremental Development)。

  迭代开发是一种“重复时序安排”的开发方式。迭代开发把一个完整的瀑布模型开发流程分成多个迭代,每个迭代可以看做独立的开发过程,其中包含了项目的主要步骤,如设计、开发和测试等。把完整过程分成多个持续时间较短的迭代,其好处是生产的周期变短了,每个完整的周期都会产出相应的产品,这种方式有利于在完整项目开发的过程中跟踪和控制开发进度及产品质量。

  1.1.2  苦练基本功(2)

  增量开发用的则是一种"分段完成"的策略。在增量开发模式中,系统中不同的部分被安排在多个阶段完成,各个部分完成后再集成到系统中。

  在敏捷开发模式中,迭代开发和增量开发的策略通常会被同时使用,并统称为迭代开发,迭代开发框架如图1-1所示。

  增量地实现系统的思想是迭代开发的基础。项目成员通过不断学习和总结,使开发效率不断提高,同时避免在后期的迭代中重犯某些错误。因此增量开发对于团队的进步也很有好处。

53/5<12345>
2023测试行业从业人员调查问卷已开启,千元大奖正在等你~

精彩评论

  • 黑鱼白
    2013-7-01 14:48:06

    如果是一个普通院校的大专生,结果会是这样嘛?怀疑甚至连面试的机会都没有吧

  • yanying0203
    2013-7-01 10:41:59

    向往这样的测试,毕业就能有这么好的系统的学习,难得

  • zww820
    2013-5-02 09:21:17

    写得很好。

  • lyj0418
    2013-4-28 11:26:07

    不错

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2023
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号