版权声明:本文出自胖喵~的博客,转载必须注明出处。

转载请注明出处:http://www.cnblogs.com/by-dream/p/5384698.html

初衷


  一直都有一个这样的想法:

  虽然在我发出这个帖子之后没有人来主动和我交流,并且有人说这样的方法论会过于死板硬套,不能适用于实际复杂的业务测试中;但是我还是决定去写这样一个系列的文章,只要能够帮助到一部分的测试,哪怕不是很多,我也愿意尝试去做。

分享者简介


  侯哥,4年测试开发经验,现任58同城**部门测试开发,擅长自动化测试。

  这里非常感谢侯哥能够无私的将自己的经验分享出来(另外下文中出现的所有观点均是分享者的观点,不代表58集团)。

 

分享内容


  侯哥分享的内容主要包含两部分:

  一、业务测试

  首先他跟进的业务比较特殊,业务的内容的不仅限在PC、手机站点还有App端的内容。他们会对每次的新需求进行一个划分:大项目和小项目。

  先说小项目,小项目一般指的是不超过5个开发工作日的产品,针对这样的需求变动,基本就是开发完成后,做功能验证 如果涉及到页面的修改会考虑兼容性。兼容性主要只考虑系统兼容性和分辨率兼容性,大概是有一个这样的表,然后将同时满足系统版本和分表率的真机填入表中,用真机进行测试。

  当然就目前的情况来看,Android基本上已经不关心Android 4.0 以下的,iOS 4s以下的设备也不再关注了,除非产品强烈建议。

  介绍下大项目:由于大项目的开发周期比较长,测试可以较为提前的介入,首先,第一部分的测试是对于产品文档的评审。产品会把详细的文档发出来,他们会通过批注的方式对文档进行评审,然后产品对有疑问的地方,进行讲解或修改。当文档确定之后,就进入到了测试的第二部分,编写测试用例。目前会编写两种测试用例,冒烟测试用例和针对需求完善的测试用例。冒烟测试用例的使用者包括开发和测试人员,而完善的测试用例使用者主要是测试人员本身。开发提测之前,需要给出冒烟测试结果,所以冒烟测试用例需要在研发提测前一天给出。第三步,就是执行测试的过程了。这个过程,可能会分成两部分,如果涉及到接口的修改,就会有对应的接口测试,如果没有,就只针对需求的功能测试。

  二、自动化测试(Android)

  首先我问他为什么要做自动化?他说从他对于自动化的理解,出发点主要是两个。一个是便于回归和冒烟,另外一个就是测试知识的积累。为什么要做自动化,算一道题就明白了。当你有10个测试用例的时候,你执行一次的时间是10分钟。那当用例数扩大到100个,1000个,甚至几万个的时候。我们手动执行已经成为了不可能,那自动化就成为了必然。还是那句老话,测试的职责在于保证质量, 而穷尽测试是最能够保证质量的测试办法,当然我们都知道穷尽测试是不可能的。那我们就通过大面积的自动化测试来实现多种测试输入的组合,进而替代穷尽测试。如果非要说自动化测试提高了多少效率,我觉得可以提高百分百的效率,甚至更高。当我们把所有的自动化用例执行都放在晚上,那一个测试人员一天干了两个人的活。这就是他的观点。

  接着是他介绍了他自己写的UI自动化的框架。目前市面上很多的UI自动化框架,功能很强大,使用很便捷。为什么他还要开发一套全新的框架呢。目的就是为了解决ui自动化维护成本高的问题。维护成本高的原因,可以从两个方面考虑,一是UI变动频繁需要经常修改,二是编写自动化脚本的成本高。他们新开发的自动化框架,从三个方面解决了编写成本的问题。一是,多层封装,减少暴露给用户的接口,减少学习和编写成本。二是,模拟类自然语言,大大降低编写门槛。三是,尽量放大测试用例颗粒度。

  针对第一点可能不少人会有这样的疑问就是减少暴露的接口是否会导致功能的缺失,他会通过配置参数的方式,扩展接口的功能。比如滑动,我们增加一个参数 输入 top 就是向上滑动。针对第二点比较好理解,就是将函数方法名称封装成我们比较好理解的语言。第三点的意思可以理解为,减少用例个,比如测试一个数是否为自然数 我们设计用例 可能是 1 2 3 0 -1 等等,那就只写一个2 就算验证了。

  整个架构的原理就是 底层调用adb shell 上层封装不同的接口 然后通过Python提供的 unittest 组合测试集,执行测试集的结果,通过html进行展示。整个自动化测试的框架设计,基于关键字驱动,他们定义了一些关键字,比如设备号, 用例名等等,根据对应的关键字来触发脚本执行。目前自动化脚本的使用场景主要是每次迭代的版本发布前,进行一次回归测试,当然会有一些误报,但是大大减少了回归测试的人力成本。没有发现问题说明我们目前的版本较稳定,如果发现问题,那就赶快处理,修改后再次回归。

【Android测试】【随笔】与 “58同城” 测试开发交流的更多相关文章

  1. android 学习随笔三(测试与单元测试框架)

    测试 1.按岗位: 黑盒测试:测试业务逻辑 白盒测试:测试逻辑方法 2.按测试粒度 方法测试 function 单元测试 unit 集成测试 integration 系统测试 system 3.按暴力 ...

  2. android 兼容性测试 CTS 测试过程(实践测试验证通过)

    source: http://blog.csdn.net/jianguo_liao19840726/article/details/7222814 写这个博客的时候是为了记忆,建议大家还是看官方的说明 ...

  3. 【转】android 兼容性测试 CTS 测试过程(实践测试验证通过)

    原文网址:http://blog.csdn.net/jianguo_liao19840726/article/details/7222814 写这个博客的时候是为了记忆,建议大家还是看官方的说明,官方 ...

  4. Android自动化框架 模拟操作 模拟测试

    转自:http://bbs2.c114.net/home.php?mod=space&uid=1025779&do=blog&id=5322 几种常见的Android自动化测试 ...

  5. Android SDK上手指南:知识测试

    Android SDK上手指南:知识测试 2014-01-22 10:00 核子可乐 译 51CTO 字号:T | T 在从零开始学习Android开发系列教程当中,我们已经了解了为Android平台 ...

  6. Beta冲刺——测试随笔

    这个作业属于哪个课程 软件工程 这个作业要求在哪里 团队作业第五次--Beta冲刺 这个作业的目标 Beta冲刺 作业正文 正文 github链接 项目地址 其他参考文献 无 一.测试工作安排 项目 ...

  7. 测试经验总结(“二次开发”)

    参考原文地址:http://www.51testing.com/html/86/n-3601786.html 不知不觉已经工作五年时间了,从茁壮.康拓普.利鑫云端到现在的惠卡世纪,经历过机顶盒软件(嵌 ...

  8. Android AIDL自动生成Java文件测试

    /******************************************************************************** * Android AIDL自动生成 ...

  9. APP测试中的头疼脑热:测试人员如何驱动开发做好自测

    如今,随着移动互联网的浪潮越翻越涌,移动APP测试工作的现状已经成了那本"家家难念"的经.不管公司大小,不管测试哪种类型的APP,让广泛测试者苦不堪言的就属重复性最多,测试工作量最 ...

随机推荐

  1. 2016.6.23 PHP实现新闻发布系统主体部分

    1.新闻发布系统的列表: <html><meta http-equiv="Content-Type" content="text/html; chars ...

  2. Half Sync And Half Async 半同步半异步模式

    如题,这是一个典型的CS结构的模式,至少曾经在CS结构中用过,只是没用好.当年用UDP死活都处理不过来网络命令,用此模式轻松解决. 此模式是典型的三层架构,同步层在一个线程内处理业务逻辑:异步层接受并 ...

  3. POJ1511 Invitation Cards(多源单汇最短路)

    边取反,从汇点跑单源最短路即可. #include<cstdio> #include<cstring> #include<queue> #include<al ...

  4. flst与fitem命令是这么用的

    k,94,75.69947,44.09817,-40 k,95,50.9349,44.01963,-40 k,96,37.83799,45.04814,-40 k,97,15.1304,48.2934 ...

  5. windows phone7 豆瓣FM

        HubTile参考了下,就做了一个豆瓣的FM应用 豆瓣的API在百度里查一下. 整个应用很简单,无非是解析豆瓣的JSON数据,然后读取,下载图片和歌单

  6. RN组件之Switch与Picker

    一.Switch选择开关控件 1.该组件为Android/IOS通用的两种状态的开关组件 2.属性方法 (1)disabled bool:如果该值为true,用户就无法点击switch开关,默认为fa ...

  7. LeetCode-Sudoku Solver (递归解法)

    题目地址: https://leetcode.com/problems/sudoku-solver/ // 将字符串的数独题转换成 int[9][9] ][], char ** b, int boar ...

  8. java+easyui实例

    1.首先引入easyui包 在jsp页面上引用以下文件: <link rel="stylesheet" type="text/css" href=&quo ...

  9. iOS移动开发周报-第23期

    iOS移动开发周报-第23期 [摘要]:本期iOS移动开发周报带来如下内容:苹果发出9月9日发布会邀请函,AFNetworking2.0源码解析,objc与鸭子对象,Protecting iOS Ap ...

  10. Git补丁

    引子: 上班有问题没有解决,在家里搞定了,于是把改动打成一个补丁,明天应用到公司的工作电脑上.(以下内容转自别处) 1.创建补丁,比如把最新的两次提交纪录转化为补丁文件,可以用如下命令: git fo ...