测试思想-集成测试 关于接口测试 Part1
关于接口测试
by:授客 QQ:1033553122
接口定义
接口泛指实体把自己提供给外界的一种抽象化物,用以由内部操作分离出外部沟通方法,使其能被修改内部而不影响外界其他实体与其交互的方式。
举例:有各种各样的接口,比如电视遥控器的操作界面上的各种按钮 ,电脑上主板的网卡,插槽,硬盘数据线插槽, 软件菜单,DOS命令窗口,软件API函数
注意:接口不关注内部具体实现---过程,而是关注功能实现---结果。
接口分类
根据接口的定义和特性,可以分为以下两类:
1. 外部接口
说明:说明资源实体本身同外界环境的交互方式。
接口分类:
(软件产品为例说明)
1. 用户接口----方便用户与软件产品交互方式,沟通方式。
常见说明示例:
外部接口的用户界面部分按Windows应用软件用户界面的规范来设计,界面设计风格与XXX环境保持一致,采用XXX以及对话框等方式作为用户界面,便于用户使用。
用户接口分类
命令接口:软件产品向用户提供了命令接口供用户使用或管理软件产品。
图形接口:用户可通过鼠标、菜单和对话框来完成对软件产品的相关操作。图形用户接口元素包括窗口、图标、菜单和对话框等
程序接口:软件产品提供给软件开发人员进行编程的接口,俗称API。
2. 硬件接口----软件产品与其它硬件资源之间的接口。
常见说明示例:
Inter或其他系列的微型计算机,内存XXXG以上,硬盘XXXG以上。
3. 软件接口----软件产品同其它应用软件/系统之间的接口。
常见说明示例:
本软件运行于XXX软件及以上版本上,整个环境需要运行在Windows某某版本及更高版本并装有XXX(依赖软件)的操作系统之上。
4. 通信接口---指定软件产品采用的网络传输等通信接口。
常见说明示例:
本软件使用的xxx通信协议。
2. 内部接口
说明:说明软件内部各个模块/系统元素之间的接口或规范,软件各个模块间数据交换的格式等。
常用说明示例:软件内部的接口是通过XXX来进行交换的。用户使用XXX软件……可以说软件的各个模块之间主要通过XXX来进行关联,传送数据并交换信息,从而降低软件模块间的耦合程度。
接口测试
1. 侠义定义
通常,我们软件测试中所说的接口测试,是指外部接口中用于与外部系统交互接口及软件系统内部模块/组件或子系统之间的内部接口测试。例如:
1、系统与系统之间的调用,比如银行会提供接口供电子商务网站调用,或者说,支付宝会提供接口给淘宝调用
2、上层服务对下层服务的调用,比如service层会调用DAO层的接口,而应用层又会调用服务层提供的接口
3、服务之间的调用,比如注册用户时,会先调用用户查询的服务,查看该用户是否已经注册。
注意:
1.不管是内部接口还是外部接口,表现形式一般是以API形式出现
2.代码角度看接口
interface 动物 { void 叫(); }
class 狗 implements 动物 { void 叫() { System.out.println("汪"); } }
class 猫 implements 动物 { void 叫() { System.out.println("喵"); } }
这里,叫() 就可以接口函数,反正我不管你叫()函数里面是怎么样实现的,我只认接口叫()。如上,对猫和狗的叫声不一样,也就是说实现不一样,但是接口一样都是叫(),猫也好,狗也好,都调用叫()。如果不是采用接口形式,而是对猫采用猫叫(),对狗采用狗叫(),当外界环境变化,比如,来的是狐狸叫,那就要修改函数为狐狸叫(),那就麻烦了。
通常比较规范的接口文档都应该具备类似下图中的特点:包含接口名,参数名,参数类型,参数含义说明,取值限制,是否可空等
2.
适用情况
接口测试一般以用于多系统间交互开发,或者拥有多个子系统的应用系统开发的测试。接口测试适用于为其他系统提供服务的底层框架系统和中心服务系统,主要测试这些系统对外部提供的接口,验证其正确性和稳定性。接口测试同样适用于一个上层系统中的服务层接口。
3.
接口测试和单元测试
接口测试和单元测试之间并无严格的界限划分,根据接口的定义和特性,建议把接口测试同单元测试进行区别看待。个人理解两者之间主要区别在于:
1.单
元测试从代码角度对函数代码的逻辑进行测试,考虑的是函数内部实现,逻辑结构,一般由开发人员执行,而接口测试则是站在用户角度对函数接口定义进行的测
试,考虑的是数据的交换,传递和控制管理过程及系统间的相互逻辑依赖,一般由测试人员执行。可以把接口测试看成是功能黑盒测试,如下:
输入接口参数值->API接口->查看接口的输出
2.一个接口函数可能会包含多个单元模块,所以接口测试和单元测试并不是完全相同的。
3.
接口测试是要满足需求的,有自己特定的业务定义,接口测试所依赖的也是需求说明书,做接口测试的时候,更多的需要从业务的角度去考虑如何测试这个接口
4.
接口测试可以看成是单元测试和集成测试中的一部分。
4.
测试流程
需求评审->接口定义->用例设计->测试执行->结果分析
注:.接口一般是开发人员定义的
测试思想-集成测试 关于接口测试 Part1的更多相关文章
- 测试思想-集成测试 关于接口测试 Part 2
关于接口测试 by:授客 QQ:1033553122 ------------------接Part 1---------------------- 5. 用例设计思想(举例说明) 如上表,是某 ...
- 测试思想-测试设计 史上最详细测试用例设计实践总结 Part2
史上最详细测试用例设计实践总结 by:授客 QQ:1033553122 -------------------------接 Part1-------------------------- 方法:这里 ...
- 使用JMeter3.0实战之分布式并发测试以及web API接口测试
简介: 该文档是以Apche JMeter-3.0为例进行编写的,通过网上的学习资料和官方文档的说明手册学习后,进行项目操作实践,将测试的过程记录下提供给大家学习. 本博文的内容主要是进行配置JMet ...
- MockServer的测试思想与实现
转载:http://blog.csdn.net/shen1936/article/details/50298901 背景 什么是MOCK Mock的定义 Mock框架简介 Mock在单测中的应用 De ...
- ember.js:使用笔记8 加载测试与集成测试
emberjs使用的测试工具为qunit.js: 加载:将runner.js添加到Index.html:大致内容: if (window.location.search.indexOf("? ...
- 测试思想-流程规范 SVN代码管理与版本控制
SVN代码管理与版本控制 by:授客 QQ:1033553122 欢迎加入软件性能测试交流群(QQ群):7156436 目录 一. 二. 三. 四. 五. 六. 七. 一. 创建根目录 创建一 ...
- 测试思想 QA的价值体现
QA的价值体现 by:授客 QQ:1033553122 1. 缺陷挖掘价值 QA人员一个很重要的价值就是在尽可能短的时间内找出尽可能多的缺陷. 某种意义上说,缺陷直观的反应了产品的质量,QA发现的有 ...
- springboot-32-使用mvc测试
Spring Boot可以和大部分流行的测试框架协同工作:通过Spring JUnit创建单元测试:生成测试数据初始化数据库用于测试:Spring Boot可以跟BDD(Behavier Driven ...
- Spring Boot应用的测试——Mockito
Spring Boot应用的测试——Mockito Spring Boot可以和大部分流行的测试框架协同工作:通过Spring JUnit创建单元测试:生成测试数据初始化数据库用于测试:Spring ...
随机推荐
- git简易使用
git的安装以及GitHub的注册这里就不说了,这里直接从上传开始. 1. 登录github进入settings 2. 添加SSH KEY,添加方式查看第3步 3. 由于本地Git仓库和Github仓 ...
- 如何完美回答面试官问的Mybatis初始化原理!!!
前言 对于任何框架而言,在使用前都要进行一系列的初始化,MyBatis也不例外.本章将通过以下几点详细介绍MyBatis的初始化过程. MyBatis的初始化做了什么 MyBatis基于XML配置文件 ...
- [源码]Delphi源码免杀之函数动态调用 实现免杀的下载者
[免杀]Delphi源码免杀之函数动态调用 实现免杀的下载者 2013-12-30 23:44:21 来源:K8拉登哥哥's Blog 自己编译这份代码看看 过N多杀软 没什么技 ...
- Spring Cloud 微服务分布式链路跟踪 Sleuth 与 Zipkin
Zipkin 是一个开放源代码分布式的跟踪系统,由 Twitter 公司开源,它致力于收集服务的定时数据,以解决微服务架构中的延迟问题,包括数据的收集.存储.查找和展现.它的理论模型来自于Google ...
- Java并发编程笔记之基础总结(二)
一.线程中断 Java 中线程中断是一种线程间协作模式,通过设置线程的中断标志并不能直接终止该线程的执行,而是需要被中断的线程根据中断状态自行处理. 1.void interrupt() 方法:中断线 ...
- Docker基本命令汇总
Docker的三大核心概念:镜像.容器.仓库 镜像:类似虚拟机的镜像.用俗话说就是安装文件. 容器:类似一个轻量级的沙箱,容器是从镜像创建应用运行实例,可以将其启动.开始.停止.删除.而这些容器都是相 ...
- Java设计模式学习记录-迭代器模式
前言 这次要介绍的是迭代器模式,也是一种行为模式.我现在觉得写博客有点应付了,前阵子一天一篇,感觉这样其实有点没理解透彻就写下来了,而且写完后自己也没有多看几遍,上次在面试的时候被问到java中的I/ ...
- HTML DOM querySelector() 方法
Document 对象 实例 获取文档中 id="demo" 的元素: document.querySelector("#demo"); <!DOCTY ...
- SqlServer 查看死锁的进程
版权声明:本文为 走错路的程序员 原创文章,欢迎转载. https://blog.csdn.net/phker/article/details/78612974搞sqlsever 好多年, 从来没锁过 ...
- LINQ 小项目【组合查询、分页】
使用 linq 在网页上对用户信息增删改,组合查询,分页显示 using System; using System.Collections.Generic; using System.Linq; us ...