Robotium 系列(1)
之前也写过一些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. 压力测试和性能测试;比如模拟多用户或者用户长时间使用系统的场景(非本课程涉及内容)例如多人同时发送微博,长时间在线观看视频
手机测试,手机测试的特别之处
手机测试一般指的是手机软件测试,因为是移动设备,有一些和其他测试差异化的地方,简单总结如下:
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)的更多相关文章
- Robotium 系列(2) - 简单介绍Monkey和MonkeyRunner
除了Robotium,Android还有其他的自动化测试方法,比如Monkey和MonkeyRunner. 这里就做一个简单的介绍和使用方法. 本文提纲: 1. Android SDK以及SDK中的工 ...
- 转载:Robotium之Android控件定位实践和建议(Appium/UIAutomator姊妹篇)
来源于:http://blog.csdn.net/zhubaitian/article/details/39803857 1. 背景 为保持这个系列的一致性,我们继续用SDK自带的NotePad实例应 ...
- Robotium之Android控件定位实践和建议(Appium/UIAutomator姊妹篇)
本人之前以前撰文描写叙述Appium和UIAutomator框架是怎样定位Android界面上的控件的. UIAutomator定位Android控件的方法实践和建议 Appium基于安卓的各种Fin ...
- Robotium原则的实施源代码分析
从前面的章节<Robotium源代码分析之Instrumentation进阶>中我们了解到了Robotium所基于的Instrumentation的一些进阶基础.比方它注入事件的原理等,但 ...
- Robotium源码分析之运行原理
从上一章<Robotium源码分析之Instrumentation进阶>中我们了解到了Robotium所基于的Instrumentation的一些进阶基础,比如它注入事件的原理等,但Rob ...
- Robotium源码分析之Instrumentation进阶-attach
在分析Robotium的运行原理之前,我们有必要先搞清楚Instrumentation的一些相关知识点,因为Robotium就是基于Instrumentation而开发出来的一套自动化测试框架.鉴于之 ...
- Robotium源码分析之Instrumentation进阶
在分析Robotium的运行原理之前,我们有必要先搞清楚Instrumentation的一些相关知识点,因为Robotium就是基于Instrumentation而开发出来的一套自动化测试框架.鉴于之 ...
- Robotium测试报告的生成方法(下)
7.4 测试报告优化 通过上面的三种方法,我们都可以得到一个Xml格式的测试报告,不过这不是我们想要的,因为这样的报告读起来很费劲,而且这样的报告发给领导们也是不行的.所以我们要美化一下才行,一般都是 ...
- Robotium之Android控件定位实践和建议
本人之前曾经撰文描述Appium和UIAutomator框架是如何定位Android界面上的控件的. UIAutomator定位Android控件的方法实践和建议Appium基于安卓的各种FindEl ...
随机推荐
- 利用javascript Location访问Url,重定向,刷新页面
网上转来了, 方便以后查询参考 本文介绍怎么使用javascript Location对象读和修改Url.怎么重载或刷新页面.javascript提供了许多方法访问,修改当前用户在浏览器中访问的url ...
- 常用PHP缓存技术
1.全页面静态化缓存 也就是将页面全部生成html静态页面,用户访问时直接访问的静态页面,而不会去走php服务器解析的流程. 一种比较常用的实现方式是用输出缓存: Ob_start() ******要 ...
- TP框架多上传域上传图片
问题: 学习使用TP框架做电商网站是,添加商品表单需要上传商品logo和商品图片pics,有两个上传域,第一个上传域是logo,只上传一张,第二个上传域是pics,上传多张图片.使用如下代码,总是报错 ...
- SDC(5)–FPGA系统级同步输入的约束
此时计算最大/最小输入延时时,是不应该考虑FPGA本身的tSU/tH的,因为数据进来之后不一定马上送到DFF. 例如: 此时约束如下:
- 【经验】angularjs 实现带查找筛选功能的select下拉框
一.背景 对于select的下拉列表,像国家选择这样的功能,全世界那么多国家,一直拉滚动条多辛苦,眼睛也要盯着找,累!so,为优化用户体验,带查找功能的下拉框是非常非常有必要的.都知道jquery里有 ...
- sql 锁相关(转)
锁是数据库中的一个非常重要的概念,它主要用于多用户环境下保证数据库完整性和一致性. 我们知道,多个用户能够同时操纵同一个数据库中的数据,会发生数据不一致现象.即如果没有锁定且多个用户同时访问一个数据库 ...
- ECshop Strict Standards: Only variables should be passed by reference in解决办法
本文章来给各位同学介绍关于ECshop Strict Standards: Only variables should be passed by reference in解决办法,希望此教程 对各位同 ...
- BZOJ 3990 [SDOI 2015] 排序 解题报告
这个题哎呀...细节超级多... 首先,我猜了一个结论.如果有一种排序方案是可行的,假设这个方案是 $S$ . 那么我们把 $S$ 给任意重新排列之后,也必然可以构造出一组合法方案来. 于是我们就可以 ...
- ***微信浏览器禁止app下载链接怎么办
通过扫描二维码下载APP已成为一个非常方便的方式,微信也成为扫描二维码重要的工具,但是扫描后微信浏览器会对APK和appStore的链接进行屏蔽,导致用户无法正常下载.本文提供两个迂回的解决方案:1. ...
- [状压dp]POJ1185 炮兵阵地
中文题 题意不再赘述 对于中间这个“P” 根据dp的无后效性 我们只需考虑前面的 就变成了 只需考虑: 也就是状压前两行 具体与HDOJ的4539类似: 看HDOJ 4539 仅仅是共存状态的判断不同 ...