登陆注册
1816175

安卓app测试流程,app测试怎么测

兴仁信息网2023-09-19 08:26:040

如何设计Android APP测试用例

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

简介—分散装置里的测试

一般安卓开发者在其日常工作中面临的最大挑战之一是:终端设备和[url=]操作系统[/url]版本的范围太广。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是一个重大的挑战,但它可以用一个结构化的方法和正确的工具集合以及专业知识被有效解决掉。

请教做一个app项目要那些流程?

手机APP开发流程

手机 APP的开发流程越来越成熟了,因此,每年产生的APP也数以万计。就目前而言,在苹果的IOS平台与谷歌的安卓平台为主流,也有一些开发者仍坚守在黑莓和微软的操作平台,之所以他们不会放弃黑莓10或Windows Phone 8平台开发,主要是因为苹果严格控制开发商,而Android平台免费或者质量奇差的应用程序太多。

那么手机App软件开发流程是具体怎样的呢?

为此,粗略分享一下App软件程序开发流程。 1)需求分析和产品分析

当收到客户的需求之后,不是马上动手去做功能分析、产品逻辑架构或者任务流程。而是认真的分析需求。分析现有的解决方案,我们将要提供的解决方案会比现有的号多少?用户为什么要用我们的产品?在采集大量的数据之后,还要把数据汇成图表和客户汇报。以说服客户“这样做”而不要“那样做”。

2)产品故事版

在清晰需求分析和产品的目标之后。我们要为达到这个产品的目标制定具体的方案。开始的方案是模糊的,我们只知道有一个大概的前进方向和目标。如何实现我们并不清晰。当然我们也没有必要,也没有可能马上就清晰起来,这需要一个过程。这个过程我们使用的工具就是“故事版”。把产品、人、环境放置于一定的场景之中,通过场景中人和产品发生的故事去推理产品应该有哪些的功能和逻辑流程细节。这是一个感性的过程,同时也是理性的分析过程。

3)系统逻辑架构和任务流程

产品的策划和开发到此阶段已经开始越来越清晰了。我们已经模糊的知道了这个产品应该做什么和怎么做。但具体如何实施呢?因此,这时候我们需要弄清楚系统中有那些部分组成,他们的关系又是如何的。他们相互之间数据是如何交换、流通和协同工作的。除此之外还需要细化每一个部分的任务流程。

4)界面分析和线框原型制作

完成了任务流程。我们还需要对每个任务做细化的功能拆解。这一步骤就不详列了。在细化了功能的分解之后,我们要开始安排每个界面的具体的流程和界面当中应该有什么样的输入和输出的信息,以职称当前步骤的需求。比如登陆界面中应当有用户名、密码等信息输入框,同时也有确认、忘记密码、注册等功能按键以职称用户的多样性选择行为。在此阶段

如何对一个Android软件进行测试?

主要测试内容包括:

1、功能正确性测试;

根据这个安桌软件的需求,看它到底支持那些功能,对每个功能,编写测试用例,验证这个功能是否正确;例如:有注册,登陆,编辑消息,发送消息,删除消息,察看消息等功能,那么你就要测试这每个功能是否正确实现了。

2、界面易用性测试;

主要考虑(1)易理解性;(2)易学习性;(3)易操作性;是否达到要求。

3、兼容性测试;

不同安卓版本的兼容性;不同安卓设备的兼容性,例如:不同厂家的手机,PAD等;看该软件在不同的软件和硬件下显示是否正常,功能是否正确;

4、安全性测试;

用户信息是否不被泄漏等;

5、不同网络状态下的测试;

wifi和2g,3g不同的网络速度下的功能是否正确;没有网络连接的情况下会怎么样,等等。

android app怎样进行性能测试?

百度有个百度云测试是免费的可以测测

手机app测试有哪些工具盒方法

1、安卓黑盒测试工具

1)包括本身自带的monkey,Monkey是Android中的一个命令行工具,可以运行在模拟器里或实际设备中

2) robotium与appium,这些工具用于黑盒的自动化测试。可以在有源码或者只有APK 的情况下对目标应用进行测试。提供了模仿用户操作行为的API,比如在某个控件上点击,输入Text

等等。(推举你可以研究一下这个工具,开源的,我有资料)

2、白盒测试,Android在SDK中集成了JUnit框架。所以,你可以基于JUNIT框架进行安卓的白盒测试代码开发

3、安卓的测试方法其实与web测试方法大多类似,只是多了一些特殊的测试场景,例如-遍历测试、故事驱动、适配测试、电量测试、弱网测试、流量测试等

4、兼容性测试的话,一是可以利用虚拟机保证系统间的兼容性,但更多的还需要依靠真机测试,因为每个真机的上层API使用和渲染是不太一样的

如果你想要什么资料的话或者想一起学习研究的话,可以给我发邮件:test_sunny@hotmail.com

APP开发之后该怎么测试

1. UI 测试

app主要核ui与实际设计的效果图是否一致;交互方面的问题建议,可以先与产品经理确认,确认通过后,才开始让开发实施更改或优化

2. 功能测试

根据软件说明或用户需求验证App的各个功能实现,实际测试过程一般都是根据功能测试用例来执行。测试覆盖率基本上都是有测试用例主导,也就是说在功能测试部分,是检验测试用例是否有效以及完整的,也就导致另外一个问题,测试用例怎么写的问题,将另外一篇文章来单独阐述测试用例的编写方法。

3. 中断测试

模拟用户真实使用app是会遇到的中断情况进行测试.如: 网络的断网, 切换网络, 断电,来电话/短信,听音乐,切换到其他app, 打开其他app 的通知等

4. 兼容以及适配测试

新旧版本的在功能,逻辑层面的兼容测试, 同一个app 在不同系统版本运行,以及不同机型之间的适配测试

兼容测试:接口的兼容性测试能够保证大部分的功能完善;app在不同系统版本上保证运行

适配性: 屏幕,系统版本等(系统位数一定要考虑)

该部分通过第三方的云平台进行

5. 性能测试

可测试的方面

- 安装和启动时间

- CPU的占用

- 内存的占用

- 流量的耗用

- 电量的耗用

- 后端,测试App中的各类操作是否满足用户响应时间要求,主要是测试点在网速方面,2g,3g,wifi, 4g一定要覆盖到

- 后端 有网络并发

6. 稳定性测试,压力测试

1.在各种边界压力情况下(如电池、存储、网速等),验证App是否能正确响应

2.反复/长期操作下,系统资源是否占用异常;Android 可是使用adb命令

3.压力测试主要集中在后端,前端的压力测试目前测的较少

7.安全测试

App安全测试大概划分为以下几类:

1)从数据的本地存储到数据的传输、处理以及远程访问等各个环节,基于相应的安全标准/行业标准评估App的安全特性;

2)借鉴在Web App和网络安全测试的一些成功经验在智能终端App测试中进行裁减或适配;

3)检测App的用户授权级别,数据泄漏,非法授权访问等;

4)对App的输入有效性校验、认证、授权、敏感数据存储、数据加密等方面进行检测,以期发现潜在的安全问题;

5)基于各种通信协议或相应的行业安全标准检视App是否满足相应的要求。

8.用户体验测试

这个简单的说就是站在用户的角度上进行使用app,学习成本低,易上手等,可以进行用户盲测,根据用户反馈的意见进行修改。测试人员可以通过与其他竞争品进行对比, 或者根据较大厂商app的交互习惯进行比较。

9. 回归测试--一般这部分建议使用自动化测试, 如果没有自动化测试,可以根据以几方面进行测试

1.根据产品说明书或者功能文档进行功能确认

2.重新将主要优先级较高的测试用例执行一遍

3.重新验证bug

10. 线上测试

线上测试是产品上线之后一定要完成的,这部分可以根据场景化进行回归测试,其中网络环境要全部覆盖一遍

0000
评论列表
共(0)条
热点
关注
推荐