设计安卓 Apps测试用例






Erik Nijkamp([email protected]
testobject.com)是TestObject股份有限公司(其总部在柏林郊区的Hennigsdorf)的CEO。TestObject专攻移动领域的QA解决方案,并提供基于云的应用程序测试服务(该服务用直观的测试记录器从根本上简化能提供测试自动化并可以随时使用任一手机APP的测试的UI测试)。作为产品所有者,他专注于TestObject业务解决方案的战略联盟。他在硅谷(美国IBM研究所)及咨询公司(IBM德国股份有限公司)期间,他获得了非常宝贵的高科技领域的经验。

  在当今竞争激烈的市场上一个APP的成功离不开一个可靠的用户界面(UI)。因此,对功能和用户体验有一些特殊关注和照顾的UI的全面测试是必不可少的。当涉及到安卓平台及其提出的独特问题的数量(安卓就UI提出显著挑战)时,挑战变得更加复杂。关键字“碎片化”象征着移动应用全面测试的最大障碍,还表明了发布到市场上的所有形态、大小、配置类型的安卓设备所引起的困难。本文将介绍安卓模拟器如何能通过使用一些技巧和简单的实践提供覆盖大量设备类型的广泛测试。

  简介—分散装置里的测试
   一般安卓开发者在其日常工作中面临的最大挑战之一是:终端设备和操作系统版本的范围太广。OpenSignal进行的一项研究表明,2013年7月市场上有超过11,828的不同安卓终端设备,所有设备在类型/大小/屏幕分辨率以及特定配置方面有所不同。考虑到前一年的调查仅记录有3,997款不同设备,这实在是一个越来越大的挑战障碍。

图1.11,828 款安卓设备类型( OpenSignal研究, 2013年7月[ 1 ] )分布

  从一个移动APP开发角度出发,定义终端设备有四个基本特征
   1.操作系统:由“API指标”( 1 ?18
)专业定义的安卓操作系统版本( 1.1? 4.3 ),。
   2.显示器:屏幕主要是由屏幕分辨率(以像素为单位),屏幕像素密度(
以DPI为单位),和/或屏幕尺寸(以英寸为单位)定义的。 
   3.CPU:该“应用程序二进制接口” (ABI
)定义CPU的指令集。这里的主要区别是ARM和基于Intel的CPU。 
   4.内存:一个设备包括内存储器( RAM)和Dalvik
虚拟存储器( VM堆)的预定义的堆内存。 
  
这是前两个特点,操作系统和显示器,都需要特别注意,因为他们是直接由最终用户明显感受,且应该不断严格地被测试覆盖。至于安卓的版本,
2013年7月市场上有八个同时运行导致不可避免的碎片的不同版本。七月,近90%这些设备中的34.1 %正在运行Gingerbread版本(
2.3.3-2.3.7 ),32.3 %正在运行Jelly Bean( 4.1.x版),23.3 %正在运行Ice Cream Sandwich( 4.0.3
- 4.0.4 )。

图2.16款安卓版本分布(OpenSignal研究,2013年7月[1])

  考虑设备显示器,一项TechCrunch从2013年4月进行的研究显示,绝大多数(79.9%)有效设备正在使用尺寸为3和4.5英寸的“正常”屏幕。这些设备的屏幕密度在“MDPI”(160
DPI),“hdpi”(240 DPI)和“xhdpi”(320 DPI)之间变化。也有例外, 一种只占9.5%的设备屏幕密度低“hdpi”(120
DPI)且屏幕小。

图3. 常见的屏幕尺寸和密度的分布(谷歌研究,2013年4月)[2]

  如果这种多样性在质量保证过程中被忽略了,那么绝对可以预见:bugs会潜入应用程序,然后是bug报告的风暴,最后Google Play
Store中出现负面用户评论。因此,目前的问题是:你怎么使用合理水平的测试工作切实解决这一挑战?定义测试用例及一个伴随测试过程是一个应付这一挑战的有效武器。

  用例—“在哪测试”、“测试什么”、“怎么测试”、“何时测试”?
   “在哪测试”
  
为了节省你测试工作上所花的昂贵时间,我们建议首先要减少之前所提到的32个安卓版本组合及代表市场上在用的领先设备屏的5-10个版本的显示屏。选择参考设备时,你应该确保覆盖了足够广范围的版本和屏幕类型。作为参考,您可以使用OpenSignal的调查或使用手机检测的信息图[3],来帮助选择使用最广的设备。
  
为了满足好奇心,可以从安卓文件[5]将屏幕的尺寸和分辨率映射到上面数据的密度(“ldpi”,“mdpi”等)及分辨率(“小的”,“标准的”,等等)上。

图5.多样性及分布很高的安卓终端设备的六个例子(手机检测研究,2013年2月)[3]

  有了2013手机检测研究的帮助,很容易就找到了代表性的一系列设备。有一件有趣的琐事:30%印度安卓用户的设备分辨率很低只有240×320像素,如上面列表中看到的,三星Galaxy
Y S5360也在其中。另外,480×800分辨率像素现在最常用(上表中三星Galaxy S II中可见)。

  “测试什么”
  
移动APP必须提供最佳用户体验,以及在不同尺寸和分辨率(关键字“响应式设计”)的各种智能手机和平板电脑上被正确显示(UI测试)。与此同时,apps必须是功能性的和兼容的(兼容性测试),有尽可能多的设备规格(内存,CPU,传感器等)。加上先前获得的“直接”碎片化问题(关于安卓的版本和屏幕的特性),
“环境相关的”碎片化有着举足轻重的作用。这种作用涉及到多种不同的情况或环境,其中用户正在自己的环境中使用的终端设备。作为一个例子,如果网络连接不稳定,来电中断,屏幕锁定等情况出现,你应该慎重考虑压力测试[4]和探索性测试以确保完美无错。

图6. 测试安卓设备的各个方面

   有必要提前准备覆盖app最常用功能的所有可能的测试场景。早期bug检测和源代码中的简单修改,只能通过不断的测试才能实现。

  “怎么测试”
   将这种广泛的多样性考虑在内的一种务实方法是, 安卓模拟器 -
提供了一个可调节的工具,该工具几乎可以模仿标准PC上安卓的终端用户设备。简而言之,安卓模拟器是QA流程中用各种设备配置(兼容性测试)进行连续回归测试(用户界面,单元和集成测试)的理想工具。探索性测试中,模拟器可以被配置到一个范围广泛的不同场景中。例如,模拟器可以用一种能模拟连接速度或质量中变化的方式来设定。然而,真实设备上的QA是不可缺少的。实践中,用作参考的虚拟设备依然可以在一些小的(但对于某些应用程序来说非常重要)方面有所不同,比如安卓操作系统中没有提供程序特定的调整或不支持耳机和蓝牙。真实硬件上的性能在评价过程中发挥了自身的显著作用,它还应该在考虑了触摸硬件支持和设备物理形式等方面的所有可能终端设备上进行测试(可用性测试)。

  “何时测试”
   既然我们已经定义了在哪里(参考设备)测试 ,测试什么(测试场景),以及如何(
安卓模拟器和真实设备)测试,简述一个过程并确定何时执行哪一个测试场景就至关重要了。因此,我们建议下面的两级流程:
   1
.用虚拟设备进行的回归测试。 
这包括虚拟参考设备上用来在早期识别出基本错误的连续自动化回归测试。这里的理念是快速地、成本高效地识别bugs。
  
2 .用真实设备进行的验收测试。 
这涉及到:“策划推广”期间将之发布到Google Play
Store前在真实设备上的密集测试(主要是手动测试),(例如,Google Play[ 5 ]中的 alpha和beta测试组) 。
  
在第一阶段,测试自动化极大地有助于以经济实惠的方式实现这一策略。在这一阶段,只有能轻易被自动化(即可以每日执行)的测试用例才能包含在内。 
  
在一个app的持续开发过程中,这种自动化测试为开发人员和测试人员提供了一个安全网。日常测试运行确保了核心功能正常工作,app的整体稳定性和质量由测试数据透明地反映出来,认证回归可以轻易地与最近的变化关联。这种测试可以很轻易地被设计并使用SaaS解决方案(如云中的TestObject的UI移动app测试)从测试人员电脑上被记录下来。 
  
当且仅当这个阶段已被成功执行了,这个过程才会在第二阶段继续劳动密集测试。这里的想法是:如果核心功能通过自动测试就只投入测试资源,使测试人员能够专注于先进场景。这个阶段可能包括测试用例,例如性能测试,可用性测试,或兼容性测试。这两种方法相结合产生了一个强大的移动apps质量保证策略[
7 ] 。

  结论 - 做对测试
  
用正确的方式使用,测试可以在对抗零散的安卓的斗争中成为一个有力的工具。一个有效的测试策略的关键之处在于定义手头app的定制测试用例,并定义一个简化测试的工作流程或过程。测试一个移动app是一个重大的挑战,但它可以用一个结构化的方法和正确的工具集合以及专业知识被有效解决掉。

  版权声明:本文出自 SPASVO泽众软件测试网:http://www.spasvo.com/news/html/2014429143529.html

  原创作品,转载时请务必以超链接形式标明本文原始出处、作者信息和本声明,否则将追究法律责任。

时间: 2024-10-28 05:42:01

设计安卓 Apps测试用例的相关文章

【转】测试用例设计——WEB通用测试用例

现在项目做完了,我觉得还是有必要总结一下,学习到的内容.毕竟有总结才能有提高嘛!总结一下通用的东西,不管什么项目基本都可能会遇到,有写地方也有重复的或者有的是按照个人的习惯来总结的不一定都对,有不对的地方还是希望大家可以指正! 易用性 1.便于使用.理解.并能减少用户发生错误选择的可能性 2.当数据字段过多时,使用便于用户迅速吸取信息的方式表现信息,突出重点信息,标红等方式  3.显示与当前操作相关的信息,给出操作提示.  4.界面要支持键盘自动浏览按钮功能,即按Tab键.回车键的自动切换功能

测试用例设计策略

(1)首先进行等价类划分,包括输入条件和输出条件的等价划分,将无限测试变成有限测试,这是减少工作量和提高测试效率最有效的方法.(2)在任何情况下,都必须使用边界值分析法.经验表明,用这种方法设计出的测试用例发现程序错误的的能力最强.(3)可以使用错误推测法追加一些测试用例,这需要依靠测试工程师的智慧和经验.(4)对照程序逻辑,检查已设计出的测试用例的逻辑覆盖程度.如果没有达到要求的覆盖标准,应当再补充足够的测试用例.(5)如果程序的功能说明中含有输入条件的组合情况,则一开始就可以选用因果图法和判

分层设计测试用例

设计好测试用例对测试执行和测试管理都大有裨益.对测试执行的好处不言而喻,拿着一个好的测试用例,即便是一个测试菜鸟做测试执行也能保证用例对应功能得到覆盖.对测试管理而言,也非常有帮助,测试用例设计架构清晰,就能保证测试计划制定.测试任务分配能够更加准确.对自动化测试实施更加有好处.如果测试用例设计不清晰,不同的人按照同样的用例设计出的自动化测试脚本差异就会比较大. 有些项目的测试用例,会随着软件版本的不断变更规模不断增大.在设计测试用例之初就依据某个标准把测试用例划分成不同的模块,这样之后测试用例

移动App崩溃测试用例设计

移动App测试与传统台式机测试相比有一定的复杂性.这些复杂性可以被分类为: 环境(大量的设备,各种移动OSs,适应频繁OSs变化) . 设备(触摸式和非触摸式设备,有限的内存容量,电池耗电量) . 网络(不同的网络和运营商,在不好或无网络的情况下的App行为,离线支持) . 可用性(方向,触摸,多触摸,缩放,分页和导航的局限性,各种干扰,如来电,来电短信,闹钟,和低电量警报) . 移动App崩溃原因[一些崩溃原因(排名不分先后)]: 为什么移动App经常崩溃?App崩溃有几个原因:从平台或环境到

测试用例的设计思路

在结对项目中,我负责测试用力的设计以及执行.在设计测试用例的过程中,我运用到了以下思路. 良好测试用例的特征: 可以最大程度地找出软件隐藏的缺陷 可以最高效率的找出软件缺陷 可以最大程度地满足测试覆盖要求既不过分复杂.也不能过分简单 使软件缺陷的表现可以清楚的判定 测试用例包含期望的正确的结果待查的输出结果或文件必须尽量简单明了 不包含重复的测试用例 测试用例内容清晰.格式一致.分类组织 测试用例的几种设计思路: 对于白盒测试: 1. 语句覆盖:设计若干个测试用例,使程序中的每个可执行语句至  

转:黑盒测试用例设计方法

1. 概述 黑盒测试用例设计方法包括等价类划分法.边界值分析法.错误推测法.因果图法.判定表驱动法.正交试验设计法.功能图法等. 2. 等价类划分法 2.1.              概念 等价类划分法是把程序的输入域划分成若干部分(子集),然后从每个部分中选取少数代表性数据作为测试用例.每一类的代表性数据在测试中的作用等价于这一类中的其他值. 2.2.              等价类划分法的应用 等价类是指某个输入域的子集合.在该子集合中,各个输入数据对于揭露程序中的错误都是等效的,并合理

测试的艺术:测试用例的设计

由于时间和成本的约束,软件测试的最关键问题是: 在所有可能的测试用例中,哪个子集最有可能发现最多的错误 测试方法: 黑盒测试 等价类划分(Equivalence Partitioning) 1. 严格控制测试用例的增加,减少为达到“合理测试”的某些既定目标而必须设计的其他测试用例的数量 2. 它覆盖了大部分其他可能的测试用例. 划分了等价类后,就可以说,如果对该集合中某个元素所进行的测试没有发现错误的话,那么对该集合中其他元素所进行的测试也不大可能会发现错误. 使用等价类划分方法设计测试用例主要

设计测试用例的四条原则

今天是2011年的第一天,2010年就这样匆匆忙忙,紧紧张张地过去了.这一年里来来去去,变化最大的就是很多一起工作了多年的同事离开了,很多都去了"更给力”的地方,呵呵!公司里来来往往是很正常的,想想我最近一次换到“更给力”的地方,那都是5年前了.总之,现在的地方还是挺给力的,好好工作,争取2011年有更大的进步,呱唧呱唧! 测试用例设计的最基本要求:覆盖住所要测试的功能.这是再基本不过的要求了,但别看只是简单的一句话,要能够达到切实覆盖全面,需要对被测试产品功能的全面了解.明确测试范围(特别是要

三角形的测试用例设计

在三角形计算中,要求三角形的三个边长:A B C . 1. 当三边不可能构成三角形时提示错误,可构成三角形时计算三角形周长. 2.若是等腰三角形打印“等腰三角形”, 若两个等腰的平方和等于第三边平方和,则打印“等腰直角三角形”. 3.若是等边三角形,则打印:“等边三角形”. 4.画出程序流程图并设计一个测试用例. 分析一下: 1.构成三角形的条件:任意两边之和大于第三边: 2.构成等腰三角形的条件:任意两边相等: 3.构成等腰直角三角形的条件:任意两边相等,而且两条边的平方和等于第三边的平方和: