• 0
  • 0
分享
  • Android手机应用测试的优秀QA方法——软件测试圈
  • 恬恬圈 2023-10-10 13:35:34 字数 2827 阅读 1848 收藏 0

  移动测试往往是指对于运行在智能手机、平板电脑、以及其他移动设备上的移动应用程序,进行功能性、性能上、安全性、以及可用性等方面的检测过程。通过手动或自动化的测试方式,我们可以确保移动应用程序,既满足业务的需求,又能达到最终用户的期望。

  通常,我们在手机上使用的移动应用程序有如下三种类型:

  · 为特定平台设计的原生应用程序。它们往往配有相应的语言和SDK,而且是通过相应的应用商店被安装的。

  · 由服务器端技术开发的、可以通过移动浏览器访问的移动Web应用。各种响应式网站和渐进式网络应用,都属于此类移动应用。

  · 混合应用虽然可以在移动设备上运行,并通过应用商店来安装,但是它们是用Web技术开发的。与移动Web应用相比,这些应用可以使用到移动设备的内置功能和操作系统的各项服务。

  在本文中,我们将专注于讨论如何测试各种原生的Android移动应用。

  测试Android移动应用的要点

  我们在日常开展针对Android手机应用的测试时,应当注意如下几个方面:

  应用程序安装和卸载

  为了提高并促进用户体验,请确保他们可以轻松地且正确地安装或卸载移动应用。同时,在处理应用的更新方面,您也应当十分谨慎。显然,静默的Android应用更新方式,会让用户因为无法控制自己设备上的内存空间,而拉低整体使用体验。因此,我们需要检查用户是否能够在应用有待更新时,及时收到相应的触发通知。

  在互联网连接不稳定时的应用行为

  互联网连接并不总是稳定流畅的,那么Android应用需要避免在手机出现断网时,发生意外关闭甚至崩溃的情况。为此,测试团队应该检查应用程序是如何处置间歇性连接、移动网络切换(例如从Wi-Fi到4G)、以及完全中断等场景。在这些情况中,手动测试往往更加合适,毕竟这样能够更好地模拟出各种生活中的真实使用场景。

  电池消耗和设备性能

  如您所知,即使用户尝试去手动关闭,大多数移动应用仍然会在Android的后台运行。如果这种消耗设备电池的方式持续下去,那么在某种程度上会缩短用户的使用周期。同时,设备的性能也会随着在后台运行应用程序的增多而下降。对此,QA团队的目标应当是确保当应用程序没有被持续使用时,不再消耗设备的电池。因此,他们需要仔细检查目标应用是否会在后台接收和发送各种数据。

  安全性问题

  虽然Android团队持续提高着安全标准,但是Android的开放性一直是安全漏洞重大的根源之一。与iOS相比,Android的发布政策要宽松许多,几乎每个人都可以在Google Play应用商店中发布自己的应用。因此,一旦用户安装了那些可能存在漏洞和易受攻击的应用程序,就可能会将病毒传播到该设备上的其他应用中。显然,这对于那些包含着敏感数据的应用而言,绝对是一种灾难。那么,为了尽可能地消除所有风险并保障安全态势,经验丰富的QA工程师会在执行功能与性能测试的同时,开展全面的安全性测试。

  Android移动应用的自动化与手动测试

  随着自动化测试日益受到关注,业界对于是否将自动化测试引入Android应用测试,众说纷纭。我的个人经验是:对于那些小而简单的Android移动应用而言,实施自动化测试的意义并不大。不过,如果碰到交付期限紧迫、市场用户群定位广泛、设备品类覆盖范围大等情况的话,您最好采用自动化测试的方式。

  此外,对于性能测试而言,自动化测试要在效率上胜过手动测试。毕竟,它可以让QA团队通过更快、更高效的测试过程,来节省大量宝贵的时间、精力和资金。当然,性能测试与回归测试也应该通过选用目前市场上可用的自动化测试解决方案来实现。在该领域,适合Android应用自动化测试的工具包括:Appium、Android Studio、Selendroid、Espresso和Roboelectric等。

  一般而言,自动化测试在整个测试过程中的最合适份额应当是70-80%。而对于某些特定的场景,手动测试仍是一种不可替代的方式。

  Android移动应用测试的不同阶段

  下面,我将向您介绍Android应用测试的各个主要阶段,以便您流畅地开展工作。

  测试计划

  常言道,全面的测试计划意味着成功了一半。可见,从一开始就定义并设计好移动应用测试的策略是至关重要的。在此阶段,QA团队需要明确测试的范围、功能覆盖率、设备覆盖率、所需资源、以及预计截止日期等要素。并且在此基础上,他们应当决定是否实施测试自动化,以及自动化的具体测试场景。

  测试环境的设置

  该阶段应准备好所有必需的测试设备。例如:是否需要使用模拟器、仿真器、云端设备、以及真实的移动设备。

  测试用例/脚本编写

  QA专家需要在决定测试哪些应用功能的基础上,开始设计与编写测试用例。从广义上讲,测试用例是一些基本的步骤列表,旨在检查应用程序在特定的情况下,是否可以按照预期运行或完成预定的任务。如果团队已经决定了使用自动化测试,去覆盖某些测试场景,那么就可以选用和定制由自动化工具提供的测试脚本。

  测试执行和缺陷报告

  通常,QA专家应从功能性测试开始,以确保Android应用的所有核心功能可以顺畅地运行。他们可以从手动尝试开始,如果被测应用(application under test,AUT)足够稳定的话,则可以转为自动化测试。

  为了评估用户的体验,并了解被测的Android应用是否直观、易用、且没有UI上的缺陷,QA专家应继续开展UI测试和可用性测试。

  接着,QA专家必须执行兼容性测试,以检查应用程序是否在所有可能被安装的设备型号上,都能正常运行。此类测试的必要性在于,可以极大地确保用户在各种可能用到的移动设备上,都能够得到满意的使用感受。

  在完成了功能性测试后,QA专家就需要开展性能测试了。此类测试包括:容量测试、压力测试、稳定性测试、负载测试、峰值测试等。通常,性能测试会检查与估计内、外部流量与负载对于应用所产生的影响。由于只能在特殊工具的帮助下,才能模拟出所需的负载水平,因此性能测试在绝大程度上是需要依赖自动化的。

  为了确保应用程序的安全性能够符合相应的标准,以及满足相关的合规,QA专家还需要开展安全性测试和一致性测试。当然,他们也可以按需进行安装测试、更新测试、中断测试、恢复测试、设备资源测试、以及网络配置测试等专业化的领域。

  最后,QA专家可以按需与真实用户开展Beta/验收测试,以确保最终用户能够很好地接受AUT,并且能够在应用程序发布之前,根据实际情况酌情予以调整。

  报告

  最后一个阶段便是得出结论并提交报告。QA专家通过分析检测到的、有待修复的错误,识别出那些最易受攻击和产生错误的应用模块,并以综合性结果报告的形式,给出该Android应用是否适合发布的判断。


作者:陈峻    

来源:http://www.51testing.com/html/47/n-4481247.html

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •  1、引言由于最近从某些企业毕业的同学很多,导致很多同学不得不投简历,找工作。作为面试官的我,在最近也是没少忙活。小屌丝:鱼哥,最近听说你最近睡得挺晚的。小鱼:你咋知道, 你是不是在我的电脑安装了什么.... 小屌丝:鱼哥,我这么正经, 怎么能干那么流氓的事情....  小鱼:那你咋知道我睡得晚。小屌丝:用脚指头就能想到, 最近上海有很多企业的同学毕业了,所以....会有一些毕业的同学约你帮忙看简历,聊聊面试技能之类的吧。小鱼:嗯,最近在公司也面试了不少的同学,但是,这些同学的共性之一都是,对linux的命令不太熟, 小屌丝:比方说呢?小鱼:如...
            1 0 1101
            分享
          •   1、测试中,为什么是32个错误帧出现一次Busoff?  Busoff的产生是因为TEC(Transmit Error Counter)>255导致,再次提醒:与REC(Receive  Error Counter)无关。也就是说,如果节点状态切换到Busoff,是因为节点自身外发报文错误导致TEC>255。  回顾一下节点状态机,节点状态机如下所示:  在切入主题之前,对Error Passive状态做一个展开,节点由Error Active进入Error Passive,是因为REC>127 or TEC>127。所以,节点进入Error Passive状态的可以分两个层面看...
            0 0 1334
            分享
          •   测试人初到一个公司,往往公司的测试团队和规模已经完善,我们需要做的就是跟着公司的节奏走。因为相应的制度和流程已经完善,不需要额外操心太多与测试执行层面无关东西。  但是当流程和制度没有的情况下,我们应该怎么办呢?  本篇文章适用于初到一个公司、公司新引进测试流程,却不知道如何从0开始的同仁。以下是我近期的总结,方案有可能不是最完美的,但可以参考,有一定的借鉴作用。  整篇文章逻辑结构:  首先介绍什么是落地;  其次更为重要的思想;  最后经过这一年总结还有哪些不足之处,进而指出我打算接下来执行的方案。  何为落地  不知道大家接触过“落地页”这个词没有,我是在需求介绍文档里第一次见到这个...
            0 0 682
            分享
          • 就目前我们互联网+中心的大多数APP产品而言,功能测试仍是整个测试过程的基础和重点,占比很大。除去每个产品和版本不同的业务需求以及功能,针对于大多数APP的共同点和移动设备的特性,本文总结了一些APP功能测试中经常遇见,需要考虑到的测试点以供参考。1.安装和卸载应用的安装和卸载在任何一款APP中都属于最基本功能。一旦出错,就属于优先级为紧要Critical的缺陷。因此APP的安装和卸载应作为一个测试点多加重视。主要关注以下几个方面:▲ 应用是否可以正常安装(命令行安装;豌豆荚/手机助手等第三方软件安装;apk/ipa安装包安装)▲应用是否可以在iOS和Android不同系统,版本,机型上进行安...
            12 14 4125
            分享
          • 1、异常优化考虑以下情形。def testLogin(){   #从Excel文件中读入测试数据,比如:Jerry/123456   #继续后续测试   }   def teardown(){   #从数据库表中删除的读入的数据,比如:Jerry/123456   ...   }比如测试程序在继续后续测试的时候出现了一个异常,比如元素没有找到,系统会自动退出,而不去执行teardown方法,也就是说数据库中的数据没有得到清除,这样如果下一次测试同样的case,采用同样的测试数据就会使测试程序发生脏数据异常,为了解决这个问题我们通过使用Python的try-catch来捕获异...
            0 2 3070
            分享
      • 51testing软件测试圈微信