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

业务流程以及这些流程内的任务在更为多样的平台上执行,这就要求能够在界面间无缝移动,尤其是从移动到 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-09-27 08:59:14

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

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

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

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

Google音乐搜索界面曝光 博客测试搜索效果

中介交易 SEO诊断 淘宝客 云主机 技术大厅 8月5日消息,以专注于报道Google产品的博友与G共舞在博客上公布了Google音乐搜索界面,并进行了简单测试,以下为其测试全文: 今天中午,进入谷歌音乐搜索的域名(www.g.cn/music),非常惊奇地发现,这个页面已经可以访问.不过,过了几分钟后,又还魂到之前的404界面.以下是界面截图: 当与G共舞进入页面时,谷歌音乐搜索的首页,是"新歌一百强"的列表页面,左上角是谷歌常有的导航,右上角是"打开播放器"的链

iOS利用单例实现不同界面间的数据传输

  首先写一个单例类,继承NSObject check.h文件中 @property(strong ,nonatomic) UITable * Table; @property(strong ,nonitomic) UITextFiled * Text; +(check*)shareDataModle; check.m中 //定义一个静态的checke类的对象,并赋给一个空值 static check * dataModle = nil; +(check*)shareDataModle { if

苹果ios界面间跳转方法总结

下面以FirstViewController(FVC)的按钮button点击后跳转到SecondViewController(SVC)为例说明: 方式一:Storyboard的segues方式 鼠标点击按钮button然后按住control键拖拽到SVC页面,在弹出的segue页面中选择跳转模式即可 INVFNn 优点:操作方便,无代码生成,在storyboard中展示逻辑清晰 缺点:页面较多时不方便查看,团队合作时可维护性差, 多人合作时不建议使用这种方式. 方式二:选项卡UITabBarCo

Web测试中,各类web控件测试点总结

一 .界面检查 进入一个页面测试,首先是检查title,页面排版,字段等,而不是马上进入文本框校验 1.页面名称title是否正确 2.当前位置是否可见  您的位置:xxx>xxxx 3.文字格式统一性 4.排版是否整齐 5.列表项显示字段是否齐全,列表项字段名称是否跟表单统一 6.同一页面,是否出现 字段名称相同.值取不同的问题. 7.数据加载情况:除了文本框的值,还要注意: 复选框,是否保存打√,或者保存不打√ 下拉框,是否保存选择的值 多文本框,值是否都被保存,空格,换行是否保存 二.单文

测试结果-高并发Web系统,有主从复制,如何测试

问题描述 高并发Web系统,有主从复制,如何测试 这样的测试结果是用什么测试软件产生的