首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件测试 >

怎样验证API,要用到什么方法和工具?解决方案

2012-03-24 
怎样验证API,要用到什么方法和工具?对这个好模糊,希望大家能一起讨论.[解决办法]什么叫属于哪种测试呢? 把

怎样验证API,要用到什么方法和工具?
对这个好模糊,希望大家能一起讨论.

[解决办法]
什么叫属于哪种测试呢? 把API当成一个小软件来测试,你不就很容易想到怎么测试了吗?
[解决办法]
eh。。。我觉得我们说的不是一回事。。。我的意思是,你测试API,你就把API当成一个软件来看,API提供的接口之类就是这个软件的功能,你就测试这些接口啊,函数啊等等,还有你只是在其他地方用代码调用这个API,而不是接触API本身的代码,这算不上严格意义上的白盒测试,因为你不需要知道API本身是怎么实现的,你需要考虑的是API怎么用,用的怎么样,这不就是典型的黑盒测试吗?不是有代码就是白盒测试的。。。。
[解决办法]
1. API总会有个实现载体,比如一个dll文件,或者一个Web Service,引用之后,就可以调用对应的功能,你就把API提供的各个功能都测试下,这不就相当于一个测试一个小软件吗,只不过不是点点按钮,而是需要用代码去触发这些功能。用户调用这些方法,不需要知道API本身的代码,只是用API本身,这样的测试也用不到什么工具,非要用工具的话,只能自己根据特定API去实现一个。至于测试方法,这不就是典型的黑盒测试吗?非要找点名词的话,验收测试,功能测试比较适合。

2. 针对API本身实现的代码的测试才算白盒测试,针对API本身实现的代码主要有由Dev执行的单元测试,一般很少让Tester去测试代码本身。API提供的接口之类都是在其他地方调用的,没有说API以源代码的形式给用户粘贴到自己的代码中引用的吧,一般都是引用一个dll之类的形式。如果是单元测试的话,比如针对API的某个功能模块的测试,针对不同的实现语言,有不同的单元测试工具,C++、C#、Java之类都有对应的单元测试工具。测试方法也就是单元测试了。

1和2的区别主要是1只关注API本身的功能,不看API怎么实现的,2关注API本身实现的代码中的特定模块的实现,而且2一般都是开发人员做的,测试人员一般不做单元测试。
[解决办法]
我只是从我从业经历中得到的经验,可能和某些理论并不是很相符,如果一个人突然问我API测试需要用什么工具和方法这个问题,我先得看看是什么API,什么样的公司组织管理结构,然后我才能说出相对确切点的观点,比如API的类型有很多种,比如支付宝的网络应用的API,比如给其他开发人员使用的持久层控件,比如UI控件等等,对于实际的测试来说,最直接最有效的就是以功能测试,输入输出测试为主的功能测试,测试工具一般就是FIT这类的框架,或者直接就是支持的调用语言,如果进行更多的测试,那就捎带上兼容性测试和性能测试,一个检查API对文档中所列举的支持平台的支持程度,一个检查API的性能数据,总不能一个API只能在C#2.0上用,3.0上不能用,也不能支付宝的一个API只能在高带宽高配置的机器用,其他普通配置网络就需要等个半天。

如果项目中对开发和测试的划分很特殊,或者测试人员对于开发也很精通,那可能把API的代码也拿给测试人员测试,这个特定语言有特定的单元测试,有些IDE直接就内置了单元测试工具,比如Visual Studio,测试方法就是单元测试,其他也就没有什么测试方法了。




[解决办法]
你有些误解了,CPPUnit只是方便你写测试dll的代码的工具,并不是严格意义上的测试工具。
至于我说的单元测试,那是dll编译之前的源代码进行的单元测试,这个一般都是让开发人员去做,很少让测试人员去做的。但是这也算测试的范畴。。。

如果你们的程序员已经做了单元测试,那就不需要测试人员再测,剩下的测试就是我说的第一种了,其实不是分的很细,只是你追问的太细。。。。说了半天,我说的测试API,对于测试人员来说,就是测测功能,要求更高的话,可以测试下性能和兼容性,不过这也得看项目需求。。。
[解决办法]
很多理论和实际工作的差距很大的,如果你想多了解写测试理论方面的东西,可以找一本作者是 郁莲 的测试书,在测试理论的讲解上还是不错的,不过和实际工作有些差距,我可能在实际工作上有点经验,到理论上就没什么见解了。。。

热点排行