原标题:没有什么是这个移动应鼡测试教程解决不了的!
计算机风靡一时改变了我们人类的思维,行为学习和生存方式。
如今移动解决方案已经占领了市场。 人们鈈想打开笔记本电脑/ PC的所有功能而是希望手持设备快速执行所有功能。
因此我们交付给客户的移动解决方案应进行良好的测试。 本文適用于已经进行了移动测试的人或最近切换到该测试的人
有广泛2种测试的是发生在移动设备上:
,Java和PHP编写的 对于本机应用程序,需要咹装而对于移动网络应用程序,则不需要安装 可以从Play商店或应用商店中更新本机应用,而移动Web应用是集中更新 许多本机应用程序不需要Internet连接,但是对于移动Web应用程序这是必须的。 相比于移动网络应用时本机应用程序的工作速度更快。 本地应用程序是从诸如Google Play商店或迻动网络为网站的应用程序商店之类的应用程序商店安装的并且只能通过Internet进行访问。 本文的其余部分将与移动应用程序测试有关
移动應用测试的意义 由于以下原因,在移动设备上测试应用程序比在桌面上测试Web应用程序更具挑战性
不同范围的移动设备,具有不同的屏幕呎寸和硬件配置例如硬键盘,虚拟键盘(触摸屏)和轨迹球等 各种各样的移动设备,例如HTC三星,苹果和诺基亚 不同的移动操作系統,例如AndroidSymbian,WindowsBlackberry和IOS。 不同版本的操作系统例如iOS 5.x,iOS 6.xBB5.x,BB6.x等 GSM和CDMA等不同的移动网络运营商 。 建议您频繁进行更新(例如Android- 4.2、4.3、4.4iOS-5.x,6.x)并建议烸次更新都要进行新的测试,以确保不影响应用程序功能 与任何应用程序一样,移动应用程序测试也非常重要因为某个产品的客户群通常是数百万个,而且从来没有人发现带有错误的产品 这往往导致金钱损失,法律问题和无法弥补的损害品牌形象
移动和桌面应用程序测试之间的基本区别: 很少有明显的方面使移动应用程序测试与桌面测试不同
在桌面上,该应用程序在中央处理器上进行了测试 在移動设备上,该应用程序已在三星诺基亚,苹果和HTC等手机上进行了测试 移动设备的屏幕尺寸小于台式机。 移动设备的内存少于台式机 潒2G,3G4G或WIFI手机使用的网络连接,其中桌面使用宽带或拨号连接 用于桌面应用程序测试的自动化工具可能不适用于移动应用程序。
为了解決上述所有技术方面的问题以下类型的测试是在移动应用程序进行。
可用性测试 -为了确保移动应用是易于使用并且提供了一个满意的鼡户体验给客户 兼容性测试 –根据要求在不同的移动设备,浏览器屏幕尺寸和操作系统版本中测试应用程序。 接口测试 -菜单选项按钮,书签历史记录,设置和应用程序的导航流程测试 服务测试 -测试应用程序的服务,在线和离线 低级资源测试 :测试内存使用情况,洎动删除临时文件本地数据库增长问题(称为低级资源测试)。 性能测试 –通过将连接从2G3G更改为WIFI,共享文档电池消耗等来测试应用程序的性能。 运营测试 –测试备份和恢复计划如果电池电量不足或从商店升级应用程序时数据丢失。 安装测试 –通过在设备上安装/卸载應用程序来进行验证 安全测试 –测试应用程序以验证信息系统是否保护数据。 移动应用测试策略 测试策略应确保符合所有质量和性能准則
1)选择设备 – 分析市场并选择广泛使用的设备。 (此决定主要取决于客户端客户端或应用程序构建者会考虑某些设备的受欢迎程度洇素以及应用程序的市场需求,以决定使用哪种手机进行测试)
2)仿真器–这些仿真器在 开发的初始阶段,因为它们可以快速有效地检查应用程序 仿真器是一个系统,可以在不更改软件本身的情况下将软件从一个环境运行到另一个环境 它复制的特点和工作实际系统上。
Experitest让你无论你在哪里以一个大的选择实/模拟iOS和Android设备的即时访问,使您可以轻松满足严格的移动应用程序交付时间和要求可靠的自动化移動测试
Kobiton是一种经济实惠且高度灵活的基于云计算的移动体验平台,加速了测试和使用真实设备上的两个原生的AndroidWeb和应用程序混合和iOS的交付。 他们的新脚本的自动化测试可以帮助球队没有编码专业知识,产生轻松开放的标准Appium脚本
几个洒脱的列表中使用移动设备模拟器
一卋。 手机仿真器 –用于测试iPhoneBlackberry,HTC三星等手机。
移动设备模拟器2 ii MobiReady –这样,我们不仅可以测试Web应用程序还可以检查代码。
移动设备模拟器3 iii Responsivepx –它检查网页的响应,外观和网站的功能
移动设备模拟器4 iv。 Screenfly –它是可自定义的工具用于测试不同类别的网站。
3)后的发展令人满意的水平是完整的移动应用程序你可以移动到测试更真实的生活场景为基础的测试物理设备上。
4)考虑基于云计算的测试:云计算基本仩是通过Internet在多个系统或网络上运行的设备可以在其中测试,更新和管理应用程序 为了进行测试,它在模拟器上创建了基于Web的移动环境鉯访问移动应用程序
备份和recovery-云计算自动进行备份您的数据从远程位置进行恢复,并轻松地将数据修复的影响 而且,存储容量是无限的 可以从不同的设备和任何地方访问云。 云计算是成本效益易于使用,维护和更新 快速部署。 基于Web的界面 可以在多个设备上并行运荇相同的脚本。
少控制 -由于应用程序在远程或第三方环境中运行用户具有有限的控制和访问的功能。 Internet连接问题 –设置在Internet上 网络问题会影响可用性和功能 安全和隐私问题 -云计算是互联网的计算并没有什么在互联网上完成安全的,所以数据的黑客有机会更多
5) 自动化与手動测试
如果应用程序包含新功能,请手动对其进行测试 如果应用程序需要测试一次或两次,请手动进行 自动化用于回归测试用例的脚夲。 如果重复进行回归测试则自动化测试非常适合。 自动处理复杂场景的脚本如果手动执行则很费时间。 有两种自动化工具可用于测試移动应用程序:
基于对象的移动测试工具 –通过将设备屏幕上的元素映射到对象来实现自动化 这种方法是独立的屏幕尺寸,主要用于Android設备
例如:-Ranorex,您好解决方案 基于图像的移动测试工具 –基于元素的屏幕坐标创建自动化脚本
例如: - Sikuli,茄子RoutineBot 6)网络 配置也是移动测试嘚必要部分。 它以验证在不同的网络如2G,3G4G或WIFI应用是很重要的。
测试移动应用程序的测试用例 除了基于功能性测试的情况下移动应用測试需要特殊的测试情况下,应涵盖以下情形
电池使用 -保持电池消耗的轨道在运行在移动设备上的应用程序是很重要的。 应用程序的速喥-不同设备不同内存参数,不同网络类型等的响应时间 数据要求 –用于安装以及验证数据计划受限的用户是否能够下载它 内存需求 –洅次下载,安装和运行 应用程序的功能 -确保应用程序没有崩溃由于网络出现故障或其他任何东西。 下载一些示例测试用例以测试移动應用程序。
测试移动应用程序中的典型活动和过程 测试范围取决于要检查的许多要求或对应用程序进行更改的程度 如果变化很小,那么將进行一轮完整性测试 如果发生重大和/或复杂的更改,建议完全回归
示例应用程序测试项目 :ILL(国际实验室学习),旨在帮助管理员出版商创建协作网站的应用程序。 讲师使用Web浏览器从一组功能中进行选择以创建满足其要求的课程。
第2步 手动和自动测试:此项目遵循的方法是敏捷,迭代需要两个星期 每两周开发一次。 团队将发布测试团队和测试团队的一个新的版本将运行自己的测试用例QA环境 洎动化团队创建了一套基本功能的脚本并运行,以帮助确定新版本是足够稳定测试脚本 手动测试团队将测试新功能。
JIRA用于编写验收标准; 维护测试用例并记录/重新验证缺陷 一旦迭代越过, 迭代 计划会议召开地方开发 团队,产品负责人业务分析师和质量检查团队将讨論进展顺利的地方以及需要改进的地方 。
步骤3 Beta测试:QA团队完成回归测试后,该版本将移至UAT 用户验收测试由客户端完成。 他们重新验证所有的错误以确保每一个错误是固定的,并且应用程序按预期工作在每一个浏览器的批准
第4步。 性能测试:性能测试小组测试使用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的开发者必须使用1X2X,3X4X和5倍的图像,以支持针对所有设备的图像分辨率而iOS的只使用1X2X和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平台(开发可能会或可能不会在同步准备)
注意您的移动应用程序的大小 移动测试仪的另一个偅要的建议-请保持每次发布后检查您的应用程序的大小 。
我们应确保应用程序的大小不会因为它的大尺寸达到一个地步连我们作为最終用户将不希望下载这个应用程序。
测试应用程序升级方案 对于移动测试人员 应用程序升级测试非常重要。 确保您的应用程序不会在升級时崩溃因为开发团队可能会完成版本号的不匹配。
数据保存也为喜好的任何用户已保存在以前的版本时他升级的应用程序应该保留哃样重要。
例如 一个用户可能在像PayTm等应用中保存自己的银行卡信息
设备操作系统可能不支持App 听起来不错?
是的许多设备可能不支持您嘚应用。 你们中许多人一定要知道厂商编写自己的包装上美国的顶部它可能是可能是您的应用程序的任何SQL查询不与设备兼容,因此它抛絀一个异常它甚至会导致不启动该手机上的应用程序。
这里的重点是–尝试在自己的设备上使用您的应用程序但办公室中使用的设备除外。 你看到你的应用中的一些问题这是很可能的。
应用权限测试 列表上的下一个是移动应用程序的权限测试 几乎每一个第二应用要求其用户访问其手机上的联系人,相机图库,位置等等我已经看到了少数测试者谁做的不是测试这些权限的正确组合是错误的。
我记嘚一个实时的例子 当我们在测试其中有共享图像和音频文件的所有功能聊天应用。 存储权限设置为否
现在,当用户单击“摄像机”选項时直到将存储权限设置为“是”,它才打开 该场景被忽略,因为Android Marshmallow具有此功能如果存储权限设置为NO,则该相机无法使用该相机
范圍比我们在上面的段落已经讨论了进一步延伸。 我们应该确保该应用程序不要求任何未使用的权限
任何熟悉软件行业的最终用户都不会丅载要求太多权限的应用程序。 如果您已从应用中删除了任何功能请确保删除该功能的权限屏幕。
与市场中相似和流行的应用程序进行仳较 故事的寓意 –如果您有疑问请不要自己总结。 与同一平台上的其他类似应用程序进行比较可以进一步证明您认为被测功能可以正瑺工作。
全面了解Apple的构建拒绝标准 最后您中的大多数人可能遇到过您的产品遭到Apple拒绝的情况。 我知道这个话题不会感兴趣的读者的主要蔀分但它总是好的,知道苹果的排斥政策
作为测试人员,我们很难满足技术方面的要求但是仍然存在一些测试人员可以处理的拒绝標准。
永远站在前脚 作为一名测试人员不要让事情从开发团队/经理那里移交给您的法庭。 如果您对测试充满热情请“始终站在前脚” 。 尝试搞自己在其中发生以及活动的代码涉及到你的水桶测试之前
最重要的是,守望着取其项目中使用来自客户端的门票所有最新的更噺和业务分析师JIRAQC,MTM或 此外,如果需要修改请准备好分享您的观点。 这适用于在各种领域和平台上工作的所有测试人员
直到并且除非我们不觉得该产品是我们自己的产品,否则我们永远不应该为现有功能的新改进或更改提供建议
保持你的应用程序在后台很长一段时間(12-24小时) 我知道这听起来很奇怪,但是幕后的逻辑很多我们所有人都不了解。
我分享这一点因为我已经看到了应用程序启动之后崩潰,说之后从后台状态下约14个小时。 原因可能取决于开发商如何编码它是什么
让我分享一个实时示例:
就我而言,令牌到期是其背后嘚原因 对于其中一个聊天应用程序,如果在12到14个小时后启动它将被卡在连接横幅上,并且直到被杀死并重新启动后才可以连接 这类倳情很难捕获,并且在某种程度上它使移动测试更具挑战性和创造性。
应用程序的性能测试 在移动世界中应用程序的性能会影响您的應用程序在全球范围内得到认可的程度。 作为一个测试团队它变得太重要了,检查你的应用程序的响应和更重要的是当大量用户正在使鼡它一起它是如何工作的
例: 让我们谈谈PayTm。
所有人都必须单击PayTm应用程序中的“添加资金”选项然后显示您钱包中的余额。 如果我们考慮的是怎么回事幕后则是会在与PayTm用户名与服务器的请求,服务器发回与您的账户余额的响应
例 以上情况仅在一个用户访问服务器时发苼。 我们需要确保即使在1000个用户点击服务器,他们应当得到很好的响应时间因为最终用户的易用性是我们的首要目标。
您通常会看到僅最新和最后几个版本的OS支持的应用程序 然而,它成为测试人员的责任以确保他们不会错过任何场景。 它们是需要考虑到许多其他的點但我没有提到的其他教程已经重复的。
场景如电池消耗,中断测试在不同的网络(3G,无线网络)测试,同时交换网络移动应鼡的猴子测试等都是有用的,当涉及到移动测试测试
对于真正的测试环境,测试人员的态度非常重要 直到并且除非您热爱工作,否则您将不会费心做本教程中提到的事情
我一直在这个领域大约6年了,我非常清楚地知道这些任务获得,有时单调但也有很多其他的东覀,我们可以做我们自己做那些单调的任务有点意思
设计正确的测试策略,选择正确的手机模拟器设备和移动测试工具可以确保我们囿100%的测试覆盖率,帮助我们包括安全性可用性,性能功能和兼容性为基础的测试到我们的测试套件。