当前位置: 首页 > news >正文

软件测试不是所有人都适合的

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

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

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

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

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

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

  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.持续学习能力

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

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

感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取 

 

相关文章:

  • 腾讯云标准型SA4服务器AMD处理器性能测评
  • vue中实现图片懒加载的几种方法
  • 扭矩传感器信号模拟地、数据地与电源地
  • Docker 中的端口
  • 批量重命名软件推荐 A Better Finder Rename 12最新 for mac
  • Mysql开启binlog 和 打开gtid_mode
  • 【蓝桥杯软件赛 零基础备赛20周】第3周——填空题
  • 异步方法、async/await逃离回调地狱(Callback Hell)
  • 四川芸鹰蓬飞商务信息咨询有限公司是可靠的选择
  • 头哥实践平台之MapReduce基础实战
  • ARM64 linux并发与同步之经典自旋锁
  • 老师的保命大法
  • 海康摄像机导入自主开发应用
  • day17_多线程基础
  • Spring6(一):入门案例
  • @jsonView过滤属性
  • css的样式优先级
  • Docker 1.12实践:Docker Service、Stack与分布式应用捆绑包
  • Facebook AccountKit 接入的坑点
  • git 常用命令
  • gitlab-ci配置详解(一)
  • golang中接口赋值与方法集
  • Hibernate【inverse和cascade属性】知识要点
  • Java 网络编程(2):UDP 的使用
  • JAVA 学习IO流
  • JavaScript对象详解
  • jquery cookie
  • SAP云平台运行环境Cloud Foundry和Neo的区别
  • Sublime Text 2/3 绑定Eclipse快捷键
  • 翻译 | 老司机带你秒懂内存管理 - 第一部(共三部)
  • 使用阿里云发布分布式网站,开发时候应该注意什么?
  • 数据仓库的几种建模方法
  • 一起来学SpringBoot | 第十篇:使用Spring Cache集成Redis
  • 移动端解决方案学习记录
  • 因为阿里,他们成了“杭漂”
  • Mac 上flink的安装与启动
  • 第二十章:异步和文件I/O.(二十三)
  • ​sqlite3 --- SQLite 数据库 DB-API 2.0 接口模块​
  • # 透过事物看本质的能力怎么培养?
  • #NOIP 2014# day.1 T2 联合权值
  • $$$$GB2312-80区位编码表$$$$
  • (2)关于RabbitMq 的 Topic Exchange 主题交换机
  • (Bean工厂的后处理器入门)学习Spring的第七天
  • (附源码)spring boot北京冬奥会志愿者报名系统 毕业设计 150947
  • (附源码)ssm高校实验室 毕业设计 800008
  • (四)TensorRT | 基于 GPU 端的 Python 推理
  • (转) SpringBoot:使用spring-boot-devtools进行热部署以及不生效的问题解决
  • ***linux下安装xampp,XAMPP目录结构(阿里云安装xampp)
  • **PHP二维数组遍历时同时赋值
  • .NET 除了用 Task 之外,如何自己写一个可以 await 的对象?
  • .NET 发展历程
  • .NET/C# 检测电脑上安装的 .NET Framework 的版本
  • .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型
  • .NET关于 跳过SSL中遇到的问题
  • .so文件(linux系统)