首页 > 软件测试/ 正文
关于API测试
2012-11-16 00:02:21 ℃首先要说明的是,“对API的测试”和“利用API进行测试”是两个概念;
对API的测试是以API为测试目标;那为何要进行对API的测试呢?
几个原因:
1、产品本身提供了API给外部客户,比如现在很多网站提供了OPEN API,还有很多微软的产品,诸如SharePoint,WSUS,都提供API给用户,这样用户就可以做一些定制化,甚至是第二次的开发;
这种情况下,对API的测试,除了要测试API本身可以被使用之外(功能测试);还要经过性能测试,压力测试,兼容性测试,易用性测试;因为API本身就是产品; 这个时候相当于对API进行了黑盒测试(不是说对API的测试就一定是白盒测试或者灰盒测试),因为你相当于代表外面的客户(或者说是开发人员)对API进行使用;
2、产品本身并不提供API给外部客户,但是研发团队分析出对API进行测试有利于产品质量的稳定;或者说有利于提高“工程质量”(Engineering Quality),注意,不是Product Quality,因为测试了API,只能证明工程质量是OK的,API本身并不开放给最终用户,最终产品可能是桌面的程序,或者Web 程序,或者其他的UI;这些UI的体验还有提供的功能决定了最终产品的质量;因为测试的模型就像一个金字塔模型,越是底层的东西越容易自动化,规模化;所以通过对API进行测试,可以在回归测试的时候保证regression不会有太大问题;
讨论完了对API进行测试之后,再讨论一下利用API进行测试;
利用API进行测试,API不是测试的目标;比如说我想测试一个计算器的加法是否正确;通过UI我可以得到加法的结果,然后和期望的值进行比较;但是UI容易变;万一加号的ID变了或者其他因素变了,UI自动化就得重写;维护成本相当高;那么如何更好的减少对UI的依赖呢?我可以通过调用产品本身用来计算加法的API,然后得出实际结果,再和期望值进行比较;因为API本身的变动小;所以测试的自动化的改动就小;维护成本就低;
另外一点对API进行测试或者利用API进行测试,不能Assume API就是正确的,Dev也不觉得说这个API就是正确的;所以我们调用这些API是想拿到实际的值(也就是通过UI获得的值,我们姑且认为这2个是一致的,因为有小概率事件,这2者不一定一致,比如实际的UI调用的函数的参数和你所调用的函数的参数可能不一样);而期望的值是需要我们自己通过别的方式拿到的,不能用API来拿到(除非这个API已经被证明是正确的,比如OS API)
总而言之;研发本身就是为了提高效果和效率;或者说是ROI;尽量减少对外界的依赖;尽量减少维护的成本,那么通过对API进行测试,或者利用API进行测试是可以从某种程度达到这样的目标。
- 上一篇:回归测试的策略及方法
- 下一篇:敏捷代码审查指南
更多郑州学软件哪个学校好,郑州软件编程课程培训哪家好,郑州北大青鸟软件开发学费多少钱,2018年初中生学什么技术好,郑州游戏开发培训机构有哪些,郑州北大青鸟java大数据培训相关文章
- 浅谈Java中的几种随机数
- 测试驱动开发
- 我是怎样长大的(二)——软件测试这一路
- 软件测试方法汇总
- 压力测试和系统优化tips
- 嵌入C语言的测试驱动开发:为什么要调试?
- 淘宝Android/IOS自动化测试框架
- 我的软件测试之旅:(12)机遇——测试自动化培训师和教练
- 一个女孩从软件测试工程师到主管的成长
- 建立项目质量策略
- 同行评审那些事儿(二):评审的作用、目的和概念
- 同行评审那些事儿(四):各种评审的形式
- 软件测试过程的持续改进
- 同行评审常见问题解答
- SOA和敏捷:是朋友?还是敌人?
- 项目管理之质量管理(一)
- 质量保证漫漫谈之SQA的工作职责和工作方式
- WindowsXP的开机菜单有什么含义
- 设定虚拟内存的误区
- 磁盘里的B,MB,GB,TB是怎么换算大小的?
- 有关分区的那些事儿
- 快播是什么软件,快播是干嘛的
- IT产业中的摩尔定律
- 电脑键盘清洁技巧
- 物理内存与虚拟内存区别
- 为什么应该关闭屏保
- 最近一直想学计算机编程,怎么学呢
- 郑州的软件学校这么多选择哪一家比较好呢?
- 郑州北大青鸟的程序员培训靠谱吗?
- 郑州大学生短期Java培训学校哪家好
- 搜索
-
- 热门标签