51CTO首页
AI.x社区
博客
学堂
精品班
直播训练营
企业培训
鸿蒙开发者社区
WOT技术大会
AIGC创新中国行
公众号矩阵
移动端

Android手机应用测试的优秀QA方法和工具

译文
移动开发 移动应用
本文向您介绍了在开展Android移动应用测试时的各项基本注意要点、测试的不同阶段、以及常用的自动化工具。

​​

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

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


  • 为特定平台设计的原生应用程序。它们往往配有相应的语言和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应用是否适合发布的判断。

Android应用的常用测试工具

在了解了有关Android应用测试的整体过程后,我们最后来看看有哪些工具可以帮助QA团队有效地开展不同类型的自动化测试。下面便是我为您总结的一张常用工具列表:


  • MonkeyRunner--https://developer.android.com/studio/test/monkeyrunner
  • Appium--https://appium.io/
  • Selendroid--http://selendroid.io/
  • Espresso--https://developer.android.com/training/testing/espresso
  • Robotium--https://github.com/RobotiumTech/robotium
  • BrowserStack--https://www.browserstack.com/
  • Ranorex--https://www.ranorex.com/
  • UI Automator--https://developer.android.com/training/testing/ui-automator
  • OWASP Zed Attack Proxy--https://owasp.org/www-project-zap/

小结

任何应用程序的成功不仅取决于它能够提供的功能集,更在于它可以交付的服务质量。因此,Android应用也不例外。这里所说的质量涵盖了:应用性能、稳定性、安全性、便利性、用户友好程度等多方面。

对此,经验丰富的QA专家会根据实际情况,进行各种不同的测试,以彻底检查并提高Android应用的软件质量和用户的满意度。虽然这需要耗费他们更多的时间和精力,去进行私人定制,但是对于Android移动应用的上新、以及高投资回报率的保障而言,是绝对值得的。

译者介绍

陈 峻 (Julian Chen),51CTO社区编辑,具有十多年的IT项目实施经验,善于对内外部资源与风险实施管控,专注传播网络与信息安全知识与经验;持续以博文、专题和译文等形式,分享前沿技术与新知;经常以线上、线下等方式,开展信息安全类培训与授课。

原文标题:Testing Android Mobile Apps: Best QA Approaches and Tools,作者:Oleh Sadykow

【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】


责任编辑:华轩 来源: 51CTO
相关推荐
Web应用渗透测试步骤、方法工具
在应用设计中的某个简单的缺陷、配置上的错误、以及网络钓鱼攻击,都可能给Web服务器造成巨大的损失。本文将和您讨论和总结,在执行Web应用的渗透测试过程中,那些常用的步骤、方法与工具。

2021-05-10 09:00:00

Web 工具 安全
软件测试方法:质量保证(QA)模型简短指南
多年来,软件测试的理念正在不断发展和演变。这种演变不仅需要现代测试策略和工具,还需要一个包含测试方法的面向细节的过程。

2022-01-18 08:00:00

软件测试 工具 开发
详解安卓应用性能测试方法以及Android SDK中辅助测试工具使用
Android前端APP的性能测试一般针对以下几个方面:应用启动时间;CPU的占用;内存的占用;流量的耗用;电量的耗用;流畅度等。

2021-08-06 06:38:49

安卓应用 Android 性能测试
DevOps性能测试优秀实践与工具
如今,DevOps的落地将软件服务的性能测试提升到了一个全新的水平,并在产品交付过程中显得尤为重要。本文向您介绍各种有关性能测试的优秀实践与工具。

2019-01-16 09:00:00

DevOps 性能测试 软件
数据映射优秀实践:类型、方法工具简要指南
本文将分享关于数据迁移和数据集成方面的数据映射优秀实践,即数据映射的类型、方法和常用工具。

2022-04-18 10:20:31

数据 映射 工具
外媒速递:QA自动测试上还有哪些顶级工具值得关注
自动化质量保证与测试方案能够为我们的工作流带来可观的价值回报与效率提升,Selenium也已经成为众多QA团队必不可少的工具。那么除此之外,还有哪些顶级工具值得关注及尝试

2016-12-08 08:25:39

QA 自动测试 Angular 2
分享几款优秀API测试工具
如今,API日渐成为应用程序开发的核心。无可厚非,API测试是成功实现持续集成,并保持DevOps实践的重要组成部分。数据显示开发人员对于Web和API服务的测试兴趣,在过去几十年中呈逐渐增长的趋势。

2020-11-27 11:19:55

开发 API 工具
13款优秀Android安全应用
如今市场上有许多针对Android开发的安全应用工具。本文从保护能力、实用性和功能性三个方面,为您比较13款最佳的Android安全应用。

2019-01-24 08:00:06

安全 AV-TEST 恶意软件
应用虚拟化QA:流化远程应用程序部署(技术篇)
应用程序虚拟化包括流化和远程应用程序部署两个方面。这里给大家介绍应用程序虚拟化技术方面的问题。

2012-10-30 09:34:10

应用虚拟化
浅谈MPLS测试方法——MPLS应用测试方法
MPLS是以各种应用形式部署于各大网络中,对MPLS的测试也必然需要包括对这些应用的验证。本文对MPLS几种主要应用分别进行讨论。

2010-04-13 10:54:33

MPLS
应用虚拟化QA:流化远程应用程序部署(基础篇)
应用程序虚拟化包含远程应用程序和流化应用程序两种方式。远程应用程序运行在远程服务器上。借助应用程序流化技术,应用程序可以在本机上脱网运行已下载的组件。

2012-10-29 13:52:51

应用虚拟化
关于Linux压力测试工具安装应用
本文主要像大家介绍Linux压力测试工具webbench,webbench最多可以模拟3万个并发连接去测试网站的负载能力,以下是这个软件的安装和使用的介绍

2010-06-07 17:46:46

Linux压力测试工具
Android碎片化严重:应用商购买400款手机测试
香港移动应用开发商Animoca表示,为了确保应用在不同手机中都有着稳定的表现,该公司不得不在约400款手机上对应用进行质量测试。

2012-05-13 13:25:17

Android
用于黑客渗透测试21个优秀Kali Linux工具
如果你读过KaliLinux点评,你就知道为什么它被认为是最好的黑客渗透测试的Linux发行版之一,而且名副其实。它带有许多工具,使你可以更轻松地测试、破解以及进行与数字取证相关的任何其他工作。

2019-05-16 08:47:50

值得推荐优秀物联网测试策略、工具与产品
本文通过向您介绍质量检查团队需要了解的物联网测试相关知识、策略和工具,以便您能够向最终用户交付出安全、且具有高品质的物联网设备产品。

2020-12-11 09:00:00

物联网 安全 工具
用于黑客渗透测试21个优秀Kali Linux工具
这里是较好的KaliLinux工具列表,它们可以让你评估Web服务器的安全性,并帮助你执行黑客渗透测试。

2019-12-06 10:04:54

Linux 黑客 网络安全
测试带来好处,QA团队要学会享受
公司转向云部署模式或使用云测试服务来测试一个app时有不少好处。本文将介绍高水平的云概念并讨论云测试中质量工程师的作用。

2015-04-16 13:34:56

浅析系统测试优秀实践
系统是相互连接的组件的集合,这些组件协同工作以执行定义的功能或功能集。这些组件可以是硬件、软件、固件或组合。

2023-05-16 15:25:08

前端测试体系优秀实践
对于前端测试,我觉得重心不是机械的去追求测试覆盖率,而是尽可能的在成本和信心值中间找到一个平衡,应用一些好的实践去降低写测试的成本,提升写测试带来的回报,让大家对于项目质量越来越有信心。

2022-10-20 10:02:16

前端 测试 开发
十款优秀API安全测试工具
应用编程接口已成为攻击者钟爱的目标。本文所列工具和平台(无论商业还是开源)可帮助企业识别错误、漏洞和权限分配过大等问题。

2022-01-03 08:04:31

API 安全测试工具 安全工具

哆哆女性网北京网站设计建设周易八卦盘周六股票可交易吗沈阳起名馆网站建设设计780元全包睢县住宿周新春易学网起名游园不值的意思黑荆棘角斗场伤感个性签名的句子周易起名有什么讲究小说区武汉网站制作027best永城市一汽大众4s店关于艳字的网名周易易经占卜领取工资签名表格周易免费生辰八字查询恐怖小说txt下载方氏男起名女孩出生在春天起名字雷氏女孩起名生辰八字公司起名免费白鹿演的电视剧免费全集心碎个性签名tokyohotn0647哈尔滨seo排名优化卖衣服起名字女装网站设计的裤子品牌起名淀粉肠小王子日销售额涨超10倍罗斯否认插足凯特王妃婚姻不负春光新的一天从800个哈欠开始有个姐真把千机伞做出来了国产伟哥去年销售近13亿充个话费竟沦为间接洗钱工具重庆警方辟谣“男子杀人焚尸”男子给前妻转账 现任妻子起诉要回春分繁花正当时呼北高速交通事故已致14人死亡杨洋拄拐现身医院月嫂回应掌掴婴儿是在赶虫子男孩疑遭霸凌 家长讨说法被踢出群因自嘲式简历走红的教授更新简介网友建议重庆地铁不准乘客携带菜筐清明节放假3天调休1天郑州一火锅店爆改成麻辣烫店19岁小伙救下5人后溺亡 多方发声两大学生合买彩票中奖一人不认账张家界的山上“长”满了韩国人?单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#青海通报栏杆断裂小学生跌落住进ICU代拍被何赛飞拿着魔杖追着打315晚会后胖东来又人满为患了当地回应沈阳致3死车祸车主疑毒驾武汉大学樱花即将进入盛花期张立群任西安交通大学校长为江西彩礼“减负”的“试婚人”网友洛杉矶偶遇贾玲倪萍分享减重40斤方法男孩8年未见母亲被告知被遗忘小米汽车超级工厂正式揭幕周杰伦一审败诉网易特朗普谈“凯特王妃P图照”考生莫言也上北大硕士复试名单了妈妈回应孩子在校撞护栏坠楼恒大被罚41.75亿到底怎么缴男子持台球杆殴打2名女店员被抓校方回应护栏损坏小学生课间坠楼外国人感慨凌晨的中国很安全火箭最近9战8胜1负王树国3次鞠躬告别西交大师生房客欠租失踪 房东直发愁萧美琴窜访捷克 外交部回应山西省委原副书记商黎光被逮捕阿根廷将发行1万与2万面值的纸币英国王室又一合照被质疑P图男子被猫抓伤后确诊“猫抓病”

哆哆女性网 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化