![]() |
Clayton Neal在软件測试和质量保证方面有超过13年的经验,当中有八年的Windows, web,和移动应用程序的測试本身主动化经验。他在測试领域的所有等级都工做过。近期他在Bloomberg and Misys担任QA经理。同一时候他仍是Sogeti的本身主动化測试顾问。Clayton对本身主动化測试超迷恋,还见识了怎样亲自成功实施測试本身主动化。 |
?html
測试本身主动化的优势咱们都很是清楚,更快地反馈问题,下降手工測试,持续集成就是当中随口可举的。測试团队成员越多,公司使用本身主动化越多,就越好。为此,咱们必须脱离实施測试本身主动化的技术方面,而去考虑编写和执行本身主动化測试的非技术员工层面。无论开发团队是否在作敏捷验收測试驱动开发(ATDD),敏捷行为驱动开发(BDD)或使用传统的瀑布方法,团队可用来进行本身主动化的成员越多,本身主动化測试覆盖范围就越广。
keyword驱动測试是一种由本身主动化project师开发被測应用程序内可反复使用行为的方法。而后非技术用户就可以用不论什么输入參数将所得的可反复使用的keyword行为库进行排序,肯定測试用例。比方,一个keyword可以是点击button(在一个button控件上点击)或输入文本(在一个文本框控件中输入文本),而后这些keyword就可以被用来填写一个登陆表格并点击 OKbutton。该方法的优势是:本身主动化project师集中干他们擅长的,即开发keyword的測试本身主动化的脚本或编程;非技术測试员和企业用户使用这些keyword并基于他们的领域和产品知识来编写測试用例,最后使得本身主动化更加有效。
?机器人框架是一个通常的基于keyword的測试本身主动化框架,它不依赖于不论什么一个特定的本身主动化工具(如:QTP, Ranorex, TestComplete, Selenium等),却让本身主动化project师插入用这类本身主动化工具的keyword。机器人已经安装了不少keyword并拥有一个很成熟的功能集,包含:keyword的条件运行
? 測试用例和測试集的[setup]和[teardown]
? 数据驱动keyword文件,文件夹及流程管理的FOR循环
? HTML測试报告
?詹金斯CI集成将变量变为一个keyword并从測试用例keyword的keyword标注返回
?最后列出的功能就能够以在现有keyword上建立keyword,确保如图1所看到的的“keyword金字塔”的增加。web
金字塔最底层是由本身主动化project师开发的技术keyword构成:最顶端是应用程序内进行单个功能行为的功能keyword:最后,咱们将基于功能keyword的业务流程keyword总结为在应用程序内构建业务流程。这样的分层的一个样例如表1所看到的。编程
表1. keyword分层框架
这里,技术keyword是基于执行带有展现控件的本身主动化行为;功能keyword在应用程序中执行单个功能步骤;更高层的业务流程測试应用程序内端到端的流程。
即用机器人框架可以从Python和Java库中载入新的keyword;为了使用在.NET中开发的keyword,就要利用远程服务界面。该界面是XMLRPC界面,机器人框架在上面给一个远程服务发送请求,运行一个keyword。固然这样的远程服务可以用不论什么一种支持XMLRPC的语言来开发。尤为是,一个远程服务可以用.NET开发让机器人框架运行keyword装配中的基于.NET的keyword。这种方法如图2所看到的。工具
图2. 远程服务结构图google
N机器人远程(见http://code.google.com/p/nrobotremote/)是一个可以创建.NETkeyword库并经过XMLRPC协议将之公开给机器人框架的.NET机器人框架远程server。结合了N机器人远程的机器人框架可以让最初的本身主动化工做用来计划哪些測试需要被本身主动化以及这些測试需要开发什么keyword,而不是在本身主动化測试计划可以開始前设计编写一个本身主动化框架。为N机器人远程开发.NETkeyword只就是开发一个公开方法的类。每个方法都被视做一个keyword——好比:spa
该keyword类公开了两个keyword:ClickButton和EnterText。经过在N机器人远程中建立keyword类并把机器人框架指向XMLRPC地址,这些都可以用选择的本身主动化測试工具实现且可以经过机器人框架来调用。如图3所看到的。设计
图3.使用N机器人远程的机器人框架測试用例3d
在上面这个样例里,设置一列告诉机器人框架,http://localhost:8271上有一个远程keyword服务(注意:除了本地主机,也多是在还有一机器上),且来自远程server的keyword将有前缀N机器人远程(不论什么前缀都可以)。測试用例一列则定义了一个叫作管理员登陆的測试用例,调用keywordEnterText去输入username和password,keywordClickButton去点击OK。这样一个測试有多是在开发早期一个非技术測试员或企业用户所写的。keyword库自己可以被视做被測应用程序的域模型之上的薄薄一层。比方,假设使用selenium页面对象,那么keyword层就可以如图4所看到的,按顺序调用页面对象和方法。code
图4. keyword和域层
这样的抽象概念在被測应用程序变化时提供了灵活性,经常,当应用程序变化时,仅仅有域模型和keyword实施随之改变。測试用例实施并不需一直不变,因为它建在更高层。使用机器人框架和.NETkeyword也可以使不一样的本身主动化工具在測试用例水平彼此整合,让本身主动化project师可以灵活地为所需keyword行为选择最佳本身主动化工具。好比,假设在一家更大的公司,几支本身主动化团队已经被选去使用针对不一样产品模块的不一样本身主动化工具,每队就可以用他们各自的开发语言为其模块开发一个域模型,如机器人框架可以载入Python,Java和(经过N机器人远程).NETkeyword。測试用例编写者也相同可以在他们的測试用例里使用来自所有本身主动化团队的keyword。
总结
经过赞成非技术用户在开发各个阶段编写測试用例,将本身主动化行为从抽象变为可以传给非技术測试员和业务用户以下降本身主动化project师的瓶颈的可复用keyword。机器人框架,做为一个成熟的通常性的keyword框架,赞成本身主动化项目一開始集中研究本身主动化測试和所需keyword,而不是设计并实施一个測试框架。使用机器人框架和N机器人远程将keyword測试本身主动化扩大到.NET,赞成keyword利用.NET框架和.NET中本身主动化工具的优点,并赞成把来自Python和Java的keyword与一样的測试用例相结合。
版权声明:本文出自 SPASVO泽众软件測试网:http://www.spasvo.com/news/html/2014101194841.html
原创做品,转载时请务必以超连接形式标明本文原始出处、做者信息和本声明,不然将追究法律责任。