包含深入教程的测试移动应用程序的完整指南:
移动技术和智能设备是当前的趋势,并且将改变我们所知道的世界的未来。 我们都可以保证 它,可以吗? 现在,如果我列出我们使用这些移动设备的用途,那将是业余的。 你们都知道–也许比我们更好。
让我们直接了解本教程的内容
移动测试简介:
教程1: 移动测试简介 教程2: iOS应用测试 教程3: Android应用测试 教程4 : 移动测试的挑战和解决方案 教程5: 为什么移动测试很难?
移动设备测试:
教程#6: 在退出市场时测试Android版本 教程7 : 如何在低端设备上测试移动应用 教程8 : 移动应用程序的现场测试 教程9: 手机型号与操作系统版本:哪个应该首先测试?
移动用户界面测试:
教程10: 移动应用程序的UI测试 教程11: 移动响应测试
移动测试服务:
教程12: 基于云的移动应用程序测试 教程13: 移动测试服务 教程14 : 移动应用Beta测试服务 教程15: 移动应用开发公司 教程16: 基于云的移动应用程序测试服务提供商
移动应用性能和安全性测试:
教程17: 使用BlazeMeter进行移动应用程序性能测试 教程18 : 移动应用安全测试准则
移动测试工具:
教程#19: Android应用测试工具 教程20: 最佳移动应用程序安全性测试工具 教程 21:58个最佳移动测试工具
移动自动化测试:
教程#22: Appium移动自动化工具教程 教程#23: Appium Studio教程 教程#24: 自动化的Android应用程序使用TestComplete工具 教程#25: Robotium教程- Android应用程序的UI测试工具 教程26: Selendroid教程:移动自动化框架 教程27: pCloudy教程:在真实设备上进行移动应用测试 教程28: Katalon Studio和Kobiton的基于云的设备场教程
移动测试职业:
教程#29: 如何快速完成移动测试工作 教程30: 移动测试面试问题和简历 教程#31: 移动测试面试问题第2部分
让我们从本系列的第一个教程开始。
教程1:移动应用程序测试简介 已经一去不复返电话曾经是坐在一个角落里,有响,让我们的注意力或计算机是只有少数人使用一台机器的设备的日子 - 他们现在我们是─窗口的扩展被告知的世界和虚拟仆人。
计算机风靡一时,改变了我们人类的思维,行为,学习和生存方式。
如今,移动解决方案已经占领了市场。 人们不想打开笔记本电脑/ PC的所有功能,而是希望手持设备快速执行所有功能。
因此,我们交付给客户的移动解决方案应进行良好的测试。 本教程适用于已经进行了移动测试的人或最近切换到该测试的人。 由于我们已经有很多关于移动测试相关术语定义的教程,因此我们将直接处理本教程的范围。
本教程既是介绍,也是您的移动测试指南。 所以,通读!
移动测试的类型 有广泛2种测试的是发生在移动设备上:
#1 硬件测试:
该设备包括内部处理器,内部硬件,屏幕尺寸,分辨率,空间或内存,相机,无线电,蓝牙,WIFI等。有时也称为简单的“ 移动测试 ”。
#2。 软件或应用程序测试:
在移动设备上工作的应用程序及其功能已经过测试。 它被称为“ 移动应用测试 ”,以区别于先前的方法。 即使在移动应用程序中,也有一些基本的差异对于理解非常重要:
a)本机应用程序:本机应用程序是为在移动设备和平板电脑等平台上使用而创建的。 b)移动Web应用程序是服务器端应用程序,可通过连接到移动网络或无线网络(如WIFI),使用Chrome,Firefox等不同的浏览器访问移动网站。 c)中混合应用程序是本机应用程序和web应用程序的组合。 它们在设备上运行或脱机运行,并使用HTML5和CSS等网络技术编写。
几乎没有什么区别可以区分这些区别:
本机应用程序具有单一平台关联性,而移动Web应用程序具有跨平台关联性。 本机应用程序都写在喜欢的SDK平台,同时移动Web应用程序与Web技术如HTML,CSS,asp.net,Java和PHP编写的。 对于本机应用程序,需要安装,而对于移动网络应用程序,则不需要安装。 可以从Play商店或应用商店中更新本机应用,而移动Web应用是集中更新。 许多本机应用程序不需要Internet连接,但是对于移动Web应用程序,这是必须的。 相比于移动网络应用时,本机应用程序的工作速度更快。 本地应用程序是从诸如Google Play商店或移动网络为网站的应用程序商店之类的应用程序商店安装的,并且只能通过Internet进行访问。 本文的其余部分将与移动应用程序测试有关。
移动应用测试的意义 由于以下原因,在移动设备上测试应用程序比在桌面上测试Web应用程序更具挑战性。
不同范围的移动设备,具有不同的屏幕尺寸和硬件配置,例如硬键盘,虚拟键盘(触摸屏)和轨迹球等。 各种各样的移动设备,例如HTC,三星,苹果和诺基亚。 不同的移动操作系统,例如Android,Symbian,Windows,Blackberry和IOS。 不同版本的操作系统,例如iOS 5.x,iOS 6.x,BB5.x,BB6.x等。 GSM和CDMA等不同的移动网络运营商 。 建议您频繁进行更新(例如Android- 4.2、4.3、4.4,iOS-5.x,6.x),并建议每次更新都要进行新的测试,以确保不影响应用程序功能。 与任何应用程序一样,移动应用程序测试也非常重要,因为某个产品的客户群通常是数百万个,而且从来没有人发现带有错误的产品。 这往往导致金钱损失,法律问题和无法弥补的损害品牌形象。
移动和桌面应用程序测试之间的基本区别: 很少有明显的方面使移动应用程序测试与桌面测试不同
在桌面上,该应用程序在中央处理器上进行了测试。 在移动设备上,该应用程序已在三星,诺基亚,苹果和HTC等手机上进行了测试。 移动设备的屏幕尺寸小于台式机。 移动设备的内存少于台式机。 像2G,3G,4G或WIFI手机使用的网络连接,其中桌面使用宽带或拨号连接。 用于桌面应用程序测试的自动化工具可能不适用于移动应用程序。 移动应用测试的类型: 为了解决上述所有技术方面的问题,以下类型的测试是在移动应用程序进行。
可用性测试 -为了确保移动应用是易于使用,并且提供了一个满意的用户体验给客户 兼容性测试 –根据要求在不同的移动设备,浏览器,屏幕尺寸和操作系统版本中测试应用程序。 接口测试 -菜单选项,按钮,书签,历史记录,设置和应用程序的导航流程测试。 服务测试 -测试应用程序的服务,在线和离线。 低级资源测试 :测试内存使用情况,自动删除临时文件,本地数据库增长问题(称为低级资源测试)。 性能测试 –通过将连接从2G,3G更改为WIFI,共享文档,电池消耗等来测试应用程序的性能。 运营测试 –测试备份和恢复计划,如果电池电量不足或从商店升级应用程序时数据丢失。 安装测试 –通过在设备上安装/卸载应用程序来进行验证。 安全测试 –测试应用程序以验证信息系统是否保护数据。 移动应用测试策略 测试策略应确保符合所有质量和性能准则。 这方面的一些提示:
1)选择设备 – 分析市场并选择广泛使用的设备。 (此决定主要取决于客户端。客户端或应用程序构建者会考虑某些设备的受欢迎程度因素以及应用程序的市场需求,以决定使用哪种手机进行测试。)
2)仿真器–这些仿真器在 开发的初始阶段,因为它们可以快速有效地检查应用程序。 仿真器是一个系统,可以在不更改软件本身的情况下将软件从一个环境运行到另一个环境。 它复制的特点和工作实际系统上。
移动模拟器的类型
设备仿真器-由设备制造商提供 浏览器模拟器-模拟移动浏览器环境。 操作系统仿真器-Apple提供了iPhone,Microsoft Windows Phone和Google Android手机仿真器 推荐工具 #1)实验
Experitest让你无论你在哪里,以一个大的选择实/模拟iOS和Android设备的即时访问,使您可以轻松满足严格的移动应用程序交付时间和要求可靠的自动化移动测试。
体验新 => 访问Experitest网站
#2)Kobiton
Kobiton是一种经济实惠且高度灵活的基于云计算的移动体验平台,加速了测试和使用真实设备上的两个原生的Android,Web和应用程序混合和iOS的交付。 他们的新脚本的自动化测试可以帮助球队,没有编码专业知识,产生轻松开放的标准Appium脚本。
科比通新 => 访问Kobiton网站
几个洒脱的列表中使用移动设备模拟器
一世。 手机仿真器 –用于测试iPhone,Blackberry,HTC,三星等手机。
移动设备模拟器2 ii。 MobiReady –这样,我们不仅可以测试Web应用程序,还可以检查代码。
移动设备模拟器3 iii。 Responsivepx –它检查网页的响应,外观和网站的功能。
移动设备模拟器4 iv。 Screenfly –它是可自定义的工具,用于测试不同类别的网站。
移动设备模拟器5 3)后的发展令人满意的水平是完整的移动应用程序,你可以移动到测试更真实的生活场景为基础的测试物理设备上。
4)考虑基于云计算的测试: 云计算基本上是通过Internet在多个系统或网络上运行的设备,可以在其中测试,更新和管理应用程序。 为了进行测试,它在模拟器上创建了基于Web的移动环境以访问移动应用程序。
基于云的移动测试 优点:
备份和recovery-云计算自动进行备份您的数据从远程位置进行恢复,并轻松地将数据修复的影响。 而且,存储容量是无限的。 可以从不同的设备和任何地方访问云。 云计算是成本效益,易于使用,维护和更新。 快速部署。 基于Web的界面。 可以在多个设备上并行运行相同的脚本。 缺点
少控制 -由于应用程序在远程或第三方环境中运行,用户具有有限的控制和访问的功能。 Internet连接问题 –设置在Internet上。 网络问题会影响可用性和功能 安全和隐私问题 -云计算是互联网的计算并没有什么在互联网上完成安全的,所以数据的黑客有机会更多。 5) 自动化与手动测试
如果应用程序包含新功能,请手动对其进行测试。 如果应用程序需要测试一次或两次,请手动进行。 自动化用于回归测试用例的脚本。 如果重复进行回归测试,则自动化测试非常适合。 自动处理复杂场景的脚本,如果手动执行则很费时间。 有两种自动化工具可用于测试移动应用程序:
基于对象的移动测试工具 –通过将设备屏幕上的元素映射到对象来实现自动化。 这种方法是独立的屏幕尺寸,主要用于Android设备。
例如:-Ranorex,您好解决方案 基于图像的移动测试工具 –基于元素的屏幕坐标创建自动化脚本。
例如: - Sikuli,茄子,RoutineBot 6)网络 配置也是移动测试的必要部分。 它以验证在不同的网络,如2G,3G,4G或WIFI应用是很重要的。
测试移动应用程序的测试用例 除了基于功能性测试的情况下,移动应用测试需要特殊的测试情况下,应涵盖以下情形。
电池使用 -保持电池消耗的轨道在运行在移动设备上的应用程序是很重要的。 应用程序的速度-不同设备,不同内存参数,不同网络类型等的响应时间 数据要求 –用于安装以及验证数据计划受限的用户是否能够下载它。 内存需求 –再次下载,安装和运行 应用程序的功能 -确保应用程序没有崩溃,由于网络出现故障或其他任何东西。 下载一些示例测试用例,以测试移动应用程序:
=> 下载移动应用示例测试案例
测试移动应用程序中的典型活动和过程 测试范围取决于要检查的许多要求或对应用程序进行更改的程度。 如果变化很小,那么将进行一轮完整性测试。 如果发生重大和/或复杂的更改,建议完全回归 。
示例应用程序测试项目 :ILL(国际实验室学习),旨在帮助管理员,出版商创建协作网站的应用程序。 讲师使用Web浏览器从一组功能中进行选择,以创建满足其要求的课程。
移动测试流程:
第1步。 识别类型的测试 :作为一个ILL申请,适用于浏览器,所以它是强制性的,以测试使用不同的移动设备都支持的浏览器这个应用程序。 我们需要做的与手动和自动化测试用例的组合,不同的浏览器易用性,功能性和兼容性测试。
第2步。 手动和自动测试:此项目遵循的方法是敏捷,迭代需要两个星期。 每两周开发一次。 团队将发布测试团队和测试团队的一个新的版本将运行自己的测试用例QA环境。 自动化团队创建了一套基本功能的脚本并运行,以帮助确定新版本是足够稳定测试脚本。 手动测试团队将测试新功能。
JIRA用于编写验收标准; 维护测试用例并记录/重新验证缺陷。 一旦迭代越过, 迭代 计划会议召开地方开发。 团队,产品负责人,业务分析师和质量检查团队将讨论进展顺利的地方以及需要改进的地方 。
步骤#3。 Beta测试: QA团队完成回归测试后,该版本将移至UAT。 用户验收测试由客户端完成。 他们重新验证所有的错误,以确保每一个错误是固定的,并且应用程序按预期工作在每一个浏览器的批准。
第四步。 性能测试:性能测试小组测试使用JMeter的脚本的Web应用程序,并与不同的应用负载的性能。
步骤#5。 浏览器测试 :Web应用程序被使用不同的模拟工具,以及使用物理真正的移动设备都跨多个browsers-测试。
步骤#6。 发射计划:每4个星期后,测试移动到分期,在最后一轮结束的情况下进行这些设备上的测试,以确保该产品是为生产做好准备结束。 然后,它上线了!
如何在Android和iOS平台上测试移动应用程序 测试移动应用 这是谁测试它们既iOS和Android平台的应用程序,以了解两者之间的差别的测试非常重要。 iOS和Android有很多差异WRT的的外观和感觉,应用程序的意见,编码标准,性能等
Android和iOS测试之间的基本区别 您可能已经遍历了所有教程,在这里我做了一些主要的区别,它们反过来将帮助您进行测试:
#1)由于我们有很多在市场上的Android设备和所有的人都用不同的屏幕分辨率和尺寸,因此这是主要区别之一。
例如 ,当使用Nexus 6相比,有您的应用程序布局和设计上取得成功的设备的一个扭曲的高可能性三星S2尺寸太小。 因为只有在市场上进出的许多手机可数的器件具有类似的决议概率是iOS中低。
例如 ,在iPhone 6及更高版本出现之前,所有较早的版本都只有类似的尺寸。
#2)实施例断言上述的一点是,在Android的开发者必须使用1X,2X,3X,4X和5倍的图像,以支持针对所有设备的图像分辨率而iOS的只使用1X,2X和3X。 然而,它成为测试人员的责任,以确保图像和其他UI元素都正确显示在所有设备上。
您可以参考下图来了解图像分辨率的概念:
行动解析度 #3)由于市场上充斥着Android设备,因此必须以保持性能稳定的方式编写代码。 所以,这是很可能的是,你的应用程序的行为可能慢慢低端设备。
#4) Android的另一个问题是软件升级并非一次就适用于所有设备。 设备制造商决定何时升级其设备。 使用新操作系统和旧操作系统测试所有内容变得非常困难。
同样,对于开发人员来说,修改其代码以同时支持两个版本也成为繁琐的任务。
例如 ,当Android 6.0出现时,发生了重大变化,因为此操作系统开始支持应用程序级别权限。 为了进一步说明,用户还可以在应用程序级别更改权限(位置,联系人)。
现在测试团队欠责任,以确保显示的权限屏幕上的应用程序启动Android 6.0及以上,并没有出现在较低版本的许可屏幕。
#5)从测试的角度来看,预生产版本(即测试版)的测试是两个平台上不同。 在Android中,如果用户被添加到测试用户名单,然后他就可以看到更新的测试版建立在只有当他被签署成Play商店与被添加为测试用户相同的电子邮件ID Play商店。
移动测试的关键因素 我在手机测试工作了近2年在本教程下文提到的iOS和Android平台和所有的关键点是从我个人的经验,并得到了一些在项目中遇到问题的。
定义自己的测试范围 每个人都有自己的测试风格。 一些测试人员只是专注于从他们的眼睛中看到的内容,其余的则对任何移动应用程序幕后的工作充满热情。
如果你是在iOS / Android的测试,我建议你至少让自己熟悉一些常见的局限性/ Android的基本功能或iOS,因为它总是增加价值,我们的测试风格。 我知道如果不举一些例子,事情很难理解。
以下是一些示例:
对于低于6.0.1版本的Android设备,我们无法在应用程序级别上更改诸如相机,存储等权限。 对于低于10.0版本的iOS,没有呼叫工具包。 刚才给大家介绍一下简单的话,呼叫套件用于通过调用应用程序,并显示在用户从主叫应用程序,如WhatsApp的,Skype公司等获得的呼叫而对于IOS版本低于10.0,我们看到这些调用全屏视图作为通知横幅。 你们中许多人可能会遇到在Paytm在您的应用程序没有进行重定向你如果你想加钱到你的钱包银行的支付页面的问题。 我们认为上述问题与我们的银行或Paytm服务器有关,但仅仅是我们的AndroidSystemWebView没有更新。 对编程的了解很少对您总是有帮助的,并可以与您的团队分享。 简单地说,当一个应用程序在它打开任何网页,然后AndroidSystemWebView应该更新。 测试范围 不要限制您的测试 测试不仅限于探索移动应用程序和记录错误。 作为质量检查人员,我们应该知道所有命中服务器的请求以及从服务器中得到的响应。
配置Putty以查看日志或验证日志的相加逻辑,具体取决于项目中使用的内容。 它不仅可以帮助你了解应用程序的端至端流,但也会让你更好的测试,你得到更多的想法和方案现在。
移动服务器浮点图 原因:没有任何理由,没有任何东西进入这个世界。 任何声明都应有正当理由。 分析日志背后的原因是,在日志中观察到许多异常,但它们对UI没有任何影响,因此我们没有注意到它。
那么,我们应该忽略它吗?
不,我们不应该。 它对用户界面没有任何影响,但可能是一个未来派的担忧。 如果这些异常持续蔓延,我们可能会看到我们的应用崩溃。 正如我们在最后一句提到有关应用程序崩溃,这导致了QA有机会获得该项目的crashlytics。
Crashlytics就是崩溃与时间和设备模型一起记录的工具。
现在在这里的问题是,如果测试仪已经看到应用程序,然后轰然为什么他需要操心crashlytics?
答案很有趣。 有些崩溃可能在UI上不可见,但它们记录在crashlytics上。 这可能是从内存崩溃或以后可能影响性能的一些致命的异常。
跨平台测试 跨平台交互测试非常重要。
引用一个简单的例子 ,说你是在例如WhatsApp聊天应用程序,它支持发送图片和视频,应用程序是建立在双方的iOS和Android平台(开发可能会或可能不会在同步准备)工作
确保测试的Android的沟通和iOS的,被认为是iOS上的原因,使用“目标C”,而Android的程序是基于Java的,并且由于他们两个在建在不同的平台,有时额外的修复需要在应用进行识别来自不同语言平台的字符串。
注意您的移动应用程序的大小 移动测试仪的另一个重要的建议-请保持每次发布后,检查您的应用程序的大小 。
我们应确保应用程序的大小不会因为它的大尺寸达到一个地步,连我们作为最终用户将不希望下载这个应用程序。
测试应用程序升级方案 对于移动测试人员, 应用程序升级测试非常重要。 确保您的应用程序不会在升级时崩溃,因为开发团队可能会完成版本号的不匹配。
数据保存也为喜好的任何用户已保存在以前的版本时,他升级的应用程序应该保留同样重要。
例如 ,一个用户可能在像PayTm等应用中保存自己的银行卡信息
设备操作系统可能不支持App 听起来不错?
是的,许多设备可能不支持您的应用。 你们中许多人一定要知道厂商编写自己的包装上美国的顶部,它可能是可能是您的应用程序的任何SQL查询不与设备兼容,因此它抛出一个异常,它甚至会导致不启动该手机上的应用程序。
这里的重点是–尝试在自己的设备上使用您的应用程序,但办公室中使用的设备除外。 你看到你的应用中的一些问题,这是很可能的。
应用权限测试 列表上的下一个是移动应用程序的权限测试 。 几乎每一个第二应用要求其用户访问其手机上的联系人,相机,图库,位置等等。我已经看到了少数测试者谁做的不是测试这些权限的正确组合是错误的。
我记得一个实时的例子 ,当我们在测试其中有共享图像和音频文件的所有功能聊天应用。 存储权限设置为否。
现在,当用户单击“摄像机”选项时,直到将存储权限设置为“是”,它才打开。 该场景被忽略,因为Android Marshmallow具有此功能,如果存储权限设置为NO,则该相机无法使用该相机。
范围比我们在上面的段落已经讨论了进一步延伸。 我们应该确保该应用程序不要求任何未使用的权限。
任何熟悉软件行业的最终用户都不会下载要求太多权限的应用程序。 如果您已从应用中删除了任何功能,请确保删除该功能的权限屏幕。
与市场中相似和流行的应用程序进行比较 故事的寓意 –如果您有疑问,请不要自己总结。 与同一平台上的其他类似应用程序进行比较,可以进一步证明您认为被测功能可以正常工作。
全面了解Apple的构建拒绝标准 最后,您中的大多数人可能遇到过您的产品遭到Apple拒绝的情况。 我知道这个话题不会感兴趣的读者的主要部分,但它总是好的,知道苹果的排斥政策。
作为测试人员,我们很难满足技术方面的要求,但是仍然存在一些测试人员可以处理的拒绝标准。
有关更多信息,请单击此处。
永远站在前脚 作为一名测试人员,不要让事情从开发团队/经理那里移交给您的法庭。 如果您对测试充满热情,请“始终站在前脚” 。 尝试搞自己在其中发生以及活动的代码涉及到你的水桶测试之前。
最重要的是,守望着取其项目中使用来自客户端的门票所有最新的更新和业务分析师JIRA,QC,MTM或。 此外,如果需要修改,请准备好分享您的观点。 这适用于在各种领域和平台上工作的所有测试人员。
直到并且除非我们不觉得该产品是我们自己的产品,否则我们永远不应该为现有功能的新改进或更改提供建议。
保持你的应用程序在后台很长一段时间(12-24小时) 我知道这听起来很奇怪,但是幕后的逻辑很多,我们所有人都不了解。
我分享这一点,因为我已经看到了应用程序启动之后崩溃,说之后,从后台状态下约14个小时。 原因可能取决于开发商如何编码它是什么。
让我分享一个实时示例:
就我而言,令牌到期是其背后的原因。 对于其中一个聊天应用程序,如果在12到14个小时后启动,它将被卡在连接横幅上,并且直到被杀死并重新启动后才可以连接。 这类事情很难捕获,并且在某种程度上,它使移动测试更具挑战性和创造性。
应用程序的性能测试 在移动世界中,应用程序的性能会影响您的应用程序在全球范围内得到认可的程度。 作为一个测试团队,它变得太重要了,检查你的应用程序的响应和更重要的是当大量用户正在使用它一起它是如何工作的。
例:
让我们谈谈PayTm。
所有人都必须单击PayTm应用程序中的“添加资金”选项,然后显示您钱包中的余额。 如果我们考虑的是怎么回事幕后,则是会在与PayTm用户名与服务器的请求,服务器发回与您的账户余额的响应。
例 以上情况仅在一个用户访问服务器时发生。 我们需要确保,即使在1000个用户点击服务器,他们应当得到很好的响应时间,因为最终用户的易用性是我们的首要目标。
结论 该移动测试似乎是在开始的时候很容易我会被重新迭代结束本教程,但你坚持你挖就会明白,这是不容易的,以确保任何开发将在数千台设备的顺利运行世界各地。
您通常会看到仅最新和最后几个版本的OS支持的应用程序。 然而,它成为测试人员的责任,以确保他们不会错过任何场景。 它们是需要考虑到许多其他的点,但我没有提到的其他教程已经重复的。
场景,如电池消耗,中断测试,在不同的网络(3G,无线网络),测试,同时交换网络,移动应用的猴子测试等都是有用的,当涉及到移动测试测试。
对于真正的测试环境,测试人员的态度非常重要。 直到并且除非您热爱工作,否则您将不会费心做本教程中提到的事情。
我一直在这个领域大约6年了,我非常清楚地知道,这些任务获得,有时单调,但也有很多其他的东西,我们可以做我们自己做那些单调的任务有点意思。
设计正确的测试策略,选择正确的手机模拟器,设备和移动测试工具可以确保我们有100%的测试覆盖率,帮助我们包括安全性,可用性,性能,功能和兼容性为基础的测试到我们的测试套件。
嗯,这一直是我们努力实现我们的读者在移动应用程序测试指南多个请求。
作者 :感谢Swapna,Hasnet和许多其他移动测试专家帮助我们编译了本系列!
在我们的下一篇文章中,我们将讨论更多有关 iOS应用测试。