《移动App测试培训课件.pptx》由会员分享,可在线阅读,更多相关《移动App测试培训课件.pptx(98页珍藏版)》请在三一办公上搜索。
1、手机APP测试培训,曹向志 大开科技&大开测试,2022/11/6,1,各种测试类型简介,1,安卓手机测试(59),2,安卓常用测试命令(76),3,手机自动化测试,4,Contents,目,2022/11/6,2,录,移动应用与传统PC应用的区别,主流手机操作系统,4,手机测试分类,5,手机测试与传统测试的区别,6,手机软件测试定义,7,手机软件测试就是符合多种网络,不同系统不同分辨率下发现软件缺陷,并保证提高软件质量的过程。,什么是手机软件测试?,测试流程,8,接收版本,UI测试:核对rp/效果图,功能测试:核对需求文档,兼容性测试、性能压力测试,尽快申请到正式环境下测试,后台数据统计测试
2、,用户行为统计测试,进入正式环境,即试用行,仍然为测试环境,回归测试,发送上线报告,主要测试策略,9,安装、卸载测试,10,UI测试,11,测试用户界面(如菜单、对话框、窗口和其它可规控件)布局、风格是否满足客户要求、文字是否正确、页面是否美观、文字、图片组合是否完美、操作是否友好等。,功能测试,12,App安装完成后的试运行,可正常打开软件。App打开测试,是否有加载状态进度提示。App打开速度测试,速度是否可观。App页面间的切换是否流畅,逻辑是否正确注册登录注销,APP切换到后台,再回到app,检查是否停留在上一次操作界面。APP切换到后台,再回到app,检查功能及应用状态是否正常,ap
3、p切换到后台,再回到前台时,注意程序是否崩溃,功能状态是否正常。手机锁屏解屏后进入app注意是否会崩溃,功能状态是否正常。当App使用过程中有电话进来中断后再切换到app,功能状态是否正常当杀掉app进程后,再开启app,app能否正常启动。出现必须处理的提示框后,切换到后台,再切换回来,检查提示框是否还存在,有时候会出现应用自动跳过提示框的缺陷。对于有数据交换的页面,每个页面都必需要进行前后台切换、锁屏的测试,这种页面最容易出现崩溃。,很多应用提供免登录功能,当应用开启时自动以上一次登录的用户身份来使用app。app有免登录功能时,需要考虑版本差异。考虑无网络情况时能否正常进入免登录状态。切
4、换用户登录后,要校验用户登录信息及数据内容是否相应更新,确保原用户退出。根据现有规则,一个帐户只允许登录一台机器。所以,需要检查一个帐户登录多台手机的情况。原手机里的用户需要被踢出,给出友好提示。app切换到后台,再切回前台的校验切换到后台,再切换回前台的测试密码更换后,检查有数据交换时是否进行了有效身份的校验支持自动登录的应用在进行数据交换时,检查系统是否能自动登录成功并且数据操作无误。检查用户主动退出登录后,下次启动app,应停留在登录界面,需要确定哪些地方需要提供手动刷新,哪些地方需要自动刷新,哪些地方需要手动+自动刷新。确定哪些地方从后台切换回前台时需要进行数据更新。根据业务、速度及流
5、量的合理分配,确定哪些内容需要实时更新,哪些需要定时更新。确定数据展示部分的处理逻辑,是每次从服务端请求,还是有缓存到本地,这样才能有针对性的进行相应测试。检查有数据交换的地方,均有相应的异常处理,很多应用会支持离线浏览,即在本地客户端会缓存一部分数据供用户查看。在无网络情况可以浏览本地数据退出app再开启app时能正常浏览切换到后台再切回前台可以正常浏览锁屏后再解屏回到应用前台可以正常浏览在对服务端的数据有更新时会给予离线的相应提示,当客户端有新版本时,有更新提示。当版本为非强制升级版时,用户可以取消更新,老版本能正常使用。用户在下次启动app时,仍能出现更新提示。当版本为强制升级版时,当给
6、出强制更新后用户没有做更新时,退出客户端。下次启动app时,仍出现强制升级提示。当客户端有新版本时,在本地不删除客户端的情况下,直接更新检查是否能正常更新。当客户端有新版本时,在本地不删除客户端的情况下,检查更新后的客户端功能是否是新版本。当客户端有新版本时,在本地不删除客户端的情况下,检查资源同名文件如图片是否能正常更新成最新版本。如果以上无法更新成功的,也都属于缺陷,App有用到相机,定位服务时,需要注意系统版本差异有用到定位服务、照相机服务的地方,需要进行前后台的切换测试,检查应用是否正常。当定位服务没有开启时,使用定位服务,会友好性弹出是否允许设置定位提示。当确定允许开启定位时,能自动
7、跳转到定位设置中开启定位服务。测试定位、照相机服务时,需要采用真机进行测试,客户端可以自行设置手机的时区、时间,因此需要校验该设置对app的影响。-中国为东8区,所以当手机设置的时间非东8区时,查看需要显示时间的地方,时间是否展示正确,应用功能是否正常。时间一般需要根据服务器时间再转换成客户端对应的时区来展示,这样的用户体验比较好。比如发表一篇微博在服务端记录的是10:00,此时,华盛顿时间为22:00,客户端去浏览时,如果设置的是华盛顿时间,则显示的发表时间即为22:00,当时间设回东8区时间时,再查看则显示为10:00。,检查push消息是否按照指定的业务规则发送检查不接受推送消息时,检查
8、用户不会再接收到push.如果用户设置了免打扰的时间段,检查在免打扰时间段内,用户接收不到PUSH。在非免打扰时间段,用户能正常收到push。当push消息是针对登录用户的时候,需要检查收到的push与用户身份是否相符,没有错误地将其它人的消息推送过来。一般情况下,只对手机上最后一个登录用户进行消息推送。测试push时,需要采用真机进行测试。,性能测试,13,极限测试,在各种边界压力情况下,如电池、存储、网速等,验证App是否能正确响应-内存满时安装App;-运行App时手机断电;-运行App时断掉网络。,响应能力测试,测试App中的各类操作是否满足用户响应时间要求-App安装、卸载的响应时间
9、;-App各类功能性操作的影响时间。,压力测试,反复长期操作下、系统资源是否占用异常-APP反复进行安装、卸载,查看系统资源是否正常;-其他功能反复进行操作,查看系统资源是否正常,性能评估:,评估典型用户应用场景下,系统资源的使用情况,基线测试,与竞争产品的Benchmarking,产品演变对比测试等,设定性能基准,交叉事件测试,14,交叉测试又叫事件或冲突测试,是指一个功能正在执行过程中,同时另外一个事件或操作对该过程进行干扰的测试。 如:App在前/后台运行状态时与来电、文件下载、音乐收听等关键运用的交互情况测试等。交叉事件测试非常重要,能发现很多应用中潜在的性能问题。,兼容性测试,15,
10、升级、更新测试,16,新版本发布后,配合不同网络环境的自动更新提示及下载、安装、更新、启动、运行的验证测试,用户体验测试,以主观的普通消费者的角度去感知产品或服务的舒适、有用、易用、友好亲切程度。通过不同个体、独立空间和非经验的统计复用方式去有效评价产品的体验特性提出修改意见提升产品的潜在客户满意度。,17,硬件环境测试,18,接口测试,服务端一般会提供JSON格式的数据给客户端,所以我们在服务端需要进行接口测试,确保服务端提供的接口并转换的JSON内容正确,对分支、异常流有相应的返回值。此块测试可以采用itest框架进行测试。最方便的是采用httpclient进行接口测试。 进行服务端测试时
11、,需要开发提供一份接口文档,19,(JavaScript Object Notation) 是一种轻量级的数据交换格,Itest测试框架是TaoBao测试部门开发的一套单元测试框架,HttpClient 是 Apache Jakarta Common 下的子项目,可以用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HTTP 协议最新的版本和建议。,客户端数据库测试,20,一般的增、删、改、查测试。,在业务需要从服务端取回数据保存到客户端的时候,客户端能否将数据保存到本地,当表不存在时是否能自动创建,当数据库表被删除后能否再自建,数据是否还能自动从服务端中获
12、取回来并保存。,当业务对数据进行了修改、删除后,客户端和服务端是否会有相应的更新。,当业务需要从客户端取数据时,检查客户端数据存在时,app数据是否能自动从客户端数据中取出,还是仍然会从服务器端获取?检查客户端数据不存在时,app数据能否自动从服务器端获取到并保存到客户端,安全测试,21,扣费风险:包括发送短信、拨打电话、连接网络等隐私泄露风险:包括访问手机信息、访问联系人信息等对App的输入有效性校验、认证、授权、敏感数据存储、数据加密等方面进行检测限制/允许使用手机功能接入互联网允许使用手机发送接受信息功能限制/允许应用程序来注册自动启动应用程序限制或使用本地连接限制/允许使用手机拍照或录
13、音限制/允许使用手机读取用户数据限制/允许使用手机写人用户数据检测App的用户授权级别、数据泄漏、非法授权访问等,应用程序应能正确安装到设备驱动程序上能够在安装设备驱动程序上找到应用程序的相应图标是否包含数字签名信息JAD文件和JAR包中包含的所有托管属性及其值必需是正确的JAD文件显示的资料内容与应用程序显示的资料内容应一致安装路径应能指定没有用户的允许,应用程序不能预先设定自动启动卸载是否安全,其安装进去的文件是否全部卸载卸载用户使用过程中产生的文件是否有提示其修改的配置信息是否复原卸载是否影响其他软件的功能卸载应该移除所有的文件,当将密码或其他的敏感数据输入到应用程序时其不会被储存在设备
14、中,同时密码也不会被解码输人的密码将不以明文形式进行显示密码、信用卡明细、或其他的敏感数据将不被储存在它们预输入的位置上不同的应用程序的个人身份证或密码长度必需至少在4-8个数字长度之间当应用程序处理敏感数据时,不以明文形式将数据写到其它单独的文件或者临时文件中。以防止应用程序异常终止而又没有删除它的临时文件,文件可能遭受入侵者的袭击,然后读取这些数据信息。备份应该加密,恢复数据应考虑恢复过程的异常通讯中断等,数据恢复后再使用前应该经过校验应用程序应考虑系统或者虚拟机器产生的用户提示信息或安全警告在数据删除之前,应用程序应当通知用户或者应用程序提供一个“取消”命令的操作, “取消”命令操作能够
15、按照设计要求实现其功能应用程序应当能够处理当不允许应用软件连接到个人信息管理的情况在没有用户明确许可的前提下不损坏、删除个人信息管理应用程序中的任何内容如果数据库中重要的数据正要被重写,应及时告知用户,在运行其软件过程中,如果有来电、SMS、EMS、MMS、蓝牙、红外等通讯或充电时,是否能暂停程序,优先处理通信,并在处理完毕后能正常恢复软件,继续其原来的功能当创立连接时,应用程序能够处理因为网络连接中断,进而告诉用户连接中断的情况应能处理通讯延时或中断应用程序将保持工作到通讯超时,进而发送给用户一个错误信息指示有连接错误,返回菜单总保持可用声音的设置不影响应用程序的功能应用程序必需能够处理不可
16、预知的用户操作,例如错误的操作和同时按下多个键,功能测试,功能测试主要是程序逻辑及相关业务点测试。一、应充分考虑各种边缘情况,边界状态。二、应多站在用户的角度考虑程序的设计是否合理,是否充分满足用户的需求。,22,适配测试-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没有强依赖某个硬件资源,那
17、么机型适配主要考虑分辨率,反之,app强依依赖某个硬件资源,如摄像头(对焦)、GPS定位、陀螺仪等,那么需要根据具体设备来适配。,23,适配测试-2,固件适配(1)不同设备所能够安装的系统范围不同; (2)不同系统呈现不同特性; 目前主流的固件适配主要包括4.3.x/5.x/6.x/7.x,固件适配需要结合不同系统所具有特性来进行,但最终都是保证app在支持的固件上正常工作。 通常,苹果发布的手机一般都是当前最新的系统,因此,对于iphone5s,其固件只有7.x,依此类推,iphone4s通常不存在4.x的系统(不考虑降级因素),机型适配和固件适配需要综合考虑。固件范围通常可选择=4.3。,
18、24,适配测试-3,屏幕尺寸、分辨率适配通常iphone的机型适配可选三款手机来进行,iphone3GS45或iphone3GS4s5。如果app使用了摄像头,还需要考虑不同像素、对焦因素的机型以及是否支持闪光灯(3GStouchipad均不支持)。 各机型具体参数详见下表,适配时根据具体app来决定适配范围。,25,2022/11/6,26,IC卡属性读取,2022/11/6,27,IC卡补登圈存,2022/11/6,28,IC卡指定账户圈存,2022/11/6,29,IC 卡圈存冲正交易,静态分析-1,静态分析是指对开发的代码执行静态代码扫描,从而发现代码中存在逻辑、内存等缺陷。静态分析可
19、以通过Xcode或外部插件扫描来实现。 通过xcode的ProductAnalyze来扫描,如下图所示。,30,静态分析-2,通常,可以扫描出以下四种类型缺陷: 逻辑缺陷,如访问未初始化的变量或对空指针的引用等; 多余的变量,该类变量定义后,永远不会被访问; 内存管理缺陷,一般为内存泄露; API使用缺陷,由于未遵循使用的框架或类库相关规范造成的;,31,静态分析-3,示例:a. 多余变量,代码中的statusCode仅作简单赋值操作,属于多余变量; b. 内存泄露,newString对象未被释放,发生内存泄露;,32,静态分析-4,一般情况下,静态分析中以下三种类型的提示较为严重,可能引起严
20、重问题: 内存泄漏隐患提示: 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,网络测试-1,网络根据网速可分为网络良好、弱网络、无网络三种情况。此项测试主要考虑弱网络和无网络,测试前需要充分了解页面在什么情况向服务端作请求,从而作相应的测试。 无网络测试,需要在页面作请求前关闭移动设备网络,观察程序是否作友好提示。弱网
21、络测试要复杂得多,存在以下三种类型: (1)页面等待请求数据,数据返回后,页面呈现是否正常; (2)页面在发出请求后,离开该页面,数据返回后,程序是否正常处理,是否会发生crash; (3)页面等待请求数据,造成超时,页面是否作友好提示;,34,网络测试-2,弱网络可通过真机或模拟器来实现。真机可以绑定至指定的服务器,作适当延时,来模拟弱网络环境。绑定有以下两种方式: 越狱手机可通过修改etc目录下的hosts来实现,具体操作可参见测试工具iFile的使用说明; 任何手机都可通过wifi绑定至指定端口的代理服务器。模拟器可通过network link condition工具来模拟各种网络情况,
22、设置上传和下载的带宽、丢包率、延时等,以下给出弱网络建议参数,测试时可根据实际情况来决定。,35,网络测试-3,网络超时可通过以下方式来实现,根据实际需要来选择: 绑定未知服务器,构成网络超时,适用所有类型; 对某类域名作host绑定,适用越狱机器; 绑定代理服务器,延时某个请求的时间; 修改程序代码,改变某个请求的链接。 实际应用场景中,还需要考虑网络之间的切换,具体切换类型见下表。有网络-无网络无网络-有网络3G-4G4G-3G3G-wifiWifi-3G4G-wifiWifi-4G,36,低内存警告测试-1,系统的内存警告分为四种,定义如下: typedef enum OSMemoryN
23、otificationLevelAny = -1, OSMemoryNotificationLevelNormal = 0, OSMemoryNotificationLevelWarning = 1, OSMemoryNotificationLevelUrgent = 2, OSMemoryNotificationLevelCritical = 3 OSMemoryNotificationLevel; iOS的低内存警告是系统在低内存下向程序发出的友好提示,程序通常会先调用AppDelegate中的applicationDidReceiveMemoryWarning,接着通知各ViewCont
24、roller,调用相应的didRecieveMemoryWarning方法,此时程序应当在该方法中释放不必要的资源,否则在必要的时候,系统将强制回收资源,程序退出。,37,低内存警告测试-2,低内存警告测试一般在模拟器上测试测试步骤: (1)在xcode上安装各固件的模拟器。Xcode-Preferences-Downloads/Components,安装各模拟器,安装完成后,可以在xcode的scheme上看到相应的模拟器,如下图所示。,38,低内存警告测试-3,(2)选择要测试的固件类型,将程序安装至相应的模拟器。,39,低内存警告测试-4,(3)在程序任意页面,执行模拟器菜单的硬件-模拟
25、内存警告(见下图),观察页面显示操作是否正常,返回上一级页面是否正常。,40,操作类型测试-1,操作类型测试,应根据自身app的应用场景来进行,比如对于有摄像头的app,应根据使用场景来决定扫描、拍摄角度等;对于支持横竖屏的场景,要考虑横竖切换的情况。下表给出了操作类型测试要点。,41,系统相关测试-1,系统相关测试主要考虑iOS系统环境变化对app的影响,包括系统中断、系统时间、系统资源、软件冲突等。具体细节点校验点见下表。,42,系统相关测试-2,系统相关测试主要通过真机来进行,但模拟器也提供了部分功能,如展现呼叫状态、模拟硬件键盘等,参见下图。,43,内存泄露测试-1,1) MRR 谁创
26、建,谁释放:如果对象使用alloc、new、copy或mutableCopy等方法创建,则必须调用release或autorelease方法释放内存,否则内存泄露; 谁retain,谁释放:给对象发送retain消息后,则拥有了这个对象,引用计数+1,当不需要使用该对象时,发送release或autorelease消息放弃这个对象; 没创建且没retain,别释放:不要释放不是自己alloc或retain的对象,否则程序会crash;,44,内存泄露测试-2,2)ARC技术是随着xcode4.2一起发布的,在工程Build Settings中指定中指定是否支持ARC技术,如下图所示。ARC使得
27、程序员不需要思考何时使用retain,release,autorelease,它提供了自动评估内存生存期的功能,同时在编译期间自动加入合适的管理内存的方法。,45,内存泄露测试-3,内存泄露现象 程序对象使用完毕后未释放,此类问题基本可以通过静态分析发现; 对象循环引用,如下图所示。 autoReleasePool使用不当。,46,内存泄露测试-4,用Instruments解决内存泄露从 Leopard开始,苹果在XCode系列开发工具中增加了一个新的功能强大的性能调试工具,叫做Instruments。Instruments是一个 非常具有新意的调试工具,如果你使用过iLife中非常简单易用的
28、音乐创作工具GarageBand,你会发现这两者的界面非常类似。能够把开发工具的 UI做成像音乐创作软件的形式,可能也只有苹果能够想到了。,47,内存泄露测试-5,直接在XCode中调用Instruments。具体操作方法是在XCode 里打开demo项目,或者是你自己的项目(需要先编译一下),然后在菜单中选择 Run - Start With Performance Tool - Leaks。,48,内存泄露测试-6,49,适配测试-1,机型适配:苹果的机型:iphone、iPod Touch和iPad,Iphone:iphone3G/3GS/4/4s/5/5s/5c/6/6S,iPod T
29、ouch:Touch1/2/3/4/5/6,iPad:iPad1/2/The new iPad/4/Mini/iPad Air。机型适配重点在于硬件设备的分辨率和硬件资源等。例如,如果app没有强依赖某个硬件资源,那么机型适配主要考虑分辨率,反之,app强依依赖某个硬件资源,如摄像头(对焦)、GPS定位、陀螺仪等,那么需要根据具体设备来适配。,50,适配测试-2,固件适配(1)不同设备所能够安装的系统范围不同; (2)不同系统呈现不同特性; 目前主流的固件适配主要包括4.3.x/5.x/6.x/7.x,固件适配需要结合不同系统所具有特性来进行,但最终都是保证app在支持的固件上正常工作。 通常
30、,苹果发布的手机一般都是当前最新的系统,因此,对于iphone5s,其固件只有7.x,依此类推,iphone4s通常不存在4.x的系统(不考虑降级因素),机型适配和固件适配需要综合考虑。固件范围通常可选择=4.3。,51,适配测试-3,屏幕尺寸、分辨率适配通常iphone的机型适配可选三款手机来进行,iphone3GS45或iphone3GS4s5。如果app使用了摄像头,还需要考虑不同像素、对焦因素的机型以及是否支持闪光灯(3GStouchipad均不支持)。 各机型具体参数详见下表,适配时根据具体app来决定适配范围。,52,适配测试-4,53,适配测试-5,相关特性: Iphone5产品
31、特性:重力感应、距离感应、光线感应、加速传感、电子罗盘、3D加速、陀螺仪 Iphone4s产品特性:重力感应、距离感应、光线感应、加速传感 、电子罗盘、3D加速、陀螺仪 Iphone4产品特性:重力感应、距离感应、光线感应、加速传感、电子罗盘、3D加速 Iphone3GS产品特性:电子罗盘、3D加速 IPod Touch5产品特性:重力感应、3D加速 IPod Touch4产品特性:方向感应、光线感应 iPad Mini产品特性:重力感应、光线感应、陀螺仪 iPad4产品特性:方向感应、光线感应、距离感应 IPad3产品特性:重力感应、光线感应、陀螺仪 iPad2产品特性:方向感应、光线感应、
32、距离感应,54,适配测试-6,其他适配细节点,以下仅供参考: (1)系统某些函数仅支持5.0以上的系统,如果开发误用某些方法,未针对系统固件作处理,那么,4.3的固件会存在问题,适配时需要注意; (2)6.x系统在低内存警告上,内存释放有别于其他固件,需要特殊处理,需要考虑结合低内存警告来适配; (3)如果app在UI上使用自己的闪光灯按钮,需要对无闪光灯手机进行特殊处理; (4)使用xib可以大大减少UI设计的工作量,在5.0固件以后,引入了StoryBoard,如果程序在设计中使用StoryBoard实现跳转逻辑,那么对于5.0以下的固件会存在适配问题,同样,6.0固件中加入了AutoLa
33、yout,对于6.0以下固件都会产生影响;,55,适配测试-7,(5)程序中的动画,需要特别关注在各个适配的固件上是否一致; (6)系统根据工程是否包含Default-568h2x.png资源图片来判断是否支持4英寸屏幕,其他资源需要使用代码对屏幕检测来分别适配,因此适配时需关注各资源是否支持iphone5; (7)6.0固件在通讯录访问时,需要经过用户同意后才有获取通讯录列表,因此,如果app使用通信录,需要考虑6.0固件是否正常,在用户未授权的情况下给出友好的提示。 (8)对无滚动栏的页面,在4英寸(iphone5)的屏幕上能正常显示,需要考虑3.5英寸上是否也能正常显示、操作等,而对于有
34、滚动栏的页面,需要考虑页面底部分别在3.5/4英寸屏幕上是否能正常显示;,56,发布测试,发布测试主要指代码冻结后,使用发布版本进行回归测试,包括功能回归测试、查看log是否关闭、push消息是否能够正常接收。由于发布版本使用发布证书打包,因此仅支持越狱手机安装。此项测试主要包括以下四点: (1)功能回归测试; (2)检测程序log是否完全关闭; (3)确认push功能是否正常; (4)覆盖安装测试:选择当前主流版本,进行覆盖安装,确认程序是否正常;,57,建议测试流程-1,测试计划测试设计TC编写执行测试线上监控一个iOS的应用需要测试的纬度包括基本的功能测试、代码静态分析、弱网络测试、低内
35、存警告测试、操作类型测试、系统中断测试、内存泄露测试、适配测试、发布测试。这些纬度在测试过程中,均须被执行到,但在测试过程中,开发不断地fix bug,同时也会引入新的bug,如何更有效合理的执行这些纬度测试?,58,建议测试流程-2,1)第一轮测试:功能冒烟+代码静态分析详细功能测试+操作类型测试弱网络测试(包括无网络)低内存警告测试内存泄露测试UI适配测试系统中断测试。 1从开发开始提测,以最快的速度执行全面的冒烟测试,同时进行代码静态分析,遇到严重问题及时联系开发解决; 2接下来,基本冒烟通过后,开始执行TC,即详细的功能测试,在功能测试过程中主要以黑盒测试为主,同时执行操作类型测试,如
36、快速点击、多指操作、快速滑动等; 3功能测试过程中,若发现大量bug,在开发fix bug过程中,快速执行弱网络+低内存警,59,建议测试流程-3,(2)第二轮测试:功能测试(验证bug fix)iOS操作系统适配弱网络测试低内存警告(页面交叉测试)内存泄露测试。第二轮测试,主要为了发现深层次的bug,除了验证bug fix外,还需要执行以下测试: 1iOS的操作系统适配,目前主要包括4.x,5.x,6.x, 7.x; 2弱网络测试,主要关注包含网络请求的页面,需要特别注意执行网络请求未返回时,再次请求或页面切换等情况; 3低内存警告,主要根据程序内的controller来执行,关注contr
37、oller之间的切换,观察程序内资源释放是否合理,是否存在页面逻辑异常; 4内存泄露,使用系统leak及alloction模板,观察程序是否存在内存泄露,此部分可以同步骤23一起执行; 第二轮测试完成标准是完成以上测试,尽可能多的进行白盒测试,达到冻结代码的要求,如此才能进入最后的发布前测试;,60,建议测试流程-4,(3)发布前测试:代码静态分析功能回归适配回归弱网络回归Free Test.发布包测试(关闭log等)。最后的发布前测试,再次执行代码静态分析,查看是否存在内存泄露、无关变量等,全面回归,如果不是非常严重的问题,均可考虑later到下一版本来解决,如果某个bug非改不可,要尽可能
38、评估可能影响的点,查看开发的代码改动点,分析是否引入新的问题,再次进行回归;发布前,需要用越狱的机器安装发布包,进行最后的测试,包括日志是否全部关闭、push消息是否正常、对目前的主流版本进行覆盖安装是否正常、新增加的功能点是否正常等。另外需要对当前的发布版本进行备份,最好打三个包:线上、预发、日常,方便出现问题后,快速排查及以后回归使用等。(4)线上监测,主要收集发布后的用户反馈,有无异常情况,排查问题,统计分析等。,61,安卓手机测试,Android编译环境安装Android常用测试命令Android数字签名Android数据抓包APK应用程序运行日志跟踪,Android编译环境安装,步骤
39、:1、组件安装2、ADT安装3、SDK升级4、AVD创建5、启动模拟器,组件安装,1、安装JDK(Java Development Kit, 即Java开发工具包),下载解压后,勿忘添加环境变量:Path = E:Program Filesjdk1.6.0_13binJAVA_HOME = E:Program Filesjdk1.6.0_13CLASSPATH = E:Program Filesjdk1.6.0_13jrelib*.jar;.;,组件安装,2、安装SDK(Software Development Kit, 即软件开发工具包 ),下载解压后,勿忘添加环境变量:Path = E:P
40、rogram Filesandroid-sdk-windowstools,组件安装,3、安装Eclipse(一个开放源代码的、基于 Java 的可扩展开发平台 ),直接下载解压,ADT安装,1、启动eclipse,点击图标,ADT(Android Development Tools, 即Android开发工具集)Plug-in,ADT安装,2、进入eclipse,依次选择“Help”“Install New SoftWare”,ADT安装,3、弹出安装对话框,点击“Add”,于弹出对话框中Name项输入“ADT”,Location项输入“https:/dl-,ADT安装,4、勾选“Androi
41、d Development Tools”,依次点击“Next”、“Finish”,安装完成后重启eclipse,ADT安装,5、依次选择“Window”“Preferences”,打开属性设置对话框,ADT安装,6、选中“Android”,在右边的SDK Location 项中选择刚解压android-sdk_r10-windows路径,SDK升级,1、选中“Installed packages”,选中右边列表框中待升级的安装包,点击“Update All”,SDK升级,2、选择待升级的安装包,点击“Install”,开始升级安装包,升级成功后重启eclipse即可,AVD创建,1、依次选择“
42、Window”“Android SDK and AVD Manager ”,打开AVD管理器,AVD创建,2、依次选填AVD配置项,点击“Create AVD”。创建成功后,AVD列表框中显示该模拟器设备名。,1、选中待启动AVD,点击“Start”,弹出启动选项框。依次设置分辨率和是否使用快照,点击“Launch”,启动模拟器,2、等待模拟器启动界面及其配置项生效。,启动模拟器,Android常用测试命令,1、安装/卸载:adb2、版本查看:aapt3、反编译:dexdump,安装/卸载,1、将APK应用程序拷贝至android-sdk-windowsplatform-tools下,如图所示
43、(MusicIMC.apk),2、打开DOS命令窗口,依次输入命令,命令格式如下:,安装/卸载,安装过程中问题排查:1、提示“error: more than one device and emulator”,如图所示,2、若已经安装该程序,则提示“Failure INSTALL_FAILED_ALREADY_EXISTS”,如图所示,安装/卸载,原因:当前正在运行两个模拟器设备,即运行了1个以上模拟器或运行模拟器的同时手机正在连接PC解决:关闭多余模拟器设备,出现上述情况,可先卸载APK,如图所示,1、若安装成功,则提示“Success”,如图所示,安装/卸载,2、使用第三方应用程序安装/卸
44、载APK(例如:豌豆夹、91助手等)模拟器中运行程序,如图所示:,1、使用命令查看APK版本号、包名、固件版本号,版本查看,2、具体信息:包名:com.iflytek.music版本号:1.0.18应用程序图标:icon.png系统版本号(支持的最低版本):5(即 Android 2.0),1、使用命令查看APK中接口配置地址将APK应用程序后缀名.apk改为.zip,解压出classes.dex,然后执行反编译命令,如图所示,2、打开1.txt,即可查看相应接口配置地址是否正确。,反编译,Android数字签名,步骤:1、生成密钥库(keystore)2、使用密钥库进行签名3、使用命令验证签
45、名4、通过安装应用程序验证签名,1、生成密钥库(keystore),执行步骤如下图所示:,Android数字签名,Android数字签名,Android数字签名,Android数字签名,2、使用密钥库进行签名,执行步骤如下图所示:,(1)验证APK是否签名成功:若已签名,如图所示,(2)若未签名或签名失败,如图所示,Android数字签名,3、使用命令验证签名,执行步骤如下所示:,输入命令“keytool -list -v -keystore *.keystore”,查看签名详细信息,如图所示,Android数字签名,(3)查看签名信息,(1)安装未签名的APK应用程序或覆盖签名不一致应用程序
46、Tool的结果,如图所示:,Android数字签名,4、通过安装应用程序验证签名,(2)安装已签名的的APK应用程序Tool的结果,如图所示:,Android数据抓包,步骤:1、启动模拟器2、运行联网程序3、生成数据包文件4、使用抓包工具(wireshark)进行查看,1、实时生成数据包文件:emulator -avd Test -tcpdump capture.pcap,2、使用抓包工具(Wireshark)查看数据包文件,Android数据抓包,APK应用程序运行日志跟踪,步骤:1、切换至DEBUG查看模式2、定时跟踪日志3、定位并截图,APK应用程序运行日志跟踪,1、优先关注“E(Error)”级别的信息,其次是“W(Warning)”级别的信息,APK应用程序运行日志跟踪,2、按“Ctrl+C”复制粘贴信息至文本文件中或截图,并作为附件上传。,