之前也写过一些blog,可是没什么坚持。这个系列算是对之前工作的一个总结和提高;也与大家共同进步!

  本文主要介绍的内容是:

  1. 软件测试的基本概念

  2. 自动化测试的概念

  3. 手动测试和自动化测试的区别

  4. 为什么要进行自动化测试,以及应用场景

  5. 手机测试,手机测试的特别之处

  6. Robotium是什么?

软件测试的基本概念

  从网上或者书上查找,软件测试的定义有很多种。博客园上也有很多,大家可以参考:

  http://www.cnblogs.com/ievjai/p/3221332.html

  http://www.cnblogs.com/onetestlong/p/3209062.html

  通过这些年软件测试工作,我的理解是这样的:

    软件测试的目的是保证软件的质量

    软件测试的工作实际是找出软件存在的问题(bug)

  很简单,可是却是一个很庞杂的课题。需要了解很多知识,熟悉软件的开发、维护过程才会很熟练地工作。

  大家可以自己去思考,

    比如测试需要在项目的什么时候介入;

    哪些是测试的范畴(或者说是目标);需求分析文档?软件的功能? UI, 多语言等等

    测试用例设计、实施

    测试管理系统及辅助工具等

    ...

   因为本系列主要是Robotium自动化测试相关,所以就不过多思考了。

自动化测试的概念

  自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程。  

  所以通常我们会听到这样的名词:QTP, LoadRunner, WinRunner, Selieum以及其他许多大大小小的自动化测试工具,他们都是为自动化服务的。当然,因为通用的测试工具不太适合项目的话,许多裁剪版的甚至全新的测试工具(框架)就应运而生了。我所知道的ubuntu为了测试unity就开发了auto-poliot; google在android平台设计了monkey, monkeyrunner等等

手动测试和自动化测试的区别

  手动是人来执行,而自动化测试实际上就是把重复的工作交给机器执行,用程序来测试程序(软件).

为什么要进行自动化测试,以及应用场景

  首先说一下手工测试的局限性:  

1、手工测试不能覆盖所有代码路径。

  2、基本的功能性测试用例在每一轮测试中都不能少。由于工作量往往较大,属于重复性的、非智力性的和非创造性,并要求准确细致,使用机器比人类更有优势。

  3、许多死锁、资源冲突、多线程等有关的不正确 ,通过手工测试很难捕捉到。

  4、系统压力、性能测试,须要模拟大数据或大并发用户等各种测试场景,很难通过手工测试执行。

  5、系统可靠性测试,须要模拟系统长时间运行,以验证系统能否稳定运行,难以通过手工测试执行。

  6、如果有大量(几千)的测试用例,须要在短时间内(1天)完成,手工测试几乎不可能做到。

  而自动化测试恰恰可以弥补手工测试的不足,对以上形式的测试进行有效地执行。从而增加测试的覆盖率,确保测试质量。

  但是自动化测试并不能取代手工,并非所有的测试场景适合自动化测试。适合自动化测试的场合需要满足:

  1. 需求变动不频繁

  2. 项目周期足够长

  3. 自动化测试脚本可以重复使用

  所以,适合自动化测试的场合通常有:

  1. 回归测试;重复单一的数据录入或是击键等测试操作造成了不必要的时间浪费和人力浪费;

  2. 压力测试和性能测试;比如模拟多用户或者用户长时间使用系统的场景(非本课程涉及内容)例如多人同时发送微博,长时间在线观看视频

手机测试,手机测试的特别之处

  手机测试一般指的是手机软件测试,因为是移动设备,有一些和其他测试差异化的地方,简单总结如下:

    低电量,怎么实现低电量?
    低内存,如何实现低内存?
    横竖屏切换
    UI 自适应处理, 不同屏幕分辨率、横竖屏切换的时候
    信号切换时应用的表现
    红外、蓝牙
    接打电话时的交互情景
    短信收发

Robotium是什么?

Robotium是一款国外的Android自动化测试框架,主要针对Android平台的应用进行黑盒自动化测试,它提供了模拟各种手势操作(点击、长按、滑动等)、查找和断言机制的API,能够对各种控件进行操作。Robotium结合Android官方提供的测试框架达到对应用程序进行自动化的测试。另外,Robotium 4.0版本已经支持对WebView的操作。Robotium 对Activity,Dialog,Toast,Menu 都是支持的。

  Robotium 的用法很简单,同时也是很有效的黑盒测试工具。我们在使用时通过Solo 对象的
  实例,可以创建丰富的测试用例。Solo 不仅对activity 支持,对Toast,Menu,Dialog 也是支
  持的

Robotium 系列(1)的更多相关文章

  1. Robotium 系列(2) - 简单介绍Monkey和MonkeyRunner

    除了Robotium,Android还有其他的自动化测试方法,比如Monkey和MonkeyRunner. 这里就做一个简单的介绍和使用方法. 本文提纲: 1. Android SDK以及SDK中的工 ...

  2. 转载:Robotium之Android控件定位实践和建议(Appium/UIAutomator姊妹篇)

    来源于:http://blog.csdn.net/zhubaitian/article/details/39803857 1. 背景 为保持这个系列的一致性,我们继续用SDK自带的NotePad实例应 ...

  3. Robotium之Android控件定位实践和建议(Appium/UIAutomator姊妹篇)

    本人之前以前撰文描写叙述Appium和UIAutomator框架是怎样定位Android界面上的控件的. UIAutomator定位Android控件的方法实践和建议 Appium基于安卓的各种Fin ...

  4. Robotium原则的实施源代码分析

    从前面的章节<Robotium源代码分析之Instrumentation进阶>中我们了解到了Robotium所基于的Instrumentation的一些进阶基础.比方它注入事件的原理等,但 ...

  5. Robotium源码分析之运行原理

    从上一章<Robotium源码分析之Instrumentation进阶>中我们了解到了Robotium所基于的Instrumentation的一些进阶基础,比如它注入事件的原理等,但Rob ...

  6. Robotium源码分析之Instrumentation进阶-attach

    在分析Robotium的运行原理之前,我们有必要先搞清楚Instrumentation的一些相关知识点,因为Robotium就是基于Instrumentation而开发出来的一套自动化测试框架.鉴于之 ...

  7. Robotium源码分析之Instrumentation进阶

    在分析Robotium的运行原理之前,我们有必要先搞清楚Instrumentation的一些相关知识点,因为Robotium就是基于Instrumentation而开发出来的一套自动化测试框架.鉴于之 ...

  8. Robotium测试报告的生成方法(下)

    7.4 测试报告优化 通过上面的三种方法,我们都可以得到一个Xml格式的测试报告,不过这不是我们想要的,因为这样的报告读起来很费劲,而且这样的报告发给领导们也是不行的.所以我们要美化一下才行,一般都是 ...

  9. Robotium之Android控件定位实践和建议

    本人之前曾经撰文描述Appium和UIAutomator框架是如何定位Android界面上的控件的. UIAutomator定位Android控件的方法实践和建议Appium基于安卓的各种FindEl ...

随机推荐

  1. AJAX安全-Session做Token

    个人思路,请大神看到了指点 个人理解token是防止扫号机或者恶意注册.恶意发表灌水,有些JS写的token算法,也会被抓出来被利用,个人感觉还是用会过期的Session做token更好,服务器存储, ...

  2. jQuery去掉导航分割线的最后一条竖线

    #top #navigation ul li { float:left; width:120px; background:url(../images/navline.jpg) no-repeat 11 ...

  3. Html5页面返回机制解决方案

    需要处理的返回场景: 1.正常的a->b->c 2.页面上的按钮触发需要登陆 3.页面跳转需要登陆 4.页面上的可修改的部分(如选择地址,地址页面本身也是可以增删改查的) 整体的原则是原路 ...

  4. sublime 设置文件默认打开方式

    win7,sublime text 3 无法关联文件 删除 HKEY_CURRENT_USER\Software\Classes\Applications下的Sublime_Text.exe项.你就发 ...

  5. WPF读书笔记(第一天)

    今天开始学习WPF,大家都推荐<深入浅出WPF>这本书,一下是我觉得此书中重要的地方,记录下来以便以后回顾,也希望其他人看到了对你们有帮助. 1.XAML是可扩展应用程序标记语言 是WPF ...

  6. 数组有N+M个数字, 数字的范围为1 ... N, 打印重复的元素, 要求O(M + N), 不可以用额外的空间

    数组有N+M个数字, 数字的范围为1 ... N, 打印重复的元素, 要求O(M + N), 不可以用额外的空间 1.题目中要求我们不能使用额外的空间,那么我们能采用在原数组上做文章,这里的重点是如何 ...

  7. ASP.NET Mvc Razor视图语法

    在ASP.NET MVC中有两套模版引擎,一套是ASPX,一套是Razor,从事过WebForms开发的朋友们,对于ASPX模版已经很熟悉了,下面我说一下我所熟悉的Razor模版引擎的一些语法,供大家 ...

  8. 微信web开发者工具调试

    微信web开发者工具调试 前几天写了一篇使用fiddler调试微信端页面的,然后博友评论说使用fiddler太麻烦了,推荐使用微信web开发者工具调试微信页面,这两天弄着玩了一下,很强大.这篇文章只是 ...

  9. 统计 iOS 设备锁定、解锁次数-b

    今天下了个软件,可以记录手机解锁的次数和使用时间,当然啦,App 必须在后台运行着.当时比较纳闷的是有什么 API 可以接收设备解锁事件或通知的,Google 了下,还真有哎——我是链接:http:/ ...

  10. 按行N等分某个文件

    # --*-- coding:utf-8 --*--import randomimport math def fanhui():    into = random.randint(1, 10)    ...