zoukankan      html  css  js  c++  java
  • 软件测试工程师成长之路上的五个关卡

    软件测试是软件工程中的一个重要部分,它贯穿于整个软件开发生命周期,是软件质量保证的关键手段。随着软件产业高速发展,从事软件测试的技术人员也愈来愈多。

    软件测试工程师在工作环境、自身能力和价值创造等方面的提升,对企业软件开发组织和个人成长之路都有重要意义。在通往软件测试的成长之路上,涉及测试能力培养、测试心理调适、测试与开发团队间的协作沟通等内容。一个测试新人如何通过组织培养和自身努力,逐步成长为中高级测试工程师或测试管理者,是需要迈过很多关口的。

    软件测试工程师成长之路上的五个关卡

    下面我们一起来探讨一下软件测试工程师的成长之路上“过五关”。包括“心理关”、“业务关”、“技术关”、“专业关”和管理关。

    一、心理关

    在当前的软件行业中,由于软件公司规模大小不同,对软件研发的投入和重视程度也不相同,有部分中小公司对质量的概念薄弱,以致于软件测试也常常被忽略或不受重视。行业内还有不少老古董开发人员对测试有偏见和误解,认为只有不会编程或技术弱的才去做测试。

    刚从事软件测试工作的人员如果一开始就进入了一个中小型公司,在开始时,常常心理上不适应。这种不适感来自于自身技术薄弱、公司没正式的测试部门、开发流程不规范以及公司领导对测试的不重视等多种因素。很多软件测试人员从心理上占了弱势,就自觉地把自己当成开发人员的下级去沟通,长此以往,在整个开发工作中就很被动,总被开发人员支配,被开发牵着鼻子走。如果遇到这种情况,我们除了在心理上接受并忍耐着配合完成工作,但也应该努力提高自己的工作质量和效率,提出更多有建设性的意见帮助开发团队一起改进,去赢得开发团队的尊重和重视,不能总是这么被动地顺从不合理流程。

    实际上开发和测试是软件工程中并行的两条线,同等重要,所以我们在工作中心态要平和,要自己对自己有信心。

    二、 业务关

    在软件测试中,功能测试是最基础也是最重要的,要做好功能测试,就必须对被测系统要实现的业务功能非常熟悉。掌握被测软件系统所涉及的业务知识对每个测试人员都很重要。快速学习并掌握各种流程及业务知识才能设计出具有深度和广度的测试用例,并高效地执行测试,这是测试人员必须有的基本功,测试人员必须过“业务关”。

    一个测试工程师长期从事某一个行业领域的测试工作,他通过“业务关”的有效途径是先学习和掌握“行业通用业务知识”。例如:银行核心业务系统、电信计费系统、税收征收系统、财务软件等我们都分别把它们叫做对应的某个行业。

    三、技术关

    强调精通业务知识不等于不用掌握技术。事实上,测试是一个技术性很强的工作。与开发工程师相比,测试工程师需要掌握的技术范畴要广阔得多,只是在技术深度方面有所不同。

    一般来讲,测试工程师要掌握系统使用和系统管理方面的技术,包括以下几方面:

    1)各种操作系统安装、配置和系统管理;

    2)各种数据库管理系统的安装、配置和系统管理、数据库的使用(SQL);

    3)各种中间件的安装、配置和管理;

    4)计算机网络的配置和系统管理;

    5)上述系统的综合管理和应用,其中最高级别的要算性能测试的性能调优工作,这一般是高级性能测试专家才具备的能力,一般测试工程师和开发工程师都难以企及。

    所以资深的高级测试不比开发差,往往比一般开发能力更强。

    除了以上一些常用要掌握的,测试工程师还需掌握这些专业的工具和技术。不仅要会使用,而且还要会脚本开发,能够独立地完成自动化或性能测试工作。

    中高级测试工程师同样需要熟悉一两种编程语言和测试脚本开发。

    无论开发还是测试工程师,我们都不可能精通每一项技术,但常用的我们要熟悉,至少能精通一两种。在实际测试工作中多培养解决技术问题的能力,遇到什么问题时再加强相关知识的学习,也就是什么不懂就拿起来学。多去开展一些技术攻关活动,这样做的事多了,技术能力自然就会大大提高,这也是过技术关的关键所在。

    四、专业关

    对于测试工程师来讲,前面的过“心理关”、“业务关”、“技术关”都是为过“专业关”打下基础。测试质量如何才是我们真正的能力体现。测试的能力体现在以下这些方面:

    1)测试分析能力

    测试分析就是根据软件需求的设计,结合项目各方面情况,编写软件测试需求和制定测试策略。测试分析能力最考验测试人员的能力,是高级测试经理区别于一般测试工程师的地方,也是测试人员能够影响、引导和驱动开发组的地方(否则测试就会被开发人员牵着鼻子走)。

    测试分析能力不是一朝一夕得来的,需要长期实践工作中去培养。

    2)测试计划能力

    测试计划能力反应的是项目管理能力,所以一个好的测试经理一定具备较强的项目管理能力。软件测试是软件工程中的重要部分,测试也需要用工程的方法科学地组织和管理,所以制定测试计划需要掌握软件测试过程模型。

    3)测试设计能力

    测试设计是根据测试需求进行测试方案设计和测试用例开发的过程。软件测试主要是根据测试方案和测试用例来执行的,所以一套简洁高效的测试用例是做好测试的关键所在。测试设计人员最核心、最关键、最重要的能力测试工程师必须掌握测试方案设计的过程和方法,精通测试用例的设计方法。

    4)测试执行能力

    测试执行能力就是动手能力,是测试人员发现bug的重要环节。动手能力除了包括“技术关”中要求的系统安装、环境配置等技术能力外,还包括直接与测试相关的测试数据准备、具体测试执行、测试结果检查、缺陷发现、判断、记录、分析定位、报告总结编写等能力。这些工作繁琐又繁重,需要测试人员保持精力集中、思维敏捷。如何在测试过程中找到一些高效的办法,对测试人员来说是一个很大的挑战。

    能力强高级别的测试执行能力还包括随机测试的探索测试能力,即在测。测试用例之外进行延伸性的探索测试,从而发现日常测试工作中找不到的bug。这有时需要灵感,但更多是趋于经验直觉去判断。这也是高级测试和普通测试人员的力的区别。

    五、管理关

    我们在这里只谈作为一个测试工程师的管理关。很多测试人员认为自己只是个小小测试员,管理的事跟自己不相关。其实管理不是经理们的专利,测试工程师也需具备某些管理能力。测试工程师的管理能力主要体现在两个方面:团队协作和个人管理。软件测试工作的特点包括受支配的、被动的、涉及面很广,需要和不同部门的其它团队成员打交道。这些特点要求测试工程师应具备较强的团队协作精神,测试工程师要更积极主动地开展工作,做好沟通和协调工作。具体体现在以下方面的沟通能力:

    (a) 与项目成员的沟通协作

    从上面我们看到测试工程师需要学习和了解的知识很多,有些是通过看资料,操作运行软件获得,但更多的信息需要与项目成员交流才能得到。所以测试工程师在与开发人员协作过程中,要有自信,即要坚持原则,又要灵活应变,这些都需要通过工作磨练才能做到。

    (b)与测试经理的沟通

    与直接上级测试经理沟通很重要。仔细领会测试经理交待的测试任务,不理解的要问,进到任务和要求明确,不折不扣地完成任务,并及时向测试经理报告完成情况;遇到问题时要主动汇报,不让问题停滞在自己手中,自己决定不了的事,不要擅自作主,要通过汇报和协商的方式确定。这些都是最基本的工作方法和要求。

    (c)个人工作管理

    管理好自己的时间和任务,提高个人生产能力。个人的时间和精力是有限的,而测试任务是并发和繁重的,如何提高个人生产力就需要计划好自己的时间,把大计划分成小计划逐步去完成。

    总之测试工程师的管理关是一个长期自我修练的过程。通过自我修炼形成:有责任心、主动积极进取的工作态度、耐心、细致、规范、沟通、计划、总结、改进等。

  • 相关阅读:
    Eclipse 导入项目乱码问题(中文乱码)
    sql中视图视图的作用
    Java基础-super关键字与this关键字
    Android LayoutInflater.inflate(int resource, ViewGroup root, boolean attachToRoot)的参数理解
    Android View和ViewGroup
    工厂方法模式(java 设计模式)
    设计模式(java) 单例模式 单例类
    eclipse乱码解决方法
    No resource found that matches the given name 'Theme.AppCompat.Light 的完美解决方案
    【转】使用 Eclipse 调试 Java 程序的 10 个技巧
  • 原文地址:https://www.cnblogs.com/zgq123456/p/12882493.html
Copyright © 2011-2022 走看看