金融行业移动终端自动化测试方案

  Parag Kulkarni2008年就在印度SQS担任测试自动化团队的一名核心成员。他专攻使用各种工具的自动化。他的核心竞争力包括自动化框架设计和移动自动化。过去的八年,他广泛涉及了CRM,出版,银行和电信领域。
  如今金融机构使用多渠道方法服务其顾客,且越来越多地都开始使用移动技术了。为金融服务业的顾客服务需要高度可靠的基层软件。与顾客期望同步的需要,发布周期短暂且需要提供高质量的软件等都是开发移动软件中的难题——尤其像在app商店中,质量差的一眼就看出来了且对银行的声誉有所影响。所以,测试尤其是回归测试app开发中最重要的工作之一。但是如果不给你的顾客银行标准智能机,你该如何满足这些期望呢?使用多平台方法的移动测试自动化是应对该挑战的一个方法。本文中,我们将为你展示我们成功使用了该方法的一个实例项目的细节。
  项目内容
  一家奥地利银行正在寻找移动自动化解决方案以在多个平台(如Androidios)上测试他们的多个app。他们也想很好地覆盖其顾客们最常使用的手机和平板。基于该信息,我们想出了一个顾客移动测试策略来回答下列问题:
  --必须要测试哪种app
  --必须要覆盖哪些设备类型和型号?
  --必须要覆盖多少测试用例
  --迄今回归测试发挥了多少作用——该作用如何作用于该项目的框架的?
  我们的任务是实验覆盖了两种app的移动测试自动化。第一种:web app,必须在手机或平板上测试,AndroidiOS都要测试。第二种:混合型app,再次在AndroidiOS上测试,要在四台手机和四台平板上测试。为什么会有这样的区别?web app只依赖于web浏览器;而混合型app要考虑基础系统的更多功能,因此它需要在更多的设备模型上更彻底地测试。设备是根据顾客对其所使用设备的分析而选择的。
  挑战
  我们正在进行拥有60测试用例回归测试,其三分之二覆盖了web app,剩下的三分之一覆盖了混合型app回归测试一年执行四次,即,2app60测试用例14次。但单单如此并不是说你一开始就要将这些测试用例自动化;它也可能表示完全相反的意思——坚持手动,进行群体测试——如果没有下面几个但是的话:
  1.我们讲的是银行。银行不热衷将其测试外包到云或群体。一个测试服务供应商就足够了。
  2.只覆盖了60测试用例的实验一个季度进行一次——但它只是一个实验。总之,我们将可以重复使用我们十多个app测试代码。可重复使用很重要!
  至于所覆盖的技术,我们必须在iosAndroid平台上测试app——当然,要用划算的方法。
 计划
  进行实验不仅仅意味着将测试自动化。它还意味着进行一次精心研发的实验,其结果将为长达一年的成功的测试自动化构建基础。因此,在整个项目中我们的项目计划有接下来的四个阶段:

  工具选择是重要的理论步骤,挑选一个或几个候选工具进行一次多因素的分析。第二阶段是为特定项目或顾客选择最合适的工具并作出实际评价,设置和首次概念验证。证明了技术上工具能够用于项目中的话,进行实际自动化是为了试验。只有在首次概念验证中覆盖了测试用例的选择,自动化阶段才能覆盖完整的测试用例集。自动化意味着软件工程,并不存在没有测试的软件工程(至少应该如此),所以自动化阶段覆盖了第一轮自动化测试用例的执行。最后一步终于可以证明该方法是否对管理服务方法有效,需要使软件测试工业化,即用可预见方式使之变得标准且可执行。

  我们将七个预选工具缩小到(理论上)完全满足顾客需求的一个。为了实践证明理论,我们取60测试用例中的9个代表,设置测试环境并进行概念验证(PoC)。不论设置工作,常常,部分顾客背景下的概念验证是一个要花上不少时间的实验。你可以轻易地看见PoC的学习效果:没必要进行第二次环境设置,有了PoC的实验,我们可以轻松地从39测试用例增加到460个。最终这就是实际项目中的自动化速度。实验的最后四周都被浓缩成标准的一周测试周期。
  实施
  实验阶段开始时我们有七个候选工具,我们最终决定使用CalabashCalabash是一个基行为驱动开发BDD想法的开源测试框架。BDD将实际功能测试工作脱离了代码背后。这样就可以将测试工作分给以下两者:
  --领域专家(SME):SMEs很了解app的功能,但是多数情况下基本不了解代码。
  --测试自动化专家(TAE):TAEs很了解代码,但是多数情况下对app的预期行为了解的要少很多。
  有了BDD工具,领域专家可以确定人类可读形式的测试用例的功能。这样一个故事拥有如下形式:

此例中,我们发现一个混合型方法来测试自动化,该种方法通常被建议用于测试自动化。“混合型方法”意味着Calabash的测试自动化方法混合了基于动词的测试和数据驱动测试。上例中每一行都可视作一个描述“我按了Go按钮”一类行为的动词,太没技术含量以至领域专家不需要了解。数据驱动就是说我们不需要为我们想尝试的每个数据组合编写新的测试用例。反之,我们使用测试用例本身的参数。

  使用Calabash的移动测试自动化结构,像'When I enterinto"user"field'——以及一个明确了所考虑数据组合(下例中的表)的单个数据表。
  当然,测试用例的运行不会和上述一模一样。在第二步中,测试自动化专家进行实际执行:
  他们编写由动词触发的技术代码,从技术层面上通过发送信息或点击GUI要素来控制app,收集app的反馈并对反馈做出评价。下面是一则例子:

  在解析测试故事的代码时,Calabash试着使用正则表达式匹配找出匹配的代码并将之执行。这段代码是由‘When I enterinto"user"field’行触发的。对于第一轮测试,被"test123@example.com"用测试数据表中的邮箱地址的第一个数据值替代。调用上述代码时,可变文本被设置成可变文本的第一段,可变文本字段被设置为我们想访问(用户)的文本字段名。接着代码等待三秒,与web app同步并设置test123@example.com用户字段的文本。接着Calabash继续测试故事中的下一行。
  为了给大量测试用例和移动设备提供有效的测试自动化,有必要创建一个简明通用的测试自动化库(见图3.使用Calabash3的移动测试自动化结构)。该库包含所有可重复使用的步骤定义,要注意,那些步骤定义对于不同设备是可重复使用的,这样它们就可以在测试故事中透明使用了。这就避免了必须为不同设备多次编写并维护同一测试用例的花费。此外,应该充分将可重复使用的步骤库模块化以区别分别针对特定产品、特定产品线和分支的动词。以这种方式将自动化库模块化可以减少不同项目中部分相同的库并再次将测试自动化的开发花费最小化。Calabash满足了我们所有的节省费用的需求(它是一个开源工具,一开始就是免费的)和所支持的平台(IOSAndroid)。它也能轻易扩大顾客功能。这对我们而言很好,因为Calabash是最佳解决方案——但最初它只支持本地和混合型app,并不完美。为了使其能支持web app,我们创建了一个可以从Calabash内部控制的web浏览器。这意味着我们能够完全满足顾客需求。
  经验
  对于成功进行的四个阶段,我们提出了全面的项目计划。最重要的阶段是所选解决方案的实验阶段,一个基于Calabash的测试自动化框架。 我们是发现了一些障碍,但是通过使用简单的Calabash拓展可以相当轻松地将之解决。可重复使用性成了一个对我们的顾客来说和节省费用一样很重要的问题。有了Calabash,就有可能为iosAndriod app编写自动化测试用例,为两个平台都重复使用80%的测试代码。Web对象的代码也可以重复用于web app和混合型app,这样就再次大大减少了自动化工作。
版权声明:本文出自 SPASVO泽众软件测试网http://www.spasvo.com/news/html/201569155907.html
原创作品,转载时请务必以超链接形式标明本文原始出处、作者信息和本声明,否则将追究法律责任。

 

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Appium是一种用于移动应用程序自动化测试的开源工具。它允许您在不同的移动平台上进行测试,包括Android和iOS。如果您需要进行多终端自动化测试,您可以使用Appium来实现。 为了进行多终端自动化测试,您需要先安装Appium Desktop,这是一个包含了Appium Server和Appium Inspector工具的桌面应用程序。Appium Server用于与移动设备进行通信和控制,而Appium Inspector用于查看和分析应用程序的元素。 在安装完Appium Desktop后,您可以使用Appium Server来启动多个移动设备模拟器或连接的实际设备。然后,您可以使用Appium Inspector工具来查看应用程序的UI界面,并识别出需要进行测试的元素。 在编写自动化测试脚本时,您可以使用Appium提供的API来控制不同终端上的应用程序。您可以使用API来模拟用户的交互操作,例如点击按钮、输入文本等。通过编写适当的测试脚本,您可以同时在多个终端上执行自动化测试。 需要注意的是,为了实现多终端自动化测试,您需要在Appium配置文件中指定每个终端的相关信息,例如设备名称、平台版本等。这样,Appium才能正确地与每个终端进行通信和控制。 总结起来,要实现Appium的多终端自动化测试,您需要先安装Appium Desktop,然后使用Appium Server启动多个终端,最后使用Appium Inspector工具查看应用程序的UI界面并编写适当的测试脚本。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值