本文整理了测试一个app的关键点,主要包括以下内容:
1.1 测试资源
测试任务开始前,检查各项测试资源。
–产品功能需求文档;
–产品原型图;
–产品效果图;
–行为统计分析定义文档;
–测试设备( ios3.1.3-ios5.0.1; Android1.6-Android4.0; Winphone7.1及以上; Symbian v3/v5/Nokia Belle等);
–其他。
1.2 日报及产品上线报告
1)测试人员每天需对所测项目发送测试日报。
2)测试日报所包含的内容为:
--对当前测试版本质量进行分级;
--对较严重的问题进行例举,提示开发人员优先修改;
--对版本的整体情况进行评估。
3)产品上线前,测试人员发送产品上线报告。
4)上线报告所包含的内容为:
---对当前版本质量进行分级;
---附上测试报告(功能测试报告、兼容性测试报告、性能测试报告以及 app可用性能标准结果);
–总结上线版本的基本情况。若有遗留问题必须列出并记录解决方案。
2.1 功能测试
每项开发的新功能都需要进行测试。app测试中功能测试是一个重要方面。测试人员应该要进行手动测试和后期的自动化测试维护。刚开始测试时,测试员必须把app当做”黑盒”一样进行手动测试,看看提供的功能是否正确并如设计的一样正常运作。除了经典软件测试,像点击按钮、提交订单看看会发生什么,测试员还必须执行更多功能的app测试。
可采用如下方法实现并评估功能测试过程:
1)采用时间、地点、对象、行为和背景五元素或业务分析等方法分析、提炼 App的用户使用
场景,对比说明或需求,整理出内在、外在及非功能直接相关的需求,构建测试点,并明确测试标准,若用户需求中无明确标准遵循,则需要参考行业或相关国际标准或准则。
2)根据被测功能点的特性列出相应类型的测试用例对其进行覆盖,如:涉及输入的地方需要考虑等价、边界、负面、异常或非法、场景回滚、关联测试等测试类型对其进行覆盖。
3)在测试实现的各个阶段跟踪测试实现与需求输入的覆盖情况,及时修正业务或需求理解错
可用自动化测试工具包括:Android,iPhone,WindowsPhone7,BlackBerry以及移动Webapp等
2.2 性能测试
评估App的时间和空间特性,我们比较关注的参数有:CPU,内存,耗电量,流量,FPS。同时也需关注一下App的安装耗时和启动耗时。具体性能测试可包括客户端性能测试和服务器端测试:
客户端测试:
1)负载测试:在各种边界压力情况下,如电池、存储、网速等,验证App是否能正确响应。
--内存满时安装 App
--CPU、内存占用率过高时,spp是否能正常运行,是否会有相关提示
--运行 App时手机断电
--运行 App时断掉网络
2)响应能力测试:测试App中的各类操作是否满足用户响应时间要求。
--App安装、卸载的响应时间
--App各类功能性操作的影响时间
3)稳定性测试:反复/长期操作下、系统资源是否占用异常。
--App反复进行安装卸载,查看系统资源是否正常
--其他功能反复进行操作,查看系统资源是否正常
--app连续运行几十小时以上,查看系统资源是否正常
4)性能评估:评估典型用户应用场景下,系统资源的使用情况。
5)Benchmark测试(基线测试):与竞争产品的Benchmarking,产品演变对比测试等。
服务器端测试:
1)单机容量测试:可以检测到单机服务器在90%的响应时间和成功率都达标的前提下,能够承载多少用户量。
2)24小时稳定性测试:使用特定模型压测24小时,服务无重启,内存无泄漏,并且各事务成功率达标。
2.3 适配兼容测试
市面上目前存在的移动设备五花八门,下图列出过去12个月的移动设备品牌占比情况。
App在经过功能测试后,也需对其进行适配兼容测试,包括测试内部和外部兼容性,需要检查的项主要有以下几点:
1)与本地及主流App是否兼容
2)基于开发环境和生产环境的不同,检验在各种网络连接下(WiFi、GSM、GPRS、EDGE、WCDMA、CDMA1x、CDMA2000、HSPDA等),App的数据和运用是否正确
3)与各种设备是否兼容,若有跨系统支持则需要检验是否在各系统下,各种行为是否一致
--在不同平牌的机型上的安装、拉起、点击和卸载是否正常
--在不同的操作系统上的安装、拉起、点击和卸载是否正常
--不同手机屏幕分辨率的兼容性
2.4 不同网络环境测试
手机的网络目前主要分为2G、3G、wifi。目前2G的网络相对于比较慢,测试时尤其要注意此块的测试。
1)无网络时,执行需要网络的操作,给予友好提示,确保程序不出现crash。
2)内网测试时,要注意选择到外网操作时的异常情况处理。
3)弱网络环境下,常常会出现网络抖动、上行或下行超时,
(a)检查功能状态是否正常,是否有丢包现象,确保不因提交数据失败而造成crash。
(b)检查数据是否会一直处于提交中的状态,有无超时限制。如遇数据交换失败时要给予提示。
(c)执行操作后,在回调没有完成的情况下,退出本页面或者执行其他操作的情况,有无异常情况。此问题也会经常出现程序crash。
常用的弱网络环境场景包括:
--3G弱网络信号场景模拟;
--市区低速移动场景模拟;
--郊区高速移动场景模拟;
--请求回应超时_上行超时场景模拟;
--请求回应超时_下行超时场景模拟;
--网络抖动场景模拟;这个工具也可以解决
2.5 安全测试
App在上线前,都需要做详细的安全测试。安全测试主要为了检测应用是否容易被外界破解;是否存在被恶意代码注入的风险;上线后外挂的风险高不高等。具体可包括
2.5.1软件权限
1)扣费风险:包括发送短信、拨打电话、连接网络等
2)隐私泄露风险:包括访问手机信息、访问联系人信息等
3)对App的输入有效性校验、认证、授权、敏感数据存储、数据加密等方面进行检测
4)限制/允许使用手机功能接人互联网
5)限制/允许使用手机发送接受信息功能
6)限制/允许应用程序来注册自动启动应用程序
7)限制或使用本地连接
8)限制/允许使用手机拍照或录音
9)限制/允许使用手机读取用户数据
10)限制/允许使用手机写人用户数据
11)检测App的用户授权级别、数据泄漏、非法授权访问等
2.5.2安装与卸载安全性
1)应用程序应能正确安装到设备驱动程序上
2)能够在安装设备驱动程序上找到应用程序的相应图标
3)是否包含数字签名信息
4)JAD文件和 JAR包中包含的所有托管属性及其值必需是正确的
5)JAD文件显示的资料内容与应用程序显示的资料内容应一致
6)安装路径应能指定
7)没有用户的允许,应用程序不能预先设定自动启动
8)卸载是否安全,其安装进去的文件是否全部卸载
9)卸载用户使用过程中产生的文件是否有提示
10)其修改的配置信息是否复原
11)卸载是否影响其他软件的功能
12)卸载应该移除所有的文件
2.5.3数据安全性
1)当将密码或其他的敏感数据输人到应用程序时,其不会被储存在设备中,同时密码也不会被解码
2)输人的密码将不以明文形式进行显示
3)密码,信用卡明细,或其他的敏感数据将不被储存在它们预输人的位置上
4)不同的应用程序的个人身份证或密码长度必需至少在 4一 8个数字长度之间
5)当应用程序处理信用卡明细,或其他的敏感数据时,不以明文形式将数据写到其它单独的
文件或者临时文件中。以防止应用程序异常终止而又没有删除它的临时文件,文件可能遭受人侵者的袭击,然后读取这些数据信息。
6)当将敏感数据输人到应用程序时,其不会被储存在设备中
7)备份应该加密,恢复数据应考虑恢复过程的异常�通讯中断等,数据恢复后再使用前应该经过校验
8)应用程序应考虑系统或者虚拟机器产生的用户提示信息或安全替告
9)应用程序不能忽略系统或者虚拟机器产生的用户提示信息或安全警告,更不能在安全警告显示前,,利用显示误导信息欺骗用户,应用程序不应该模拟进行安全警告误导用户
10)在数据删除之前,应用程序应当通知用户或者应用程序提供一个“取消”命令的操作
11)“取消”命令操作能够按照设计要求实现其功能
12)应用程序应当能够处理当不允许应用软件连接到个人信息管理的情况
13)当进行读或写用户信息操作时,应用程序将会向用户发送一个操作错误的提示信息
14)在没有用户明确许可的前提下不损坏侧除个人信息管理应用程序中的任何内容Μ
15)应用程序读和写数据正确。
16)应用程序应当有异常保护。
17)如果数据库中重要的数据正要被重写,应及时告知用户
18)能合理地处理出现的错误
19)意外情况下应提示用户
2.5.4通讯安全性
1)在运行其软件过程中,如果有来电、SMS、EMS、MMS、蓝牙、红外等通讯或充电时,是否能暂停程序,优先处理通信,并在处理完毕后能正常恢复软件,继续其原来的功能
2)当创立连接时,应用程序能够处理因为网络连接中断,进而告诉用户连接中断的情况
3)应能处理通讯延时或中断
4)应用程序将保持工作到通讯超时,进而发送给用户一个错误信息指示有连接错误
5)应能处理网络异常和及时将异常情况通报用户
6)应用程序关闭或网络连接不再使用时应及时关闭断开
7) HTTP、HTTPS覆盖测试
--App和后台服务一般都是通过 HTTP来交互的,验证 HTTP环境下是否正常;
--公共免费网络环境中(如:麦当劳、星巴克等)都要输入用户名和密码,通过SSL认证来访问网络,需要对使用 HTTP Client的 library异常作捕获处理。
2.5.5人机接口安全性
1)返回菜单总保持可用
2)命令有优先权顺序
3)声音的设置不影响应用程序的功能
4)应用程序必需利用目标设备适用的全屏尺寸来显示上述内容
5)应用程序必需能够处理不可预知的用户操作,例如错误的操作和同时按下多个键
2.5.6 网络安全性
模拟客户端直接发送协议包给服务器,看看服务器是否有一定的校验,认不认客户端发过来的数据。当用户发送恶意协议到服务器,是否能骗过服务器的校验。
2.6 UI测试
测试用户界面(如菜单、对话框、窗口和其它可规控件)布局、风格是否满足客户要求、文字是否正确、页面是否美观、文字、图片组合是否完美、操作是否友好等。
UI测试的目标是确保用户界面会通过测试对象的功能来为用户提供相应的访问或浏觅功能。确保用户界面符合公司或行业的标准。包括用户友好性、人性化、易操作性测试。具体可包括如下方面:
2.6.1 导航测试
1)按钮、对话框、列表和窗口等;或在不同的连接页面之间需要导航
2)是否易于导航,导航是否直观
3)是否需要搜索引擎
4)导航帮助是否准确直观
5)导航与页面结构、菜单、连接页面的风格是否一致
2.6.2 图形测试
1)横向比较。各控件操作方式统一
2)自适应界面设计,内容根据窗口大小自适应
3)页面标签风格是否统一
4)页面是否美观
5)页面的图片应有其实际意义而要求整体有序美观
6)图片质量要高且图片尺寸在设计符合要求的情况下应尽量小
7)界面整体使用的颜色不宜过多
2.6.3 内容测试
1)输入框说明文字的内容与系统功能是否一致
2)文字长度是否加以限制
3)文字内容是否表意不明
4)是否有错别字
5)信息是否为中文显示
6)是否有敏感性词汇、关键词
7)是否有敏感性图片,如:涉及版权、专利、隐私等图片
2.7 服务器容灾测试
服务器容灾测试,主要指某个服务进程奔溃掉后,是否具有自行恢复能力。比如对于游戏app来说,逻辑进程消失后,是否会自动拉起;memcached崩溃时,是否会重新启动,是否会对所有玩家有影响。这些都是app测试过程中需要考虑的因素。
2.8 交叉事件测试
针对智能终端应用的服务等级划分方式及实时特性所提出的测试方法。交叉测试又叫事件或冲突测试,是指一个功能正在执行过程中,同时另外一个事件或操作对该过程进行中断或干扰的测试。如;App在前/后台运行状态时与来电、文件下载、音乐收听等关键运用的交互情况测试等。交叉事件测试非常重要,能发现很多应用中潜在的性能问题。
1)多个 App同时运行是否影响正常功能
2)App运行时前/后台切换是否影响正常功能
3)App运行时拨打/接听电话
4)App运行时发送/接收信息
5)App运行时发送/收取邮件
6)App运行时切换网络(2G、3G、wifi)
7)App运行时浏览网络
8)App运行时使用蓝牙传送/接收数据
9)App运行时使用相机、计算器等手机自带设备
2.9 非功能测试
app测试的一个重要方面是app的非功能需求。移动app在推出市场或进行进一步开发前,测试人员有一定的职责做该类需求的跟踪工作。早期开发阶段要进行的第一个测试应该是实用性测试。由alpha用户或测试人员进行。记录使用现阶段开发的版本的情况并收集反馈。
2.10 上线后期的舆情跟踪
新的app上线后,用户对此应用的评价,存在哪些测试期间未察觉的Bug,论坛上对于该应用热门的帖子有哪些,应用商店中该应用的口碑如何等,都是app在上线后,测试人员需要关注的点
参考文献:
https://www.cnblogs.com/zhoumiao/p/5439671.html