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

虫虫 发布于 2011/10/20 17:56
阅读 13K+
收藏 14
我在面试测试工程师时,经常问到的一个问题是“给出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的审核以严厉和时间长著称

转载自:http://blog.csdn.net/hfahe/article/details/6886127
加载中
0
真实的告白
一、移动手机APP测试从初级到提升(初级篇)
课程观看地址:http://www.xuetuwuyou.com/course/41
课程出自学途无忧网:http://www.xuetuwuyou.com/


了解移动互联网,掌握移动手机app测试的方法,了解Android四大组件与生命周期,掌握自动化测试adb命令


以及monkey的使用。


课时1:认识移动互联网以及职业发展 
课时2:如何学习移动测试以及app杂谈 
课时3:移动app测试点总结 
课时4:云测平台大集合
课时5:安卓四大组件以及生命周期 
课时6:常用测试小工具实战 
课时7:认识安卓系统 
课时8:自动化测试之adb命令实战 
课时9:自动化测试之monkey实战 
课时10:自动化测试之monkey进阶


二、移动手机APP测试从初级到提升(进阶篇)
课程观看地址:http://www.xuetuwuyou.com/course/42


课程介绍
1.掌握Android开发测试环境的搭建
2.掌握模拟器avd的使用
3.掌握基本的linux命令
4.掌握使用ddms和logcat来进行手机app的性能测试分析
5.掌握使用MAT来进行手机app的性能内存测试分析
6.掌握自动化测试monkeyrunner的使用


课时1:Linux和Windows下搭建安卓开发环境eclipse sdk讲解
课时2:android模拟器avd实战 
课时3:android与linux的暧昧 
课时4:开发第一个android程序 
课时5:使用ddms调试监控以及logcat实战 
课时6:UI检查利器,自动化必备,Hierarchy Viewer 
课时7:linux常用命令实战
课时8:实战MAT+Hprof进行内存分析 
课时9:移动app自动化测试monkeyrunner实战 
课时10:移动app自动化测试monkeyrunner进阶




三、移动手机APP测试从初级到提升(提升篇)
观看地址:http://www.xuetuwuyou.com/course/43


课程介绍
1.掌握移动手机app自动化测试框架设计的思路
2.掌握移动手机app性能测试的方法,利用traceview完成
3.掌握移动手机app自动化测试框架robotium
4.掌握移动手机app自动化测试框架Appium
5.掌握移动手机app持续集成jenkins


课时1:Android cts兼容性测试框架实战
课时2:Android自动化测试初探 
课时3:手机APP性能测试traceview实战 
课时4:手机APP自动化测试robotium实战-1 
课时5:手机APP自动化测试robotium实战-2 
课时6:手机APP自动化测试Appium实战-1 
课时7:手机APP自动化测试appium实战-2 
课时8:利用jenkins构建自动化持续集成 
课时9:手机APP测试之ANR实战分析
0
r
rdtriny
阿里云测-移动质量中心,来自阿里的云测平台。移动App测试我们是专业的,而且免费的,认真做测试,不虚夸,花一分钟体验一下,你就会记住它。传送门:http://mqc.aliyun.com/ ,兼容性测试传送门:http://mqc.aliyun.com/compatibility.htm
0
Jess_M
Jess_M
TestBird APP自动化测试,只需要开发者上传APP,提交测试需求,就直接坐等报告。不妨一试!
0
小猪11
小猪11
向大家推荐个android平台开发测试工具(无线UIViewer),手机端版本的 hierarchyviewer,可以直接在手机上检查UI控件的布局、位置、大小等,不需要再连数据线到PC看,强烈推荐, 不尝试别后悔哟~~
是安卓UI集成调试、测试必备利器呀!

CSDN下载地址: http://download.csdn.net/detail/duantihi/9448886
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部