工程师应该具备产品化思维吗—软件测试进阶之路(13)

发表于:2018-10-22 16:16

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:何飞    来源:51Testing软件测试网原创

  问答(34) 什么是接口测试,为什么做接口测试?
  【背景】
  "老师,我想问一下什么情况需要用到接口自动化测试?为什么要做接口自动化?是不是两个系统之间交互就要用到?"这是昨天一位同学问我的问题,跟他沟通后,我才明白,其实他想了解的并不是什么接口自动化测试,而就是接口测试本身。现在很多有关接口测试工具或自动化测试工具的文章和书会让新入行的同学把接口测试和接口测试工具搞混淆。于是我今天就想说说我理解中的接口测试及接口测试自动化工具。
  【你问】
  接口测试的是什么和为什么?
  【我答】
  这个问题其实很好回答,我们就先一起来把相关的基本概念理清楚吧:
  接口:
  接口,按我自己的理解描述它,其实就是由一段具备逻辑处理的程序代码组成的,可被其他方法、服务或应用所使用。
  对于调用交口的那一方,可以把接口看作一个黑匣子,只需要负责按约定传入参数,再接收返回的数据,可以不需要知道黑匣子里的逻辑;
  接口的作用:
  1、系统与系统之间的调用,比如银联会提供支付接口给做第三方支付的应用程序调用,应用程序在用户发起支付时,将相关的必要参数值通过支付接口传给银联服务,银联服务器处理完成之后会调用应用程序方的回调接口,返回支付处理结果;
  2、前端应用对后端服务的调用,比如应用程序调用服务端的接口,服务端调用 DAO (Data Access Object,数据访问对象) 的接口。拿查航班的应用程序来说吧,应用程序本身其实主要就包含两大块,一是交互,二是数据展示,应用程序通过服务端提供的接口将需要查询的航班名称传给服务端,服务端调用数据访问对象的接口从数据库中获取到相应的数据,服务端接口再将数据做相应的处理并最终返回给应用程序,应用程序将其展示出来;
  3、服务与服务之间的调用,比如注册用户时,会先调用查询用户信息的服务,目的是检查该用户是否已经注册,如果返回结果是该用户已存在,及注册用户的接口就会把该结果返回给前端页面;
  接口测试:
  接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。
  为什么要做接口测试:
  1、现如今,互联网应用程序产品的系统复杂度不断上升,只靠手工的前端测试,很难确保很高的覆盖度,但是通过接口测试,我们能模拟出各种类型的入参,包括一些从前端模拟不出来的入参,我们能根据接口文档的定义,设计出相对完善的入参值,力争在接口层先保证质量,剩余的绝大多数问题就都是 应用程序 自身的交互和数据展示问题了。
  2、接口测试相对交互界面测试和功能测试来说,更容易实现自动化,执行起来也比较稳定,维护成本也比较低。
  3、接口自动化适用于现网巡检、回归测试等,可以减少人工回归测试的人力成本;
  4、现在很多系统前后端是分离的,从安全层面来说,只依赖于前端进行 Input Validation(输入校验)   已经完全不能满足系统的安全要求,因为绕过前端相对容易,所以就需要后端同样进行输入校验,这就只能依赖于接口测试去验证了;

相关阅读:
版权声明:51Testing软件测试网获电子工业出版社和作者授权连载本书部分章节。
任何个人或单位未获得明确的书面许可,不得对本文内容复制、转载或进行镜像,否则将追究法律责任。
32/3<123>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号