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

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

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

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

  第1章 上班第一天,新人培训

  1.1  测试专家的第一步

  小艾是某名牌大学计算机科学专业硕士毕业生,这天是他离开校园走上工作岗位的第一天。他将成为大型外资IT公司IBM软件测试工程师(Software Test Engineer),开始一段新的旅程。

  1.1.1  我是菜鸟

  在离开校园以前,小艾对将要从事的工作几乎一无所知。记得面试时被问及对测试的想法时,他的理解是,测试就是给产品挑错吧,目标应当是保证产品以高质量交付给用户。面试经理告诉他,其实测试是软件开发过程中必不可少的重要流程。在追求质量和效率的软件工程里,如何有效地对复杂的软件半成品进行测试,其实有许多问题值得工程师们去思考和探索。软件测试工程师的工作将很有趣、充满挑战。于是,对新事物充满好奇心的小艾欣然接受了软件测试工程师这个职位邀请,充满期待地走进这个他完全不了解的神秘领域。

  产品开发组的同事,包括组长和老员工,对小艾这只菜鸟照顾周到,一会儿工夫他就把入职的流程办妥,工作的机器也准备就绪。坐在新的座位,小艾开始憧憬自己的新工作。可是测试却是一张陌生的面孔,让他有点无所适从。于是,小艾找到公司给他安排的“导师”凯文,希望凯文能帮他排解困惑。凯文是测试组组长,一位具有丰富工作经验的老员工。未来,就从这一刻开始向小艾展露出微笑。

  “凯文,我对将要从事的工作一无所知。你能告诉我测试工作都包含些什么内容吗?我们应该如何做测试?什么时候可以真正开始工作?”

  凯文对小艾的问题一点儿也不陌生,这些问题不正是几年前他入职时的困惑吗?“小艾,别着急,请慢慢听我说。我也像你一样,是从菜鸟一步一步成长起来的……”

  经过与凯文的谈话,小艾心中的一团迷雾逐渐消除了。

  原来,在大型软件开发团队中,测试被分成很多种类和步骤,每种测试有针对性地模拟使用测试对象的场景,并试图找出测试对象的潜在问题和缺陷(Bug)。在确定原因后,制定严谨完善的解决方案并根据方案修复缺陷。测试其实是发现并解决问题的过程,而其目标则是让软件产品以尽可能高的质量交付给客户,使软件产品中存在的问题尽可能少,这样,软件的用户可以得到最完美的使用体验。

  除了小型项目,进行完全(各种输入和前提条件的组合)的测试是不可行的。可行的方法是运用风险分析和不同系统功能的测试优先级,来确定测试的关注点,从而替代穷尽测试。软件开发本身是追求产出和投入比的工程性过程。因此,考虑测试的内容和方式时,都应当以高产出投入比为最终目标,最大化地利用现有资源排除潜在的问题。

  小艾听说过风险控制,在软件测试过程中,风险控制是通过专业有效的方法实现的。测试团队由许多个测试分队组成,每个分队的测试任务和方法都具有高度的针对性。

  小艾回想,在学校的时候,他曾经参加过软件工程课程的项目实训。在项目中,测试很简单,其目的仅仅是验证开发的功能点是否正确并与设计一致。测试是在所有功能开发完毕后才开始的。当时项目规模很小,从计划的时候开始,大家就没有仔细地考虑过怎样做测试。由于项目组人数很少,在功能开发阶段大家也无暇顾及测试,而是到了功能开发已经完成后,大家才匆忙地花些时间测试。当然,这种测试非常简陋,没有计划细节,方向也不清晰,测试过程中的所有流程都手工操作一遍。发现问题则随时修改代码,如果修改后流程能走通,就认为测试已经通过了。

  通过凯文对测试的类型和当今流行的开发模式的介绍,小艾发现测试远不是从前软件工程项目实训测试那般随便和简单。软件测试是一个严谨、全面且有条理的过程。这个过程中包含了多种测试类型,每种测试类型都有针对性地验证软件,发现相应的问题。测试就像河流中一张精心编织的网,软件的功能和流程就像河流中的鱼,要通过这张网的鱼必须足够优秀才能最终存活。正是这种“优胜劣汰”的思想,保证软件只有通过了测试这张网才得以与用户见面。

  凯文娓娓道来,小艾对IBM的测试方法有了初步的了解:原来测试的种类可以如此多种多样。

  单元测试是和开发最接近的一种测试。开发人员编写单元测试用例并执行,验证单元模块是否得出预期的结果。在敏捷开发模式中,有一种流行的开发模式叫做测试驱动开发(Test Driven Development,TDD)。测试驱动开发的核心就是把单元测试用例先做好,功能开发以通过相应的单元测试用例为目标。单元测试是粒度最小的软件测试,小粒度能保证复杂系统中的每个“螺丝钉”都质量合格。通过了单元测试的代码才可以继承到系统中,进行进一步测试。

  功能测试是通过黑盒子模式发现代码集成后存在的功能问题的测试。顾名思义,功能测试关注的重点是系统的功能。通过执行自动或手动的测试用例,可以验证相应的功能点是否正确。只要测试用例设计完整,功能测试的网能把最终用户可能遇见的功能问题都“提前”发现并解决。可以说,功能测试保证了提供给用户的是产品而不是一堆垃圾。单元测试和功能测试的区别主要是粒度的不同。单元测试关注的是一个最小的代码片段,如一个类或接口,而功能测试关注的是一个完整的业务功能。

51/512345>
《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-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号