新手小白如何做好接口测试

         测试行业中,大多数人接触的都是所谓的功能测试,也就是人为操作设备的输入输出,在这样的一个模式下,实际上有很多的细节的逻辑并无法覆盖到,虽然表面看似没有问题,但经常会发生所谓的不可重现错误、异常错误、出现错乱的数据、甚至被外界攻击的现象。从另一个角度说这样测试仅仅满足了基本功能需求,但实际上系统非常的脆弱,如果系统用于内部且有监管机制,那么没有人敢去恶意操作,但是如果放在互联网中,那就像没有保护的小鸡一样,轻松被老鹰叼走。

  测试的初衷本身就不是单单验证需求的正确性,还有另一个很重要的部分,也就是证明程序是有错误的,为了更好的防止可能造成损失的情况发生,引入接口测试,让测试的细节、准确度、深度产生质的变化。

  有人会说,功能测试后不是应该引入自动化测试和安全测试吗,这个话题我们在文章后面慢慢说。

  简单介绍一下什么是接口测试:

  接口测试,正如其名,测试的主要对象是接口,是测试系统组件间接口的一种测试方法,主要用于检测外部系统与被测系统之间以及内部各系统之间的交互点,其中会包括数据的交互、传递、关系等等。实际上接口测试也是功能测试中的一个环节,只是对于测试新手常常是忽略的状态。其实说到这里,懂的人自然懂,不懂的人还是不知道接口是什么,继续往下看。

  接口实际上是无处不在的,要解决接口这个抽象的概念,首先分离两个大概念,第一种是代码内部所谓的接口,代码A与代码B在组合的时候,必然需要定义一些名称以及参数、类型,这种在测试中一般划分在白盒测试中,也算是集成测试阶段,需要与开发有类似的代码知识才能上手。而另一种接口,是系统与系统之间,通过网络数据的传递进行交互,此类测试属于黑盒层面,也就是看不到代码,但可以通过各种手段将网络数据发送到接口从而得到接口的响应信息,达到测试的目标。第一种接口很抽象,或者可以算是完全代码层面的东西,作为测试很少会接触,至少目前是这样,所以这里我们主要阐述第二种黑盒层面通过网络交互方式的接口,因为无处不在,即使你现在还在做最简单的功能测试。

  只要你测试的不是单机软件,就离不开接口,就算是网页从服务器上读一张图,实际上也是通过HTTP接口地址去获取图片文件,然后再界面上显示,只是这种类型的静态文件接口没有逻辑,确保图片地址和文件是匹配的即可。但程序动态接口则不一样,会涉及到各种各样的参数,即使同一个接口,也会因为接口传递的参数内容不同、用户不同、权限不同等等出现不一样的情况。接口、参数就是一种程序的输入,而接口返回的信息就是一种程序的输出,其实这也类似于在界面输入测试用例一样,但在接口中,用例的数量会大大提升,因为不受界面文本输入限制、不受选择内容限制,甚至还有很多界面上你根本看不到的东西。输入项内容多了,自然用例也会复杂很多,除了满足需求以外,还要根据接口的数据交互设计定制用例和预期结果,好的用例无非更能发现有深度的问题。

  接口测试的方法有很多,比较常见的是通过一些接口测试工具来实现接口数据的传递,也有编写代码来实现数据传递,以上都是可以在没有客户端界面的情况下做的,但需要对接口的实现比较熟悉。另外其实还有别的方式,比如在网络中将接口数据调包修改,或者以修改客户端的方式达到某些目的,且非常真实有效,最终达到测试的目的,找出程序的错误。

  至于自动化测试,实际上这个对质量本身是没有影响的,机器没有人类的AI,想让机器发现错误,必然是已经发现过的错误了,那么主要目的是回归测试,将重复的成本机器化来降低成本,并不能去发现更多的问题,甚至发现不了问题,如果使用频率低,制作、维护成本大于人工直接操作,这就需要考虑该不该做了。

  安全测试,相信刚入测试行业的人都对安全测试是一种渴望,但其高大上无法触及。实际上大部分的安全都是利用接口层面来实现的,只是用例带有一定特殊性,但千万别想着把那些用例放在界面上输入,那是完全无效的。想攻击?不通过接口怎么把恶意数据发到位呢,这就是渗透测试。当然安全测试还不止这些,但从接口层面实现的至少有一半以上。

 
 
标签: 接口测试
posted @ 2016-09-07 21:55  郭柏雅  阅读(507)  评论(0编辑  收藏  举报