APP常见崩溃原因和测试方法整理
测试过APP的人都应该发现,app崩溃是一类非常常见的问题,很多时候还是致命性的,这就要求我们测试人员要尽最大可能去找出软件当中的缺陷,减少app崩溃出现的概率,这里我将收集到的关于针对APP崩溃测试的资料以及自己的工作经验整理如下:
一、APP中BUG的直接影响:App的Bug会直接影响用户的体验、App 商店的评级、用户的忠诚度,声誉等等...
二、App崩溃是非常常见的一类bug,例如很多时候我们正在使用某个Android的APP,正在使用着突然应用就停止响应,界面上弹出“强制关闭错误”的窗口需要强制关闭应用,而iOS的APP呢则很多使用就会出现闪退的现象,这些问题,我想都是很多人所遇到的,这些都是app常见的崩溃现象。因为现在市场是andriod手机的碎片化、造成了andriod手机更加容易出现APP的崩溃,通常在网络异常时APP上还在进行数据交互,即会出现崩溃、可能的原因多种,有可能是代码中存在多余空格、程序员对该段代码的处理欠佳,未做异常处理等等;而 iOS中常见的App崩溃大多已闪退的形式出现,这些异常在最坏的情况下,不仅影响本APP的使用也可能会导致系统故障,操作系统崩溃,整个APP无法在继续使用,用户不得不卸载此APP。
三、App的测试与web端软件测试相比,所增加复杂性:
a、操作系统: 大量的设备,各种操作系统,目前使用最多的操作系统有:Android、iOS、windows、blackberry等等,它们之间的应用软件互不兼容。
b、设备:触摸式和非触摸式设备、有限的内存容量,电池耗电量,屏幕尺寸、分辨率等。
c 、网络:不同的网络和运营商,目前我国的三大运营商就有电信、联通和移动,不同的网络制式,如GSM、CDMA、3G等,在不好或无网络的情况下的App行为。
d、可用性:方向,触摸,缩放,分页和导航的局限性,各种干扰,如来电,来电短信,闹钟,和低电量警报等。
四、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特定场景。
APP常见崩溃原因和测试方法整理的更多相关文章
- ASP.NET MVC Filters 4种默认过滤器的使用【附示例】 数据库常见死锁原因及处理 .NET源码中的链表 多线程下C#如何保证线程安全? .net实现支付宝在线支付 彻头彻尾理解单例模式与多线程 App.Config详解及读写操作 判断客户端是iOS还是Android,判断是不是在微信浏览器打开
ASP.NET MVC Filters 4种默认过滤器的使用[附示例] 过滤器(Filters)的出现使得我们可以在ASP.NET MVC程序里更好的控制浏览器请求过来的URL,不是每个请求都会响 ...
- 技术分享 | App常见bug解析
原文链接 功能Bug 内容显示错误 前端页面展示的内容有误. 这种错误的产生有两种可能 1.前端代码写的文案错误 2.接口返回值错误 功能错误 功能错误是在测试过程中最常见的类型之一,也就是产品的功能 ...
- coreseek常见错误原因及解决方法
coreseek常见错误原因及解决方法 Coreseek 中文全文检索引擎 Coreseek 是一款中文全文检索/搜索软件,以GPLv2许可协议开源发布,基于Sphinx研发并独立发布,专攻中文搜索和 ...
- iOS runtime实用篇--和常见崩溃say good-bye!
程序崩溃经历 其实在很早之前就想写这篇文章了,一直拖到现在. 程序崩溃经历1 我们公司做的是股票软件,但集成的是第三方的静态库(我们公司和第三方公司合作,他们提供股票的服务,我们付钱).平时开发测试的 ...
- iOS runtime实用篇--和常见崩溃say good-bye
源码 https://github.com/chenfanfang/AvoidCrash 程序崩溃经历 其实在很早之前就想写这篇文章了,一直拖到现在. 程序崩溃经历1 我们公司做的是股票软件,但集成的 ...
- 能否让APP永不崩溃—小光与我的对决
前言 关于拦截异常,想必大家都知道可以通过Thread.setDefaultUncaughtExceptionHandler来拦截App中发生的异常,然后再进行处理. 于是,我有了一个不成熟的想法.. ...
- VS2005(vs2008,vs2010)使用map文件查找程序崩溃原因
VS 2005使用map文件查找程序崩溃原因 一般程序崩溃可以通过debug,找到程序在那一行代码崩溃了,最近编一个多线程的程序,都不知道在那发生错误,多线程并发,又不好单行调试,终于找到一个比较好的 ...
- Sys.WebForms.PageRequestManagerParserErrorException: 常见的原因是:通过调用Response.Write()修改相应时,将启用响应筛选器、HttpModules或服务器追踪
Sys.WebForms.PageRequestManagerParserErrorException: 无法分析从服务器收到的消息,之所以出现此错误,常见的原因是:通过调用Response.Writ ...
- Linux下利用coredump技术追查进程崩溃原因
原文链接:https://blog.csdn.net/u014585564/article/details/68063269 最近项目中出现了一个问题,服务器端程序会突然崩溃退出,我们采取了cored ...
随机推荐
- javascript之小积累-获取url传参的值
在项目中经常遇到两个页面传值的情况,我采取的方案是通过url后面加参数,也就是get方式传值. 这个方式的优点是:传值.获取很方便. 缺点是:1. 把参数都暴露在浏览器中了,一些敏感信息不建议这样传: ...
- MVC+MQ+WinServices+Lucene.Net Demo
前言: 我之前没有接触过Lucene.Net相关的知识,最近在园子里看到很多大神在分享这块的内容,深受启发.秉着“实践出真知”的精神,再结合公司项目的实际情况,有了写一个Demo的想法,算是对自己能力 ...
- (原创)VM中的CentOS6.4中安装CloudStack6.3①
CloudStack是一个功能强大.UI友好的开源云(IaaS)计算解决方案.自Ctrix将CloudStack捐献给 apache 后,一直持续高速发展,其社区活跃度已经渐渐赶上风头一时无两的另一开 ...
- Python 基礎 - 淺copy補充說明
在 import copy 這個模塊裡 基於第一個列表來做淺copy,實際上第二個列表裡的元素,是第一個列表的 引用. 接下來介紹 淺copy有三種方式可以使用 #!/usr/bin/env pyth ...
- github中redme添加图片
README文件后缀名为md.md是markdown的缩写,markdown是一种编辑博客的语言.格式如下:  即 叹号! + 方括号[ ] + 括号( ) 其中叹号里是图片的 ...
- Ubuntu Sublime Text 设置等宽字体
{ "font_face": "DejaVu Sans Mono", "font_size": 10, "word_wrap&qu ...
- 关于django xadmin的学习改造(菜单名称,更改默认前缀数据库)
路径xadmin-master\demo_app\app\models.py class c(models.Model): ip_address = models.CharField(max_leng ...
- Django后台post请求中的csrf token
使用Requests库操作自己的Django站点,post登陆admin页面返回403,serverlog显示csrf token not set. csrf token是get登陆页面时服务器放在c ...
- Linux达人养成第一季
Linux简介 一.Linux发展史 二.开源软件简介 三.Linux应用领域 四.Linux学习方法 五.Linux与Windows的不同 六.字符界面的优势 Linux系统安装 一.虚拟机安装 二 ...
- linux apache 配置URL地址栏大小写不敏感配置
1.apache配置 解决如下:把mod_speling.so放到apache目录下的 lib中... 然后修改http.conf文件, 加入:LoadModule speling_module /u ...