
作者:loleina
来源:http://www.cnblogs.com/loleina/p/5213600.html
最近公司组织架构调整,我从服务组的测试人员,调到了质量管理部做客户端的质量管理。想着自己工作经验善浅而且实际工作项目能力并不优秀的情况下,我跟上级领导提出了换岗位的要求,我希望自己还能做一个一线的测试人员,能深入的了解自己经手的每个项目,但是也提出了自己的要求,希望能转做灰盒接口测试,能看懂代码的业务逻辑,能找一个合适的工具辅助自己做接口测试,然后跟进代码的业务逻辑,测试需求让自己更深入的进行测试。然后能根本上保证服务器的测试工作的有效性,高质量性,有针对性。
换了老大后,新的老大给予了大量充分的时间让我去研究接口自动化测试。公司的客户端和服务器的协议是私有的。协议私有的意思是:在原有的tcp协议上,在会话层加了一层自己的东西,而且在传输数据包的时候做了加密操作。那么现在常用的自动化工具哪些适合呢?下面是我做的最基础的自动化方面的调研。
自动化测试框架简介
自动化测试框架:能被重用的基础测试平台的应用骨架。
测试框架可以分成2类:
一类基础功能测试框架:提供可重用的基础自动化测试模块,如:selenium、watir等;它们主要提供最基础的自动化测试功能,比如打开一个程序,模拟鼠标和键盘来点击或操作被测试对象,最后验证被测对象的属性以判断程序的正确性;
一类是管理执行框架:提供自动化测试执行和管理功能的架构模块,如:Phoenix Framework,robot,STAF等;它们本身不提供基础的自动化测试支持,只是用于组织、管理和执行那些独立的自动化测试用例,测试完成后统计测试结果。通常情况都是把第二类测试框架集成在第一类测试框架中。如:robot框架就可以集成selenium框架,Phoenix Framework集成的也是selenium框架。
分层的自动化测试
这个概念最近曝光度比较高,传统的自动化测试更关注的产品UI层的自动化测试,而分层的自动化测试倡导产品的不同阶段(层次)都需要自动化测试。


UI测试:对用户界面中各个类别的控件的测试,即编写测试用例或者点检表,对每个按钮的响应情况进行测试,是否符合概要设计所规定的条件等。例如:我们不断重复的对一个表单提交,结果查询等功能进行测试,我们可以通过相应的自动化测试工具来模拟这些操作,从而解放重复的劳动。UI层的自动化测试工具非常多,比较主流的是QTP,Robot Framework、watir、selenium等。
接口测试:接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。比较主流的有:SoapUI,LoadRunner。
单元测试:关注代码的实现逻辑,例如一个if分支或一个for循环的实现;集成、接口测试关注的一是个函数、类(方法)所提供的接口是否可靠。比较主流的有:XUnit系列,TestNG,GTest。
为什么是一个金字塔形呢?因为不同阶段所投入自动化测试的比例不同。如果一个产品从没有做单元测试与接口测试,只做UI层的自动化测试是不科学的,从而很难从本质上保证产品的质量。如果妄图实现全面的UI层的自动化测试,那更是一个劳民伤财的举动,投入了大量人力时间,最终获得的收益可能会远远低于所支付的成本。因为越往上层,其维护成本越高。尤其是UI层的元素会时常的发生改变。所以,我们应该把更多的自动化测试放在单元测试与接口测试阶段进行。至于在金字塔中三种测试的比例要根据实际的项目需求来划分。在《google测试之道》一书,对于google产品,70%的投入为单元测试,20%为集成、接口测试,10%为UI层的自动化测试。
<未完待续>
公益传播测试知识、技能与正能量!感谢作者!分享测试生活,思考测试人生!
文章图片来自网络,如有侵权请见谅,请联系我们妥善处理。
twftesting@163.com
欢迎加入我们:
官网:www.huicewang.com
中国软件测试群: 172923163
测试编程技术交流群: 231767115
性能测试技术交流群: 385202672
咨询QQ:2657535456
公众号:慧测


