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

背景

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

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

主要内容

软件测试的主要内容是:

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

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

那么结合新的团队情况,软件测试的情况变成了下面这样:

研发工程师通过接口测试最大限度的保证了提供的接口的高质量,界面测试交给前端工程师和产品人员去做;
在满足接口测试的基础上,单元测试可以少做或者不做,因为接口测试通过了,单元测试基本也没问题。

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

首先需要明确几个概念;

接口

满足特定输入得到特定输出的逻辑处理单元,比如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.png

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

原文地址:https://www.cnblogs.com/snidget/p/12349290.html

时间: 2024-10-06 21:36:09

0223 研发工程师如何提高接口质量?的相关文章

Web前端研发工程师编程能力飞升之路

今天看到这篇文章.写的非常有意思,于是转载了.看看我们都处于什么的阶段. [背景] 如果你是刚进入web前端研发领域,想试试这潭水有多深,看这篇文章吧:如果你是做了两三年web产品前端研发,迷茫找不着提高之路,看这篇文章吧:如果你是四五年的前端开发高手,没有难题能难得住你的寂寞高手,来看这篇文章吧: web前端研发工程师,在国内是一个朝阳职业,自07-08年正式有这个职业以来,也不过三四年的时间.这个领域没有学校的正规教育,没有行内成体系的理论指引,几乎所有从事这个职业的人都是靠自己自学成才.自

web前端研发工程师编程能力成长之路

[背景] 如果你是刚进入WEB前端研发领域,想试试这潭水有多深,看这篇文章吧:如果你是做了两三年WEB产品前端研发,迷茫找不着提高之路,看这篇文章吧:如果你是四五年的前端开发高手,没有难题能难得住你的寂寞高手,来看这篇文章吧: WEB前端研发工程师,在国内是一个朝阳职业,自07-08年正式有这个职业以来,也不过三四年的时间.这个领域没有学校的正规教育,没有行内成体系的理论指引,几乎所有从事这个职业的人都是靠自己自学成才.自学成才,一条艰辛的坎坷路,我也是这样一路走来.从2002年开始接触WEB前

最美应用-从Android研发工程师的角度之[最美时光]

最美应用-从Android研发工程师的角度之最美时光 @author ASCE1885的 Github 简书 微博 CSDN 最近发现最美应用这样一个网站,它会定期推介一些很有意思的app,作为开发者,每次看到很棒的app都会从实现角度进行剖析,想着如果是自己将如何实现呢?因此,就有了这个系列的文章,旨在从技术选型和架构的角度解读一些有意思的app. 最美时光是最美应用团队出品的一个纪念日app,用于记录和分享那些重要的日子,我们就先从这个开始吧! 使用的开源函数库 1. 开源日志记录函数库Ja

Java研发工程师知识点总结

Java研发工程师知识点总结 最近一次更新2017年12月08日 大纲 一.Java基础(语言.集合框架.OOP.设计模式等) 二.Java高级(JavaEE.框架.服务器.工具等) 三.多线程和并发 四.Java虚拟机 五.数据库(Sql.MySQL.Redis等) 六.算法与数据结构 七.计算机网络 八.操作系统(OS基础.Linux等) 九.其他 一.Java基础(语言.集合框架.OOP.设计模式等) 1. HashMap和Hashtable的区别 Hashtable是基于陈旧的Dicti

资深后台研发工程师(转)

资深后台研发工程师 岗位职责: 1.负责搭建平台网络架构及技术架构: 2.把握平台开发方向和技术路线,解决关键技术问题: 3.负责与战略客户.合作伙伴的方案讨论,技术交流以及开发管理: 4.负责参与项目启动.项目计划.项目选型.项目实施.项目验收及项目内部总结等相关工作: 5.参与公司其它技术问题讨论与决策: 6.公司交办的其他事项. 任职要求: 1.5年以上互联网产品研发经验: 2.精通J2EE相关技术,编程基础扎实,熟悉io.多线程.集合等基础框架: 3.熟悉Spring, Spring M

提高代码质量:如何编写函数

阅读目录 命名 函数参数 编写函数体 总结 函数是实现程序功能的最基本单位,每一个程序都是由一个个最基本的函数构成的.写好一个函数是提高程序代码质量最关键的一步.本文就函数的编写,从函数命名,代码分布,技巧等方面入手,谈谈如何写好一个可读性高.易维护,易测试的函数. 回到顶部 命名 首先从命名说起,命名是提高可读性的第一步.如何为变量和函数命名一直是开发者心中的痛点之一,对于母语非英语的我们来说,更是难上加难.下面我来说说如何为函数命名的一些想法和感受: 采用统一的命名规则 在谈及如何为函数取一

Findbug在项目中的运用--提高代码质量

 FindBugs是一个静态分析工具,它检查类或者 JAR文件,将字节码与一组缺陷模式进行对比以发现可能的问题.有了静态分析工具,就可以在不实际运行程序的情况对软件进行分析 第一 手动安装 在Eclipse点击菜单中Help-->菜单 第二:输入地址: http://findbugs.cs.umd.edu/eclipse,出现版本列表: 按照一步步提示安装重启即可 =================================================== 2) (Re-)star

提高C#质量与性能

这篇随笔,用来记录提高C#质量和性能的方法. 基本 使用字符串应避免两种性能开销. 1.确保尽量少的装箱:值类型转换引用类型,会进行装箱操作.但是值类型的ToString(),是非托管方法,直接操作内存进行转换.故此不会进行装箱操作.9.ToString() 性能高于 string s = 9; 2.避免分配额外的内存空间:因字符串不可变性,对字符串进行任何操作或运算都会创建新对象,需要分配新的内存空间.使用常量进行+ 拼接,不会分配内存空间.尽量使用StringBuilder.string.F

WEB前端研发工程师编程能力成长之路(1)(转)

WEB前端研发工程师编程能力成长之路(1) [背景] 如果你是刚进入WEB前端研发领域,想试试这潭水有多深,看这篇文章吧: 如果你是做了两三年WEB产品前端研发,迷茫找不着提高之路,看这篇文章吧: 如果你是四五年的前端开发高手,没有难题能难得住你的寂寞高手,来看这篇文章吧: WEB前端研发工程师,在国内是一个朝阳职业,自07-08年正式有这个职业以来,也不过三四年的时间.这个领域没有学校的正规教育,没有行内成体系的理论指引,几乎所有从事这个职业的人都是靠自己自学成才.自学成才,一条艰辛的坎坷路,