对敏捷开发的一些思考-软件测试技术实战(13)

发表于:2017-7-25 13:31

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

 作者:顾翔    来源:51Testing软件测试网原创

分享:
  第14章 软件测试工程师的职业素质
  拿破仑曾经说过:"不愿做将军的士兵不是好的士兵"。大家当然都想成为一名优秀的软件测试质量工程师,本章将通过"如何成为一名优秀的软件测试工程师"和"如何成为一名优秀的软件质量保证工程师"这两个部分来回答这个问题。
  虽然现在互联网技术非常发达,许多资料都可以通过互联网获得,但是笔者认为如果要系统地学习一门技术或知识,最好还是通过阅读书籍(当然可以是电子书)的方式来获得。本章将通过"软件测试好书推荐"部分来向大家推荐9本软件测试的好书。
  对于云产品应该如何测试是目前业界比较关注的话题,但是仍旧没有得到统一的结论。在这里介绍"云计算中发生的事故",希望大家能够发挥自己的想象,并结合自己的测试经验总结如何做好云测试工作。
  B(国内代理机构为CSTQB)是国际唯一权威的软件测试资质认证机构,许多软件测试工程师可能想得到这方面的认证,在"ISTQB和CSTQB简介"一节中给大家介绍。
  虽然以上内容看起来比较松散,但是他们都属于软件测试工程师的职业素质的文章,所以把它们总结成一章,共5节,包括以下内容。
  · 如何成为一名优秀的软件测试工程师。
  · 如何成为一名优秀的软件质量保证工程师。
  · 软件测试好书推荐。
  · 云计算中发生的事故。
  · ISTQB和CSTQB。
  14.1  如何成为一名优秀的软件测试工程师
  现在软件测试工作越来越得到企业的重视,许多人员也投入到软件测试的行列中。软件测试工程师的队伍也越来越壮大。但是,如何成为一名优秀的软件测试工程师呢?这是许多读者比较关注的一个问题,尤其是初入这个行业的菜鸟更想知道这个问题的答案。
  作为一名优秀的软件测试工程师应该具备这些技能。
  · 熟练的计算机操作能力,简单的编程基础。
  · 熟练地搭建测试环境的能力。
  · 高效设计测试用例和发现有效缺陷的能力。
  · 掌握网络技术、数据库知识、操作系统知识以及其他计算机专业知识和技能。
  · 熟练使用自动化测试工具。
  · 具有一定的自动化测试开发能力。
  · 良好的职业素质。
  14.1.1  起码有3年以上的软件开发经验
  现在许多软件企业招收一些刚刚毕业的大学生或者非计算机专业的人员作为自己公司的软件测试工程师,这是非常错误的,也是对软件测试不负责任的表现。虽然他们可以发现软件中的一些错误,但是对于软件中的一些关键的、致命的及危险的错误很难发现的。大家都知道,软件工程中有一个模型叫瀑布模型,这是一个最基本的软件模型,这个模型早期又叫做碗状模型,如图14-1所示。开发位于碗的最底部,左上方依次为业务建模、需求分析和设计;右上方依次为测试、部署和维护。这就说明软件开发是一切软件活动的基础,当然也是软件测试的基础。一个人只有经历过一定年限的软件开发工作,才可以积累丰富的经验,知道在软件中哪些地方容易出错,哪些地方不容易出错,这样才可以为以后的软件测试工作带来非常宝贵的经验。
  
  14.1.2  具有逆向思维的能力
  笔者曾经接触过一位软件测试工程师,干了一段测试工作后又返回去做开发工作了,问他为什么,他的回答是软件测试工作太难了,开发是顺向思维,而软件测试是逆向思维,总要找一些稀奇古怪的方法去操作软件。软件的使用者千差万别,软件在使用过程中遇到的各种现象也千差万别,所以要求软件测试工程师需要具有一些逆向思维的能力,想别人所不想,测别人所不测,这样才可以找到更多软件中深层次的Bug。这是作为一名优秀的软件测试工程师最基本的素质,(其实,开发工程师也应该具有逆向思维的能力,在代码中放一些必要的防御型语句对各种错误情况进行处理,才能使软件具有更好的容错性)。
  14.1.3  具有敏锐的洞察力和锲而不舍的精神
  软件测试工程师应当擅于发现问题,并且要肯于钻研,有打破砂锅问到底的精神。对于偶然出现过一次的Bug,一定要找出原因,要有不找到问题根源誓不罢休的决心,这种情况下发现的问题可能是非常严重或者非常容易被人忽视的问题。细心、耐心、信心是软件测试工程师的基本的素质。
  14.1.4  具有发散性思维的能力
  软件测试工程师需要从多个角度思考问题,想尽各种方法及可能性,并从各个角度模拟不同用户的使用。
  14.1.5  擅于同软件开发工程师沟通
  沟通是当今软件项目中需要掌握的关键技能之一。软件测试工程师要擅于同软件开发工程师沟通。软件测试工程师与软件开发工程师搞好关系,使软件测试工程师不成为软件开发工程师的眼中钉,这对提高整个软件项目质量十分重要。沟通的内容主要包括以下4方面。
  1.讨论软件的需求与设计
  通过沟通,可以更好地了解测试的软件产品,以至于尽可能减少在测试过程中测试出不是缺陷的"缺陷",从而减少给软件开发工程师带来的压力以及给项目带来的延时。
  2.报告好的软件测试结果
  作为软件测试工程师,发现错误往往是软件测试工程师最愿意而且引以为豪的事情,但是一味给开发工程师报告软件错误,令他们厌恶,降低整个软件的质量和开发进度。所以,作为一名优秀的软件测试工程师,当你测试完毕一个模块后,没有严重的错误或者很少错误时,不妨跑到开发工程师那里告诉他们这个好消息,这样可以加深软件测试工程师与软件开发工程师之间的友谊。
  3.不仅要报告缺陷,而且要学会如何帮助软件开发工程师定位缺陷
  作为一名优秀的软件测试工程师,尽可能多地发现缺陷是最基本的要求,除了这个技能,如果软件测试工程师能够通过分析产品日志等方法,帮助软件开发工程师精确定位,快速解决问题。这样,软件开发工程师与软件测试工程师之间的关系会变得融洽,软件开发工程师也会认为软件测试工程师是他们的助手,而不是给他们找麻烦的人。这样,软件测试工程师的技能也得到了提高。
  4.讨论一些与工作无关的事情
  软件测试工程师经常和软件开发工程师讨论一些与工作无关的事情,如新闻、趣事和家庭等。这样可以加强相互间的默契程度。许多统计表明,这样可以更好地提高软件的质量。
  14.1.6  擅于同领导沟通
  软件测试工程师往往是领导的眼和耳。领导根据软件测试工程师的软件测试结果可以了解公司的产品质量,从而做出正确决策。领导工作一般比较忙碌,所以软件测试工程师要学会把软件测试结果进行总结,最好以图表的形式给领导展示,使领导在第一时间了解软件的质量情况。
  14.1.7  掌握一些自动化软件测试工具和脚本
  软件测试是比较繁琐、枯燥无味的工作,软件测试工程师长期重复的手工工作,会降低软件测试的效率,并且对软件测试质量也有影响,况且软件测试不使用测试工具是不可行的,如性能测试等。目前市场上有许多软件测试工具可供选择,公司或者个人可以根据需要选择一些软件测试工具来辅助软件测试工作。另外,现在有许多自动化工具需要软件测试工程师自己去开发一些代码,所以具有一定自动化测试开发能力也是非常重要的。但是,要记住一点,不是说有了软件测试工具,就不要人工软件测试了,软件测试工具不是万能的。
  14.1.8  擅于学习
  软件测试技术随着时间的变化也在发生更新。软件测试工程师要善于利用书籍、网站、论坛和沟通等途径不断提高自己各方面的知识水平,包括业务知识、软件测试知识和计算机专业知识等方面的内容。
  14.1.9  提高自己的表达能力
  软件测试工程师发现软件中存在缺陷时,要书写缺陷报告。缺陷报告要写得详尽清楚,使软件开发工程师能够尽快定位错误、修改错误。所以,软件测试工程师提高自己的写作能力非常必要。
  14.1.10  了解业务知识
  更好地了解所测试软件的业务知识非常重要。对业务知识了解得越深入,越能够找出更专业、更关键、更隐蔽的错误。所以,软件测试工程师,需要多向该领域的专家、同行学习,提高自身的业务知识水平。学习业务知识的难度比较大,所以软件测试工程师必须在这方面做好心理准备。
  14.1.11  培养对软件测试的兴趣
  "兴趣是最好的老师"。对待任何工作,只有充满兴趣,才会投入更多的精力和时间,才会达到事半功倍的效果。
  14.1.12  追求完美
  对于优秀的软件测试工程师来说,尽可能追求完美,把事情做到极致,尽管有些事是无法做到十全十美,但应该去尝试。
  综合以上12点阐述,请参见图14-2。
  
本文选自《软件测试技术实战-设计、工具及管理》第十四章,本站经人民邮电出版社和作者的授权。
版权声明:51Testing软件测试网获人民邮电出版社和作者授权连载本书部分章节。任何个人或单位未获得明确的书面许可,不得对本文内容复制、转载或进行镜像,否则将追究法律责任。
软件缺陷管理流程-软件测试技术实战(12)
22/2<12
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

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

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

沪ICP备05003035号

沪公网安备 31010102002173号