一、APP发展
- APP(application)通常指安装在智能手机上的软件
- 软着互联网技术的发展,从PC端向移动端流动的变化非常明显,只能手机已经成为日常生活中不可缺少的一部分
- 5G时代的来临,使APP的发展将以用户为主,朝着网络多元化、综合化、智能化的方向发展
二、APP的测试流程
计划、设计、测试、评估
三、APP的测试方法
》Android与IOS
- Android是Google开发、发行的软件平台。内核是Linux,其应用程序都是用Java编写的。由于Android的运行机制采用虚拟机,系统需要占用大量内存来换取执行速度,再加上不定期的内存自动回收机制,从而导致出现卡顿现象
- IOS是苹果公司开发的封闭式手机操作系统。它指定适合用一种开发语言—Objective-C语言。它的运行机制采用沙盒运行,整个运行过程中不需要虚拟机,所以相比Andriod其执行效率要高一点
》UI测试(用户界面测试)
- 确保UI界面设计符合国家的、行业的、企业的标准规范;
- 关注窗口、菜单、对话框以及按钮控件的布局、风格要满足用户要求;
- 不同页面的控件大小、风格是否一致;
- 文字的提示是否友好,是否存在敏感词、容易引起歧义的词等;
- 操作是否简单、人性化,是否有向导指引;
- 内容是否根据窗口的大小自适应调整;
》功能测试:
验证各个功能是否与需求实现一致
》安装卸载
- 在不同的操作系统下验证安装卸载是否正常,如Android、IOS、Symbian等;
- 安装卸载过程中出现异常,如重启、死机、断电、断网等,是否能正确处理;
- 安装过程中是否可以取消;
- 安装过程中空间不足是否有相应提示;
- 安装文件是否安装到制定的目录里,卸载后所有文件及文件夹是否全部删除;
- 是否可以卸载应用;
- 卸载后是否可以重新安装,安装后数据是否同步,功能是否正常
》启动运行
- 安装后易懂软件,测试功能是否可以正常运行
- 首次打开软件是否有访问提示,如允许访问通讯录、获取地理位置等
- 首次启动运行时速度是否满足要求,页面之间切换是否流畅
》注册登录 *
- 注册时要考虑用户名和密码的长度、格式是否有限制或规则要求等
- 重名注册是否有提示信息
- 注册成功后,用户是否可以正常登录
- 软件是否有快捷登录,如手机号码、获取验证码之间进行登录
- 是否支持第三方账号登录,如QQ、微信、微博等账号
- 登录时密码输入错误次数有没有限制
- 登录时网络中断是否有友好提示
- APP是否实现免登录功能、当用户主动退出后,下次启动APP应切换到登录页面
》前后台切换
- APP切换到后台,再次返回APP时,是否停留在上一次操作界面
- APP切换到后台,再次返回APP时,功能是否正常,数据是否更新
- 手机锁屏后,再解锁进入APP,应用是否会崩溃,功能是否正常,数据是否更新
- 出现提示信息后,切换到后台,再次返回APP,检测提示信息是否存在
- 多个APP之间切换,功能是否正常,数据是否更新
- 使用APP时,与手机功能的交互测试,如来电话、收短信、闹钟等。
》升级更新
- 当APP有新版本时,是否有更新提示信息
- 当版本为非强制升级更新时,不更新是否可以正常使用
- 当用户取消更新退出后,下次启动APP,是否仍然有提示更新信息
- 设置APP软件自动升级更新时,在无wifi的情况下,是否自动更新
- 当版本为强制更新时,不更新是否可以正常使用
- 升级更新后功能是否正常使用,数据是否会同步
》消息推送测试
- 默认开关应该是全打开状态
- 消息开关可以自由设置打开关闭状态,设置开关关闭时,客户端接收不到消息推送
- 未锁屏时,app在后台运行,消息推送是否可以正常接收
- 手机信息栏是否可以接收收到消息提醒,且可以点击查看,点击后在消息栏消失
- 当push消息是针对登录用户的时候,需要检查收到的push与用户身份是否相符
- Push推送消息是是否能有针对性的推送,如相应内容推送给相应用户(精准推送)
- 退出登录后,是否接受push推送
- 用户在免打扰模式下能否接受push
》异常测试
- 电量测试,如电量极低时,验证app功能是否正常
- 低电量提示时,验证app功能是否正常
- 充拔电、插拔耳机、插拔数据线时,验证app功能是否正常
- 无网络时,各种提示信息是否友好,数据本地话是否正确
- 模拟网络2G/3G/4G/wifi之间的切换,验证APP功能是否正常
- 离线测试,检查app是否支持离线流程,无网络时,是否有提示
》安全测试(用户的隐私泄露)
- 安装包安全性
1 首先验证安装包是否对签名进行了校验,以防止被恶意第三方应用覆盖安装等
2 开发人员是否对源代码进行混淆,以免被反编译软件查看源代码
3 用户隐私,特别是访问通讯录,需要对特定权限进行检查 - 用户安全性
1 免登录是否设置了过期时间
2 用户密码在传输中是否进行了加密,在数据库中存储是否进行了加密 - 数据安全性
1 用户的敏感数据是否写到日志或配置文件中
2 在含有敏感数据的连接中是否使用了安全通信,如https
》APP的兼容性测试
- app是否可以在不同的操作系统上正常使用,如果开发有Android和iOS两个平台的版本,那么在这两个平台都要做兼容测试
- app能否适配各种屏幕尺寸
- 分辨率不同,界面图标,文字大小会有不同。应保证主流分辨率下图标展示完整,文字内容没有遮挡
APP测试与Web测试的区别
- 系统架构不同
- 测试方法不同
1 功能测试:Web不支持离线浏览,但是有的APP支持
2 性能测试:Web主要关注服务器性能,APP除了服务器,还要考虑手机端的性能
3 兼容性测试:Web主要考虑浏览器的兼容性,APP还要考虑不同设备、不同系统、不同系统版本、不同分辨率等
4 专项测试:APP中多了一些专项测试,比如电量测试、弱网测试、中断测试等- 测试工具不同
1 app一般使用monkey、appium、fiddle等
2 web一般使用qtp、 loadrunner、selenium
四、APP的测试经验
》确定设备和平台再动手
- 了解移动App的平台及所带有的功能设计
- 了解易懂App的生命周期,面向的用户是什么群体
- App的支持和需要测试的设备及平台等,其中设备的硬件参数也很重要,包括屏幕尺寸、分辨率、像素密度等
》关于多任务和意外情况处理
- App在使用过程中用户接听到一个来电,App应该如何处理
- 不同App之间的切换,打开App的速度是否会变慢,以及切换时的动画是否出现卡顿
- 对于在具备同样功能的App,尤其是具有视频和音频播放功能的App之间进行切换时,需要注意它们之间的播放控制是否会对另外的App产生影响
- 硬件也是影响到App多任务操作的因素,听歌时拔掉耳机、SD卡被拔出
》避免手势冲突
- 避免使用移动平台的手势操作
- 如果使用平台的手势,在平台手势更新时也要记得更新
》关注用户体验
- 横竖屏幕测试
- WebView测试
- 规范和习惯
- 关注用户(及残障人士)体验
- 其他需要关注的用户体验的小细节,如,不同的颜色背景下状态栏的显示是否正常
》设计通知和消息展示
- 测试app在安装时是否明确声明在使用app时的需要用到的权限
- 测试app在使用的过程中是否有合适的通知和消息显示
- 测试app在后台运行的时候是否有合适的消息和通知显示
- 测试app的消息推送功能
- 测试app在出错时是否有合适的通知和消息显示
- 及时显示和同步消息
1 如果用户使用的是我们的及时通信app,某天登录突然收到了朋友在几个月前发来的消息,那用户会有什么样的反应呢?
2 哪些app对消息的及时性要求很高(金融类、即时通讯类)
3 考虑到app中各种缓存对于消息显示的影响,app的缓存机制:“内存”→“文件”→“网络”的结构
》确保成功集成和调用第三方App
- App对第三方App的直接集成,如微信“我的钱包”里的滴滴打车、京东等
- 测试App的分享功能,确保App的内容可以被正确地分享到别的App中
- 测试App显示外部链接的功能
- 测试App使用社交媒体等账号登录的功能
- 测试App的推送服务
- 测试App关联其他文件的功能
- 测试App和输入法等App的交互功能
五、其他移动端的测试
》M端(移动Web端)
- 网络种类多
无线网络、2G、3G、4G等,断网、网速较差及网络之间的切换时页面的显示等,这些对于移动端来说很重要。此外,在非wifi下,还需要注意网络使用量的情况 - 间断问题
移动端使用软件的过程并不是长久的,这中间可能发生很多终端,如电话、短信、通知、断电、锁屏等等,软件需要特殊处理这些特殊情况。 - 屏幕的限制
1 图片及文字的显示:上传不同的图片尺寸显示是否正常;图片和文字一起显示时,效果如何。
2 操作区域:web端的应用,一般不会手动屏幕的限制,而且通过鼠标操作更加准确。但是移动端由于屏幕较小,页面及按钮会受到屏幕大小的限制,再加上用户都是通过手指进行操作,一些按钮、选择框等是否容易点击/多个可点区域位置较近时,点击部位稍微便宜,也许就会造成不同的效果,这种情况下是否可以达到预先的效果 - 手势
移动端还有一大特性,就是移动端有自己比较简单的手势,用户可以通过手势进行一个操作,比如左滑删除、右滑返回上一个页面、左右滑动图片等,软件需要对这个手势进行适配 - Web和移动端的同步
用户在Web端的操作,在移动端是否可以正常的进行同步、显示;在移动端的操作,用户登录web账号,信息是否同步等。
》微信小程序测试
-
功能测试
-
兼容性测试
1 操作系统兼容性
2 屏幕兼容性
3 微信版本兼容性 -
网络测试、接口测试、易用性测试、性能
-
交易
小程序支持交易,那么它与微信的钱包、卡包都是可以交互的。如果有交易功能,需要验证各种交易场景 -
缓存
比如需要验证清空微信的缓存是否对小程序有影响 -
消息机制
1 支付当用户在小程序内完成过支付行为,可允许开发者向用户在7天内推送有限条数的模板消息
2 当用户在小程序内发生过提交表单行为且该表单声明为要发模板消息的,开发者需要向用户提供服务时,可允许开发者向用户在7天内推送有限条数的模板消息 -
权限
已授权/未授权