以前也写过一些blog,但是没什么坚持。这个系列算是对以前工做的一个总结和提升;也与你们共同进步!html
本文主要介绍的内容是:android
1. 软件测试的基本概念ubuntu
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天)完成,手工测试几乎不可能作到。
而自动化测试偏偏能够弥补手工测试的不足,对以上形式的测试进行有效地执行。从而增长测试的覆盖率,确保测试质量。
可是自动化测试并不能取代手工,并不是全部的测试场景适合自动化测试。适合自动化测试的场合须要知足:
1. 需求变更不频繁
2. 项目周期足够长
3. 自动化测试脚本能够重复使用
因此,适合自动化测试的场合一般有:
1. 回归测试;重复单一的数据录入或是击键等测试操做形成了没必要要的时间浪费和人力浪费;
2. 压力测试和性能测试;好比模拟多用户或者用户长时间使用系统的场景(非本课程涉及内容)例如多人同时发送微博,长时间在线观看视频
手机测试通常指的是手机软件测试,由于是移动设备,有一些和其余测试差别化的地方,简单总结以下:
Robotium是一款国外的Android自动化测试框架,主要针对Android平台的应用进行黑盒自动化测试,它提供了模拟各类手势操做(点击、长按、滑动等)、查找和断言机制的API,可以对各类控件进行操做。Robotium结合Android官方提供的测试框架达到对应用程序进行自动化的测试。另外,Robotium 4.0版本已经支持对WebView的操做。Robotium 对Activity,Dialog,Toast,Menu 都是支持的。
Robotium 的用法很简单,同时也是颇有效的黑盒测试工具。咱们在使用时经过Solo 对象的
实例,能够建立丰富的测试用例。Solo 不只对activity 支持,对Toast,Menu,Dialog 也是支
持的