很多做测试的人心里难免会冒出这种困惑:每天忙于业务测试,无法接触核心技术,在面试时也只能讲一些业务流程相关的东西,而这些都很难引起面试官的兴趣。更悲观点的,甚至觉得自己做的测试就是枯燥的“点点点“,未来被淘汰的几率很大。导致自己越做越迷茫。
其实,每个岗位,每个行业,都有属于自己的发展,测试开发工程师必有他的价值,有的时候觉得望不到前路,也有可能是自己站的不够高。想要不断提升自己,应该加强这五个方面的能力:基础测试能力、环境治理能力、专项测试能力、工具开发能力、沟通协调能力。下面具体来说说:
1、基础测试能力
测试基础就是测试的基本功,首先要理解一些流程相关的东西,如 需求分析、测试计划、缺陷跟踪等。
其次要有扎实的用例设计能力,能灵活运用”等价类划分“、”边界值分析法“、”流程分析法“等常见用例设计方法,最后要具备很强的测试执行能力,移动端、web端、服务的测试执行各有特点。
例如 服务端测试,需要熟练使用Postman、Jmeter等工具做接口测试, 移动端测试,需要利用fiddler抓包来定位一些问题。
测试本身是一个实践性很强的工作,扎实的基本功不可或缺。
2、环境治理能力
“工欲善其事必先利其器”,测试环境的重要性也无需我多言了。
微服务流行的当下,服务拆分、中间件、高可用设计导致软件系统架构越来越复杂,调用链路错综复杂,配置多如牛毛,给测试环境的部署和管理带来了一定的挑战。”搭建环境半个月,测试执行两三天“,严重影响项目进度。生产环境有运维同学来维护,但是测试环境却没有,所以测试同学要承担起测试环境的运维角色。
快速部署环境,保证测试环境的持续可用状态,是每一位测试同学不可或缺的技能。要达成这一目标,需要具备一定的系统架构理解能力,掌握常见的Linux操作技巧,能熟练部署一些通用的服务,如:MySQL、Redis、Kafka等。随着Docker容器技术的广泛应用,容器化部署服务也是必备技能之一。
3、专项测试能力
“高可用”、“稳定性”、“易用性”等指标越来越被各大互联网厂商所追捧,性能测试、异常稳定性测试、故障演练等专项测试的价值日益凸显。实施这些测试需要具备一定的技术功底。
例如 要做Java应用的性能测试,就要深入了JVM虚拟机原理,了解常见的性能指标,如 响应时间、吞吐量、资源利用率等,能熟练使常见的性能定位工具,如 jstack、jstat、jmap等。
专项测试凸显的是分析和定位问题的能力,需要不断的实践才能得到提升。
4、工具开发能力
自动化工具是提高测试效率的利器,将一些重复性的工作自动化掉,能够避免被繁杂的手工测试所拖累,专注于更核心的测试工作上去。
想要做工具开发需要具备一定的代码能力,有些传统观念认为,测试同学不需要具备代码能力,这是很大的误区。具备代码能力处理可以写自动化工具外,还有其他很多优势,例如 可以参与开发的code review,增强对业务的理解。自动化工具开发常用的框架有:Spring Boot+vue.js、Python+Django。
5、沟通协调能力
以质量为核心,不断提升效率,支撑产品快速迭代是测试的最终目的。
测试工作在项目中起到了承上启下的作用,在这过程中有很多资源需要协调,很多问题需要反复沟通,例如 测试同学需要推动开发去做一些自测,这样才能提升交付质量,出现bug后,需要推动开发同学快速修复bug。因此沟通协调能力也是测试工程师不容忽视的能力。