解决多通道测试的挑战:在界面间移动的测试,从移动到 Web 再反转回来

多通道 描述的是具有多个界面的应用程序。随着我们从桌面发展到基于 Web 的计算甚至是移动计算,多 通道越来越常见。由于设备(平板、手机、笔记本电脑、台式计算机)以及与设备交互方式(特定于设备的 “应用程序”、浏览器和传统的客户端应用程序)的组合,同一个应用程序的界面越来越多。比如,使用相同 业务逻辑的面向 Web 应用程序、移动应用程序甚至是一个 CLI(命令行界面)的银行应用程序。由于面向服 务的架构 (SOA) 和 Web 服务日益流行,在很多情况下,集成者要做的工作就是把服务与新的前端重新组合。 但业务逻辑(亦称服务)则保持相同。

以开发团队重用代码来减少维护成本并提高生产效率相同的方 式,要跟上开发团队,测试团队就需要一些方法来重用测试场景并实现自动化。

应对多通道测试的挑 战

几年前,我是一名自动化测试架构师,负责为具有多个界面的两个(而不是一个)应用程序构建所 有的自动化。二者都有遗留的 “本地” 用户界面,使用的是 Microsoft Windows 32 位 MFC (Microsoft Foundation Class) 控件、一个使用了 JavaScript 的 Web 界面、ASP 和 JSP(Active Server Pages 和 JavaServer Pages)、一个新的(更新的)Eclipse SWT (Standard Widget Toolkit) 界面以及一个命令行界 面。当然,不可能找到对所有这些界面均有效的自动化工具,但我们可以暂时将其放到一边。

编程时 ,您往往会专注于通过促进重用减少需要维护的代码量。有了面向对象的编程和重构,很少有理由需要在多个 地方具有相同的代码了。但是需要设计一个架构,这样我就可以考虑如何从一个单一的测试自动化代码库解决 多个界面的测试。首先,尽管它们是同一个应用程序的所有界面,但并不是所有的界面都会浮现相同的功能, 更不用说使用同样的方式了。但也有许多以客户为中心的场景(用例),这对跨所有界面进行测试很有意义。

然而,负责设计测试用例和测试计划的测试团队没有以这种方式考虑他们的测试。事实上,他们是分 离的,并根据他们所要处理的界面以竖井方式分离。构建并测试了该 CLI 的团队认为他们只需要少量的客户 场景测试。他们主要集中于单元测试,并没有真正考虑通过 CLI 的一个客户流。负责 Eclipse UI 的测试团 队想要大量的 UI 特性和自动化的功能。他们有一长串需要执行的测试用例,要实现这个目标,需要完全专注 于客户流。但是,我们为什么就不能使用由主题专家 (SME) 为应用程序煞费苦心完成的用来测试所有界面的 这些信息呢?

一种层次结构方式

使用面向对象的编程 (OOP) 的典型测试自动化框架一般会抽 象化控制集的实现细节,而不是通过控件表达的概念性操作。这实际上是许多商业 GUI 自动化工具使用的方 式。例如,所有文本字段会接受文本,用 setText(string) 方法定义一个文本字段类,并在此应用程序的所 有版本上使用它。但这并不适用于跨界面构建自动化测试的所有情况。当一个 GUI 使用单选按钮而另一个使 用复选框时会发生什么呢?您实际上不能对于相同操作依靠于同一界面。以下显示了这种传统的 OOP 方式。

图 1. GUI 控制层次结构

在我们的示例中,界面的差异很大 ,但所代表的操作和业务流程则实质上相同。为了最大化重用,我们选定了一个业务逻辑层次结构(参见图 2 )以跨多个界面重用测试场景。这不仅能最大化我们的代码重用,还意味着将会依赖测试工具来管理 GUI 界 面,而这正是他们的设计初衷。图 2 显示了此方式,您可能已经识别出了这个抽象工厂模式。

图 2. 业务逻辑层次结构

时间: 2024-10-29 21:26:14

解决多通道测试的挑战:在界面间移动的测试,从移动到 Web 再反转回来的相关文章

在界面间移动的测试,从移动到Web再反转回来

业务流程以及这些流程内的任务在更为多样的平台上执行,这就要求能够在界面间无缝移动,尤其是从移动到 Web 以及反向移动.过去曾经有效的那些举措导致了应对未来的讨论. 多通道 描述的是具有多个界面的应用程序.随着我们从桌面发展到基于 Web 的计算甚至是移动计算,多通道越来越常见.由于设备(平板.手机.http://www.aliyun.com/zixun/aggregation/9600.html">笔记本电脑.台式计算机)以及与设备交互方式(特定于设备的 "应用程序"

微软开源P语言,解决异步计算的挑战问题

微软近日发布了一篇研究报告,介绍了一种为异步性.容错性和不确定性而设计的P语言,实现安全的异步事件驱动编程.该语言基于事件进行通信,能够很好的解决并发操作所带来的问题,并能够在软件的构建.测试和调试等各个阶段发挥作用.雷锋网(公众号:雷锋网)编译如下. 新型软件的复杂性导致了编程人员需要新的方法来理解,并有效地构建.测试和调试这些系统.如今的软件通常使用云资源,嵌入在物理世界的设备中,并采用人工智能技术.这三个因素使得今天的软件系统难以发展. 通常现代应用需要异步性来提高性能,比如在下面这种情形

vb编程-三菱plc与上位vb编的界面间以太网通信

问题描述 三菱plc与上位vb编的界面间以太网通信 用vb的winsock编了个服务器,三菱plc做客户端,但一直连接不上,vb还需要装什么驱动软件吗,三菱plc用的是Q系列的,求指点 解决方案 求大神指点呀,江湖救急呀

.net-VS2013做完网页界面,前期还测试ok,现在打开竟然没designer.cs,运行无法加载

问题描述 VS2013做完网页界面,前期还测试ok,现在打开竟然没designer.cs,运行无法加载 用vs2013前两天做的网页测试ok,上传svn,今天更新下然后打开,改界面的designer.cs没有了,.aspx名称前的图标为空白的,运行无法加载,是不是因为同事用他vs2010改了我程式?还是什么兼容问题? 解决方案 右键点击该文件,然后选择包括在该项目中.

android 界面间的跳转用什么实现,跳转时activity的生命周期

问题描述 界面间的跳转用什么实现,跳转时activity的生命周期 解决方案 Activity的生命周期看清楚了你应该就不会有这个跳转时生命周期的问题了.里面描述得很清楚.跳转方法很多,看下面这个:http://www.iteye.com/problems/63220里面我的回答很明确了.解决方案二:一般用Intent打开其它的Activity

搜索网站Bing并不能解决微软面临的挑战

北京时间5月29日消息:据国外媒体报道,周四,鲍尔默对外演示了新搜索,"Bing"的名字也四处传开.对于这一新品牌,称赞者有之,质疑者亦有之. "你为什么不Bing它?"--一年以后,如果你听到有人这么提问,想必最开心的是微软的富豪董事长盖茨.这意味着微软在和Google的网络搜索大战中开始取得一些成绩. 微软在搜索领域投入了几十亿美元,但是仍然未能阻止Google的崛起,因此,一个新的名字显然无法对Google造成杀伤. 微软的市场精英希望,Bing不会让人们联想

VS2010测试功能之旅:编码的UI测试(2)-操作“.NET研究”动作的录制原理(下)

回顾 在本章上部分介绍了操作动作的录制原理,描述了操作动作是如何录制,UIMap.uitest和UIMap.Designer.cs的代码如何生成,以及他们的结构.在这个部分,将着重说明如何通过修改UIMap1.uitest文件的操作动作部分的代码来控制UIMap1.Designer.cs操作动作部分代码的生成,实现第一种方式的自定义编码. 内容简介  在上个部分,已经说明了UIMap.uitest文件的结构如下: 其中InitializeActions,ExecuteActions,Cleanu

一起谈.NET技术,VS2010测试功能之旅:编码的UI测试(2)-操作动作的录制原理(上)

回顾  在之前我们介绍了如何用VS2010的UI测试功能创建一个简单的示例,大致描述了如何使用编码的UI测试进行录制和回放,在这章会着重描述VS2010是如何录制操作,并且生成代码,以及初步介绍如何通过自己写代码的方式进行测试. 内容简介  在上一章我们已经介绍过,建立一个编码的UI测试CodedUITest1.cs,录制完成之后,会自动生成一个UIMap1.uitest文件.  图1:录制完成后自动生成的UIMap1.uitest文件  事实上,在录制过程中起着关键作用的并非是CodedUIT

通过Java测试几种压缩算法的性能(附测试代码下载)_java

本文将会对常用的几个压缩算法的性能作一下比较.结果表明,某些算法在极端苛刻的CPU限制下仍能正常工作. 文中进行比较的算有: JDK GZIP --这是一个压缩比高的慢速算法,压缩后的数据适合长期使用.JDK中的java.util.zip.GZIPInputStream / GZIPOutputStream便是这个算法的实现. JDK deflate --这是JDK中的又一个算法(zip文件用的就是这一算法).它与gzip的不同之处在于,你可以指定算法的压缩级别,这样你可以在压缩时间和输出文件大