我们的日常生活中对移动设备越来越多的使用意味着移动App测试这个主题已成为需要考虑的一个无法避免的问题。根据最近的调查研究,用户难以容忍有bug的移动App。

移动App Bug的影响是用户体验差、App的商店评级下降、用户换用竞争对手的App,声誉和信誉损失、最后销售量减少,如果它是一个付费App的话。

移动App测试与传统台式机测试相比有一定的复杂性。这些复杂性可以被分类为:

  环境(大量的设备,各种移动OSs,适应频繁OSs变化) 。

  设备(触摸式和非触摸式设备,有限的内存容量,电池耗电量) 。

  网络(不同的网络和运营商,在不好或无网络的情况下的App行为,离线支持) 。

  可用性(方向,触摸,多触摸,缩放,分页和导航的局限性,各种干扰,如来电,来电短信,闹钟,和低电量警报) 。

  所有这些手机专有的复杂性需要新的针对移动App测试的测试用例设计方案。

最常见的移动App Bug

  根据调查的结果,移动App崩溃是最常见的移动App Bug ,这是预料中的结果,因为很容易发现一个移动App崩溃。Android OS上一个写着“强制关闭错误”的弹出窗口跳上屏幕;当发生崩溃时,iOS中App屏幕突然消失消失。最坏的情况下,App崩溃可能会导致系统故障,操作系统崩溃。

移动App崩溃原因【一些崩溃原因(排名不分先后)】:

  为什么移动App经常崩溃?App崩溃有几个原因:从平台或环境到开发问题。

  设备碎片化:由于设备极具多样性,App在不同的设备上可能有表现不同。

  带宽限制:带宽不佳的网络对App所需的快速响应时间可能不够。

  网络的变化:不同网络间的切换可能会影响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崩溃的通用测试案例。

  如果移动测试团队在他们的测试场景中准备并执行这些测试用例,那么早在开发周期就可以找到崩溃相关的Bug。然后,开发团队将阐明崩溃原因,并找出一个解决所有Bug的通用方法。最后,App质量和用户满意度就会增加。

移动App崩溃测试用例设计的更多相关文章

  1. 移动App崩溃的测试用例设计

    我们的日常生活中对移动设备越来越多的使用意味着移动App测试这个主题已成为需要考虑的一个无法避免的问题.根据最近的调查研究,用户难以容忍有bug的移动App. 移动App Bug的影响是用户体验差.A ...

  2. app 崩溃测试 (转:CSDN 我去热饭)

    首先,崩溃有几种情况: 闪退 提示停止运行 无响应 ( 不同情况虽然没有严格意义上区分开引起原因,但是都有侧重.在之后的工作中,我会实时补充统计.) 1.接口返回值 [直接原因]:app无法解析接口返 ...

  3. 追踪app崩溃率、事件响应链、Run Loop、线程和进程、数据表的优化、动画库、Restful架构、SDWebImage的原理

    1.如何追踪app崩溃率,如何解决线上闪退 当 iOS设备上的App应用闪退时,操作系统会生成一个crash日志,保存在设备上.crash日志上有很多有用的信息,比如每个正在执行线程的完整堆栈 跟踪信 ...

  4. 记录---Testin上新手测试用例设计实战---碎乐3.2.0

    平台上给的版本是碎乐3.12版的,但是平台上给的安装包下载不了,所以加群咨询之后给出了直接去手机应用商店下载搜索到的版本的对策.所以就那应用商店中找到的3.2.0版本来设计测试用例.因为任务中没有给出 ...

  5. 微信团队分享:iOS版微信是如何防止特殊字符导致的炸群、APP崩溃的?

    本文来自微信开发团队yanyang的技术分享. 1.引言 相信大家都遇到过一段特殊文本可以让iOS设备所有app闪退的经历.前段时间大年初一,又出现某个印度语字符引起iOS11系统奔溃,所幸iOS版微 ...

  6. 测试用例设计经典面试题之电梯、杯子、笔、桌子、洗衣机、椅子、ATM等

    测试用例设计经典面试题之电梯.杯子.笔.桌子.洗衣机.椅子.ATM等 1.测试项目:电梯 需求测试:查看电梯使用说明书.安全说明书等 界面测试:查看电梯外观 功能测试:测试电梯能否实现正常的上升和下降 ...

  7. [转]Android App整体架构设计的思考

    1. 架构设计的目的 对程序进行架构设计的原因,归根到底是为了提高生产力.通过设计使程序模块化,做到模块内部的高聚合和模块之间的低耦合.这样做的好处是使得程序在开发的过程中,开发人员只需要专注于一点, ...

  8. 15款优秀移动APP产品原型设计工具

    一新来小盆友问:“移动产品原型设计都用啥工具?” 答:“@#¥……&%*” 又问:“能详细说下各个工具吗?我比较一下” “……” 好吧,谁让我那么的爱分享而你又是小美女呢 ———————正文开 ...

  9. iOS系统app崩溃日志手动符号化

    iOS系统app崩溃日志手动符号化步骤: 1.在桌面建立一个crash文件夹,将symbolicatecrash工具..crash文件..dSYM文件放到该文件夹中 a.如何查询symbolicate ...

随机推荐

  1. 从网络中获取图片显示到Image控件并保存到磁盘

    一.从网络中获取图片信息: /// <summary> /// 获取图片 /// </summary> /// <param name="url"&g ...

  2. 无法将类型为“Excel.ApplicationClass”的 COM 对象强制转换为接口类 型“Excel._Application”。此操作失败的原因是对 IID 为“{000208D5 -0000-0000-C000-000000000046}”的接口的 COM 组件调用 QueryInterface 因以下错误而失败: 加载类型库/DLL 时出错。 (异常来 自 HRESULT:

    无法将类型为“Excel.ApplicationClass”的 COM 对象强制转换为接口类 型“Excel._Application”.此操作失败的原因是对 IID 为“{000208D5 -000 ...

  3. mysql常见的运算符及使用

    mysql中有4类运算符,它们是: 算术运算符 比较运算符 逻辑运算符 位操作运算符 算术操作符 算术操作符是SQL中最基本的操作运算符,主要有一下几种运算符: +(加). -(减). *(乘). / ...

  4. 导出你的GAC Assembly中的DLLS -- 金大昊(jindahao)

    导出你的GAC Assembly中的DLLS   方法1: CMD命令中,进入C:\windows\assembly,然后XCOPY GAC_MSIL c:\temp /E 这样就得到了dlls了,以 ...

  5. GitHub 基本常用知识解答

    1.Fork.Watch.Star 是什么意思? fork的意思是从别人的代码库中复制一份到你自己的代码库,与普通的复制不同,fork包含了原有库中的所有提交记录, fork后这个代码库是完全独立的, ...

  6. Mac下Apache Tomcat安装配置

    Java Web如果稍微知道一点,一般对Tomcat都不会陌生,Apache是普通服务器,本身只支持html即普通网页,可以通过插件支持PHP,还可以与Tomcat连通(单向Apache连接Tomca ...

  7. javascript的模块化解读

    AMD是RequireJS在推广过程中对模块定义的规范化产出. 异步加载模块,依赖前置,提前执行. Define定义模块 define(['require','foo'],function(){ret ...

  8. ORACLE 创建与使用视图

    一.what(什么是视图?) 1.视图是一种数据库对象,是从一个或者多个数据表或视图中导出的虚表,视图所对应的数据并不真正地存储在视图中,而是存储在所引用的数据表中,视图的结构和数据是对数据表进行查询 ...

  9. MongoDB学习笔记——聚合操作之聚合管道(Aggregation Pipeline)

    MongoDB聚合管道 使用聚合管道可以对集合中的文档进行变换和组合. 管道是由一个个功能节点组成的,这些节点用管道操作符来进行表示.聚合管道以一个集合中的所有文档作为开始,然后这些文档从一个操作节点 ...

  10. PL/SQL之--游标

    一.游标简介 在PL/SQL中执行SELECT.INSERT.DELETE和UPDATE语句时,ORACLE会在内存中为其分配上下文区(Context Area),也称为缓冲区.游标是指向该区的一个指 ...