ios开发简介与iosapp测试知识-2

上传人:ji****en 文档编号:110636911 上传时间:2019-10-30 格式:PPT 页数:36 大小:2.73MB
返回 下载 相关 举报
ios开发简介与iosapp测试知识-2_第1页
第1页 / 共36页
ios开发简介与iosapp测试知识-2_第2页
第2页 / 共36页
ios开发简介与iosapp测试知识-2_第3页
第3页 / 共36页
ios开发简介与iosapp测试知识-2_第4页
第4页 / 共36页
ios开发简介与iosapp测试知识-2_第5页
第5页 / 共36页
点击查看更多>>
资源描述

《ios开发简介与iosapp测试知识-2》由会员分享,可在线阅读,更多相关《ios开发简介与iosapp测试知识-2(36页珍藏版)》请在金锄头文库上搜索。

1、1,第二章 iOS客户端测试类型及流程,2.1 功能测试 2.2 静态分析 2.3 网络测试 2.4 低内存警告测试 2.5 操作类型测试,2.6 系统相关测试 2.7 内存泄露测试 2.8 适配性测试 2.9 发布测试 2.10 建议测试流程,2.1功能测试,功能测试主要是程序逻辑及相关业务点测试。 一、应充分考虑各种边缘情况,边界状态。 二、应多站在用户的角度考虑程序的设计是否合理,是否充分满足用户的需求。 参考:手机产品设计15大禁忌:,2,2.2 静态分析,静态分析是指对开发的代码执行静态代码扫描,从而发现代码中存在逻辑、内存等缺陷。静态分析可以通过Xcode或外部插件扫描来实现。 通

2、过xcode的ProductAnalyze来扫描,如下图所示。,3,2.2 静态分析,通常,可以扫描出以下四种类型缺陷: 逻辑缺陷,如访问未初始化的变量或对空指针的引用等; 多余的变量,该类变量定义后,永远不会被访问; 内存管理缺陷,一般为内存泄露; API使用缺陷,由于未遵循使用的框架或类库相关规范造成的;,4,2.2 静态分析,示例: a. 多余变量,代码中的statusCode仅作简单赋值操作,属于多余变量; b. 内存泄露,newString对象未被释放,发生内存泄露;,5,2.2 静态分析,一般情况下,静态分析中以下三种类型的提示较为严重,可能引起严重问题: 内存泄漏隐患提示: Po

3、tential Leak of an object allocated on line 数据赋值隐患提示: The left operand of is a garbage value; 对象引用隐患提示: Reference-Counted object is used after it is released;,6,2. 3 网络测试,网络根据网速可分为网络良好、弱网络、无网络三种情况。此项测试主要考虑弱网络和无网络,测试前需要充分了解页面在什么情况向服务端作请求,从而作相应的测试。 无网络测试,需要在页面作请求前关闭移动设备网络,观察程序是否作友好提示。 弱网络测试要复杂得多,存在以下三

4、种类型: (1)页面等待请求数据,数据返回后,页面呈现是否正常; (2)页面在发出请求后,离开该页面,数据返回后,程序是否正常处理,是否会发生crash; (3)页面等待请求数据,造成超时,页面是否作友好提示;,7,2. 3 网络测试,弱网络可通过真机或模拟器来实现。真机可以绑定至指定的服务器,作适当延时,来模拟弱网络环境。绑定有以下两种方式: 越狱手机可通过修改etc目录下的hosts来实现,具体操作可参见测试工具iFile的使用说明; 任何手机都可通过wifi绑定至指定端口的代理服务器。 模拟器可通过network link condition工具来模拟各种网络情况,设置上传和下载的带宽、

5、丢包率、延时等,以下给出弱网络建议参数,测试时可根据实际情况来决定。,8,2. 3 网络测试,网络超时可通过以下方式来实现,根据实际需要来选择: 绑定未知服务器,构成网络超时,适用所有类型; 对某类域名作host绑定,适用越狱机器; 绑定代理服务器,延时某个请求的时间; 修改程序代码,改变某个请求的链接。 实际应用场景中,还需要考虑网络之间的切换,具体切换类型见下表。,9,2.4 低内存警告测试,系统的内存警告分为四种,定义如下: typedef enum OSMemoryNotificationLevelAny = -1, OSMemoryNotificationLevelNormal =

6、0, OSMemoryNotificationLevelWarning = 1, OSMemoryNotificationLevelUrgent = 2, OSMemoryNotificationLevelCritical = 3 OSMemoryNotificationLevel; iOS的低内存警告是系统在低内存下向程序发出的友好提示,程序通常会先调用AppDelegate中的applicationDidReceiveMemoryWarning,接着通知各ViewController,调用相应的didRecieveMemoryWarning方法,此时程序应当在该方法中释放不必要的资源,否则

7、在必要的时候,系统将强制回收资源,程序退出。,10,2.4 低内存警告测试,低内存警告测试一般在模拟器上测试 测试步骤: (1)在xcode上安装各固件的模拟器。Xcode-Preferences-Downloads/Components,安装各模拟器,安装完成后,可以在xcode的scheme上看到相应的模拟器,如下图所示。,11,2.4 低内存警告测试,(2)选择要测试的固件类型,将程序安装至相应的模拟器。,12,2.4 低内存警告测试,(3)在程序任意页面,执行模拟器菜单的硬件-模拟内存警告(见下图),观察页面显示操作是否正常,返回上一级页面是否正常。,13,2.4 低内存警告测试,示例

8、:,14,2.5 操作类型测试,操作类型测试,应根据自身app的应用场景来进行,比如对于有摄像头的app,应根据使用场景来决定扫描、拍摄角度等;对于支持横竖屏的场景,要考虑横竖切换的情况。下表给出了操作类型测试要点。,15,2. 6 系统相关测试,系统相关测试主要考虑iOS系统环境变化对app的影响,包括系统中断、系统时间、系统资源、软件冲突等。具体细节点校验点见下表。,16,2. 6 系统相关测试,系统相关测试主要通过真机来进行,但模拟器也提供了部分功能,如展现呼叫状态、模拟硬件键盘等,参见下图。,17,2. 7 内存泄露测试,1) MRR 谁创建,谁释放:如果对象使用alloc、new、c

9、opy或mutableCopy等方法创建,则必须调用release或autorelease方法释放内存,否则内存泄露; 谁retain,谁释放:给对象发送retain消息后,则拥有了这个对象,引用计数+1,当不需要使用该对象时,发送release或autorelease消息放弃这个对象; 没创建且没retain,别释放:不要释放不是自己alloc或retain的对象,否则程序会crash;,18,2. 7 内存泄露测试,2)ARC技术是随着xcode4.2一起发布的,在工程Build Settings中指定中指定是否支持ARC技术,如下图所示。 ARC使得程序员不需要思考何时使用retain,

10、release,autorelease,它提供了自动评估内存生存期的功能,同时在编译期间自动加入合适的管理内存的方法。,19,2. 7 内存泄露测试,内存泄露现象 程序对象使用完毕后未释放,此类问题基本可以通过静态分析发现; 对象循环引用,如下图所示。 autoReleasePool使用不当。,20,2. 7 内存泄露测试,用Instruments解决内存泄露 从 Leopard开始,苹果在XCode系列开发工具中增加了一个新的功能强大的性能调试工具,叫做Instruments。Instruments是一个 非常具有新意的调试工具,如果你使用过iLife中非常简单易用的音乐创作工具Garage

11、Band,你会发现这两者的界面非常类似。能够把开发工具的 UI做成像音乐创作软件的形式,可能也只有苹果能够想到了。,21,2. 7 内存泄露测试,直接在XCode中调用Instruments。具体操作方法是在XCode 里打开demo项目,或者是你自己的项目(需要先编译一下),然后在菜单中选择 Run - Start With Performance Tool - Leaks。,22,2. 7 内存泄露测试,23,2.8 适配测试,机型适配: 苹果的机型:iphone、iPod Touch和iPad, Iphone:iphone3G/3GS/4/4s/5/5s/5c, iPod Touch:T

12、ouch1/2/3/4/5, iPad:iPad1/2/The new iPad/4/Mini/iPad Air。 机型适配重点在于硬件设备的分辨率和硬件资源等。例如,如果app没有强依赖某个硬件资源,那么机型适配主要考虑分辨率,反之,app强依依赖某个硬件资源,如摄像头(对焦)、GPS定位、陀螺仪等,那么需要根据具体设备来适配。,24,2.8 适配测试,固件适配 (1)不同设备所能够安装的系统范围不同; (2)不同系统呈现不同特性; 目前主流的固件适配主要包括4.3.x/5.x/6.x/7.x,固件适配需要结合不同系统所具有特性来进行,但最终都是保证app在支持的固件上正常工作。 通常,苹果

13、发布的手机一般都是当前最新的系统,因此,对于iphone5s,其固件只有7.x,依此类推,iphone4s通常不存在4.x的系统(不考虑降级因素),机型适配和固件适配需要综合考虑。 固件范围通常可选择=4.3。,25,2.8 适配测试,屏幕尺寸、分辨率适配 通常iphone的机型适配可选三款手机来进行,iphone3GS45或iphone3GS4s5。如果app使用了摄像头,还需要考虑不同像素、对焦因素的机型以及是否支持闪光灯(3GStouchipad均不支持)。 各机型具体参数详见下表,适配时根据具体app来决定适配范围。,26,2.8 适配测试,27,2.8 适配测试,相关特性: Ipho

14、ne5产品特性:重力感应、距离感应、光线感应、加速传感、电子罗盘、3D加速、陀螺仪 Iphone4s产品特性:重力感应、距离感应、光线感应、加速传感 、电子罗盘、3D加速、陀螺仪 Iphone4产品特性:重力感应、距离感应、光线感应、加速传感、电子罗盘、3D加速 Iphone3GS产品特性:电子罗盘、3D加速 IPod Touch5产品特性:重力感应、3D加速 IPod Touch4产品特性:方向感应、光线感应 iPad Mini产品特性:重力感应、光线感应、陀螺仪 iPad4产品特性:方向感应、光线感应、距离感应 IPad3产品特性:重力感应、光线感应、陀螺仪 iPad2产品特性:方向感应、

15、光线感应、距离感应,28,2.8 适配测试,其他适配细节点,以下仅供参考: (1)系统某些函数仅支持5.0以上的系统,如果开发误用某些方法,未针对系统固件作处理,那么,4.3的固件会存在问题,适配时需要注意; (2)6.x系统在低内存警告上,内存释放有别于其他固件,需要特殊处理,需要考虑结合低内存警告来适配; (3)如果app在UI上使用自己的闪光灯按钮,需要对无闪光灯手机进行特殊处理; (4)使用xib可以大大减少UI设计的工作量,在5.0固件以后,引入了StoryBoard,如果程序在设计中使用StoryBoard实现跳转逻辑,那么对于5.0以下的固件会存在适配问题,同样,6.0固件中加入

16、了AutoLayout,对于6.0以下固件都会产生影响;,29,2.8 适配测试,(5)程序中的动画,需要特别关注在各个适配的固件上是否一致; (6)系统根据工程是否包含Default-568h2x.png资源图片来判断是否支持4英寸屏幕,其他资源需要使用代码对屏幕检测来分别适配,因此适配时需关注各资源是否支持iphone5; (7)6.0固件在通讯录访问时,需要经过用户同意后才有获取通讯录列表,因此,如果app使用通信录,需要考虑6.0固件是否正常,在用户未授权的情况下给出友好的提示。 (8)对无滚动栏的页面,在4英寸(iphone5)的屏幕上能正常显示,需要考虑3.5英寸上是否也能正常显示、操作等,而对于有滚动栏的页面,需要考虑页面底部分别在3.5/4英寸屏幕上是否能正常显示;,30,2. 9 发布测试,发布测试主要指代码冻结后,使用发布版本进行回归测试,包括功能回归测试、查看log是否关闭、push消息是否能够正常接收。由于发布版本使用发布证书打包,因此仅支持越狱手机安装。此项测试主要包括以下四点: (1)功能回归测试; (2)检测程序log

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 电子/通信 > 综合/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号