0223 研发工程师如何提升接口质量?

背景

最近团队中把只会作功能测试的测试岗位去掉了,那么软件质量的保证就落到了开发人员和产品人员的工做职责中了,不说这彻底是一件坏事,这为开发岗位提出了更高的要求。前端

为了适应团队的变化,找了一门小课程补充了一下关于接口测试的知识和思惟。本文是学习完毕以后的一个小结。
当成是学完以后的一个收货的输出,但愿能够帮到相关的研发同窗。java

主要内容

软件测试的主要内容是:
image.pnggit

测试工程师作的最可能是界面测试,而研发工程师因为实际工做环境的限制,可能只作过少许的单元测试和少许的单接口功能测试;web

那如何在没有或者缺乏测试工程师的状况下保证基本的软件功能的质量呢?
那就是研发工程师去作接口测试这个事情,这个是跟业务逻辑最近的测试工做。至于单元测试,固然也要作,可是那原本就是属于研发工程师的本质工做,这里不讨论。数据库

那么结合新的团队状况,软件测试的状况变成了下面这样:
image.png编程

研发工程师经过接口测试最大限度的保证了提供的接口的高质量,界面测试交给前端工程师和产品人员去作;
在知足接口测试的基础上,单元测试能够少作或者不作,由于接口测试经过了,单元测试基本也没问题。websocket

在研发工程师写完接口测试代码以后,挂接到持续集成工具中,就实现了接口的自动化测试,研发的产品质量更上一个台阶。前端工程师

首先须要明确几个概念;框架

接口socket

知足特定输入获得特定输出的逻辑处理单元,好比http接口,dubbo接口,websocket接口,物联网设备接口等

接口测试

验证某个接口符合预期,在特定的输入下,获得特定的输出;在不知足特定输入的状况,得不到特定的异常输出。
接口测试分为单接口测试和流程测试;
单接口测试: 找到接口文档,按照约定来验证;
流程测试:根据产品需求设计,编排单接口,验证需求内容;

接口测试的本质

模拟一个客户端调用接口,经过输入和输出检查逻辑处理是否按照预期设计来。

下面按照测试测试大法,进行心法修炼。

初级测试

完美的提测项目:

  1. 产品需求文档
  2. 原型设计文档
  3. 接口文档(swagger)
  4. 单元测试脚本

在编码能力欠缺的状况下,能够熟悉工具的使用:

好比: fidder抓包,postman接口模拟,jmeter接口模拟,selumn录入界面测试脚本等;

在文档缺失的状况下,善于使用抓包工具获得软件的接口协议,并记录疑问;

而后经过跟产品,研发工程师的沟通,获得完善的接口协议;

写好测试用例是基础,测试用例通常写在xls中或者持久化存储到数据库中;

若是是由研发工程师去作这种程度的事情,
首先,单接口协议是很明确的,沟通成本很低,若是恰好是本身写的软件接口,沟通成本为0,若是不是本身开发的接口,也能够很快的获得单接口的文档;
其次,实现的过程中,必须是很是的理解整个业务流程的,对接口的编排不会有理解上的误差;
最后比较费时间的是测试用例的编写,只要花点时间,对接口的条件进行排列组合,获得测试用例其实只是时间问题。

中级测试

具有编码能力,那么测试的功力就又增长了一级了。

能够学习一些测试工具类:

好比:
Http工具:

模拟htt的客户端,按照接口协议调用

Rest工具:

模拟http的客户端,基于接口协议,按照rest风格调用

WebSocket工具:

模拟websocket客户端,基于协议调用

Mock工具:

对微服务的场景,若是依赖的服务没有开发完毕,能够mock,快速验证单个微服务

从xls或者数据库中读取测试用例数据:

集中管理测试数据

而后就能够熟练的写各类客户端代码,模拟接口调用了。

而后把代码放进团队的git代码仓库中;

对测试工程师来讲,编码能力自然就弱一些,学习这些意味着作界面验证的时间减小了。

而对于研发工程师来讲,这些自然的就是基本编程技能,即便不太熟悉,学习起来也是很是快速的事情;

高级测试

具有测试思惟,能够持续的封装接口测试代码,造成团队适用的接口框架或者平台;

测试框架

对接口测试的过程当中使用的代码进行进一步的抽象和封装,造成一个测试脚本编写的框架,后续的接口测试和流程测试按照规则实现便可,并能够推广到其它的研发工程师,研发团队;

测试平台

合理管理各个测试的接口文档资源,和流程资源,跟持续集成工具打通,造成自动化测试;

小结

工具层面

熟悉常见工具的使用,好比:
抓包工具:fidder;
接口模拟工具: postman,jmeter;

技术层面

站在java工程师的角度,须要熟悉如下技术:


junit工具包
http工具包
RestTemplate工具包
WebSocket工具包
Mockito工具包
swagger文档生成


经过课程的学习,获得的是一些理论,更多的仍是须要在工做中实践,能够从一个实际的微服务项目出发,搭建本身的测试框架,并不断的完善,完善以后,跟其它的工程师和其它团队宣讲,创建一个自动测试平台,从而让本身的能力和价值更上一个台阶。

但愿对全部看到的小伙伴能有帮助。奔向更高的职业台阶。

softqa.pngfile

原创不易,转载请注明出处。

相关文章
相关标签/搜索