• 第九章 APP项目测试(1)


    9.2 APP测试流程

    APP的整个研发周期一般在2~3个月左右,具体根据产品复杂度来确定,测试周期一般是1~3周左右,要求测试工程师熟悉APP的整个测试的流程和方法,APP的测试流程如下:

    1、计划阶段

    要确认产品的需求文档、原型设计、接口文件以及相关的说明文档,根据这些文档规划项目的测试计划,整理测试思路、最后确认测试设备(Android和ISO不同版本的真机)以及测试工具。

    2、设计阶段

    通常根据业务流程结合用例设计方法来设计测试用例,然后在项目组内召开用例评审会,评审通过后将测试用例进行归档。

    3、执行阶段

    为了测试数据的准确,通常都是使用实体机执行测试用例。如果发现Bug经确认后在缺陷管理工具条件Bug,等待开发修复,然后再进行回归测试,如果回归测试不通过,重新激活Bug;如果回归测试通过,将Bug状态修改为关闭状态;如果开发人员拒绝修改Bug,则进行沟通交流,还可以在项目组内开会讨论。

    4、评估报告阶段

    对遗留的Bug进行风险评估,并给出处理方式以及意见,最后编写测试报告待项目上线后进行测试总结。

    9.3 APP测试方法

    要做好APP测试,首先要了解Android与IOS操作系统的区别,再熟悉APP测试的方法,才能更全面进行测试,建议采用真机进行测试。

    9.3.1 Android与IOS

    Android现归属Google,它的内核是Linux,其应用程序都是用Java编程语言来编写,由于Android的运行机制采用虚拟机,系统需要占用大量内存来换取执行速度,再加上不定期的内存自动回收机制,从而导致出现卡顿的现象。IOS是苹果公司推出的封闭式手机操作系统,它指定使用的一种开发语言Objective-c语言。它的运行机制采用沙盒运行,整个运行过程中不需要虚拟机,所以相比Android来看其执行效率要高一点。

    由于Android采用了开发的策略,所以很多厂商对其进行了订制。使得Android手机在设计上比IOS变的多样化,但是同时带来了安全隐患,也就是说在测试APP软件时,Android要比IOS要在安全、兼容性、考虑的多一些,基于市面上的辅助工具也比IOS要应用广泛一些,Android系统的版本可升可降,而IOS系统的版本只能升级(越狱除外)

    9.3.2  UI 测试

    UI测试即用户界面测试,具体测试方法如下:

    1)首先确保UI界面设计符合国家的、行业的、企业的标准规范

    2)关注窗口、菜单、对话框以及按钮控件的布局、风格是否满足用户要求

    3)不同页面中控件大小、风格是否一致

    4)页面中颜色的搭配是否合理,整体的颜色不宜过多。

    5)文字的提示是否友好是否存在敏感词、关键词等;

    6)操作是否简单、人性化、是否有帮助指引;

    7)自适应界面设zhu计、内容是否根据窗口的大小自适应调整

    8)图片是否涉及版权、隐私、专利等问题。

    9.3.3 功能测试

    就是验证各个功能是否与需求实现一致,可以从以下几个方面进行测试;

    1、安装卸载

    1)在不同的操作系统下验证安装卸载是否正常,如Android、IOS等;

    2)软件是否可以通过第三方工具进行安装、卸载

    3)安装卸载过程中是否可以取消

    4)安装卸载过程中出现异常处理是否妥当、如重启、死机、断电、断网等

    5)安装过程中空间不足是否有提示信息

    6)安装文件是否写到指定的目录里,卸载后所有的文件以及文件夹是否全部删除。

    7)卸载后是否可以重新安装,安装后数据是否同步,功能是否正常

    8)重复安装是否会有提示信息

    9)直接卸载程序是否有提示信息

    2、启动运行

    1)安装后启动软件测试功能是否可以正常运行

    2)首次打开软件是否有访问提示,如允许访问通讯录、获取地理位置等;

    3)首次启动运行时速度是否满足要求,页面切换之间是否流畅

    3、注册登陆

    1)注册时要考虑用户名和密码长度、格式是否有限制或规则要求等;

    2)重名注册是是否有提示信息;

    3)注册成功后,用户是否可以正常登陆

    4)软件是否有快捷登陆,如手机码、获取验证码之间进行登陆;

    5)是否支持第三方账号登陆,如QQ、微信、微博等账号;

    6)登陆时密码输入错误次数有没有限制;

    7)登陆时网络中断是否会友好提示;

    8)APP是否实现免登录功能

    9)当用户主动退出后,下次启动APP应切换到登录界面。

    4、前后台切换

    1)APP切换到后台,再次返回APP时,是否停留在上一次操作的界面;

    2)APP切换到后台,再次返回APP时,功能是否正常,数据是否更新;

    3)手机锁屏后,再解锁进入APP,功能是否正常,数据是否更新;

    4)出现提示信息后,切换到后台,再次返回APP,检测提示信息是否存在;

    5)多个APP软件之间切换,功能是否正常,数据是否更新;

    6)使用APP时,与手机功能的交互测试,如来电话、收短信、闹钟等。

    5、升级更新

    1)当APP有新版本时,是否有关系提示信息;

    2)当版本为非强制升级更新时,不更新是否可以正常使用;

    3)当不更新退出后,下次启动APP,是否仍然有提示更新信息;

    4)设置APP软件自动升级更新时,在无Wifi的情况下,是否自动更新;

    5)当版本为强制更新时,不更新是否可以正常使用;

    6)升级更新后功能是否正常使用,数据是否会同步

    6、异常测试

    1)电量测试、如电量10%、50%、90%时,验证APP功能是否正常

    2)低电量提示时,验证APP功能是否正常;

    3)充电、拔电时、验证APP功能是否正常;

    4)弱网测试,模拟2G、3G、4G、5G、WIFI时,验证APP功能是否正常;

    5)模拟2G、3G、4G、5G、WIFI之间的切换,验证APP功能是否正常;

    6)离线测试,检查APP是否支持离线浏览;

    7)Push测试,检查用户在免打扰模式下能否接受Push

    9.3.4性能测试

    APP的性能测试分手机端和服务端的性能

    1、手机端的性能

    主要检测资源问题,如CPU.内的占用、耗电量、流量的情况。

    (1)CPU占用

    在使用APP软件时,如果CPU占用率低于20%表示为最佳状态,如果CPU占用在20%~60%之间表示资源使用比较稳定,如果CPU占用率在60%~80%之间表示资源使用饱和,如果CPU占用率超过80%属于性能的瓶颈,必须尽快进行资源调整与优化。

    (2)内存使用

    手机的内存是非常的有限,要合理的申请内存使用,以免致内存溢出;另一方面要及时释放内存,以免发生内存泄露。不合理使用内存,经常会造成APP软件出现无响应、死机、奔溃、闪退等现象。

    (3)耗电量

    在使用APP软件时,必须要检查APP的电量使用,以免导致手机耗电发热,带来不良的影响。

    (4)流量的使用

    进行APP软件时,经常遇到重复请求,响应慢等各种情况。在测试时需要注意不同的网络下,浏览的使用。可以借助一些Monkey工具来检测Android手机端的性能问题。

    2、服务端性能

    跟Web性能大同小异,主要是模拟大量手机用户调用接口对服务器产生负载,可以使用工具,进行并发测试、负载测试、压力测试等。工具在后面小节介绍。

    9.3.5安全测试

    移动APP存在一个非常重要的问题就是安全问题,即用户的隐私泄露。针对APP的安全测试可以参考以下几个方面。

    1、安装包安全性

    1)首先验证安装包是否对签名进行了校验,以防被恶意第三方应用覆盖安装等。

    2)开发人员是否对源代码进行混淆,以免被反编译软件查看源代码;

    3)用户隐私,特别是否访问通讯录,需要对特定权限进行检查。

    2、用户安全性

    1)用户拨打电话、发短信、连接网络等是否存在扣费的风险;

    2)用户密码在传输中是否进行了加密,在数据库中存储是否进行了加密;

    3)免登陆是否设置了过期时间;

    4)用户的账号、密码等敏感数据是否存储在设备上;

    5)当用户注销账号时需要身份验证的接口是否可以调用;

    6)对Cookie的使用是否设置了合理的过期时间;

    3、数据安全性

    1)当用户的敏感数据都是否写到日志或配置文件中;

    2)当用户使用敏感数据时是否给用户提示了谢谢或安全警告;

    3)当输入敏感数据时是否支持第三方输入法输入;

    4)用户输入的数据是否进行了数据合法性的校验;、

    5)在含有敏感数据的连接中是否使用了安全通信,如HTTPS;

    4、通信安全性

    1)所有手机的功能应优先处理,如接电话、收短信等;

    2)当网络中断或出现异常时需要给用户网络异常的提示;

    5、服务端安全性

    主要关注接口,其安全性跟Web端的安全性类似,主要考虑SQL注入、XSS跨站脚本攻击、CSRF跨站请求伪造以及越权访问等。

    9.3.6  兼容性测试

    APP兼容性测试是一个耗时、耗人力、而且成本很高的测试工作,且APP兼容性又是一项必须要进行的测试活动,测试时主要考虑手机端的软、硬件兼容性,一方面要考虑与主流APP的兼容性;另一方面又有考虑手机设备的兼容性,如不同品牌的手机、不同的操作系统、不同的手机屏幕分辨率等。

    具体的测试方法可以使用模拟器来进行模拟不同手机品牌、系统、分辨率进行测试,还可以借助第三方工具(如Spider工具)以及云测试平台来进行测试。

    9.3.7   接口测试

    不管是Web端还是APP接口,其测试的方法思路大致相同(参考Web接口测试)

    9.3.8  用户体验测

    体验可以从以下几点考虑;

    1)UI界面的设计,从用户视觉评价产品;

    2)使用真机对收集兼容性进行体验测试;

    3)用户的指引设计是否合理

    4)APP页面跳转设计和深度是否合理

    5)体验锁屏、横竖屏的设计以及各种异常操作等。

  • 相关阅读:
    手把手教你一键部署自己的HTML静态网页
    RS485modbus转Profinet网关协议连接富凌DZB300系列变频器配置方法
    python 字典里的value
    在Visual Studio 2017上配置Glut
    NV040D语音芯片丨助力空气净化器语音功能
    算法day 16|104,559,111,222
    计算机网络-IS-IS工作原理之邻接关系建立
    Qt编程中segfault问题解决方法
    第13章 拷贝控制【C++】
    猿创征文|从JAVAER到GISER的进击之路
  • 原文地址:https://blog.csdn.net/zhhzc/article/details/125409928