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

优秀互联网高级测试工程师应该具备的能力

概述

在之前写的互联网高级测试工程师至少具备的能力一文中,提到了测试工程师至少具备的能力,但是并没有提到优秀测试工程师应该具备的能力,下文简单的谈一谈。当然这些全部都是我的个人理解。

能发现问题,还能定位问题,而且能给研发解释得清楚

在实际的工作中,你可能会遇到很多测试人员在测试功能模块的时候,一遇到问题,马上就来找开发,由开发来定位问题。测试人员发现功能不对,我们可以理解为【开发人员研发的系统的功能跟产品经理的需求不一致】,属于【发现问题了】。这个没问题,但是测试人员能不能静下心来,自己先研究一下发生问题的原因呢?相信很多开发人员经常会遇到,测试人员提的bug其实跟代码没关系,而是环境问题或者数据问题等。

可能有人会问,怎么定位呀?其实手段多得很,例如,看日志、抓包、看代码、debug代码、分析数据、分析业务流程、分析请求走过的节点等等,进行多方面的求证。如果实在找不到原因,才来找开发。

如果测试人员找到原因后,还能跟开发人员解释清楚,那就非常了不起了。因为这里除了涉及到专业能力外,还涉及到测试人员的沟通表达能力。

提一个自描述的BUG

你没有遇到这种情况,测试人员提的bug单里,只有几句简单的描述。这样会加大开发人员定位问题的难度。遇到这种bug单,我通常都是建议让测试人员补充一些内容。

 ●  导致这个bug的上下文入参;
 ●  必要的截图;
 ●  用简单清楚的文字描述bug原因、背景;

有一些测试人员文字表达能力很差,bug单的描述很让人费解,文字功底一时半会是改进不了,那么可以通过提供截图的方式来补充一下。

至于入参,这个必须要提供,不然会极大的加长bug定位的时间。

提有意义的bug

动不动提bug不是一个高效友好的方式,而且正如我上面提到的,很多测试人员文字功底很差,提的bug很让人费解。更为高效的方式就是直接沟通。

除非是重大缺陷或者很有意义的缺陷,值得后续用来做bug分析、追踪、总结的,才建议记录一个bug。

能独立搭建测试环境

开发人员提测后,就应该可以进行下一个功能的开发了,测试环境问题,开发是无需关心的。如果提测后,还需要协助测试搞测试环境的话,那是很浪费时间的。因此,测试人员应该能独立搭建环境,不管MQ、Redis、微服务等,都能搭建好。并且要保证测试环境是足够稳定的。

这里涉及到的知识点也是很多的,像Linux、Shell、网络协议等。

能开发造数据的工具

测试人员在做功能测试的时候,有一个重要的阶段,便是造数据,这个不是一个简单的事情,尤其是公司的微服务越来越多的时候,一个请求通常需要走过很多节点,每个节点都会取数据,如果没有一个造数据的工具,将大大加大测试的难度。

总结

简单说,就是具备一定开发能力知识面广,且沟通表达能力强的测试人员。


原文发布时间为:2018-10-18

本文来自云栖社区合作伙伴“Android开发中文站”,了解相关信息可以关注“Android开发中文站”。

相关文章:

  • raid5实现原理
  • Go 可变参数和切片
  • Tomcat7 catalina.out 日志分割
  • storm drpc实例
  • 监控CPU(一)
  • RIP
  • Lintcode104 Merge k Sorted Lists solution 题解
  • jQuery基础一
  • heartbeat主配置文件
  • Mysql5.6到5.7升级需要以下操作
  • GDI+绘制极坐标图(Polar Diagram)
  • RHEL7/CentOS7 PXE+Kickstart自动化系统安装
  • Netty环境搭建(源码死磕2)
  • [20171113]修改表结构删除列相关问题4.txt
  • 2018.10.24-dtoj-3984 玩具(toy)
  • Centos6.8 使用rpm安装mysql5.7
  • classpath对获取配置文件的影响
  • CoolViewPager:即刻刷新,自定义边缘效果颜色,双向自动循环,内置垂直切换效果,想要的都在这里...
  • java小心机(3)| 浅析finalize()
  • Redis学习笔记 - pipline(流水线、管道)
  • ViewService——一种保证客户端与服务端同步的方法
  • 阿里云爬虫风险管理产品商业化,为云端流量保驾护航
  • 翻译--Thinking in React
  • 简单易用的leetcode开发测试工具(npm)
  • 聊一聊前端的监控
  • 入门到放弃node系列之Hello Word篇
  • 支付宝花15年解决的这个问题,顶得上做出十个支付宝 ...
  • ​DB-Engines 12月数据库排名: PostgreSQL有望获得「2020年度数据库」荣誉?
  • $(function(){})与(function($){....})(jQuery)的区别
  • $redis-setphp_redis Set命令,php操作Redis Set函数介绍
  • (11)MATLAB PCA+SVM 人脸识别
  • (安全基本功)磁盘MBR,分区表,活动分区,引导扇区。。。详解与区别
  • (附源码)springboot太原学院贫困生申请管理系统 毕业设计 101517
  • (一)WLAN定义和基本架构转
  • .bat批处理(二):%0 %1——给批处理脚本传递参数
  • .NET HttpWebRequest、WebClient、HttpClient
  • .net web项目 调用webService
  • .Net中的集合
  • 。Net下Windows服务程序开发疑惑
  • [].shift.call( arguments ) 和 [].slice.call( arguments )
  • [Android View] 可绘制形状 (Shape Xml)
  • [AS3]URLLoader+URLRequest+JPGEncoder实现BitmapData图片数据保存
  • [BZOJ1008][HNOI2008]越狱
  • [BZOJ1040][P2607][ZJOI2008]骑士[树形DP+基环树]
  • [C++进阶篇]STL中vector的使用
  • [C语言]——C语言常见概念(1)
  • [DEBUG] spring boot-如何处理链接中的空格等特殊字符
  • [Django 0-1] Core.Email 模块
  • [flask] flask的基本介绍、flask快速搭建项目并运行
  • [IE编程] IE中使网页元素进入编辑模式
  • [iOS]随机生成UUID通用唯一识别码
  • [java基础揉碎]方法的重写/覆盖
  • [jQuery]使用jQuery.Validate进行客户端验证(中级篇-上)——不使用微软验证控件的理由...
  • [na]wireshark抓包排错-tcp.flags.reset
  • [Oh My C++ Diary]return 1和return 0的区别