接口是指外部系统与系统之间以及内部各子系统之间的交互点。包括外部接口、内部接口,内部接口又包括:上层服务与下层服务接口、同级接口。常见的有:API(Application Programming Interface,应用程序编程接口)、JDBC数据库接口、MySQL Connector.
接口测试的分类:
1、系统与系统之间的调用,如分享时,微信会提供接口给“跑向珠峰”;
2、上层服务对下层服务的调用;
3、服务之间的调用,如添加一条数据时,会先调用
软件测试的类型主要分为什么?各种测试之间有什么区别?
主要分为:单元测试,集成测试和系统测试。
单元测试:纯代码的测试(白盒测试)。主要测试代码语句的正确性,如所有的代码是否都可以跑到,是否有冗余的代码等等。
集成测试:接口测试(灰盒测试,结合白盒和黑盒测试)。主要测试代码块之间的接口。看看数据的传输是否有问题。
系统测试:黑盒测试。不接触代码,只对整个系统做功能的测试和性能的测试。
以上的三中测试是在项目组中测试的。
确认测试:是客户做的测试。也可以叫做验收测试。客户对他提出的需求,对应要交付的软件看看是否达到其要求。
扩展资料
不是所有的软件都要进行任何类型的软件测试的,可以根据产品的具体情况进行组装测试不同的类型。软件测试是指使用人工或者自动的手段来运行或测定某个软件产品系统的过程,其目的是在于检验是否满足规定的需求或者弄清预期的结果与实际结果的区别。
参考资料:百度百科-软件测试类型
软件测试包括哪些类型的测试
软件测试包括的类型测试如下:
1、单元测试:是对软件组成单元进行测试,其目的是检验软件基本组成单位的正确性,测试的对象是软件设计的最小单位:模块。
2、集成测试:将程序模块采用适当的集成策略组装起来,对系统的接口及集成后的功能进行正确性检测的测试工作。其主要目的是检查软件单位之间的接口是否正确。
3、系统测试:主要包括功能测试、界面测试、可靠性测试、易用性测试、性能测试。功能测试主要针对包括功能可用性、功能实现程度方面测试。
4、回归测试:指在软件维护阶段,为了检测代码修改而引入的错误所进行的测试活动。
5、冒烟测试(smoke testing):该术语来自硬件,指对一个硬件或一组硬件进行更改或修复后,直接给设备加电。如果没有冒烟,则该组件就通过了测试,也可以理解为该种测试耗时短,仅用一袋烟的功夫就足够了。
6、验收测试(交付测试):是部署软件之前的最后一个测试操作。它是技术测试的最后一个阶段,也称为交付测试。验收测试的目的是确保软件准备就绪,按照项目合同、任务书、双方约定的验收依据文档,向软件购买都展示该软件系统满足原始需求。
什么是接口测试?
1接口测试的定义与分类,以下就是接口测试
接口测试是测试系统组件间接口的一种测试。
主要用于检测外部系统与系统之间以及系统内部各个子系统之间的交互点。
重点测试数据的交换、传递和控制管理过程,以及系统间的相互逻辑依赖关系等等。
这要求对业务逻辑有一定程度上的理解,对数据流向有较好的定位。
接口测试般会用于多系统间交互开发,或者拥有多个子系统的应用系统开发的测试。
接口测试适用于为其他系统提供服务的底层框架系统和中心服务系统,主要测试这些系统对外部提供的接口,验证其正确性和稳定性。
接口测试同样适用于一个上层系统中的服务层接口,越往上层,其测试的难度越大。
接口测试实施在多系统多平台的构架下,有着极为高效的成本收益比。
接口测试天生为高复杂性的平台带来高效的缺陷监测和质量监督能力。平台越复杂,系统越庞大,接口测试的效果越明显。
接口测试的目的是测试接口,尤其是那些与系统相关联的外部接口,测试的重点是要检查数据的交换、传递和控制管理过程,还包括处理的次数。外部接口测试一般是作为系统测试来看待的。
不是所有的团队都可以在一个隔离的测试环境中进行测试工作的,因此使得对外部接口的测试显得困难。
我们应该确保较早地与相关的组织协调好并确定进行外部接口测试的方案。
有时候相关的组织只是人工的静态的审阅一次数据而并不真正的用这些数据来测试,这些都增加了实际测试执行中遇到的风险,但有些时候是可以避免的。
接口测试有的公司是归纳在集成测试里面,也有的公司会放在系统测试阶段,不过这个都没有什么区别,本质上接口测试就是通过某个功能模块对外暴露的一个接口地址传参进行测试。
一般来说接口分为如下三类:
A. 系统与系统之间的调用(如我们一般常见的分享内容到朋友圈或者是微信朋友时,微信会提供接口给这些需要用到分享的应用)上层服务对下层服务的调用(这个理解难度稍微有点大,在我们程序中功能是分层的,那么属于上层对底层服务的调用,以后能够有机会接触到代码或者更加稍微复杂点的接口测试就能够理解。举个例子,我们的程序框架分为三层,分别是web层:提供给用户请求的层次;feb迁至层:作为信息传递的中转站;service层:作为程序应用的核心,处理所有的请求
C.服务之间的调用(如添加一条数据时,会先调用数据查询的服务,查询该数据是否是重复数据)
不同类型的接口测试方法可能不一致,但总体来说不管是哪种类型,被测接口即为服务,测试手段为客服方,接口测试的目的就是:通过我们的测试手段,去验证满足其申明提供的功能。
2如何做接口测试
接口测试的原理:通过测试程序模拟客服端向服务器发送请求报文,服务器接收请求报文后对相应的报文做出处理然后再把应答报文发送给客户端,客户端接收应答报文这一过程(reques->response)。
接口测试的流程与功能测试有什么区别呢?从原则上以及流程上讲,是没有啥区别的,都同一套软件测试流程:需求讨论->评审需求->确定需求->产出接口定义->根据需求文档及接口定义设计测试用例(测试用例主要从业务场景,功能以及异常测试几个方面考虑)->评审用例->执行测试。
接口测试采用的最基本的就是黑盒测试,在这个测试过程中我们最需要关注的是,如何来设计测试用例,设计测试用例所采用的方法也是我们常所用的几大方法:等价类、边界值以及错误推测法、场景法。在设计测试用例之前,我们先来看看常见的接口文档形式。
这就是上图是一种比较规范的接口文档说明,包含了如下内容模块:接口的类型说明、接口地址、http请求方式、输入参数和请求接口后返回的响应结果。
接口测试编写测试用例,主要关注点是输入参数、输出结果以及内部业务逻辑是否正常‘,所以我梦设计用例也要从这几方面出发考虑:
a)输入参数测试:针对输入参数进行的测试,也可以说是假定接口参数的不正确性 进行的测试,确保接口对任意类型的输入都做了相应的处理:输入参数合法(不合法),输入参数为空,为null,输入参数超长等等;
b)接口是否满足了所提供的功能,相当正常情况测试,如果一个接口功能复杂时推荐对接口用例进行结构划分,这样子用例就有更好的可读性和可维护性;
c)逻辑测试:逻辑测试严格讲应为单元测试,单元测试应保持内部逻辑的正确性,可单元测试和接口测试的界限并不是那么清晰,所以我们也可以从给出的设计文档中考虑内部逻辑错误的分支情况和异常;
d)异常情况接口测试:接口实现是否对异常情况都进行了处理,接口输入参数虽然合法,但是在接口实现中,也会出现异常,因为内部的异常不一定是输入的数据造成的,而有可能是其他逻辑造成的,程序需要对任何异常都进行处理;
针对上面的注册接口,我们利用测试用例设计方法来编写测试用例,如下所示:
3接口测试的工具选择
可以进行接口测试的工具有很多,这里简单介绍几个:
>loadrunner :一款商业性能测试工具,用来做接口测试,很好很强大。
>jmeter :一款开源的性能测试工具,操作简单方便,既有jdbc request 操作数据库数据,也有http request 和 soap request 应对测试;
>httprequester :火狐浏览器自带接口测试工具,插件中安装即可,界面简单明了,容易上手。
>postman :谷歌浏览器的扩展工具,界面简洁,开发者比较常用的一款插件工具。
>soapui : 开源测试工具,通过soap/http 来检查、调用、实现web service的功能/负载/符合性测试。
我们将在后面的教学中,重点讲解Jmeter这款综合性比较高的工具;
软件测试的种类?
按测试过程分:单元测试、集成测试、系统测试按方法分:黑、白、灰盒测试。根据软件主要侧重:性能测试、功能测试、兼容测试、压力测试、负载测试、验收测试。其中验收测试包含:
(1)、软件功能确认测试:功能测试的主要内容包括软件安装、卸载测试,用户手册中提及的所有功能测试及边界值测试。相对于测试内容其测试准则可以规定为被测系统是否可以按照用户文档中的描述能成功的安装和卸载;用户文档中提到的所有功能是否可以顺利执行,并符合用户文档给定的边界值;软件系统的运行是否与用户文档中的描述相互一致。因此可以说功能符合性测试是软件系统最基本的测试。
(2)、安全可靠性测试:用户权限限制测试、留痕功能测试、屏蔽用户操作错误应答测试、系统备份与恢复手段测试、多用户操作输入数据有效性测试、异常情况及网络故障对系统的影响测试。
(3)、易用性测试:易用性测试主要着重易学易用性、联机帮助、功能操作程度的难易性、软件界面清晰程度等几个方面。其测试标准主要考察软件的各个功能项的操作是否有联机帮助,非计算机专业用户是否可通过用户手册轻松操作。其目的是衡量软件系统的普及推广的难易度。
(4)、可扩充性测试:任何一个版本的软件系统都有一定的使用周期,每格一段时间就需要升级,进行功能扩充。此外,有的软件系统还需要与其它软件系统进行数据交流。这就需要检测软件系统升级是否方便;是否留有非本系统的数据接口,以方便数据的传输。此项检测的另一项主要任务就是检测用户是否可以通过修改配置文件或其它非编程方式修改或增减系统功能。
(5)、兼容性测试:兼容性测试是软件测试中的重要一环,其测试内容是软件在规定的不同操作系统中运行是否正常。在规定的不同数据库系统上运行是否正常,以及在规定的不同型号的硬件环境中运行是否正常。
(6)、效率测试:随着局域网站数的增加以及广域网的使用,数据的网络传输时间和存取时间逐渐变成软件使用中的瓶颈,所以如何提高运行效率已成为各方面注意的焦点,也成为衡量软件产品质量的指标之一。进行这一测试技术性较强,需要了解待测软件系统采用什么样的传输协议,已及什么样的传输方式。测试时需要必要的测试环境及使用专用网络测试工具。
(7)、资源占用率测试:系统资源一般是指内外存储、CPU、通讯端口以及网络带宽等系统资源。如何合理利用系统资源是与软件系统的性能密切相关的。例如,如果软件系统运行的CPU利用率超过50%,或系统内存的占有率一直居高不下则系统运行的速度就会令人无法忍受;若随意占有通讯端口就会照成一些通用的通讯软件无法运行。同样如果采用广播式发送,就会占用网络带宽,使网络的通讯速度降低。这些都会给用户造成不变,使用户不得不升级硬件系统或扩展网络带宽。因此,资源占有率的测试越来越显示出其重要性。
(8)、用户文档资料验收:使用手册对用户可调用的所有功能有完整的描述;使用手册能使正常执行其产品的用户充分理解的产品的性能;使用手册易于浏览,并有目录和索引;文档中的所有资料没有错误的表达;文档的内容说明与系统实际的结果相互一致;管理员手册中具有软件的标识和运行环境的说明;管理员手册具有安装和维护的有关说明;管理员手册提供正常运行的边界值。
山东省软件评测中心根据多年经验提供全程软件质量保障服务,在规划阶段、实施阶段、交付阶段、运维阶段分别提供相应阶段的质量保障服务。