我在面试测试工程师时,经常问到的一个问题是“给出Word另存为这个功能的测试用例”。除开基本的测试用例外,考虑到各种异常情况,例如内存已满、硬盘空间不足是非常重要的。但是针对移动互联网App来说,情况还要复杂的多。

一个重要原则是:测试你最终要发布给用户的App版本。

可能每日构建、每日测试的理念已经深入人心,我们很多时候测试的只是App的开发和Debug版本,而不是最终的Release版本。在打包最终的Release版本时,我们一般还要加上数字签名,或者再加上代码混淆。那么最终的发布版本和Debug版本肯定有不一致的地方。我们iPhone的App曾经使用过一个第三方开源库,在Debug版本时完全工作正常,但是正式上线后才发现必定会导致崩溃。这个代价和经验非常宝贵(其实这个开源库的论坛上已经讨论并警告过这个问题)。我们后来花了许多力气来修正和弥补这个问题。如果在一开始就针对Release版本进行了测试,这样的问题是不会出现的。

Debug& Release

测试网络相关的App,有三个非常重要的最佳实践

1、2G、3G、wifi都要覆盖

这三者之间不仅仅只是网络速度的差别,它们代表了三种不同的网络环境。另外你可能没有想到一种特殊的情况可以用它们来测出问题:开发环境和生产环境。

一个有经验的开发团队会在内网搭建测试环境来进行开发时的测试,在上线时将配置切换到线上的生产环境。这个切换应该是在发布流程中需要Check的一个环节。但是,我们有可能遗漏。

所以这个测试用例可以用来防止这种情况的出现,在wifi下内网环境可以work fine,但是2G和3G就不行,只有真实的环境下2G和3G才能正常工作(想想2G和3G是否可以正常访问http://192.168.1.xxx这样的地址就可以了)。

2、HTTP、HTTPS都要覆盖

许多App和后台服务都是通过HTTP来交互的,正常情况下都一切正常。为什么需要测试HTTPS环境?在一些免费上网的环境中,例如在麦当劳、星巴克里,它们的网络环境都要输入用户名和密码,通过SSL认证来访问网络。如果你使用HTTP Client的library对这种异常没有做捕获处理,那么你的App必定会崩溃掉。

3、进行网络异常、服务器宕机或出现404、502等情况下的测试

后台服务的稳定性是你有时很难去控制的,尤其是牵涉到DNS、空间服务商的情况下。国内某著名DNS服务商经常出现大规模域名解析故障,碰到这种情况,你对后台API的请求很可能就会出现404错误。而你和API交互的数据应该是某种固定格式例如JSON和XML,这样你的数据解析必然会出现错误,抛出异常。如果你对异常没有进行正确的处理可能会导致程序不能正常工作。以下用伪代码解释一下逻辑:

try { if(request() == success) { callSuccess(); } else { callFail(); } hidePopup(); } catch(e) { // do nothing, just wait….now popup window will show forever on the screen!!! // if it is a iOS app, the popup window will lock the screen }

而针对不同的手机系统也有需要注意的地方。Android系统固件1.5、1.6和2.0以上版本都是要分别详细测试的。因为Android 1.5、1.6及以上的SDK有很多实现不一致的地方,兼容性有很大问题。在没有做特殊处理时,可以在Android 1.6上正常运行的程序基本在1.5上打开就会崩溃(资源文件和API的问题,这个可以单独写一篇文章来解释这个问题)。

Andorid 1.5目前仍有1.0%的保有量

我测试Android1.5的机型:摩托罗拉Backflip

针对iOS系统,除了iOS3、iOS4和iOS5的测试外。我只想说尽可能多,尽可能谨慎,尽可能苛刻的进行测试。受限于App Store冗长的审核周期,一旦你的应用出现严重系统错误,你的修复版本基本不可能在很短时间内在App Store上架。那么用户将需要容忍一周左右的时间你的App所带来的煎熬或者永远离去。

App Store的审核以严厉和时间长著称

做移动互联网App,你的测试用例足够吗?相关推荐

  1. [原创]浅谈移动互联网App兼容性测试

    [原创]浅谈移动互联网App兼容性测试 今天要谈的话题,估计各位测试都有感受,移动互联网App兼容性测试,我们到底测试覆盖如何去挑选机型?具体移动App兼容性测试如何开展?是不是应引进像testin这 ...

  2. 是哪个app_互联网APP创业哪个好

    互联网APP创业哪个好 在本次招聘中,应聘人员必须符合以下条件,并经体检合格. 一.自己创业要想真正致富就要做好决策.合理规划.精心研究.热心服务.一般说来,有了方案,能够迅速致富必须有预算,能够高效 ...

  3. 积木式移动互联网App Hybrid框架-modular

    你好,欢迎阅读本系列博文! 自09年初做Windows Mobile研发起,就踏上移动互联网平台App不归路了(题外话:何为Windows Mobile,它由微软打造,跟当年红极一时诺基亚智能手机系统 ...

  4. 索为百万工业互联网APP平台“众工业”在2018工业互联网峰会重磅发布

    2018年2月1日到2日,工业互联网产业界的顶级会议"2018工业互联网峰会"在北京国家会议中心盛大举行.本届峰会以"创新引领  融通发展"为主题,来自政府.企 ...

  5. PMCAFF微课17期 - 教你如何用数据玩转移动互联网APP运营(笔记下载)

    先来看一下我们的课程大纲,首先是自我介绍.由于我们是做数据运营,那么需要先进行App的数据概览,接着了解一下数据的组织(是如何运用这些组织来用起App的).然后,谈谈这些数据怎么落地,讲述一些具体的实 ...

  6. 移动互联网APP运营技巧分享

    资源共享是互联网发展这么多年以来的一大重要表现,如今随着移动手机的不断涌现出来,间接的也带动了移动互联网的的发展,移动互联网是未来的发展趋势,借助这一趋势,APP运营,俗话说"守业更比创业难 ...

  7. 移动互联网App推广的十大难题

    经常有朋友来问,"我做了一个App,请问怎么推广啊?"或者就是"我们公司开发了一个App,想短时间内获取巨大的量,"还有的就是问"有没有什么好渠道三个 ...

  8. 一个互联网app的开发设计(技术选型和架构)

    原文地址:http://blog.csdn.net/brycegao321/article/details/51830525 在做一个互联网应用时, 要考虑技术选型和架构搭建. 先说说技术选型,   ...

  9. 详解互联网APP架构2.0

    详解互联网APP架构1.0 详解互联网APP架构2.0 经过几个月业务的沉淀,明确出几个具体的业务方向,原本的架构已经不适合现在的项目. 下面从几个方向介绍我们的切换思路: 1.原本架构存在几个问题 ...

最新文章

  1. 无法解析的外部符号 WinMain,该符号在函数 int __cdecl invoke_main(void) (?invoke_main@@YAHXZ) 中被引用
  2. 关于DruidStatView监控信息
  3. 机器学习第八篇:详解逻辑斯蒂回归算法
  4. 时间复杂度和空间复杂度[数据结构]
  5. 3D Render pictures
  6. 作者:​邓波(1973-),男,博士,北京系统工程研究所研究员。
  7. c#单纯发送post请求一个URL得到返回值
  8. 广度优先搜索生成树怎么画_LeetCode0938: 二叉搜索树的范围和
  9. IDEA离线使用本地maven仓库
  10. mysql jdbc8.0驱动包下载_JDBC驱动jar包|JDBC驱动(mysql connector java)下载v8.0.11安装包 - 欧普软件下载...
  11. AS-实践《第一行代码》中的出现的问题
  12. 【OpenCV 例程300篇】47. 直方图处理之直方图匹配
  13. 在线抢购平台_项目预览
  14. 电脑ie怎么设置html5,电脑中IE浏览器工具栏设置选项显示的是英文如何改成中文...
  15. Java自学教程!mysql环境变量配置好了之后怎么办
  16. canvas 画一幅画
  17. 2022年应届大学毕业生就业分析报告
  18. 如何让智能家居环境,变得更加安全
  19. JavaWeb个人博客项目:手把手教你实现博客后台系统之界面图展示1
  20. 电脑监控软件哪个好用,有没有远程监控软件?

热门文章

  1. GO语言基础条件、跳转、Array和Slice
  2. 线程管理(九)使用本地线程变量
  3. JavaBean的详细及引用
  4. DS5020配置集群存储
  5. HYDRAstor:可扩展的二级存储
  6. 跨域资源共享(CORS)--跨域ajax
  7. SQL Server 分区表 处理海量数据
  8. .NET Core 3.0-preview3 发布
  9. linux守护进程的编写
  10. 2017.9.6数学