VS 2010 测试功能学习(八) - RnP与Coded UI测试(继续篇)

代码覆盖率 (Code Coverage)从简到繁 () 代码覆盖率(Code Coverage)是反映测试用例对被测软件覆盖程度的重要指标,也是衡量测试工作进展情况的重要指标。它也是对测试工作进行量化的重要指标之一,测试工作往往不如开发那样激动人心,一个重要原因之一就是测试难于量化,而代码覆盖率恰恰是解决着一问题的重要指标。      根据其覆盖内容的不同,又可以细分为:语句覆盖、判定覆盖、条件覆盖、路径覆盖以及循环覆盖等等,这里有一篇 阅读详情

题外话:CSDN博客不能上传图片已经有一周多了,以前的博客内容中的图片仍然是“图片审核中...”状态,没关系,咱是中国网民,咱最大的优点就是能忍!图片不能传,咱继续发文字内容的博客。可是人家外国的Google就忍不了了,这一周要退出中国的传言漫天飞,成了大家茶余饭后的谈资。这周另一件大事就是Haiti发生了7.3级的大地震,据说伤亡很严重并且还有我们的维和人员,希望救灾工作能够一切顺利。

 

      在上一篇博客《RnP与Coded UI自动化测试》中,介绍了Visual Studio 2010(以下简称为VS2010)新加入的测试用例录制和播放功能,以一个对计算器加法功能进行测试的例子,体验了完整的使用过程:MTLM创建测试用例工作项 -> 录制测试手工执行的测试步骤 -> 回放录制结果 -> 生成C#自动测试用例 -> 将自动测试用例关联到测试用例工作项 -> 添加验证。这个功能确实很酷,它将测试计划、手工测试用例和自动测试用例三者有机的结合起来,RnP工作能大大提高了测试用例的执行效率。知其然,更要知其所以然。到目前为止俺也只是介绍了RnP和Coded UI Test (以下简称为 CUIT)测试的皮毛而已, 还需要继续挖掘一下它们背后的故事。


RnP和CUIT支持的平台/技术

      任何技术都不是万能,总有它的适用范围,有所为,有所不为。RnP和CUIT也是如此,所以在使用之前,首先必须要知道它们的使用范围。在MSDN Visual Studio 2010 (Beta 2)的帮助页面《Supported Configurations and Platforms for Coded UI Tests and Action Recordings》给出了Beta 2中RnP和CUIT所支持的:操作系统、32位和64位、处理器体系结构、.NET Framework版本、语言以及具体的技术和平台。其中,大家最关心的应该是最后一部分的技术和平台,它决定了哪种类型的应用程序可以应用RnP和CUIT。上面的页面仅给出了Beta 2的支持情况,俺发现在微软测试功能开发团队的博客上,给出了Beta 2、RTM以及RTM之后RnP和CUIT的平台/技术支持路线,下面这张表还是非常直观的:

技术平台

Beta 2

RTM

RTM+

注释

IE7/8 – HTML/AJAX

    

Windows Forms 2.0+

   

.NET Fx Controls fully supported, working on 3rd party support

WPF 3.5+

   

.NET Fx Controls fully supported, working on 3rd party support

SharePoint 2007

    

Windows Win32

   

To do – Publish Known issues & Workarounds

MFC

   

To do – Publish Known issues & Workarounds

FF3 – HTML/AJAX

   

To do – Publish Release Plan

Dynamics (Ax)

   

To do – Publish Release Plan

Silverlight

   

To do – Publish Release Plan

Citrix/Terminal Services

   

The client (MTLM or VS) need to be on remote machine

Office Client Apps

    

IE 6

   

Opportunity for partners to add this using the Extensibility support.  Docs and samples around extensibility are here.

Chrome/Opera/Safari

   

Flash/Java

   

SAP

   

图例 :完全支持 当前部分支持还有后续工作需要完成 支持但仍存在已知问题 当前不支持但今后会考虑 不支持

      基本上覆盖了Windows平台上的主流开发技术,唯一的遗憾是还不支持基于Silverlight的Web应用程序的测试,相信这应该是微软在发布了2010之后,重点应该考虑的一部分内容,因为现在Silverlight技术的应用还是非常广泛的。

 


RnP和CUIT背后所采用的技术

      RnP和CUIT是首次在Visual Studio中出现,其功能还是很炫很酷的,但其实背后的测试自动化实现技术对大家并不陌生,下面列出针对Web、Winfrom和WPF应用的测试技术基础。对每种技术的支持采用的是插件(Plugin)的形式实现的,VS 2010包括了如下的三种插件:

  1. Document Object Model(DOM) 插件  IE 7/8 HTML/AJAX 
  2. User Interface Automation(UIA)插件  :  WPF
  3. Microsoft Active Accessibility(MSAA)插件  :  Winform,Win32和MFC 。MSAA插件是默认选项,用来支持出其它两者之外的任何应用。正如上面的表中所列的内容所示,有些是默认MSAA插件也无法支持的,如:Silverlight和Firefox等。

      如果你所开发的应用程序当前还不被支持,也不用着急,微软在VS 2010中还提供了开发你自己的Plugin的机制,纤细的内容可以参见Gautam Goenka的博客《Series on Coded UI Test Extensibility》。虽然是属于高级话题了,但是对于那些想要对CUIT有深入了解和使用测试人员来说,这应该是必读的一篇博客内容。之所以这样说,源自我的切身体会。我在一开始使用CUIT的时候并没有注意这个话题,随着使用的深入发现有越来越多新问题产生,使我迫切地想知道RnP和CUIT是如何构架。特别是我也遇到了《Configure search properties used by recorder/code generation 》中提到的“录制所产生的无法用来定位空间的动态控件名问题”(Name of the certain control is dynamic and not to use it to identify the control.)。Visual Studio 2010并没有提供Built-in的解决方案,如果再要是不了解CUIT的Extensibility机制,那是无法解决这个问题的。还有其它一些类似问题,但是建议你在使用了一段CUIT后再来Extensiblity,否则只会是看的一头雾水,呵呵,真的!

      Apart from this,产品良好的可扩展性也我喜欢微软的技术的一个重要原因之一,有了扩展技术,为第三方厂商或者爱好者提供了途径来填补这部分空白,也是很好的商机,也许这就是建立Eco-system的一种途径吧,呵呵! 

      Visual Studio中的RnP和CUIT功能还是比较新的内容,除了看微软发布的VS 2010的MSDN文档,去看VSTT团队和成员的博客是非常不错的资料来源。此外,去 Coded UI Test forum论坛直接提问题,可以更直接地得到相关产品部门的支持和解惑。

 

参考资料
  1. MSDN : Testing the User Interface with Automated UI tests
  2. How does "Coded UI test" finds a control?
  3. Platform Support for Coded UI Test (and Fast Forward feature of Test Runner)
  4. Understanding the Window Search and Windowed Properties
  5. Series on Coded UI Test Extensibility
VS 2010 测试功能学习(19) - 什么情况下应该引入UI自动化测试 在本系列关于Visual Studio 2010测试功能介绍中,花了很多的篇幅介绍了其新功能Coded UI Test(以下简称CUIT),也欣喜地看到很多朋友对CUIT非常感兴趣。但是前一段时间,在一个邮件讨论组,有个朋友提出了这样一个问题:他的应用程序有上百个表单,用来显示和操作从数据源读取的不同信息,他希望能够用CUIT来实现对这个应用程序的自动化测试。听起来似乎是合情理的,但仔细推敲一下有 阅读详情

相关推荐

代码覆盖从简到繁 () – 划分Block

      上一篇博客 《代码覆盖从简到繁 () – Block Coverage》介绍了Visual Studio所采用的Block覆盖中Block是如何定义的,并且展示了代码行Block之间其实并不是严格对应的。本篇博客将通过.NET中间语言(IL)进一步分析Visual Studio是如何划分Block的,从而更准确回答代码行Block不能严格对应的原因。      使用Visua

Jeffrey Zhou 的专栏 5484

使用Visual Studio 2010进行UI自动化测试

1. 被测试功能说明。   非常简单的一个功能:在文本框中输入文字,点击Go按钮,下面则会显示文本框中输入的文字。      接下来我们就为这个小程序创建UI自动化测试: 2. 创建测试项目。   打开VS2010,选择 文件 - 新建 -项目,模板列表中选择 测试 - 测试项目,输入测试项目名称 UITestProject。    3. 添加UI自动化测试。   1. 右键 UI...

weixin_34195546的博客 248

VS 2010 测试功能学习() - Gated Check-in

      严格意义上讲,Gated Check-in(门控式签入,呵呵,这是我自己的翻译,英文名很好理解,但翻译起来真难啊!最近发现了Gated Check-in的官方翻译因该是 - 封闭签入,感觉挺别扭的没俺翻译的好,呵呵!)不应该算是测试的一部分,它是Team Foundation Server(以下简称为TFS)提供的一种代码check in(签入,这是最常见到的对check in的翻译,

Jeffrey Zhou 的专栏 5379

VS 2010 测试功能学习() - RnPCoded UI自动化测试

      题外话:昨天去上海浦东机场接闺女,一切还是蛮顺利的,公交机场7线直接从上海火车南站一站直达浦东机场,票价20元,算上乘坐地铁5号和1号线的6元,从我家到机场总共要26元,相对于打的士的220元,还是实惠很多的。在新的上海轨交图上,看到地铁2号线延伸到了浦东机场,只是现在这段还没有通车。机场7线是在地铁3号线的上海南站站2号出口附近,可是俺是乘坐1号线到上海南站的,需要经过换乘通道到3号

Jeffrey Zhou 的专栏 1万+

VS2010测试方面的文章-重点

http://www.cnblogs.com/shanyou/archive/2010/03/21/1691202.html1.VS 2010 测试功能学习() - Test Impact Analysis[测试影响分析]2.VS 2010 测试功能学习() - RnPCoded UI自动化测试[测试用例转UI测试代码]3. VS 2010 测试功能学习() - 数据驱动的手工...

142

设计测试用例的四条原则

由于成本因素的介入,决定了工程中好的测试用例原则不会只有“覆盖住所要测试功能”这一条,下面是我根据自己的工作经验总结出的其它四条原则,在这里抛砖引玉。这些原则特别是针对那些需要被自动化,并且是要被经常执行的测试用例。

Jeffrey Zhou 的专栏 3万+

VS 2010 测试功能学习() 新老Logo

      微软在今天正式发布了Visual Studio 2010 Beta 2(内部开发代号 Dev10),同时也宣布了正式版本的发布日期为2010年3月22日,也就是春节后啊!MSDN订阅用户可以在今天开始下载Beta 2,其它用户则要到美国时间10/21号才能下载,也就是我们中国时间22号。我很高兴能够马上就用上Beta 2版本的Visual Studio 2010Beta 1相比变化

Jeffrey Zhou 的专栏 1万+

VS 2010 测试功能学习(18)Coded UI Test三个必知的函数

      Coded UI Test 的三个有用的辅助函数:Playback.Initialize、UITestControl.DrawHighlight和UITestControl.CaptureImage。

Jeffrey Zhou 的专栏 1万+

VS 2010 测试功能学习() - 真正的主角儿

       VS2010提供了多种测试用例的执行方式,每种方式都有自己针对的特定需求场景。今天(2011/3/8)发现一篇不错的Blog - Running Automated Tests on Physical Environments, the different flavors… ,它比较几种执行方式的各自特点,并给出了相应链接。         算然是以介绍V

Jeffrey Zhou 的专栏 9246

代码覆盖从简到繁 () – Block Coverage

       根据覆盖内容的不同,代码覆盖可以分为:语句覆盖、判定覆盖、条件覆盖、路径覆盖等等,Visual Studio(2005,2008 和 2010)系列工具中所采用的是语句覆盖(statement coverage),也被称为block coverage。本文介绍Visual Studio中的block是如何定义的。

Jeffrey Zhou 的专栏 7371

VS 2010 测试功能学习(十一) - 如何用CUIT代码定位UI控件?

发现一篇Brian Keller最近写的介绍Visual Studio 2010测试功能好的文章,放在本篇博客的开头大家共享:《A different way of presenting the Visual Studio 2010 testing tools》      前几篇博客中关于Coded UI Test(以下简称为CUIT)的介绍啰啰嗦嗦地也写了不少了,但也是

Jeffrey Zhou 的专栏 7022

VS 2010 测试功能学习() -

      在VS 2010 测试功能介绍的首篇博客中,概要介绍了MTLM的工具。在接下来的学习过程中发现总有很多细小的问题和发现无处归类留作备忘,用这种Q&A的方式的蛮好的,不用写很多东西,随时有新的发现就随时写些东东,比较轻量级,挺好的!在这里列出一些VS 2010测试功能使用中遇到的问题:#如何启用Test Controller和Agent上的日志功能?答:请参见asse

Jeffrey Zhou 的专栏 6541

Visual Studio 2010 Service Pack 1 (SP1)正式版发布了

       早上一来,发现Jason和Soma在各自的博客上宣布了Visual Studio 2010 SP1正式发布的消息。MSDN的订阅用户可以现在就在 Download Service Pack1 (MSDN Subscribers) 处下载到, 而其他用户要等到这个周五才能在微软的网站上下载到。

Jeffrey Zhou 的专栏 5539

VS 2010 测试功能学习() - Test Impact Analysis (TIA)

      Test Impact Analysis是Visual Studio 2010测试部分新增加的一个功能,我也不知道该如何翻译其中文名,那就简单点儿,按字面翻译为“测试影响分析”,以下简称为TIA。那么啥是TIA呢?简单地说,就是根据产品代码变化自动分析出受影响的测试用例,它既适用于自动测试用例,也是适用于手动测试用例。注意:目前Test Impact Analysis只针对Mana

Jeffrey Zhou 的专栏 5124

【软测】接口自动化入门:requests + pytest + pymysql 三件套实战

库定位在自动化中承担的角色requestsHTTP 客户端模拟客户端,发送接口请求pytest测试框架组织用例、执行断言、生成测试报告pymysqlMySQL 驱动操作数据库,做数据准备结果校验pytest 组织用例├─ pymysql 预置/清理测试数据├─ requests 调用被测接口└─ assert 断言响应结果(必要时 pymysql 回查数据库验证)requests:把请求信息字典化 +解包,是数据驱动框架的第一块砖;

2301_81499791的博客 204

UI调试平台Web UI自动化项目框架设计

该项目是一个UI自动化框架的封装平台,主要基于Python+PlayWright搭建了接口自动化框架,实现注册,登录,新增项目,新增环境等功能用例转自动化的实现,并且合理使用断言,生成可视化的测试报告

2301_80424145的博客 328
上一篇: 今天换了新的办公室 (+1) + CSDN上博客照片全显示为“图片审核中" (-1) = 0
下一篇: 敏捷Scrum培训有感
quicknet
博客等级 码龄25年 398粉丝 117原创
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值