目录
前言
今天笔者发现了一个学习自动化测试的顶级文档,现在呢就来给大家推荐一下。
一、什么是自动化测试?
自动化测试,顾名思义,自动完成测试工作。通过一些自动化测试工具或自己造轮子实现模拟之前人工点点/写写的工作并验证其结果完成整个测试过程,这样的测试过程,便是自动化测试。自动化测试,看上去很美,感觉好像是第一次工业革命,它开创了以机器代替手工劳动的时代,实则不然.因为每一个自动化测试的case都是从手工测试做起的,如果没有手工测试的基础,是没法进行自动化测试。
二、为什么要进行自动化测试
为什么进行自动化测试,答案要从自动测试的收益和人肉测试的成本说起:
a. 自动化测试节约成本(根据项目) 毕竟自动化测试确实解放了一批人力(人力成本才是IT公司最大的成本),可以让机器没日没夜的执行一些重复劳动。
b.有些测试项目手工很难实现(手工成本较高) 比如12306的压力测试、负载测试,同时找那么多人去测试不现实可以通过机器去模拟。
c.项目质量流程需要,比如版本管理需要build verify,以保证check in的code不会影响版本库。类似于smoke test。
自动化测试的优缺点优点
优点
避免测试人员因重复劳动产生厌倦, 提高测试效率 、保证每次测试的一致性和可重复性 、更好的利用无人值守时间 、进行一些手工无法进行的测试、维护成本相对比较高。
缺点
系统开发时间不一定能缩短
没有手工测试发现缺陷多
什么样的项目适合做自动化测试(dev手一抖,auto忙一宿)
有以下几个特点的项目比较适合自动化测试:
1. 项目变动少
2. 周期长
3. 项目资源足够(自动化不是一个人完成的,需要一帮人长期维护)
举例说明:
互联网项目,一周内要上线,你不上线别人上线人家就不用你的,项目周期短,变动快,你自动化还没做好,项目说不定就下线了。比如某宝双12活动相关项目,一周之内就下线了。
适合做自动化测试的项目,比如某宝客户端,每个release,大部分功能都不变,并且3-5年内项目不会下线,这个就比较适合自动化.
三、什么样的人适合做自动化测试?
这个问题是写给想要做自动化测试的人,或许你以为软件测试的门槛很低,低到任何人都可以做,随便点点就可以了,这个行业太low了,所以你想做自动化测试,提升自己的逼格,我想说手工测试并不low,如果让一个什么都不懂,一点业务基础都没有的人去做测试,能测出来问题吗?不要忽略你的业务知识储备. 你的业务知识储备的积累能让你成为不可替代的行业专家,而做自动化的码农会因为一个时代的更迭被小鲜肉替代。 扯了这么多,究竟什么样的人能做自动化测试?
我的理解分以下几点:
a. 拥有代码能力 掌握一门开发语言,java、Python、ruby、c#
b. 熟悉被测系统 比如你是web测试,你就得懂js、css、html、xpath 你是移动端测试,你就得具备Android 开发基础和iOS开发基础,会debug app 你是 C/S测试你就要很熟悉TCP、IP协议
c. 掌握一套自动化测试框架(工具) 比如 selenium/appium nunit/testng robot framework/cucumber
d. 善于学习,达到知其然知其所以然 IT行业变化太快,每隔一段时间就会出现一些新兴的东西,也会出现原来很火的东西逐渐没落,谁也无法预测。 曾经诺基亚还是手机霸主,靠塞班一统天下,然而不思进取,落得个卖身求生存. 曾经qtp很火,曾经selenium也很火,现在appium也很火 软件行业从桌面软件到web端,又从web端迁移到移动端,谁也不知道下一个是什么。
而我们作为软件行业的从业者,不能因为那些很火的东西不火了而让自己没落,一个人最为核心的能力就是学习能力,如果你善于学习,你就不必担心这些变迁,因为你可以毫无压力的迁移,selenium的原理你掌握了,学习appium简直小菜一碟,因为appium使用的是selenium WebDriver protocol 。
如果你能做到知其然知其所以然,你也可以造轮子,改造appium,毕竟现在很多功能需要完善。
四、总结
鉴于篇幅有限,这个文档的内容不能完全的放上来,有需要完整文档的可以私信关键字“资料”免费领取。