移动测试->注意点
0.新增存储卡方面
不同型号的手机存储卡设置不太一致,对于下载类产品存储卡的兼容性必须覆盖全面
还有就是存储卡满的情况下的功能
1.APP基本功能
按照back log整理测试用例,测试中发现有需求变动、或未考虑完全,及时更新测试用例。
测试用例包括:全功能点用例+重点功能快速回归用例
2.Android特性测试
横竖屏、home键、音量键、power键、返回键等
横竖屏,跟需求相关。比如大图页横屏显示。
Home键,回桌面,再切换回app,是否正常。
返回键,返回上一操作界面。有可能出现需要多次退出app的情况。
3.各种网络状态下进行测试
慢网络。10k/s
CMCC网络。能连上wifi,但无法连外网
无网络。飞行模式
2G、3G
4.关机、重启、锁屏
关机、重启,系统定时任务(如,闹钟)正常,数据配置是否会丢失。
锁屏、解锁,是否正常。以前有出现过解锁后,列表页被刷新的问题。锁屏、解锁也有可能出现crash。
5.应用切换
切换应用,回到原界面
按home键回桌面,再返回app
系统API与应用间切换,如打完电话、发完短信,切换回app
第三方app与应用间切换,如应用内推荐app、微信、地图路线
6.系统API
需要确认设备是否支持,不支持是否会crash
打电话
发短信
拍照
sd卡
2G/3G
7.操作系统兼容性
Android:
2.2.x 7.5%
2.3.x 54.4%
4.x 31.4%
iOS:
4.3.x 4.6%
5.x 55%
6.x 33.8%
8.android分辨率兼容性
480*800 40%
320*480 20%
480*854 15%
540*960 7.5%
720*1280 6.4%
240*320 5.5%
9.清空数据或强制退出之后是否能够正常运行
打开app时,清空缓存(系统,360等安全软件),再返回app,是否会crash
10.用户环境
真实环境测试,即用户一般会在手机中安装哪些软件,进行安装之后测试。第三方应用冲突
360、qq助手都安全类软件,在后台运行时,使用app是否会触发这类软件
输入法冲突
11.卸载、安装
安装、卸载
覆盖安装,升级安装。覆盖安装如果新版本有改动底层数据库,无法加载历史数据,可能会出现crash
软件安装在sd卡上,卸载sd卡再启动app。部分机型rom,将app移动到sd卡上,在桌面上的链接会无法正常使用。
12.用户体验测试
应用界面,用户体验测试
UI。调用系统API,与app风格是否相符
列表拖动、大图滑动是否流畅
列表页、单页图片清晰度。与图片尺寸有关,但不是越大越好
真机测试
13.压力测试
长时间、高强度操作应用,OOM
app长时间放在后台,激活app再操作。有可能对象被系统回收,出现crash
Monkey发现的OOM、NullPoint
14.安全测试
API数据请求加密,内存数据加密
15.自动化测试
android:robotium、monkeyrunner
iOS:instruments
16.性能测试
traceview
Android Application Testing
1.测试该应用几本功能(该功能需详细按照需求以及业务进行测试功能点的分析和总结)
2.Android特性测试(横竖屏,home键,音量键,power键等)
3.各种网络状态下进行测试(包括飞行模式)
4.关机、待机、切换应用之后应用是否可以正常运行
5.手机并发(比如突然来电,有短信弹出,低电量,闹铃等)
6.Android平台兼容性(1.5到至今的4.x)
7.Android分辨率(QVGA,WVGA,HWVGA等)
8.应用在清空数据或强制推出之后是否能够正常运行
9.应用跳转系统api是否正常(比如在应用中有需求跳转到系统的一个界面,再跳转回来)
10.应用是否用到系统的api,查看系统是否支持该api
11.应用的CPU,内存,耗电,流量调查(可和同类产品比较、CPU靠system dump 命令进行跟踪、内
存可靠DDMS的GC之后查看object的上升情况以及NAT插件的分析)
12.应用是否与其他的第三方应用有冲突(比如拨号的黑名单,比如各种输入法)
13.应用是否本身存在权限问题,涉及用户的哪些权限
14.真实环境测试,即用户一般会在手机中安装哪些软件,进行安装之后测试
15.应用安全测试
16.应用的安装,卸载,sd卡重装,重复安装,升级安装等。
17.应用界面,用户体验测试
18.应用的压力测试,长时间开机,操作(可使用monkey tool,monkey发现的NullPointException是
一定要fix的)
19.应用UI Automation(可使用Robotium,Athrun,NativeDriver,Monkeyrunner等)
20.应用的性能测试(利用Android Junit Test,比如连续Call App Intent来查看启动时间等)
21.应用的某些特定逻辑算法测试(利用Android Junit Test来进行Api的测试)
22.应用的单元测试(一般是由开发完成)
23.应用是否涉及编译平台问题,比如Mips,Arm等
24.应用的网络抓包检查(比如tcpcat,使用wireshark进行数据分析)
25.应用对于系统的兼容性测试(Android CTS Testing)
26.应用的UI像素测试,图像精确度测试(使用hierarchyviewer工具查看)
===========
以下是功能测试时需要注意的点:
1、登录
●登录用户名和密码错误时,界面有提示信息
●用户主动退出登录后,下次启动APP时,应该进入登录界面
●对于支持自动登录的APP,数据交换时 ,是否能自动登录成功且数据库操作无误
●密码更改后,登录时是否做到了有效数据的校验
●对于未登录时一些页面的操作,是否做了控制
●切换账号登录,检验登录的信息是否做到及时更新
●对于多个端都进行操作时,确保数据库操作无误,且每个端可以及时看到数据的更新
●对于一些软件,支持一个账号只允许登录一台机器,这时,需要检查账号登录多个手机时,是否将原用户剔除,且能够给出提示信息
● APP切换到后台时,再次切换到前台的测试,如登录时,有电话打进来
2、离线
离线是应用程序在本地的客户端会缓存一部分数据以功程序下次调用
●对于一些程序,需要在登录进来后,这时没有网络的情况下可以浏览本地数据
●对于无网络时,刷新获取新数据时,不能获取数据且能给出友好提示
●切换到后台,再次切换到前台时,可以正常查看
●离线后又连上网,这时对数据有更新时,需要从服务器端获取新数据来更新客户端数据,且要更新本地缓存信息
●对于一些界面的数据不提供离线查看,需要给出相应提示且界面更新后无任何数据
3、Sqlite数据库
android和IOS客户端都采用了sqlite数据库,
当APP需要在客户端保存数据时,它们会创建相应的数据库表,最常见的就是对账号的保存,这时的测试点主要有:
●跟一般数据库一样,需要见擦数据的增,删,改,查
●客户端即用即建,当表不存在时,是否会自动创建
●数据表被删除后,新建的表中的数据能否自动从服务器端中获取回来兵保存
●当对数据进行了修改,删除,客户端和服务器端能否有相应的更新
●获取数据,客户端是从直接从客户端获取还是和服务器端的数据进行比较
●对于客户端从服务器端更新的数据,客户端是否有保存于本地。
个人提的bug注意点:
●因为ios系统有不断的更新,所以会出现这样那样兼容性的问题,其实我们软件中有一点,我记得很清楚,就是在送人彩票环节,赠送成功后会弹出一个温馨提示(问用户是,否要提醒用户领取),用户一旦点了【好的】,会跳到一个短信提醒框,此时就会出错,在苹果5上都没事,一旦在4s上运行就有可能付出闪退。
●如果是同一个用户,那么她在android,ios上登录后,记录应该都是一样的。
●一款手机软件在android系统上测试要特别注意,android手机款式多,内存,分辨率不一,所以测试难过也比较大。我们的软件有一个问题一直走不去,就是在小手机上,如果应用开多,占内存大了,就会出现闪退。
●有新的版本要上线前,一定要测旧的版本,不能因为新版本上线了,老版本就不能用了,用老版本的用户还是大有人在。有一次,我用新版本注册的用户去玩老版本,结果就有有错过,当然这样玩的人很少。
●如果一页面里有很多条记录里,要注意上下多滑动,我在测试过程中,好几次在上下滑动中又由于数据出现错误,导致闪退,尤其是android.
●到了某个页面,突然断网了,然后你在不知情的情况下,点击某个按钮想继续往下走,此时,不能出现闪退的情况,而要给出断网提示。
●文本框校验时采用等价类划分法,边界值法,错误推测法与场景法,至少这些方法的概念,自己网上去搜。
●很多手机app在打开后,一般用户都不需要先注册登录,到了合适的地方,弹出合适的提示,很好友的让用户去登录。当然有些页面,而且有时没有判断,未登录去点一些按钮,有可能会闪退。未登录与登录显示的页面是完全不一样的,要仔细测。
●用户登录状态太久,sessionId会过期,会出现“虽然是登录状态,系统会提示用户没有登录。”
●外部软件需要更新导致自家软件闪退。我公司是一款博彩类软件,用户需要通过支付宝或财付通支付,有一次在用支付快捷支付时,提示我支付快捷支付需要更新,我就点了更新,更新完成后,我们的软件就异常退出了。
●输入数据,点某颗按钮,会出现错误提示,有时不管这个提示,继续猛点这个按钮,会出现出人意外的结果哦。
●上线前一定要测一下软件更新。所有功能都测了n遍了,大胆放心的上了,可是没有在测试环境测软件的更新。结果上线后,用户更新了就出大问题了,大大影响用户量。
移动测试->最常见的APP Bug,崩溃的测试用例设计
移动App测试与传统台式机测试相比有一定的复杂性。这些复杂性可以被分类为:
环境(大量的设备,各种移动OSs,适应频繁OSs变化) 。
设备(触摸式和非触摸式设备,有限的内存容量,电池耗电量) 。
网络(不同的网络和运营商,在不好或无网络的情况下的App行为,离线支持) 。
可用性(方向,触摸,多触摸,缩放,分页和导航的局限性,各种干扰,如来电,来电短信,闹钟,和低电量警报) 。
所有这些手机专有的复杂性需要新的针对移动App测试的测试用例设计方案。
根据调查的结果,移动App崩溃是最常见的移动App Bug ,这是预料中的结果,因为很容易发现一个移动App崩溃。Android OS上一个写着“强制关闭错误”的弹出窗口跳上屏幕;当发生崩溃时,iOS中App屏幕突然消失消失。最坏的情况下,App崩溃可能会导致系统故障,操作 系统崩溃。
移动App崩溃原因
为什么移动App经常崩溃?App崩溃有几个原因:从平台或环境到开发问题。
一些崩溃原因(排名不分先后) :
设备碎片化:由于设备极具多样性,App在不同的设备上可能有表现不同。
带宽限制:带宽不佳的网络对App所需的快速响应时间可能不够。
网络的变化:不同网络间的切换可能会影响App的稳定性。
内存管理:可用内存过低,或非授权的内存位置的使用可能会导致App失败。
用户过多:连接数量过多可能会导致App崩溃。
代码错误:没有经过测试的新功能,可能会导致App在生产环境中失败。
第三方服务:广告或弹出屏幕可能会导致App崩溃。
移动App崩溃的测试用例设计
测试用例是移动测试最重要部分之一。
准备和执行预先定义的针对移动App崩溃的测试用例将简化和加速移动App崩溃的测试。
一些通用的触发移动App崩溃的测试场景,如下:
1 验证在有不同的屏幕分辨率,操作系统和运营商的多个设备上的App行为。
2 用新发布的操作系统版本验证App的行为。
3 验证在如隧道,电梯等网络质量突然改变的环境中的App行为。
4 通过手动网络从蜂窝更改到Wi-Fi ,或反过来,验证App行为。
5 验证在没有网络的环境中的App行为。
6 验证来电/短信和设备特定的警报(如警报和通知)时的App行为。
7 通过改变设备的方向,以不同的视图模式,验证App行为。
8 验证设备内存不足时的App行为。
9 通过用测试工具施加载荷验证App行为。
10 用不同的支持语言验证App行为。
显然,还会有更多的导致App崩溃的App特定场景。
Android共性问题
登录
●登录用户名和密码错误时,界面有提示信息
●用户主动退出登录后,下次启动APP时,应该进入登录界面
●对于支持自动登录的APP,数据交换时 ,是否能自动登录成功且数据库操作无误
●密码更改后,登录时是否做到了有效数据的校验
●对于未登录时一些页面的操作,是否做了控制
●切换账号登录,检验登录的信息是否做到及时更新
●对于多个端都进行操作时,确保数据库操作无误,且每个端可以及时看到数据的更新
●对于一些软件,支持一个账号只允许登录一台机器,这时,需要检查账号登录多个手机时,是否将原用户剔除,且能够给出提示信息
● APP切换到后台时,再次切换到前台的测试,如登录时,有电话打进来
2、离线
离线是应用程序在本地的客户端会缓存一部分数据以功程序下次调用
●对于一些程序,需要在登录进来后,这时没有网络的情况下可以浏览本地数据
●对于无网络时,刷新获取新数据时,不能获取数据且能给出友好提示
●切换到后台,再次切换到前台时,可以正常查看
●离线后又连上网,这时对数据有更新时,需要从服务器端获取新数据来更新客户端数据,且要更新本地缓存信息
●对于一些界面的数据不提供离线查看,需要给出相应提示且界面更新后无任何数据
个人提的bug注意点:
●因为ios系统有不断的更新,所以会出现这样那样兼容性的问题,其实我们软件中有一点,我记得很清楚,就是在送人彩票环节,赠送成功后会弹出一个温馨提示(问用户是,否要提醒用户领取),用户一旦点了【好的】,会跳到一个短信提醒框,此时就会出错,在苹果5上都没事,一旦在4s上运行就有可能付出闪退。
●如果是同一个用户,那么她在android,ios上登录后,记录应该都是一样的。
●一款手机软件在android系统上测试要特别注意,android手机款式多,内存,分辨率不一,所以测试难过也比较大。我们的软件有一个问题一直走不去,就是在小手机上,如果应用开多,占内存大了,就会出现闪退。
●有新的版本要上线前,一定要测旧的版本,不能因为新版本上线了,老版本就不能用了,用老版本的用户还是大有人在。有一次,我用新版本注册的用户去玩老版本,结果就有有错过,当然这样玩的人很少。
●如果一页面里有很多条记录里,要注意上下多滑动,我在测试过程中,好几次在上下滑动中又由于数据出现错误,导致闪退,尤其是android.
●到了某个页面,突然断网了,然后你在不知情的情况下,点击某个按钮想继续往下走,此时,不能出现闪退的情况,而要给出断网提示。
●文本框校验时采用等价类划分法,边界值法,错误推测法与场景法,至少这些方法的概念,自己网上去搜。
●很多手机app在打开后,一般用户都不需要先注册登录,到了合适的地方,弹出合适的提示,很好友的让用户去登录。当然有些页面,而且有时没有判断,未登录去点一些按钮,有可能会闪退。未登录与登录显示的页面是完全不一样的,要仔细测。
●用户登录状态太久,sessionId会过期,会出现“虽然是登录状态,系统会提示用户没有登录。”
●外部软件需要更新导致自家软件闪退。我公司是一款博彩类软件,用户需要通过支付宝或财付通支付,有一次在用支付快捷支付时,提示我支付快捷支付需要更新,我就点了更新,更新完成后,我们的软件就异常退出了。
●输入数据,点某颗按钮,会出现错误提示,有时不管这个提示,继续猛点这个按钮,会出现出人意外的结果哦。
●上线前一定要测一下软件更新,我好几次这里没测,结果挨了批。这真是叫做“晚节不保”。所有功能都测了n遍了,大胆放心的上了,可是没有在测试环境测软件的更新。结果上线后,用户更新了就出大问题了,大大影响用户量。