1、接口测试的意义(优势)
(1)更早的发现问题:
不少的测试资料中强调,测试应该更早的介入到项目开发中,因为越早的发现bug,修复的成本越低。
然而功能测试必须要等到系统提供可测试的界面才能对系统进行测试。
而接口测试可以在功能界面开发出来之前对系统进行测试。
系统接口是上层功能的基础,接口测试可以更早更低成本的发现和解决问题。
然而,在实际的开发过程中,开发人员并没有充足的时间去编写单元测试,并且他们往往对自己编写的代码有足够的信心,不愿意将“浪费”时间在编写单元测试上面。
这个时候接口测试的作用就会变得更加重要。
(2)缩短产品研发周期:
对于产品研发周期来说,如果将所有测试工作都集中在功能测试阶段,那么测试的问题和修复周期就会变长。
因为测试可以更早的介入产品开发中,所以可以有效的控制功能测试阶段bug的数量,从而有效的缩短产品开发周期。
(3)发现更底层的问题:
系统的有些底层逻辑是在UI功能测试中不太容易触发的,那么这些逻辑可能会存在问题。接口测试可以更容易更全面的测试到这些底层的逻辑。
(4)检查服务器的异常处理能力:
我们通常把前端的验证称为弱验证,因为它很容易被绕过,这个时候如果只站在功能的层面进行测试,就很难发现一些安全的问题。
而不以功能为入口的接口测试就会很容易的验证这些异常情况。
- 比如订单接口是不允许重复提交的。
- 有些接口还要考虑性能问题。
- 比如购物车里有多个商品,全部勾选后去支付, 会判断商品库存,这时候能提交成功吗,处理逻辑又是什么?
- 安全性测试:
服务端提供API, 接口调用方在客户端,之间的通讯暴露在公网上,如果有不善意的用户抓包获取了支付接口,用1元价格购买到了100元商品,这是非常危险的,这就是安全性测试的一个方面。
SQL注入等也属于这类。
2、UI测试与接口测试对比
(1)UI测试特点:
一般互联网公司,最大的特点就是快,产品需要不停的迭代,迭代时间基本在15天左右。
UI自动化测试的优点是,能够实际模拟真实用户的行为,直接验证软件的商业价值,缺点是用例的维护和执行代价很大。
另外,UI自动化测试的稳定性问题,是长期以来阻碍UI测试发展的重要原因。
在快速迭代的情况下(如不停的更新活动界面),页面的改动可能会很频繁,而UI自动化测试本身基于页面元素,前端小小的改动可能需要测试的非常大的改动。
所以总结如下:
- web应用和APP迭代速度非常快。
- 页面更新频繁。
- 测试成本高于效益。
- 可交付于第三方进行测试(云测、众测)。
(2)接口测试特点:
针对服务端后台测试,接口规则一旦确定,后期的变化非常的小。
相对于变化频繁的UI来说,接口测试的性价比更高。
这就成为了企业内重点测试的对象,我们都知道服务端中保存着用户数据、业务数据、交易数据等。倘若任何一个接口实现有问题,都会影响所有用户。
正是由于服务端数据和业务逻辑关系着企业的命脉,所以极少会有企业把接口交于第三方测试。
作为测试人员,我们需要验证的是接口间数据传递的正确性和完整性。
最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:
这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!