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

转载请注明出处: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. SU suphasevel命令学习

  2. 数据采集器移动手持打印POS终端(PDA)商超抄单方案-PDA抄单无线开单+进销存软件

    PDA主要应用在业务员外出在超市能及时抄单发送回总公司,总公司办公人员及时在软件里面调出业务员的抄单数量进行配货,大大提供工作效率. 移动数据终端和无线基础架构相结合,面向零售与批发门店店员的解决方案 ...

  3. Win7系统删除微软拼音

    微软拼音会在使用Office时偷偷的安装,都找不到删除的地方.在网上找了很多方法都不灵光,最后用下面的方法成功删除.   在语言设置窗口里,重新添加一次这个输入法,确定保存,然后再删除,就行了. 这个 ...

  4. BZOJ1397 : Ural 1486 Equal squares

    二分答案mid,然后检验是否存在两个相同的mid*mid的正方形 检验方法: 首先对于每个位置,求出它开始长度为mid的横行的hash值 然后对于hash值再求一次竖列的hash值 将第二次求出的ha ...

  5. Activity 生命周期及其栈管理方式

    Activity 生命周期 Android 系统用栈的形式管理 Activity , 当新的 Activity 被创建是, 会被放置到栈顶, 这个 Activity 会进入到运行状态, 而前一个 Ac ...

  6. 【BZOJ】3053: The Closest M Points(kdtree)

    http://www.lydsy.com/JudgeOnline/problem.php?id=3053 本来是1a的QAQ.... 没看到有多组数据啊.....斯巴达!!!!!!!!!!!!!!!! ...

  7. 【SPOJ】1812. Longest Common Substring II(后缀自动机)

    http://www.spoj.com/problems/LCS2/ 发现了我原来对sam的理解的一个坑233 本题容易看出就是将所有匹配长度记录在状态上然后取min后再对所有状态取max. 但是不要 ...

  8. 【POJ】2828 Buy Tickets(线段树+特殊的技巧/splay)

    http://poj.org/problem?id=2828 一开始敲了个splay,直接模拟. tle了.. 常数太大.. 好吧,说是用线段树.. 而且思想很拽.. (貌似很久以前写过貌似的,,) ...

  9. esper 事件引擎,各种事件类型示例代码

    原创文章 转载请注明出处 package com.hp.iot.engine.esper; import java.util.ArrayList; import java.util.HashMap; ...

  10. Log4j日志级别

    日志记录器(Logger)是日志处理的核心组件.log4j具有5种正常级别(Level). 日志记录器(Logger)的可用级别Level (不包括自定义级别 Level), 以下内容就是摘自log4 ...