直接入手大家可能没什么概念,迷迷糊糊,先抛出几个问题给大家,快速帮助大家了解接口测试的基本概念。
接口测试测什么?
什么是接口测试?和单元测试的区别?
接口测试的价值和意义?
怎么测试接口?怎么写用例,怎么运行用例,测试框架?
说明一下:本人之前在某绿厂工作过,这边项目的诉求是整机的接口进行测试。
简单的说一下我这边对接口测试的理解,面对用户使用的app,而app可能使用到的接口大致分成以下几类:
三方接口(百度地图,腾讯,阿里,三方开源的依赖库,网络接口(http)等)
应用对外提供的接口(自定义的ContentProvider,AIDL等)
应用内部明显分层的跨Moudle接口(模块化的工程)
安卓原生sdk
厂商自定义sdk
所以我们需要测试的安卓客户端的接口主要就是以上几种。
安卓端的接口测试是对上面用户的app所使用到的接口进行功能性,稳定性,兼容性的测试,介于白盒和灰盒测试的范畴。因为三方接口,sdk的接口,网络接口或者其他接口存在源码不可见的情况,这种就是灰盒测试范围,源码可见的接口采用白盒测试思维进行测试。
总的来说,接口测试属于单元测试的其中一个分支,而单元测试属于白盒测试。
1.单元测试是和源工程一个项目下,因为源码必须可见才能进行单元测试,而接口如果不可见,比如三方接口,则不需要再同一个工程下,因此接口测试的测试工程有两种,一种是将测试用例放在源工程目录下,一种非源工程。
2.单元测试用例是运行在jvm上,而接口测试是需要在真机环境,也就是安卓环境下才能运行
因为接口通常都是跨模块的,jvm无法提供环境,比如context,sim卡,网络,sdcard,四大组件的运行等。
(如果有别的差异也欢迎大家补充,此处只强调重点的区别)
androidTest目录下就是接口测试用例(运行在android环境(真机))
test目录就是单元测试用例(运行在java环境(jvm))
我在绿厂工作的这段时间,测试了很多种类型的接口。
谈一下自己的感悟和看法吧。
缺点:
接口测试的价值肯定是没有功能测试的产生的价值多,接口测试直接发现的bug较少。
对测试开发人员的要求比较高,要能看懂接口的实现,和对于app的具体业务,才能写出比较好的测试用例。
优点:
接口测试可以驱动开发优化代码。当开发提供接口文档以后,我们开始编写接口测试用例,如果接口设计存在缺陷时,导致我们很难编写用例,那这种可以向开发反馈,接口是否重构。
因为接口测试用例的执行速度快,可以参与app的快速迭代,拦截新增或者修改代码导致的bug。如果开发修改代码,导致之前的接口测试用例失败,这种bug也是能发现的。
兼容各个机型,由于测试的是apk,可以跟随不同版本进行测试。
可以帮助开发快速定位bug的原因。
说白了,接口测试主要是预防接口被修改导致出问题,一个是功能性验证,保证数据在跨平台或者模块时传入的准确性。
总结
本文简要的说明了一下什么是安卓端的接口测试,接口测试的测试范围,价值和意义,以及和单元测试的区别。
作者:方又松
原文链接:https://blog.csdn.net/weixin_42233460/article/details/108484343#comments_15133317