• 0
  • 0
分享
  • 软件测试前景好,但不是所有人都适合——软件测试圈
  • 曼倩诙谐 2024-10-29 14:59:01 字数 3044 阅读 175 收藏 0

  测试工作是一项极其重要的质量保证活动,因此测试部门既是软件发布质量把控的出口,也是客户意见反馈的入口。但是因为之前的不重视,导致了软件测试行业的发展相对滞后,优秀的软件测试工程师非常难得。

  一个优秀的测试工程师要对一些不易重复出现的错误找到规律,要能够帮助开发人员定位问题,能够对代码进行一定的检查,将错误尽可能在项目生产的早期阶段发现,同时,测试工程师还要对各种编程语言、数据库都有一定的了解,要有编程的概念。

  那么,什么样的人才适合做软件测试工程师呢?

  一般情况下,分为技术技能需求和职业素质需求。

  一、基础要求(技术技能需求)

  软件测试工程师岗位基础要求一般包括以下几个方面。

  1.学历

  学历,代表学习的能力。软件测试工程师的最低学历要求一般是专科以上学历,有个好的基础,才可能有好的结局,因此,很多公司对学历有一定的要求。

  2.专业

  专业基本无要求,当然要是计算机及相关专业更好。不过特殊的行业可能有特殊的需求,例如做建筑软件的公司,招聘测试工程师倾向于招聘土木工程专业的;做医疗软件的公司,则倾向于医疗专业毕业生,因为这样专业更对口。对于基础技术而言,因为软件测试本身就需要从最终用户的使用角度考虑,所以专业往往没有特别的要求。

  3.经验

  很多公司在招聘测试工程师时希望应聘者具有1到2年以上的测试经验,企业要求具有一定经验的目的在于,降低员工工作风险、缩短员工适应周期、减少员工培训成本。如果应聘人员具有对口的问题解决能力,则是否有软件测试工作经验不是关键问题。

  4.测试技术

  1)了解软件工程、软件生命周期基础知识,了解软件配置管理;

  2)能够根据不同企业的产品特点快速理解需求;

  3)了解相应的开发、测试模型,如SCRUM、敏捷测试等;

  4)熟悉软件测试的常用技术、方法、流程;

  5)熟练掌握软件测试文档写作,如测试计划、测试方案、测试用例、缺陷报告、测试报告等。

  6)熟悉自动化测试的流程、管理及深层开发(包括测试驱动、测试框架等)。

  7)了解若干主流测试工具,如接口测试工具Jmeter、PostMan、SoapUI等,功能自动化测试工具Selenium、Appium等,性能自动化测试工具LoadRunner、Jmeter等,测试管理工具QualityCenter、ApplicationLifecycleManagement(ALM)、ClearQuest、禅道等。

  5.开发技能

  对于资深的测试工程师,需要一些开发知识,如编程语言C、C++、Java等,在测试过程中开发一些测试工具、测试脚本等。在此过程中,需要掌握数据库(MySQL、SQLServer、Oracle、MangoDB)、操作系统(WindowsServer、Linux/UNIX)等。

  6.业务知识

  因为不同业务有不同的测试方法,所以企业招聘测试工程师时,一般需要应聘者具有招聘企业的业务背景知识,目前一般集中在金融证券类、移动通信、电子商务、页游手游、移动互联、Web门户等系统。

  二、职业素质要求

  软件测试工程师所需具备的基本职业素质为:

  1.责任心

  大多公司以缺陷的多少来衡量软件测试工程师的工作质量。但是测试工作,在不同时段,其特点不同。如在测试工作开展初期,被测对象中存在大量的缺陷,测试工程师毫不费力,即可找到很多缺陷。随着测试工作不断深入,测试版本不断迭代,不论测试工程师再怎么用心,也不一定能找到更多的缺陷。因此,以缺陷的多少来衡量软件测试工程师的工作质量,并非一种明智、公平的考核方法。

  在实际工作中,如果没有明确的测试需求,没有完善的测试用例,软件测试活动在很大程度上就依赖于测试工程师的责任心,主动完成测试任务,确保自己的工作质量。

  2.沟通能力

  软件测试活动中,沟通能力并不是通常意义上所讲的交流,其包含的更多成分是技术含量以及服务意识。

  测试是连接开发和客户的纽带,与开发人员沟通,需要从专业知识角度考虑,当发现的缺陷开发人员不认可时,如何从理论、实际应用以及缺陷可能引发的后果等角度去阐述缺陷,使研发人员认同测试工程师的判断,所做出的阐述要有理有据,而不是强词夺理,更不是争吵。

  时刻记住,缺陷很大程度上是开发人员犯下的错误,令人承认自己犯错通常都是一件困难的事,这就需要软件测试师具有一定的沟通能力。

  3.团队合作精神

  软件产品研发活动,需很多部门协同工作,市场部、研发部、测试部、售后服务部、运维部等。一个高质量的软件产品从设计、生产到发布,是众人努力劳动、智慧的结晶。单枪匹马闯天下的局面已经不复存在,现在几乎每家公司都在强调这种精神。例如,华为公司,在新员工入职培训中,会通过多种形式,如演讲、相声、小品等来培养、增强员工团队合作意识。

  软件测试工作从其工作内容来看,是极具破坏性的工作,开发活动则是建设性的,从这点可以看出,如何沟通,如何妥善地协调开发与测试同事的工作关系,将决定软件生产活动的工作质量。因此,软件测试工程师需要具备高度的团队合作精神,与其他同事一起努力,为保证软件产品的质量做出贡献。

  4.耐心、细心、信心

  软件测试工作中,需要测试工程师有极大的耐心、细心、信心,与性别无关。随着测试的深入,发现缺陷越来越难,不是所有的缺陷都能容易地找出,这个时候,就需要耐心、细心了。

  人无完人,在项目管理不规范,文档不齐全等客观因素,增加了软件测试工程师犯错的几率。对需求的误解,业务知识的缺乏等原因,可能会提出一些不是缺陷的缺陷,研发人员可能对此类测试工程师存在一些看法。此时测试工程师应对自己的观点有足够的自信心,谦虚地接受研发人员提出的意见和建议,提高自身发现问题并解决问题的能力。

  5.风险防范意识

  软件测试与软件开发工作内容的不同,导致了在某些时候测试工程师发现缺陷后,开发人员会以各种借口将该缺陷掩饰过去。测试工程师则需从测试理论、测试技术、实际用户需求角度出发,采用一定的策略去准备各种测试数据,从每个细节上设计不同的用例,去证明缺陷确实存在,或者确实可能造成比较严重的不良后果。

  从事实出发,尽可能多地找出软件缺陷,协助开发人员定位问题,以求解决问题,这样才能不断地发现问题、解决问题。

  软件测试工程师作为软件质量保证活动实施的主体,一定要有风险防范意识。当发生过的缺陷再次重现后,需分析其重现的原因,找出解决办法,从而避免再次出现。要善于分析测试结果,缺陷分布情况等。只有不断地总结,加强缺陷预防的能力,才能提高软件测试的工作效率。

  6.持续学习能力

  大多数企业、公司在招聘软件测试工程师时,提出了很高的要求,如开发语言掌握情况、测试理论熟悉程度、测试工具使用经验,等等。为了获得更多的发展机会,提高自身的职业竞争力,软件测试工程师需要不断地学习,掌握开发人员所使用的编程语言,能更多、更有效地找出缺陷,掌握一定的测试理论、测试工具将会大幅度提高自身的工作效率。同时,也为自身的发展奠定坚实的技术基础。

  软件测试工作其实对软件测试工程师的技能要求很高,例如,编程语言不一定要精通,但测试工程师必须了解大部分的编程语言,要具备软件开发的思想。测试工程师还要掌握众多的业务知识。因此,学习能力对于测试工程师来说是非常重要的。


作者:佚名    

来源:http://www.51testing.com/html/67/n-7798567.html

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   测试代码是确保代码稳定的第一步。能做到这一点的最佳方法之一就是使用单元测试,确保应用程序中的每个较小的功能都按应有的方式运行——尤其是当应用程序接收到极端或无效输入,甚至可能有害的输入时。  为什么要进行单元测试?  进行单元测试有许多不同的方法,一些主要目的是:  验证功能:单元测试确保代码做正确的事情并且不做任何不应该做的事情——大多数错误发生在这里。  防止代码回归:当我们发现错误时,添加单元测试来检查场景可以防止代码更改在将来重新引入错误。  记录代码:通过正确的单元测试,一套完整的测试和结果提供了应用程序应该如何工作的规范。  保护您的应用程序:单元测试可以检查可利用的漏洞(例如...
            0 0 1160
            分享
          •   谈及人生,我们可能听过不少具有哲理性且非常受用的定律,那么谈及测试,又有哪些值得我们思考的定律呢?  墨菲定律  墨菲定律的原话是这样的:Anything that can go wrong will go wrong。  凡事只要有可能出错,那就一定会出错。在测试工作中,我们经常会遇到这样的场景。  场景一  在需求评审阶段,我们凭借着以往项目的测试经验预感到这个项目的某些功能点或者某些环节会有潜在问题。  如果这个时候我们没有及时思考和评估并暴露出风险,等到开发人员完成项目编码并提交测试时,我们会发现,之前预感到可能发生的bug果然出现了。  场景二  在临近项目发布上线,项目依然还有...
            13 14 2022
            分享
          •   课题背景  版本验证是部署软件之前的最后一个测试操作,在软件产品完成了单元测试、集成测试和系统测试之后,产品发布之前所进行的软件测试活动。它是技术测试的最后一个阶段,也称为交付测试。该验证要求开发人员首先将程序部署在生产环境上,由测试人员通过筛选关键案例进行验证,确保程序主体正常运行。作为投产前的最后一步,版本验证对于整个产品质量的保证至关重要。随着数字化转型的深入,各类项目越来越复杂,测试人员需要执行的测试案例也越来越多,而版本验证通常需要在短时间内完成,既要确保关键案例都被执行,又要节省时间,避免重复验证,在保证测试质量地情况下提升测试效率。以往通过人工的方法进行版本验证案例筛选占用大...
            0 0 1071
            分享
          • 第一章:什么是软件?计算机系统中与硬件相互依存的另一部分。软件包括程序、数据及其相关文档的完整集合。(1)能够完成预定功能呾性能的可执行指令(program)  (2)使得程序能够适当地操作信息的数据结构(data)  (3)描述程序的操作呾使用的文档(document)软件危机的定义?软件在开发和维护过程中遇到的一系列严重问题。软件危机包含两层含义:(1)如何开发软件 (2)如何维护数量不断膨胀的现有软件。软件危机的表现:(1)软件开发的迚度难以控制,经常出现经费超预算、完成期限拖延的现象。 (2)软件需求在开发初期不明确,导致矛盾在后期集中暴露,从而对整个开发 ...
            0 0 2215
            分享
          •   最近小编的好友小李来找我抱怨,抱怨的内容也很简单,小李和小马在同一个部门,做着差不多的工作,薪资待遇差不多都是6K。  不久前两人相继跳槽,入职了之后,小李和小马一打听,才知道小马现在的薪资竟然有11K,而小李跳槽后的薪资才堪堪7K,这巨大的落差让小李心里十分不服气,想着自己也不比他差,同样是跳槽,怎么薪资就差了这么多?  其实在工作经验和能力差不多的情况下,这里我们就不得不谈谈谈薪技巧,在换工作时,如何和新公司谈判薪酬福利,才能在有可能的范围内,争取到福利待遇的最大化呢?  把握薪资浮动的弹性  大家都知道,无论哪一家公司,对于薪资都是有上下幅度的,没有一个固定的值。所以,跳槽时,开口谈...
            0 0 1120
            分享
      • 51testing软件测试圈微信