51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 4353|回复: 1
打印 上一主题 下一主题

[转贴] 软件测试技术指南——移动端APP测试

[复制链接]
  • TA的每日心情
    无聊
    昨天 09:34
  • 签到天数: 1052 天

    连续签到: 2 天

    [LV.10]测试总司令

    跳转到指定楼层
    1#
    发表于 2021-1-18 10:05:34 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
    一、APP测试流程
      移动应用软件开发的周期一般都比较短,基本都是敏捷开发,而且开发的模式跟传统互联网也有一些差异。通常开发模式都采用平行模式,开发人员比较少,但是分工比较明确,各团队之间(Android、IOS、后台)根据指定好的接口进行联调,也就是集成测试。
      APP的整个研发的周期一般在2~3个月左右,具体根据产品功能的复杂度来确定,而且测试周期一般是1~3周左右,所以测试人员比较少,大多数都是一个人负责,所以要求测试工程师熟悉APP的整个测试的流程和方法。
      APP的测试流程如下:
      1.计划阶段
      首先要确认产品的需求文档、原型设计图、接口文档以及相关的说明文档,然后根据这些文档规划项目的测试计划,整理测试思路,最后确认测试设备(Android和ISO不同版本的真机)以及测试工具。
      2.设计阶段
      测试用例的设计,通常根据业务流程结合用例设计方法来设计测试用例,然后在项目组内召开用例评审会,评审通过后再将测试用例进行归档。
      3.执行阶段
      为了测试数据的准确,通常都是使用实体机执行测试用例。如果发现Bug,经确认后在缺陷管理工具中提交Bug单,等待开发修复,然后再进行回归测试。如果回归测试不通过,重新激活Bug;如果回归测试通过,将Bug状态修改为关闭状态;如果开发人员拒绝修改Bug,则进行沟通交流,还可以在项目组内开会讨论。
      4.评估报告阶段
      对遗留Bug进行风险评估,并给出处理方式以及意见,最后编写测试报告,待项目上线后进行测试总结。
      二、APP测试方法
      要想做好APP测试,首先需要了解Android与IOS操作系统的区别,再熟悉APP测试的方法,才能更全面进行测试,建议采用真机进行测试。
      1. Android与IOS
      Android最早成立于2003年,在2005年被Google收购,现归属Google。在2008年9月发布了第一个版本Android1.0,代表产品是T-Mobile G1,这个产品是Android系统很重要的里程碑。Android是Google开发、发行的一个智能的、开放式的软件平台。它的内核是Linux,其应用程序都用Java编程语言来编写。由于Android的运行机制采用虚拟机,系统需要占用大量内存来换取执行速度,再加上不定期的内存自动回收机制,从而导致出现卡顿的现象。IOS是苹果公司在2007年1月推出的封闭式手机操作系统,它指定使用的一种开发语言——Objective-C语言。它的运行机制采用沙盒运行,整个运行过程中不需要虚拟机,所以相比Android来看其执行效率要高一点。
      由于Android是采用了开放的策略,所以很多厂商对其进行了订制。这也使得Android手机在设计上相比IOS变得多样化,但是同时带来安全隐患,也就是说在测试APP软件时,Android的安全性比IOS要考虑得多一些;同时在测试兼容性时,Android也比IOS考虑得多一些。由于Android的设备比较多,基于市面上的辅助工具也比IOS要应用要广泛一些。另外还需要注意的是系统版本,Android系统的版本可升、可降,而IOS系统的版本只能升级(越狱除外)。
      除了上述问题之外,APP测试最大的问题是网络的不稳定以及隐私的安全问题。
      2. UI测试
      UI测试即用户界面测试,具体测试方法如下:
      1)首先确保UI界面设计符合国家的、行业的、企业的标准规范;
      2)关注窗口、菜单、对话框以及按钮控件的布局、风格是否满足用户要求;
      3)不同页面中控件大小、风格是否一致;
      4)页面中颜色的搭配是否合理,整体的颜色不宜过多;
      5)文字的提示是否友好,是否存在敏感词、关键词等;
      6)操作是否简单、人性化,是否有帮助指引;
      7)自适应界面设计,内容是否根据窗口的大小自适应调整;
      8)图片是否涉及版权、隐私、专利等问题。
      3. 功能测试
      能测试就是验证各个功能是否与需求实现一致,可以从以下几个方面进行测试:
      3.1 安装卸载
      1)在不同的操作系统下验证安装卸载是否正常,如Android、IOS等;
      2)软件是否可以通过第三方工具进行安装、卸载;
      3)安装卸载过程中是否可以取消;
      4)安装卸载过程中出现异常处理是否妥当,如重启、死机、断电、断网等;
      5)安装过程中空间不足是否有提示信息;
      6)安装文件是否写到指定的目录里,卸载后所有的文件及文件夹是否全部删除;
      7)卸载后是否可以重新安装,安装后数据是否同步,功能是否正常;
      8)重复安装是否会有提示信息;
      9)直接卸载程序是否有提示信息。
      3.2 启动运行
      1)安装后启动软件测试功能是否可以正常运行;
      2)首次打开软件是否有访问提示,如允许访问通讯录、获取地理位置等;
      3)首次启动运行时速度是否满足要求,页面之间切换是否流畅。
      3.3 注册登录
      1)注册时要考虑用户名和密码的长度、格式是否有限制或规则要求等;
      2)重名注册是否有提示信息;
      3)注册成功后,用户是否可以正常登录;
      4)软件是否有快捷登录,如手机号码,获取验证码之间进行登录;
      5)是否支持第三方账号登录,如QQ、微信、微博等账号;
      6)登录时密码输入错误次数有没有限制;
      7)登录时网络中断是否会有友好提示;
      8)APP是否实现免登录功能;
      9)当用户主动退出后,下次启动APP应切换到登录界面。
      3.4 前后台切换
      1)APP切换到后台,再次返回APP时,是否停留在上一次操作的界面;
      2)APP切换到后台,再次返回APP时,功能是否正常,数据是否更新;
      3)手机锁屏后,再解锁进入APP,功能是否正常,数据是否更新;
      4)出现提示信息后,切换到后台,再次返回APP,检测提示信息是否存在;
      5)多个APP软件之间切换,功能是否正常,数据是否更新;
      6)使用APP时,与手机功能的交互测试,如来电话、收短信、闹钟等。
      3.5 升级更新
      1)当APP有新版本时,是否有更新提示信息;
      2)当版本为非强制升级更新时,不更新是否可以正常使用;
      3)当不更新退出后,下次启动APP,是否仍然有提示更新信息;
      4)设置APP软件自动升级更新时,在无wifi的情况下,是否自动更新;
      5)当版本为强制升级更新时,不更新是否可以正常使用;
      6)升级更新后功能是否正常使用,数据是否会同步。
      3.6 异常测试
      1)电量测试,如电量10%、50%、90%时,验证APP功能是否正常;
      2)低电量提示时,验证APP功能是否正常;
      3)充电、拔电时,验证APP功能是否正常;
      4)弱网测试,模拟2G、3G、4G、wifi时,验证APP功能是否正常;
      5)模拟网络2G、3G、4G、wifi之间的切换,验证APP功能是否正常;
      6)离线测试,检查APP是否支持离线浏览;
      7)Push测试,检查用户在免打扰模式下能否接受Push。
      4. 性能测试
      APP的性能测试分手机端和服务端的性能。
      4.1 手机端性能
      手机端性能主要检查资源问题,如CPU,内的占用,耗电量、流量的情况。
      (1)CPU占用
      据经验表明,在使用APP软件时,如果CPU占用率低于20%表示为最佳状态,如果CPU占用在20%~60%之间表示资源使用比较稳定,如果CPU占用率在60%~80%之间表示资源使用饱和,如果CPU占用率超过80%属于性能的瓶颈,必须尽快进行资源调整与优化。
      (2)内存使用
      手机的内存是非常有限的,为每个APP进程分配的私有内存也是有限制。一方面,要合理的申请内存使用,以免导致内存溢出;另一方面,要及时释放内存,以免发生内存泄漏。不合理使用内存,经常会造成APP软件出现无响应、死机、崩溃、闪退等现象。
      (3)耗电量
      智能手机的电池都是内嵌的,它的电量也是非常有限的,而且智能手机本身耗电量就比较多(如屏幕、GPS定位、传感器等),所以在进行APP测试时,必须要检查APP的电量使用,以免导致手机耗电发热,带来不良的影响。
      (4)流量的使用
      目前手机网络类型主要包含2G、3G、4G、wifi,其中还有不同运营商的区分,在使用APP软件时,经常遇到重复请求、响应慢等各种情况。在测试时要注意不同的网络下,流量的使用。
      可以借助一些Monkey工具来检测Android手机端的性能问题。
      4.2 服务端性能
      APP服务端性能跟Web性能大同小异,主要是模拟大量手机用户调用接口对服务器产生负载。可以使用Loadrunner12.0以上(或者Loadrunner11.0+补丁包Patch3)、Jmeter、HyperPacer等工具,进行并发测试、负载测试、压力测试等。
      5. 安全测试
      近年来,移动APP存在一个非常重要的问题就是安全问题,即用户的隐私泄漏。针对APP的安全测试可以参考以下几个方面。
      5.1 安装包安全性
      1)首先验证安装包是否对签名进行了校验,以防止被恶意第三方应用覆盖安装等;
      2)开发人员是否对源代码进行混淆,以免被反编译软件查看源代码;
      3)用户隐私,特别是访问通讯录,需要对特定权限进行检查。
      5.2 用户安全性
      1)用户拨打电话、发短信、连接网络等是否存在扣费的风险;
      2)用户密码在传输中是否进行加密,在数据库中存储是否进行了加密;
      3)免登录是否设置了过期时间;
      4)用户的账号、密码等敏感数据是否存储在设备上;
      5)当用户注销账号时需要身份验证的接口是否可以调用;
      6)对Cookie的使用是否设置了合理的过期时间。
      5.3 数据安全性
      1)用户的敏感数据是否写到日志或配置文件中;
      2)当用户使用敏感数据时是否给用户提示信息或安全警告;
      3)在输入敏感数据时是否支持第三方输入法输入;
      4)用户输入的数据是否进行了数据合法性的校验;
      5)在含有敏感数据的连接中是否使用了安全通信,如HTTPS;
      6)对安全通信的数字证书是否进行合法的验证。
      5.4 通信安全性
      1)所有手机的功能应优先处理,如接电话、收短信等;
      2)当网络中断或出现异常时需要给用户网络异常的提示;
      5.5 服务端安全性
      服务端主要关注接口,其安全性跟Web端的安全性类似,主要考虑SQL注入、XSS跨站脚本攻击、CSRF跨站请求伪造以及越权访问等。
      6. 兼容性测试
      众所周知,APP兼容性测试是一个耗时、耗人力,而且成本很高的测试工作,且APP兼容性测试又是一项必须要进行的测试活动,其测试时主要考虑手机端的软、硬件兼容性,一方面要考虑与主流APP的兼容性;另一方面又要考虑手机设备的兼容性,如不同品牌的手机,不同的操作系统,不同手机的屏幕分辨率等。
      具体的测试方法可以使用模拟器来进行模拟不同的手机品牌、系统、分辨率进行测试,但是模拟器测试的数据会有差异,针对一些实力雄厚的公司,建议购买真机进行测试。还可以借助第三方工具(如Spider工具)以及云测试平台来进行测试,这样可以即能保证兼容质量的同时、又能高效地完成APP兼容性测试的覆盖。
      7. 接口测试
      不管是Web端还是APP接口,其测试的方法思路大致相同(请参考Web端接口测试)。
      8. 用户体验测试
      由于APP软件的研发人员、研发周期以及测试周期都比较短,所以进行用户体验测试在APP测试中是一项非常有必要的测试活动。通常公司组织内部人员,从用户的角度来评价产品的特性,提出修改意见,从而提升客户的满意度。体验可以从以下几点考虑:
      1)UI界面的设计,从用户视觉评价产品;
      2)使用真机对手机兼容性进行体验测试;
      3)用户的指引设计是否合理;
      4)APP页面跳转设计和深度是否合理;
      5)体验锁屏、横竖屏的设计以及各种异常操作等。
      三、APP测试工具(ADB、AAPT、Monkey、DDMS、Fiddler)
      工具这块就不展开了
      四、APP测试和Web测试的区别
      不管是APP测试,还是Web测试,相对于测试而言,其测试流程、测试思路都没有太大区别。由于测试环境不一样,测试涉及的工具不同,测试方法考虑略有不同,其主要的区别归纳为以下几点:
      1. 系统架构不同
      Web项目主要是基于浏览器的B/S架构,当Web服务端更新后,客户端就会同步更新。而APP项目主要是基于手机端的C/S架构,当APP服务端更新后,如果更新版本为强制更新版时,则手机端必须更新,否则功能无法使用;如果更新版本不是强制更新,手机端可以选择性更新,此时除了测试新版本以外,还要测试老版本的核心功能是否受到影响。
      2. 测试方法不同
      1)功能测试,测试思路同样为逐一分析软件质量的六大特性,唯一不同的是Web项目不支持离线浏览,有些APP支持离线浏览,待有网络时再同步更新数据。
      2)性能测试,Web项目的主要关注服务器的压力以及Web页面的响应,而APP项目除了考虑服务端的压力之外,还需要考虑手机端的性能,主要是内存使用问题。
      3)兼容性测试,Web项目主要考虑浏览器的兼容性,而APP项目需要考虑不同设备,不同系统、不同系统的版本、不同分辨率等。
      4)专项测试,相对于Web测试,在APP测试中多了一些专项测试,如电量测试、弱网测试、安装卸载、升级更新、中断测试、访问权限测试以及用户体验测试等。
      3. 测试工具不同
      自动化测试工具:APP一般使用Monkey Runner和Appium;而Web端一般使用QTP和Selenium。
      性能测试工具:APP一般使用HyperPacer、Monkey、Jmeter、Loadrunner12.0;而Web端一般使用Jmeter和Loadrunner。
      弱网测试工具:Fiddler、Network Link Conditioner(IOS)。
      五、H5页面测试
      2014年10月29日,万维网联盟宣布,H5的标准规范制定完成,它是超文本标记语言(HTML)的第五次重大修改,简称H5。HTML5的设计目的是为了在移动设备上支持多媒体,它还引进了新的功能,可以真正改变用户与文档的交互方式。所以在进行H5测试需要注意以下几点:
      1. 功能相关
      1)关注每个页面的请求是否正确,是否有重复。
      2)关注APP缓存,清除缓存后功能是否正确,获取数据失败后是否有重试机制。
      3)关注在登录时H5与Native切换。
      4)关注页面的加载与刷新,加载的
      5)关注网络问题,特别是弱网以及网络之间的切换,对H5页面有没有影响。
      6)关注前后台切换时页面的情况。
      7)关注mtop接口的处理。
      2. 性能相关
      1)关注每个页面的加载时间、大小以及请求数。
      2)关注弱网下页面的响应。
      3)是否适当添加本地缓存。
      3. H5适配
      1)关注不同品牌手机的浏览器。
      2)关注不同品牌手机屏幕大小和分辨率问题。
    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏2
    回复

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-28 03:22 , Processed in 0.064548 second(s), 23 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表