慢慢摸索自动化测试有好几个月了,看了几个学习视频,简单的阐述一下自己的观念。
1.测试的基础
测试的金字塔理论大家都非常的清楚,底层是unittest(单元测试),中层是集层测试,最高层是ui的测试。
金字塔的难度设置:底层最低 ui级别最高
单测:一般单测由开发人员制定,我们从旁给出设计测试用例的意见。原因:没有人比开发更懂自己的代码。单测思想很简单,但是很重要,是金字塔的最底层,底层稳固了金字塔才可以建高。
ui测试:难度高是因为ui的测试都是黑盒的测试,通过自己的测试用例想去踩中出问题的方法是非常的困难的。只能通过基于ui的表现去定位大概的问题,有可能执行千万条数用例,也找不出bug。
金字塔的理论很简单,底层的东西是最重要的,一个工程的核心是代码,代码是开发输出的,所以一个项目的质量大部分是取决于开发。qa只是负责辅助开发,当项目的质量有所偏离,尽量的提高产品的质量。
上面是基于理想的公司情况,一般的公司的程序都是倒着来的。嘻嘻,幸运一些的可以遇见。ps:我们公司都是大牛们,当然ok,大牛们果断的支持我们QA的工作 让我们的项目更加的健壮 嘻嘻。
2.自动化的使用场景
自动化测试的使用场景(站在用户的角度上去验收项目,路径主要覆盖大部分用户经常使用的功能)洋文的方法就叫:UAT (user acceptance test)用户验收测试
那么问题来了,那么自动化究竟要做什么呢?
快速的回归重要的主干功能(优点 节省人力和时间)但是,这样看构建自动化的框架和角度,有些自动化就事与愿纬。
3.自动化开始前的准备
摸索的过程是痛苦的,从ide-selenium1-selenium2 monkey monkeyrunnner robotium当初整的头的晕了 。不过现在回头看一下也是一种知识的积累,虽然深度不深,但是好歹也拓宽了一定的广度。既然说到这里就简单的介绍一下这几个工具。
ide 是firefox自带的一个录制工具,我感觉功能还是挺强大的。但是还是喜欢手工写,可以用来辅助,用处不大。
selenium1 已过时
selenium2 =selenium1+webDriver 可以驱动firefox chrome ie 三个浏览器。更加的本地化操作,可以根据许多本地的函数库执行更多的操作,可以避免许多ie的坑。现在主流的web ui 自动化的工具,据说还可以测手机 万能的东西。
准备构建自动化之前一定要明白已下几点:
1.自动化的构建不是越复杂越好,而是越简单越好
2.自动化的case不是越多越好,而是越贴近用户的使用习惯越好
3.自动化测试不是为了单个的测试偷懒,而是为了整个团队,自动化的测试可以支持高速的迭代,在迭代的过程中给予开发极大的支持。(当然自己也可以偷懒)
4.自动化的构建一定要主要代码的耦合性,如果重用的代码一定要抽出来单独成一个方法。如果id或者一个其它的方法因为需求的变更改变了,就不需要改千万个id喽。切记哦,不这样做,自动化比手工更累。
5.自动化的构建一定要可以持续的集成,如果不可以持续的集成,那就扯淡了,更不上迭代的步伐。持续集成的环境后续会继续的跟进
6.设置好断言和数据的驱动,没有断言就没有意义,没有数据驱动一些笛卡尔集的东西就没法测试了。
**最重要的一点技术的才是第一生产力,也就是码代码的能力。这点一定要提高,因为程序的基础是语言。
ps:不是靠自动化来进行测试,而是靠自动化去推动整个项目迭代的速度,确保在迭代的过程中能够快速的回归。(如果版本的ui 和 数据变动挺大 人力不够 ,那就大发了,哈哈。还是手工的点点点)
简单的开始,在这些基础上就可以开始学习这么去做了,是不是有一点清楚了?嘻嘻
monkey
装adb就可以了,adb devices 接入手机,找到package,就可以执行monkey的命令了。monkey产生的是随机流,随机流也可以控制输出的比例和次数,主要是学学会分析crash的log。(ps:后续自己还在跟进)
monkeyrunner 只能针对一款相同的手机搞自动化 呢吗 屏幕会变
robotium 手机自动化 目前只写过m站的自动化,写的思路和selenium一样,基于solo类和by类。页面元素比web的好找,直接chrome xpath 一找一个准。
简单的写了一点自己的听到和学到的东西,可以开始学习了。嘻嘻,买书买资料,自个儿投资去吧!