手机APP业务功能测试

手机测试分类

手机整机功能测试:
针对手机开发商开发的手机从手机硬件、内置软件以及软硬件结合的功能进行全面的测试,如华为手机、小米手机、苹果手机等

主要涵盖测试内容:
基本通话、通话设置、短信、彩信、电话簿、WAP、手机界面、移动梦网、手机性能、场景测试等

手机APP业务功能测试:
针对运行在手机上的第三方软件进行测试,如手机QQ、微信、手游等

主要涵盖测试内容:
UI测试、功能测试、交叉事件测试、兼容性测试、易用性/用户体验测试、硬件环境测试、安装/卸载测试、升级/更新测试、手势操作测试等

常用手机操作系统介绍

Android一词的本义指“机器人”,同时也是Google于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成。主要使用于移动设备,如智能手机和平板电脑。
Android在正式发行之前,最开始拥有两个内部测试版本,并且以著名的机器人
名称来对其进行命名,它们分别是:阿童木(AndroidBeta),发条机器人(Android 1.0)。后来由于涉及到版权问题,谷歌将其命名规则变更为用甜点作为它们系统版本的代号的命名方法。甜点命名法开始于Android 1.5发布的时候。作为每个版本代表的甜点的尺寸越变越大,然后按照26个字母数序:纸杯蛋糕(Android 1.5),甜甜圈(Android 1.6),松饼(Android 2.0/2.1),冻酸奶(Android 2.2),姜饼(Android 2.3),蜂巢(Android 3.0),冰激凌三明治(Android 4.0),果冻豆(Jelly Bean,Android4.1和Android 4.2),奇巧( KitKat , Android 4.4 ) , 棒棒糖 ( Lollipop , Android 5.0 ) , 棉花糖(Marshmallow,Android 6.0),牛轧糖(Nougat,Android 7.0),奥利奥(Oreo,Android 8.0)。
2012年5月份,商务部和Google签订了一份免费使用Android系统的协议,这份协议的有效期是5年的时间。

IOS是由苹果公司开发的移动操作系统,IOS与苹果的Mac OS X操作系统一样,属于类Unix的商业操作系统。原本这个系统名为iPhone OS,因为iPad,iPhone,iPod touch都使用iPhone OS,所以2010WWDC大会上宣布改名为iOS。

IOS版本历史:
2007:第一个iOS版本;iPhone 1上市。
2008:操作系统系统取名为iPhone OS;iPhone 3G上市。
2010:iPhone OS改名为iOS;iPhone 4上市。
2012:iPhone 5上市
2013:iOS 7发布。
……

IOS项目开发语言:
Objective-C,通常写作ObjC或OC,是扩充C的面向对象编程语言。
Swift是Apple在WWDC2014所发布的一门编程语言,宣称Swift的特点是:快速、现代、安全、互动,且全面优于Objective-C语言。

手机APP业务功能测试

手机APP项目测试点:
针对手机应用软件的系统测试,我们通常从如下几个角度开展测试工作

  • 安装/卸载测试
  • UI测试
  • 功能模块测试
  • 交叉事件测试
  • 易用性/用户体验测试
  • 兼容性测试
  • 渠道包测试

安装/卸载测试

验证App是否能正确安装、运行、卸载、以及操作过程和操作前后对系统资源的使用情况。

  • 安装
    • 软件安装向导的UI测试
    • 安装过程是否可以回溯(即是否可以点“上一步”重新选择)
    • 软件安装后是否能够正常运行,安装后的文件夹以及文件是否写到了指定的目录
      里。
    • 安装后没有生成多余的目录结构和文件。
    • 软件安装各个选项的组合是否符合概要设计说明。
    • 安装空间不足时是否有相应提示。
    • 卸载应用后,再次安装,看是否能重新安装。
    • 打开应用,拒绝其中一项权限申请,应用是否可用。
    • 打开应用,拒绝其全部权限申请,应用是否可用。
    • 安装过程中的介质(网络、磁盘空间、蓝牙设备等)。
  • 卸载
    • 测试系统直接卸载程序是否有提示信息。
    • 测试卸载后文件是否全部删除所有的安装文件夹。
    • 卸载是否支持取消功能,单击取消后软件卸载的情况。
    • 系统直接卸载UI测试,是否有卸载状态进度条提示。
    • 卸载正在运行的软件

UI测试

1)测试用户界面(如菜单、对话框、窗口和其他控件)布局、风格是否满足要求、文字是否正确、页面是否美观、文字、图片组合是否完美、操作是否友好等。

2)UI测试的目标是确保用户界面会通过测试对象的功能来为用户提供相应的访问或浏览功能。确保用户界面符合公司或行业的标准。包括用户友好性、人性化、易操作性测试。

它包含如下三部分测试内容:

  • 导航测试
    • 按钮、对话框、列表和窗口等;或在不同的连接页面之间需要导航。
    • 是否易于导航,导航是否直观。
    • 是否需要搜索引擎。
    • 导航帮助是否准确直观。
    • 导航与页面结构、菜单、连接页面的风格是否一致。
  • 图形测试
    • 横向比较,各控件操作方式统一。
    • 自适应界面设计,内容根据窗口大小自适应。
    • 页面标签风格是否统一。
    • 页面是否美观。
    • 页面的图片应有其实际意义而要求整体有序美观。
  • 内容测试
    • 输入框说明文字的内容与系统功能是否一致。
    • 文字长度是否加以限制。
    • 文字内容是否表意不明。
    • 是否有错别字。
    • 信息是否为中文显示。

功能模块测试

根据软件需求说明书或者用户需求验证app的各个功能是否实现,采用如下方法实现并评估功能测试过程:
采用时间、地点、对象、行为、和背景五元素或业务分析等方法、提炼app的用户使用场景,对比说明和需求,整理出内在,外在及非功能直接相关需求,构建测试点和用例,并明确测试标准,若用户需求中无明确标准遵循,则需要参考行业或相关国际标准或准则。根据被测试功能点的特性列出相应类型的测试用例对其进行覆盖,如:涉及输入的地方需要考虑等价、边界、负面、异常或非法、场景回滚、关联测试等测试类型对其进行覆盖。
在测试实现的各个阶段跟踪测试实现与需求输入的覆盖情况,及时修正业务或需求理解错误地方。
具体测试如后面ppt描述。

功能模块测试的测试点

  • App安装完成后的试运行,可正常打开软件。
  • App打开测试,是否有加载状态进度提示。
  • App打开速度测试,速度是否可观。
  • App页面间的切换是否流畅,逻辑是否正确
  • 注册
    • 同表单编辑页面
    • 用户名密码长度
    • 注册后的提示页面
    • 前台注册页面和后台的管理页面数据是否一致
    • 注册后,在后台管理中页面提示
  • 登录
    • 使用合法的用户登录系统。
    • 系统是否允许多次非法的登陆,是否有次数限制。
    • 使用已经登陆的账号登陆系统是否正确处理。
    • 使用禁用的账号登陆系统是否正确处理。
    • 用户名、口令(密码)错误或漏填时能否登陆。
    • 删除或修改后的用户,原用户登陆。
    • 不输入用户口令和用户、重复点(确定或取消按钮)是否允许登陆。
    • 登陆后,页面中登陆信息。
    • 页面中有注销按钮。
    • 登陆超时的处理。
  • 注销
    • 注销原模块,新的模块系统能否正确处理。
    • 终止注销能否返回原模块,原用户。
    • 注销原用户,新用户系统能否正确处理。
    • 使用错误的账号、口令、无权限的被禁用的账号进行注销
  • 应用的前后台切换
    • APP切换到后台,再回到app,检查是否停留在上一次操作界面。
    • APP切换到后台,再回到app,检查功能及应用状态是否正常,IOS4和IOS5的版本的处理机制有的不一样。
    • app切换到后台,再回到前台时,注意程序是否崩溃,功能状态是否正常,尤其
      是对于从后台切换回前台数据有自动更新的时候。
    • 手机锁屏解屏后进入app注意是否会崩溃,功能状态是否正常,尤其是对于从后
      台切换回前台数据有自动更新的时候。
    • 当App使用过程中有电话进来中断后再切换到app,功能状态是否正常
    • 当杀掉app进程后,再开启app,app能否正常启动。
    • 出现必须处理的提示框后,切换到后台,再切换回来,检查提示框是否还存在,有时候会出现应用自动跳过提示框的缺陷。
    • 对于有数据交换的页面,每个页面都必需要进行前后台切换、锁屏的测试,这种页面最容易出现崩溃。
  • 免登录
    很多应用提供免登录功能,当应用开启时自动以上一次登录的用户身份来使用app. 免登录测试点如下:
    • app有免登录功能时,需要考虑IOS版本差异。
    • 考虑无网络情况时能否正常进入免登录状态。
    • 切换用户登录后,要校验用户登录信息及数据内容是否相应更新,确保原用户退出。
    • 根据MTOP的现有规则,一个帐户只允许登录一台机器。所以,需要检查一个帐户登录多台手机的情况。原手机里的用户需要被踢出,给出友好提示。
    • app切换到后台,再切回前台的校验
    • 切换到后台,再切换回前台的测试
    • 密码更换后,检查有数据交换时是否进行了有效身份的校验
    • 支持自动登录的应用在进行数据交换时,检查系统是否能自动登录成功并且数据操作无误。
    • 检查用户主动退出登录后,下次启动app,应停留在登录界面。
  • 数据更新
    根据应用的业务规则,以及数据更新量的情况,来确定最优的数据更新方案。
    • 需要确定哪些地方需要提供手动刷新,哪些地方需要自动刷新,哪些地方需要手动+自动刷新。
    • 确定哪些地方从后台切换回前台时需要进行数据更新。
    • 根据业务、速度及流量的合理分配,确定哪些内容需要实时更新,哪些需要定时更新。
    • 确定数据展示部分的处理逻辑,是每次从服务端请求,还是有缓存到本地,这样才能有针对性的进行相应测试。
    • 检查有数据交换的地方,均有相应的异常处理。
  • 离线浏览
    很多应用会支持离线浏览,即在本地客户端会缓存一部分数据供用户查看。
    • 在无网络情况可以浏览本地数据
    • 退出app再开启app时能正常浏览
    • 切换到后台再切回前台可以正常浏览
    • 锁屏后再解屏回到应用前台可以正常浏览
    • 在对服务端的数据有更新时会给予离线的相应提示
  • 定位、照相机服务
    • App有用到相机,定位服务时,需要注意系统版本差异
    • 有用到定位服务、照相机服务的地方,需要进行前后台的切换测试,检查应用是否正常。
    • 当定位服务没有开启时,使用定位服务,会友好性弹出是否允许设置定位提示。
      当确定允许开启定位时,能自动跳转到定位设置中开启定位服务。
    • 测试定位、照相机服务时,需要采用真机进行测试。
  • App更新
    • 当客户端有新版本时,有更新提示。
    • 当版本为非强制升级版时,用户可以取消更新,老版本能正常使用。用户在下次启动app时,仍能出现更新提示。
    • 当版本为强制升级版时,当给出强制更新后用户没有做更新时,退出客户端。下次启动app时,仍出现强制升级提示。
    • 当客户端有新版本时,在本地不删除客户端的情况下,直接更新检查是否能正常更新。
    • 当客户端有新版本时,在本地不删除客户端的情况下,检查更新后的客户端功能是否是新版本。
    • 当客户端有新版本时,在本地不删除客户端的情况下,检查资源同名文件如图片是否能正常更新成最新版本。如果以上无法更新成功的,也都属于缺陷。
  • 时间测试
    • 客户端可以自行设置手机的时区、时间,因此需要校验该设置对app的影响。--中国为东8区,所以当手机设置的时间非东8区时,查看需要显示时间的地方,时间是否展示正确,应用功能是否正常。
  • PUSH测试
    • 检查push消息是否按照指定的业务规则发送
    • 检查不接受推送消息时,检查用户不会再接收到push.
    • 如果用户设置了免打扰的时间段,检查在免打扰时间段内,用户接收不到PUSH。
    • 在非免打扰时间段,用户能正常收到push。
    • 当push消息是针对登录用户的时候,需要检查收到的push与用户身份是否相符,没有错误地将其它人的消息推送过来。一般情况下,只对手机上最后一个登录用户进行消息推送。
    • 测试push时,需要采用真机进行测试。
    • 是否进入到指定的app页面。

交叉事件测试

针对智能终端应用的服务等级划分方式及实时特性所提出的测试方法。交叉测试又叫事件或冲突测试,是指一个功能正在执行过程中,同时另外一个事件或操作对该过程进行干扰的测试。如:App在前/后台运行状态时与来电、文件下载、音乐收听等关键运用的交互情况测试等。交叉事件测试非常重要,能发现很多应用中潜在的性能问题。

主要测试点如下:

  • 多个App同时运行是否影响正常功能。
  • App运行时前/后台切换是否影响正常功能。
  • App运行时拨打/接听电话。
  • App运行时发送/接收信息。
  • App运行时发送/收取邮件。
  • App运行时浏览网络。
  • App运行时使用蓝牙传送/接收数据。
  • App运行时使用相机、计算器等手机自带设备。

用户体验测试

以主观的普通消费者的角度去感知产品或服务的舒适、有用、易用、友好亲切程度。通过不同个体、独立空间和非经验的统计复用方式去有效评价产品的体验特性,提出修改意见提升产品的潜在客户满意度。

  • 是否有空数据界面设计,引导用户去执行操作。
  • 是否滥用用户引导。
  • 是否有不可点击的效果,如:你的按钮此时处于不可用状态,那么一定要灰掉,或者拿掉按钮,否则会给用户误导。
  • 菜单层次是否太深。
  • 交互流程分支是否太多。
  • 相关的选项是否离的很远。
  • 一次是否载入太多的数据。
  • 界面中按钮可点击范围是否适中。
  • 标签页是否跟内容没有从属关系,当切换标签的时候,内容跟着切换。
  • 操作应该有主次从属关系。
  • 是否定义Back的逻辑。涉及软硬件交互时,Back键应具体定义。
  • 是否有横屏模式的设计,应用一般需要支持横屏模式,即自适应设计。

兼容性与渠道包测试

  • 兼容测试:
    主要测试内部和外部兼容性。主要测试点如下:

    • 与本地及主流App是否兼容
    • 与各种设备是否兼容,若有跨系统支持则需要检验是否在个系统下,各种行为是否一致。不同手机屏幕分标率的兼容性、不同手机品牌的兼容性
  • 渠道包测试:

    • 渠道包就是要在安装包中添加渠道信息,也就是channel(通道),对应不同的渠道,例如:小米市场、360市场、应用宝市场等,我们要在安装包中添加不同的标识,应用在请求网络的时候携带渠道信息,方便后台做运营统计(这就是添加渠道信息的用处)。
    • 渠道包测试即根据应用市场不同,开发会针对不同的应用市场打多个apk包,测试人员需要针对所有的渠道包都进行基本功能测试的过程。

利用云测平台进行app测试

常用的云测平台:

云手机租用:利用STF技术实现网页形式远程桌面方式操作手机真机界面
兼容性云测试:app跑安装、启动、卸载过程,并执行随机monkey

posted @ 2019-12-24 09:20  心脏鼓点  阅读(881)  评论(0编辑  收藏  举报