资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,2,#,手机,APP,测试培训,曹向志 大开科技,&,大开测试,2,1,各种测试类型简介,1,安卓手机测试(,59,),2,安卓常用测试命令(,76,),3,手机自动化测试,4,Contents,目,2,2,录,比较点,移动应用,PC应用,应用类型,Native App和Web App以及混合型,Client和Web,操作方式,多点触摸,鼠标和键盘,界面布局,操作界面少,流程简单,操作界面复杂且流程复杂,设备尺寸,移动设备屏幕小,手机和平板的屏幕尺寸相差巨大,且各自屏幕大小种类繁多,PC显示屏幕大且其软件应用也不受屏幕限制,功能,强调主要功能以及用户常用功能,支持全部功能,设备网络连接方式,主要是2G/3G/4G/WiFi;,有线方式或者WiFi,应用设备限制,存储空间小,连接不稳定、带宽较小、流量费用限制、移动互联网上的风险等,存储空间大,带宽相对较宽,连接一般也较稳定,各种安全软件安装齐全,用户使用习惯,移动用户随时随地就会使用移动软件应用,强调移动性,用户一般在固定的地点使用PC应用,移动应用与传统PC应用的区别,3,2025/8/10 周日,主流手机操作系统,4,Android,Android,一词的本义指“机器人”,同时也是,Google,于,2007,年,11,月,5,日宣布的基于,Linux,平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成。,生产,Android,手机的厂商:,-,台湾:,HTC,-,韩国:三星,-,中国:华为、小米、中兴、酷派、魅族等,IOS,iOS,是由苹果公司开发的移动操作系统,最初是设计给,iPhone,使用的,后来陆续套用到,iPod itouch,、,iPad,以及,Apple TV,等产品上。,最新版本:,iOS_10,2025/8/10 周日,手机测试分类,5,传统手机测试,是指测试手机本身,如抗压、抗摔、抗疲劳、抗低温高温等,也包括手机本身的功能、性能等测试。,手机应用软件测试,手机应用软件是基于手机操作系统之上开发出来的软件,做这样的测试,就叫做手机应用软件测试。,2025/8/10 周日,手机测试与传统测试的区别,6,网络,多样化,2G,网络、,3G,网络、,4G,网络、,WIFI,支持系统,多样化,手机操作系统:,Android,、,iOS,、,windows Phone,等。,分辨率类型多样化,720,*,1280,1080,*,1920,等,2025/8/10 周日,手机软件测试定义,7,手机软件测试就是符合多种网络,不同系统不同分辨率下发现软件缺陷,并保证提高软件质量的过程。,什么是手机软件测试?,2025/8/10 周日,测试流程,8,接收版本,UI,测试:核对,rp/,效果图,功能测试:核对需求文档,兼容性测试、性能压力测试,尽快申请到正,式环境下测试,后台数据统计测试,用户行为统计测试,进入正式环境,即试用行,仍然为测试环境,回归测试,发送上线报告,2025/8/10 周日,主要测试策略,9,安装、卸载测试,UI,测试,功能测试,性能测试,交叉事件测试,兼容测试,升级、更新测试,用户体验测试,硬件环境测试,客户端数据库测试,安全测试,2025/8/10 周日,安装、卸载测试,10,安装测试,从不同的渠道获取安装程序是否正常安装。,软件在不同操作系统下安装是否正常。,软件安装后的是否能够正常运行,安装后的文件夹及文件是否写到了指定的目录里。,软件安装各个选项的组合是否符合概要设计说明,软件安装过程是否可以取消,点击取消后,写入的文件是否如概要设计说明处理,软件安装过程中意外情况的处理是否符合需求(如死机,重启,断电),安装空间不足,),时是否有相应提示,安装后没有生成多余的目录结构和文件,对于需要通过网络验证之类的安装,在断网情况下尝试一下,还需要对安装手册进行测试,依照安装手册是否能顺利安装,卸载测试,直接删除安装文件夹卸载是否有提示信息。,测试系统直接卸载程序是否有提示信息。,测试卸载后文件是否全部删除所有的安装文件夹。,卸载过程中出现的意外情况的测试(如死机、断电、重启)。,卸载是否支持取消功能,单击取消后软件卸载的情况,系统直接卸载,UI,测试,是否有卸载状态进度条提示。,2025/8/10 周日,UI,测试,11,测试用户界面,(,如菜单、对话框、窗口和其它可规控件,),布局、风格是否满足客户要求、文字是否正确、页面是否美观、文字、图片组合是否完美、操作是否友好等。,导航测试,按钮、对话框、列表和窗口等;或在不同的连接页面之间需要导航,是否易于导航,导航是否直观,是否需要搜索引擎,导航帮助是否准确直观导航与页面结构、菜单、连接页面的风格是否一致,图形测试,横向比较。各控件操作方式统一,自适应界面设计,内容根据窗口大小自适应,页面标签风格是否统一,页面是否美观,页面的图片应有其实际意义而要求整体有序美观,图片质量要高且图片尺寸在设计符合要求的情况下应尽量小,界面整体使用的颜色不宜过多,内容测试,输入框说明文字的内容与系统功能是否一致,文字长度是否加以限制,文字内容是否表意不明,是否有错别字,信息是否为中文显示,是否有敏感性词汇、关键词,是否有敏感性图片,如:涉及版权、专利、隐私等图片,2025/8/10 周日,功能测试,12,运行,APP,应用的前后台切换,免登录,数据更新,离线浏览,APP,更新,定位、照相机服务,时间测试,PUSH,测试,App,安装完成后的试运行,可正常打开软件。,App,打开测试,是否有加载状态进度提示。,App,打开速度测试,速度是否可观。,App,页面间的切换是否流畅,逻辑是否正确,注册,登录,注销,APP,切换到后台,再回到,app,,检查是否停留在上一次操作界面。,APP,切换到后台,再回到,app,,检查功能及应用状态是否正常,,app,切换到后台,再回到前台时,注意程序是否崩溃,功能状态是否正常。,手机锁屏解屏后进入,app,注意是否会崩溃,功能状态是否正常。,当,App,使用过程中有电话进来中断后再切换到,app,,功能状态是否正常,当杀掉,app,进程后,再开启,app,,,app,能否正常启动。,出现必须处理的提示框后,切换到后台,再切换回来,检查提示框是否还存在,有时候会出现应用自动跳过提示框的缺陷。,对于有数据交换的页面,每个页面都必需要进行前后台切换、锁屏的测试,这种页面最容易出现崩溃。,很多应用提供免登录功能,当应用开启时自动以上一次登录的用户身份来使用,app,。,app,有免登录功能时,需要考虑版本差异。,考虑无网络情况时能否正常进入免登录状态。,切换用户登录后,要校验用户登录信息及数据内容是否相应更新,确保原用户退出。,根据现有规则,一个帐户只允许登录一台机器。所以,需要检查一个帐户登录多台手机的情况。原手机里的用户需要被踢出,给出友好提示。,app,切换到后台,再切回前台的校验,切换到后台,再切换回前台的测试,密码更换后,检查有数据交换时是否进行了有效身份的校验,支持自动登录的应用在进行数据交换时,检查系统是否能自动登录成功并且数据操作无误。,检查用户主动退出登录后,下次启动,app,,应停留在登录界面,需要确定哪些地方需要提供手动刷新,哪些地方需要自动刷新,哪些地方需要手动,+,自动刷新。,确定哪些地方从后台切换回前台时需要进行数据更新。,根据业务、速度及流量的合理分配,确定哪些内容需要实时更新,哪些需要定时更新。,确定数据展示部分的处理逻辑,是每次从服务端请求,还是有缓存到本地,这样才能有针对性的进行相应测试。,检查有数据交换的地方,均有相应的异常处理,很多应用会支持离线浏览,即在本地客户端会缓存一部分数据供用户查看。,在无网络情况可以浏览本地数据,退出,app,再开启,app,时能正常浏览,切换到后台再切回前台可以正常浏览,锁屏后再解屏回到应用前台可以正常浏览,在对服务端的数据有更新时会给予离线的相应提示,当客户端有新版本时,有更新提示。,当版本为非强制升级版时,用户可以取消更新,老版本能正常使用。用户在下次启动,app,时,仍能出现更新提示。,当版本为强制升级版时,当给出强制更新后用户没有做更新时,退出客户端。下次启动,app,时,仍出现强制升级提示。,当客户端有新版本时,在本地不删除客户端的情况下,直接更新检查是否能正常更新。,当客户端有新版本时,在本地不删除客户端的情况下,检查更新后的客户端功能是否是新版本。,当客户端有新版本时,在本地不删除客户端的情况下,检查资源同名文件如图片是否能正常更新成最新版本。如果以上无法更新成功的,也都属于缺陷,App,有用到相机,定位服务时,需要注意系统版本差异,有用到定位服务、照相机服务的地方,需要进行前后台的切换测试,检查应用是否正常。,当定位服务没有开启时,使用定位服务,会友好性弹出是否允许设置定位提示。当确定允许开启定位时,能自动跳转到定位设置中开启定位服务。,测试定位、照相机服务时,需要采用真机进行测试,客户端可以自行设置手机的时区、时间,因此需要校验该设置对,app,的影响。,-,中国为东,8,区,所以当手机设置的时间非东,8,区时,查看需要显示时间的地方,时间是否展示正确,应用功能是否正常。时间一般需要根据服务器时间再转换成客户端对应的时区来展示,这样的用户体验比较好。比如发表一篇微博在服务端记录的是,10:00,,此时,华盛顿时间为,22:00,,,客户端去浏览时,如果设置的是华盛顿时间,则显示的发表时间即为,22:00,当时间设回东,8,区时间时,再查看则显示为,10:00,。,检查,push,消息是否按照指定的业务规则发送,检查不接受推送消息时,检查用户不会再接收到,push.,如果用户设置了免打扰的时间段,检查在免打扰时间段内,用户接收不到,PUSH,。在非免打扰时间段,用户能正常收到,push,。,当,push,消息是针对登录用户的时候,需要检查收到的,push,与用户身份是否相符,没有错误地将其它人的消息推送过来。一般情况下,只对手机上最后一个登录用户进行消息推送。,测试,push,时,需要采用真机进行测试。,2025/8/10 周日,性能测试,13,极限测试,在各种边界压力情况下,如电池、存储、网速等,验证,App,是否能正确响应,-,内存满时安装,App,;,-,运行,App,时手机断电;,-,运行,App,时断掉网络。,响应能力测试,测试,App,中的各类操作是否满足用户响应时间要求,-,App,安装、卸载的响应时间;,-,App,各类功能性操作的影响时间。,压力测试,反复长期操作下、系统资源是否占用异常,-APP,反复进行安装、卸载,查看系统资源是否正常;,-,其他功能反复进行操作,查看系统资源是否正常,性能评估:,评估典型用户应用场景下,系统资源的使用情况,基线测试,与竞争产品的,Benchmarking,产品演变对比测试等,设定性能基准,2025/8/10 周日,交叉事件测试,14,交叉测试又叫事件或冲突测试,是指一个功能正在执行过程中,同时另外一个事件或操作对该过程进行干扰的测试。,如:,App,在前,/,后台运行状态时与来电、文件下载、音乐收听等关键运用的交互情况测试等。交叉事件测试非常重要,能发现很多应用中潜在的性能问题。,测试要点,1,、多个,App,同时运行是否影响正常功能,2,、,App,运行时前,/,后台切换是否影响正常功能,3,、,App,运行时拨打,/,接听电话,4,、,App,运行时发送,/,接收信息,5,、,App,运行时发送,/,收取邮件,6,、,App,运行时切换网络(,2G,、,3G,、,4G,、,WIFI,),7,、,App,运行时浏览网络,8,、,App,运行时使用蓝牙传送,/,接收数据,9,、,App,运行时使用相机、计算器等手机自带设备,2025/8/10 周日,兼容性测试,15,与本地及主流,App,兼容,不同操作系统,兼容,不同手机品牌兼容,不同屏幕分辨率兼容,不同网络,兼容,2025/8/10 周日,升级、更新测试,16,新版本发布后,配合不同网络环境的自动更新提示及下载、安装、更新、启动、运行的验证测试,升级更新,1,、测试升级后的功能是否与需求说明一样,2,、测试与升级模块相关的模块的功能是否与需求一致,3,、升级安装意外情况的测试(升级安装意外情况的测试(如死机、断电、重启),4,、升级界面的,UI,测试,5,、不同操作系统间的升级测试,2025/8/10 周日,用户体验测试,以主观的普通消费者的角度去感知产品或服务的舒适、有用、易用、友好亲切程度。通过不同个体、独立空间和非经验的统计复用方式去有效评价产品的体验特性提出修改意见提升产品的潜在客户满意度。,17,是否有空数据界面设计,引导用户去执行操作。,是否滥用用户引导。,是否有不可点击的效果。,菜单层次是否太深,交互流程分支是否太多,相关的选项是否离得很远,一次是否载入太多的数据,界面中按钮可点击范围是否适中,标签页是否跟内容没有从属关系,当切换标签的时候,内容跟着切换,操作应该有主次从属关系,是否定义,Back,的逻辑。涉及软硬件交互时,,Back,键应具体定义,是否有横屏模式的设计,应用一般需要支持横屏模式,即自适应设计,2025/8/10 周日,硬件环境测试,18,手势操作测试,手机开锁屏对运行中的,App,的影响,切换网络对运行中的,App,的影响,运行中的,App,前后台切换的影响,多个运行中的,App,的切换,App,运行时关机,App,运行时重启系统,App,运行时充电,App,运行时,kill,掉进程再打开,网络环境测试,无网络时,执行需要网络的操作,给予友好提示,确保程序不出现崩溃。,内网测试时,要注意选择到外网操作时的异常情况处理。,在网络信号不好时,检查功能状态是否正常,确保不因提交数据失败而造成崩溃。,在网络信号不好时,检查数据是否会一直处于提交中的状态,有无超时限制。如遇数据交换失败时要给予提示。,在网络信号不好时,执行操作后,在回调没有完成的情况下,退出本页面或者执行其他操作的情况,有无异常情况。此问题也会经常出现程序。,后台服务牵涉到,DNS,、空间服务商的情况下会影响其稳定性,2025/8/10 周日,接口测试,服务端一般会提供,JSON,格式的数据给客户端,所以我们在服务端需要进行接口测试,确保服务端提供的接口并转换的,JSON,内容正确,对分支、异常流有相应的返回值。此块测试可以采用,itest,框架进行测试。最方便的是采用,httpclient,进行接口测试。,进行服务端测试时,需要开发提供一份接口文档,19,(JavaScript Object Notation),是一种轻量级的数据交换格,Itest,测试框架是,TaoBao,测试部门开发的一套单元测试框架,HttpClient,是,Apache Jakarta Common,下的子项目,可以用来提供高效的、最新的、功能丰富的支持,HTTP,协议的客户端编程工具包,并且它支持,HTTP,协议最新的版本和建议。,2025/8/10 周日,客户端数据库测试,20,一般的增、删、改、查测试。,在业务需要从服务端取回数据保存到客户端的时候,客户端能否将数据保存到本地,当表不存在时是否能自动创建,当数据库表被删除后能否再自建,数据是否还能自动从服务端中获取回来并保存。,当业务对数据进行了修改、删除后,客户端和服务端是否会有相应的更新。,当业务需要从客户端取数据时,检查客户端数据存在时,,app,数据是否能自动从客户端数据中取出,还是仍然会从服务器端获取?检查客户端数据不存在时,,app,数据能否自动从服务器端获取到并保存到客户端,2025/8/10 周日,安全测试,21,安全测试,软件权限安全性,人机接口安全性,通讯安全性,数据安全性,安装与卸载安全性,扣费风险:包括发送短信、拨打电话、连接网络等,隐私泄露风险:包括访问手机信息、访问联系人信息等,对,App,的输入有效性校验、认证、授权、敏感数据存储、数据加密等方面进行检测,限制,/,允许使用手机功能接入互联网,允许使用手机发送接受信息功能,限制,/,允许应用程序来注册自动启动应用程序,限制或使用本地连接,限制,/,允许使用手机拍照或录音,限制,/,允许使用手机读取用户数据,限制,/,允许使用手机写人用户数据,检测,App,的用户授权级别、数据泄漏、非法授权访问等,应用程序应能正确安装到设备驱动程序上,能够在安装设备驱动程序上找到应用程序的相应图标,是否包含数字签名信息,JAD,文件和,JAR,包中包含的所有托管属性及其值必需是正确的,JAD,文件显示的资料内容与应用程序显示的资料内容应一致,安装路径应能指定,没有用户的允许,应用程序不能预先设定自动启动,卸载是否安全,其安装进去的文件是否全部卸载,卸载用户使用过程中产生的文件是否有提示,其修改的配置信息是否复原,卸载是否影响其他软件的功能,卸载应该移除所有的文件,当将密码或其他的敏感数据输入到应用程序时其不会被储存在设备中,同时密码也不会被解码,输人的密码将不以明文形式进行显示,密码、信用卡明细、或其他的敏感数据将不被储存在它们预输入的位置上,不同的应用程序的个人身份证或密码长度必需至少在,4-8,个数字长度之间,当应用程序处理敏感数据时,不以明文形式将数据写到其它单独的文件或者临时文件中。以防止应用程序异常终止而又没有删除它的临时文件,文件可能遭受入侵者的袭击,然后读取这些数据信息。,备份应该加密,恢复数据应考虑恢复过程的异常通讯中断等,数据恢复后再使用前应该经过校验,应用程序应考虑系统或者虚拟机器产生的用户提示信息或安全警告,在数据删除之前,应用程序应当通知用户或者应用程序提供一个“取消”命令的操作,“取消”命令操作能够按照设计要求实现其功能,应用程序应当能够处理当不允许应用软件连接到个人信息管理的情况,在没有用户明确许可的前提下不损坏、删除个人信息管理应用程序中的任何内容,如果数据库中重要的数据正要被重写,应及时告知用户,在运行其软件过程中,如果有来电、,SMS,、,EMS,、,MMS,、蓝牙、红外等通讯或充电时,是否能暂停程序,优先处理通信,并在处理完毕后能正常恢复软件,继续其原来的功能,当创立连接时,应用程序能够处理因为网络连接中断,进而告诉用户连接中断的情况,应能处理通讯延时或中断,应用程序将保持工作到通讯超时,进而发送给用户一个错误信息指示有连接错误,返回菜单总保持可用,声音的设置不影响应用程序的功能,应用程序必需能够处理不可预知的用户操作,例如错误的操作和同时按下多个键,2025/8/10 周日,功能测试,功能测试主要是程序逻辑及相关业务点测试。,一、应充分考虑各种边缘情况,边界状态。,二、应多站在用户的角度考虑程序的设计是否合理,是否充分满足用户的需求。,22,2025/8/10 周日,适配测试,-1,机型适配,:,苹果的机型:,iphone,、,iPod Touch,和,iPad,,,Iphone,:,iphone3G/3GS/4/4s/5/5s/5c/6/6S,,,iPod Touch,:,Touch1/2/3/4/5/6,,,iPad,:,iPad1/2/The new iPad/4/Mini/iPad Air,。,机型适配重点在于硬件设备的分辨率和硬件资源等。例如,如果,app,没有强依赖某个硬件资源,那么机型适配主要考虑分辨率,反之,,app,强依依赖某个硬件资源,如摄像头(对焦)、,GPS,定位、陀螺仪等,那么需要根据具体设备来适配,。,23,2025/8/10 周日,适配测试,-2,固件适配,(,1,)不同设备所能够安装的系统范围不同;,(,2,)不同系统呈现不同特性;,目前主流的固件适配主要包括,4.3.x/5.x/6.x/7.x,,固件适配需要结合不同系统所具有特性来进行,但最终都是保证,app,在支持的固件上正常工作。,通常,苹果发布的手机一般都是当前最新的系统,因此,对于,iphone5s,,其固件只有,7.x,,依此类推,,iphone4s,通常不存在,4.x,的系统(不考虑降级因素),机型适配和固件适配需要综合考虑。,固件范围通常可选择,=4.3,。,24,2025/8/10 周日,适配测试,-3,屏幕尺寸、分辨率适配,通常,iphone,的机型适配可选三款手机来进行,,iphone3GS45,或,iphone3GS4s5,。如果,app,使用了摄像头,还需要考虑不同像素、对焦因素的机型以及是否支持闪光灯(,3GStouchipad,均不支持)。,各机型具体参数详见下表,适配时根据具体,app,来决定适配范围。,25,2025/8/10 周日,2,26,IC卡属性读取,作为:,一名中银易商注册用户、游客,我想要:,使用带有,NFC,功能的手机扫金融,IC,卡,以便于:,读取,IC,卡信息,验收条件:,功能性:,1,、用户的金融,IC,卡能够被正确识别。,2,、识别卡类型:借记,B,卡,贷记,B,卡,准贷记,B,卡、借记,C,卡、贷记,C,卡、澳门卡,2,27,IC卡补登圈存,作为:,一名中银易商注册用户,我想要:,使用带有,NFC,功能的手机扫金融,IC,卡,以便于:,无需去柜台就能对我的,IC,芯片卡做补登充值操作,验收条件:,功能性:,1.,用户的金融,IC,卡能够被正确识别。,2.,用户能够补登圈存。,3.,用户在补登成功后能正确显示电子现金账户余额。,4.,冲正后补登账户能正确退款。,2,28,IC卡指定账户圈存,作为:,一名中银易商注册用户,我想要:,使用带有,NFC,功能的手机扫金融,IC,卡,以便于:,无需去柜台就能对我的,IC,芯片卡做指定账户充值操作,验收条件:,功能性:,1.,用户的金融,IC,卡能够被正确识别。,2.,用户能够补登或圈存。,3.,用户在指定账户圈存成功后能正确显示电子现金账户余额。,4.,冲正后主账号或补登账户能正确退款。,2,29,IC,卡圈存冲正交易,作为:,一名中银易商注册用户,我想要:,使用带有,NFC,功能的手机扫金融,IC,卡,以便于:,金额能正确退款到主账户或补登账户,验收条件:,功能性:,1,、冲正后主账号或补登账户能正确退款。,2,、发送退款时有通知信息。,静态分析,-1,静态分析是指对开发的代码执行静态代码扫描,从而发现代码中存在逻辑、内存等缺陷。静态分析可以通过,Xcode,或外部插件扫描来实现。,通过,xcode,的,ProductAnalyze,来扫描,如下图所示。,30,2025/8/10 周日,静态分析,-2,通常,可以扫描出以下四种类型缺陷:,逻辑缺陷,如访问未初始化的变量或对空指针的引用等;,多余的变量,该类变量定义后,永远不会被访问;,内存管理缺陷,一般为内存泄露;,API,使用缺陷,由于未遵循使用的框架或类库相关规范造成的;,31,2025/8/10 周日,静态分析,-3,示例:,a.,多余变量,代码中的,statusCode,仅作简单赋值操作,属于多余变量;,b.,内存泄露,,newString,对象未被释放,发生内存泄露;,32,2025/8/10 周日,静态分析,-4,一般情况下,静态分析中以下三种类型的提示较为严重,可能引起严重问题:,内存泄漏隐患提示:,Potential Leak of an object allocated on line,数据赋值隐患提示:,The left operand of is a garbage value;,对象引用隐患提示:,Reference-Counted object is used after it is released;,33,2025/8/10 周日,网络测试,-1,网络根据网速可分为网络良好、弱网络、无网络三种情况。此项测试主要考虑弱网络和无网络,测试前需要充分了解页面在什么情况向服务端作请求,从而作相应的测试。,无网络测试,,需要在页面作请求前关闭移动设备网络,观察程序是否作友好提示。,弱网络测试,要复杂得多,存在以下三种类型:,(,1,)页面等待请求数据,数据返回后,页面呈现是否正常;,(,2,)页面在发出请求后,离开该页面,数据返回后,程序是否正常处理,是否会发生,crash,;,(,3,)页面等待请求数据,造成超时,页面是否作友好提示;,34,2025/8/10 周日,网络测试,-2,弱网络可通过真机或模拟器来实现。真机可以绑定至指定的服务器,作适当延时,来模拟弱网络环境。绑定有以下两种方式:,越狱手机可通过修改,etc,目录下的,hosts,来实现,具体操作可参见测试工具,iFile,的使用说明;,任何手机都可通过,wifi,绑定至指定端口的代理服务器。,模拟器可通过,network link condition,工具来模拟各种网络情况,设置上传和下载的带宽、丢包率、延时等,以下给出弱网络建议参数,测试时可根据实际情况来决定。,35,2025/8/10 周日,网络测试,-3,网络超时,可通过以下方式来实现,根据实际需要来选择:,绑定未知服务器,构成网络超时,适用所有类型;,对某类域名作,host,绑定,适用越狱机器;,绑定代理服务器,延时某个请求的时间;,修改程序代码,改变某个请求的链接。,实际应用场景中,还需要考虑网络之间的切换,具体切换类型见下表。,有网络,-,无网络,无网络,-,有网络,3G-4G,4G-3G,3G-wifi,Wifi-3G,4G-wifi,Wifi-4G,36,2025/8/10 周日,低内存警告测试,-1,系统的内存警告分为四种,定义如下:,typedef enum,OSMemoryNotificationLevelAny=-1,OSMemoryNotificationLevelNormal=0,OSMemoryNotificationLevelWarning=1,OSMemoryNotificationLevelUrgent=2,OSMemoryNotificationLevelCritical=3,OSMemoryNotificationLevel;,iOS,的低内存警告是系统在低内存下向程序发出的友好提示,程序通常会先调用,AppDelegate,中的,applicationDidReceiveMemoryWarning,,接着通知各,ViewController,,调用相应的,didRecieveMemoryWarning,方法,此时程序应当在该方法中释放不必要的资源,否则在必要的时候,系统将强制回收资源,程序退出。,37,2025/8/10 周日,低内存警告测试,-2,低内存警告测试一般在模拟器上测试,测试步骤:,(,1,)在,xcode,上安装各固件的模拟器。,Xcode-Preferences-Downloads/Components,,安装各模拟器,安装完成后,可以在,xcode,的,scheme,上看到相应的模拟器,如下图所示。,38,2025/8/10 周日,低内存警告测试,-3,(,2,)选择要测试的固件类型,将程序安装至相应的模拟器。,39,2025/8/10 周日,低内存警告测试,-4,(,3,)在程序任意页面,执行模拟器菜单的硬件,-,模拟内存警告(见下图),观察页面显示操作是否正常,返回上一级页面是否正常。,40,2025/8/10 周日,操作类型测试,-1,操作类型测试,应根据自身,app,的应用场景来进行,比如对于有摄像头的,app,,应根据使用场景来决定扫描、拍摄角度等;对于支持横竖屏的场景,要考虑横竖切换的情况。下表给出了操作类型测试要点,。,41,2025/8/10 周日,系统相关测试,-1,系统相关测试主要考虑,iOS,系统环境变化对,app,的影响,包括系统中断、系统时间、系统资源、软件冲突等。具体细节点校验点见下表。,42,2025/8/10 周日,系统相关测试,-2,系统相关测试主要通过真机来进行,但模拟器也提供了部分功能,如展现呼叫状态、模拟硬件键盘等,参见下图。,43,2025/8/10 周日,内存泄露测试,-1,1)MRR,谁创建,谁释放:如果对象使用,alloc,、,new,、,copy,或,mutableCopy,等方法创建,则必须调用,release,或,autorelease,方法释放内存,否则内存泄露;,谁,retain,,谁释放:给对象发送,retain,消息后,则拥有了这个对象,引用计数,+1,,当不需要使用该对象时,发送,release,或,autorelease,消息放弃这个对象;,没创建且没,retain,,别释放:不要释放不是自己,alloc,或,retain,的对象,否则程序会,crash,;,44,2025/8/10 周日,内存泄露测试,-2,2,),ARC,技术是随着,xcode4.2,一起发布的,在工程,Build Settings,中指定中指定是否支持,ARC,技术,如下图所示。,ARC,使得程序员不需要思考何时使用,retain,,,release,,,autorelease,,它提供了自动评估内存生存期的功能,同时在编译期间自动加入合适的管理内存的方法。,45,2025/8/10 周日,内存泄露测试,-3,内存泄露现象,程序对象使用完毕后未释放,此类问题基本可以通过静态分析发现;,对象循环引用,如下图所示。,autoReleasePool,使用不当。,46,2025/8/10 周日,内存泄露测试,-4,用,Instruments,解决内存泄露,从,Leopard,开始,苹果在,XCode,系列开发工具中增加了一个新的功能强大的性能调试工具,叫做,Instruments,。,Instruments,是一个 非常具有新意的调试工具,如果你使用过,iLife,中非常简单易用的音乐创作工具,GarageBand,,你会发现这两者的界面非常类似。能够把开发工具的,UI,做成像音乐创作软件的形式,可能也只有苹果能够想到了。,47,2025/8/10 周日,内存泄露测试,-5,直接在,XCode,中调用,Instruments,。具体操作方法是在,XCode,里打开,demo,项目,或者是你自己的项目(需要先编译一下),然后在菜单中选择,Run-Start With Performance Tool-Leaks,。,48,2025/8/10 周日,内存泄露测试,-6,49,2025/8/10 周日,适配测试,-1,机型适配,:,苹果的机型:,iphone,、,iPod Touch,和,iPad,,,Iphone,:,iphone3G/3GS/4/4s/5/5s/5c/6/6S,,,iPod Touch,:,Touch1/2/3/4/5/6,,,iPad,:,iPad1/2/The new iPad/4/Mini/iPad Air,。,机型适配重点在于硬件设备的分辨率和硬件资源等。例如,如果,app,没有强依赖某个硬件资源,那么机型适配主要考虑分辨率,反之,,app,强依依赖某个硬件资源,如摄像头(对焦)、,GPS,定位、陀螺仪等,那么需要根据具体设备来适配,。,50,2025/8/10 周日,适配测试,-2,固件适配,(,1,)不同设备所能够安装的系统范围不同;,(,2,)不同系统呈现不同特性;,目前主流的固件适配主要包括,4.3.x/5.x/6.x/7.x,,固件适配需要结合不同系统所具有特性来进行,但最终都是保证,app,在支持的固件上正常工作。,通常,苹果发布的手机一般都是当前最新的系统,因此,对于,iphone5s,,其固件只有,7.x,,依此类推,,iphone4s,通常不存在,4.x,的系统(不考虑降级因素),机型适配和固件适配需要综合考虑。,固件范围通常可选择,=4.3,。,51,2025/8/10 周日,适配测试,-3,屏幕尺寸、分辨率适配,通常,iphone,的机型适配可选三款手机来进行,,iphone3GS45,或,iphone3GS4s5,。如果,app,使用了摄像头,还需要考虑不同像素、对焦因素的机型以及是否支持闪光灯(,3GStouchipad,均不支持)。,各机型具体参数详见下表,适配时根据具体,app,来决定适配范围。,52,2025/8/10 周日,适配测试,-4,53,2025/8/10 周日,适配测试,-5,相关特性:,Iphone5,产品特性:重力感应、距离感应、光线感应、加速传感、电子罗盘、,3D,加速、陀螺仪,Iphone4s,产品特性:重力感应、距离感应、光线感应、加速传感、电子罗盘、,3D,加速、陀螺仪,Iphone4,产品特性:重力感应、距离感应、光线感应、加速传感、电子罗盘、,3D,加速,Iphone3GS,产品特性:电子罗盘、,3D,加速,IPod Touch5,产品特性:重力感应、,3D,加速,IPod Touch4,产品特性:方向感应、光线感应,iPad Mini,产品特性:重力感应、光线感应、陀螺仪,iPad4,产品特性:方向感应、光线感应、距离感应,IPad3,产品特性:重力感应、光线感应、陀螺仪,iPad2,产品特性:方向感应、光线感应、距离感应,54,2025/8/10 周日,适配测试,-6,其他适配细节点,以下仅供参考:,(,1,)系统某些函数仅支持,5.0,以上的系统,如果开发误用某些方法,未针对系统固件作处理,那么,,4.3,的固件会存在问题,适配时需要注意;,(,2,),6.x,系统在低内存警告上,内存释放有别于其他固件,需要特殊处理,需要考虑结合低内存警告来适配;,(,3,)如果,app,在,UI,上使用自己的闪光灯按钮,需要对无闪光灯手机进行特殊处理;,(,4,)使用,xib,可以大大减少,UI,设计的工作量,在,5.0,固件以后,引入了,StoryBoard,,如果程序在设计中使用,StoryBoard,实现跳转逻辑,那么对于,5.0,以下的固件会存在适配问题,同样,,6.0,固件中加入了,AutoLayout,,对于,6.0,以下固件都会产生影响;,55,2025/8/10 周日,适配测试,-7,(,5,)程序中的动画,需要特别关注在各个适配的固件上是否一致;,(,6,)系统根据工程是否包含,Default-568h2x.png,资源图片来判断是否支持,4,英寸屏幕,其他资源需要使用代码对屏幕检测来分别适配,因此适配时需关注各资源是否支持,iphone5,;,(,7,),6.0,固件在通讯录访问时,需要经过用户同意后才有获取通讯录列表,因此,如果,app,使用通信录,需要考虑,6.0,固件是否正常,在用户未授权的情况下给出友好的提示。,(,8,)对无滚动栏的页面,在,4,英寸(,iphone5,)的屏幕上能正常显示,需要考虑,3.5,英寸上是否也能正常显示、操作等,而对于有滚动栏的页面,需要考虑页面底部分别在,3.5/4,英寸屏幕上是否能正常显示;,56,2025/8/10 周日,发布测试,发布测试主要指代码冻结后,使用发布版本进行回归测试,包括功能回归测试、查看,log,是否关闭、,push,消息是否能够正常接收。由于发布版本使用发布证书打包,因此仅支持越狱手机安装。此项测试主要包括以下四点:,(,1,)功能回归测试;,(,2,)检测程序,log,是否完全关闭;,(,3,)确认,push,功能是否正常;,(,4,)覆盖安装测试:选择当前主流版本,进行覆盖安装,确认程序是否正常;,57,2025/8/10 周日,建议测试流程,-1,测试计划,测试设计,TC,编写,执行测试,线上监控,一个,iOS,的应用需要测试的纬度包括基本的功能测试、代码静态分析、弱网络测试、低内存警告测试、操作类型测试、系统中断测试、内存泄露测试、适配测试、发布测试。这些纬度在测试过程中,均须被执行到,但在测试过程中,开发不断地,fix bug,,同时也会引入新的,bug,,如何更有效合理的执行这些纬度测试?,58,2025/8/10 周日,建议测试流程,-2,1,)第一轮测试:功能冒烟,+,代码静态分析,详细功能测试,+,操作类型测试,弱网络测试(包括无网络),低内存警告测
展开阅读全文