app 测试基础
1. 安装和启动
(1) OTA安装测试
· app必须能够通过ota安装到测试设备上
· 如果app安装完后没有icon,那么必须能够通过其他的方法来启动这个app
· app安装好以后不能要求重启设备
· 如果存储空间不够,安装时必须提示信息
(2)启动时间:
· 如果app启动需要很长时间,app必须给出合理的提示
· 如果启动时间超过5秒,必须有进度条来告诉用户启动的进度。
(3)卸载app:
· app必须能够被从设备中卸载
· 所有的app文件和数据都必须被完全从设备上清除
· 云端的文件可以保留
· 额外购买的数据或者内容,需要保留在设备中
2. 功能性
主要功能的健全性检查:app的功能要与需求一致
app的隐藏功能:app没有包含任何隐藏功能,所有的功能与帮助文档一致,并不会损害设备的数据。
3. 内存使用
(1)app运行中的内存使用:
· 在app执行过程中,如果出现内存用完的异常,app需要能够正确处理。
· 当内存趋于耗尽的时候,需要一个警告提示,告知用户内存即将耗尽。
(2)多次启动:
· 能够正确suspend以及重新启动app(这里的suspend是指将app的运行放到后台)
· 当app被suspend后,能够正确的重启它(可以是从被suspend的状态,也可以是从初始状态,这个依赖于app的设计)
(3)Idle:
· app能够从自动锁屏中正确恢复
· app运行中,如果自动锁屏,解锁后app能够恢复到锁屏之前的状态。
(4)取消耗时的操作:
· app必须能够允许用户取消耗时的操作:
· 如果操作消耗的时间操作10秒,必须有能够取消这个操作的功能。
4. 网络连接
(1)发送和接收数据:
app必须能够通过http来接收和发送数据
在不同的网络环境下(2G/3G/4G/Wifi),用户在每个需要发送或接收数据的地方都能够正确的运行。
(2)网络延迟和连接丢失:
app必须能够正确处理网络延迟和连接丢失
在网络有延迟或者连接丢失的情况下,app必须给出相应的错误提示,告知用户信息。
(3)飞行模式:
当设备处于飞行模式时,app必须能够正确运行
如果app需要使用网络连接,在设备处于飞行模式的时候,需要给出有意义的提示,告诉用户app目前因为设备处理飞行模式而无法正常运行。
当网络恢复后,app必须能够恢复到原来的状态,并继续正常工作。
(4)资源下载:
当app在下载资源的时候,它必须能够处理暂停下载/继续下载和下载中断的事件
如果有暂停下载功能,这个功能必须运行正常
当网络连接断开时,下载能够正确停止
当网络恢复时,下载必须能够正确继续或者重新开始。
5.事件处理
(1)超时事件的处理
如果app内部有时间事件的功能,当这个超时事件发生时,必须能够被正确处理。
(2)App处于suspend状态时,能够正确树立超时事件
当app被放到后台后,超时时间发生时,app能够正确处理这些事件,并且正确恢复状态,继续运行
(3)当app已经退出时,超时事件能够被正确处理
app已经退出,但是app的超时事件发生时,应该提供一个start选项,或者app被启动。
启动后app能够正确运行。
(4)夏令时效果的检查。
如果一个app使用了与时间相关的数据,那么需要检查当时间切换到夏令时时,所有的功能都能正确运行。
(5)时区的处理
如果一个app使用了与时间相关的功能或数据,当设备的时区切换时,需要检查多有的相关功能都工作正常。
6. 消息和电话
发送:app能够成功发送信息
接收:app能够成功接收信息
呼入:当用户在app运行时接了一个电话的时候,当这个电话结束时,app能够正确的从原来的状态继续运行。
7.外部影响
中断操作:当有中断事件发生时(USB插入/拔出,充电器/蓝牙连接/邮件/闹钟/电量提醒/耳机/NFC等设备的连接和断开的时候),app能够从原状态继续正确运行。
8.用户界面
可读性:app的所有内容都是清晰可读的
阅读时间:app给出的信息如果是时间性的,那么用户就需要有一个舒服的时间来完成对这些信息的阅读
屏幕的重写:当app的不同界面切换的时候,不能出现闪烁,或者界面的混乱。
一致性:app的界面应该保持一致性,包括动作序列,工作结果,用于,界面布局,声音等。
按键/输入的易用性:按键的布局/硬键盘输入/软键盘输入/触摸屏输入都必须易用,同时满足左右手的习惯。
UI的速度:在app设计的使用场景下,app的速度不能太快,也不能太慢,以提供良好的使用体验。
错误信息:当需要出现错误信息的时候,信息必须清晰的解释问题,以及提供需要采取的动作
功能进度:当功能的运行需要超过5秒的时候,需要给用户提供进度条或者类似提示
动作的展现:当app在展现或者思考的时候,app不能执行不合理的动作
多种显示模式:如果app支持多种显示模式(横屏/竖屏/外接设备),所有的用户界面和控件都能正确展示。如果设备有横屏的外接输入设备,那么app需要能够哦支持横屏的展现。
不同屏幕尺寸:app需要能够支持不同屏幕尺寸的展示
多种输入方法的支持:app需要能够支持不同的输入方法
加速度计/移动感应器的响应:加速度计/移动感应器的response不能影响UI的展示和app的使用。
拼写错误:app不能出现拼写错误
文本的技术错误:所有的文本展示不能出现文本扭曲/断裂/重叠/切断等错误
9.语言
正确操作:如果设备支持不同的语言,当设备设置不同的语言时,app都要能够正确工作。
手动选择:如果app允许手动选择语言,app要能够选择所有的语言并继续正确工作。
支持的格式:app要能够支持不同的日期/时间/数字/货币等格式
国际字符:app能够正确接受并显示所有的国际字符
10. 恢复
从主菜单suspend和恢复:app能够正确suspend,并且从suspend状态恢复
运行中的suspend:app运行时,能够正确被suspend,占用的设备和资源能够被正确释放,恢复后能正确运行。
后台运行:当app被切换到后台运行时,不能影响其他app或者系统功能,不能播放任何声音,所有系统的功能都能正常运行。
资源的共享:app能够和其他app正确共享资源:比如联系人(新增/删除/修改等)
退出时恢复系统设置:app不能永久的修改系统设置,退出时应该要恢复,比如音量,语言,屏幕的方向等。
11. 多媒体
Mute功能:如果app需要操作声音或者话筒,那需要有相应的音量控制和话筒控制的功能。
设置的可理解性:app的所有设置状态都要易于理解。
设置不能影响功能:所有的app的设置不能影响功能的运行
app自己的设置能够被正确保存:退出时能正确保存,或者提示保存信息。
声音和振动不被滥用:声音和振动的使用都要提供良好的用户体验。
12. 菜单
帮助和about文档:
app需要包含帮助文档,说明如何使用该app
app需要包含about文档,用户可以看到具体的版本号
有效的动作:
选择app的每个item都应该调用相应的有效的动作
13. 按键
菜单的滚动:使用键盘或者其他导航设备的时候,菜单要能够顺利滚动
文本输入框的滚动:在help/about等文本域中,使用外设或者其他导航设备时能够正确滚动。
暂停:如果app有需要与用户进行交互的功能,那么app需要有一个暂停功能,也要有一个继续功能,比如游戏。
并发按键输入或并发触摸的支持:app需要能够支持并发的按键输入或者并发的触摸输入,如果需要提示错误信息,则信息必须清晰可理解。
设备按键:app不能改变设备的默认按键行为,比如音量控制,锁屏等
14. 稳定性
app的稳定性:app在使用过程中不能crash或者freeze
强制关闭的稳定性:当被强制关闭的时候,app必须能够保存足够的状态信息,并能正确启动并继续运行(强制关闭包括断电/手动关闭等)
15. 数据处理
保存游戏状态:app能够将游戏的状态/得分等信息保存进存储器中。
数据删除:app必须指出数据是否将被删除或者提供一个易用的数据恢复手段。
内存记录:app能够正确更新存储器中保存的数据和状态信息。
16. 安全性
当用网络连接来发送或接收敏感数据的时候,这些数据需要被加密。
密码:密码和敏感数据不会被存储到设备中,也不会在app中反馈出来,敏感数据必须被密码保护。当需要提示用户信息的时候,最多只能有25%的数据被显示出来。
17. 隐私
如果app需要访问个人信息,那么必须提供隐私条例,没有用户的允许,app不能访问隐私信息。没有访问到用户信息时,app也必须能正常工作
地点信息:如果app需要使用用户的地点信息,必须得到用户的许可
推送提示信息:app在推送信息前,必须得到用户的许可
18. 广告
app必须符合内嵌广告规则:内嵌广告不得影响用户的使用
19. 性能
网络性能:音频相关的功能必须能够识别不同的网络环境,限制访问时间和数据量(最多5分钟,最多5M),视频相关的功能也必须能够识别不同的网络环境,限制访问时间和数据量(最多十分钟)
电池性能:app不能快速的耗电。