随着人工智能的到来,现在自动化测试已经成为了一种热门的行业,说句实在话,也就是看在工资的面子上,总体来说工资还算理想,在照顾老婆孩子生活方面有盼头,所以即使要学的东西再多,再难,也有动力去冲,对,就是这么有责任心。
千言万语从哪里说起呢?
首先要说的就是自动化测试的学习步骤
1. 做好手工测试(了解各种测试的知识)
2. 学习编程语言
3. 学习Web基础
4. 学习自动化测试工具
5. 学习自动化测试框架
6. 实现自动化测试用例
7. 开发自动化测试工具
8. 开发自动化测试框架
其次要知道手工测试与自动化测试之间的区别,学习要跟上队伍哟~~
1、手工测试与自动化测试并不是对立的
很多人会误以为有了自动化测试就不需要手工测试了,手工测试做的好也用不到自动化测试,其实不然。二者并不是对立的,什么手段效率高,就用什么手段。自动化测试发展了这么多年,也没有把手工测试给取代。
2、手工测试用例特点
1)较好的异常处理能力,能通过人为的逻辑判断校验当前步骤是否正确实现;
2)人工执行用例具有一定步骤跳跃性;
3)人工测试步步跟踪,能够细致定位问题;
4)主要用来发现功能缺陷;
3、自动化测试的特点
执行的对象是脚本,能通过人为的逻辑判断效验当前的步骤是否正确实现,用例步骤之间关联性强,不像手工测试用例那么跳跃。另外也是用来保证产品主体功能正确和完整,让测试人员从繁重的工作中解脱出来。
可以更好的利用资源。在夜间执行自动测试用例。测试具有移植性和可重复性。好的测试脚本往往具有较好的平台移植性。可以更快地将软件推向市场。因为自动测试节省了大量的时间。但是自动化测试要求的先期投入比较大,而且要求人员必须经过严格的培训。
4、自动化测试与手工测试的关系
自动化测试不能完全替代手工测试,自动化测试的目的仅仅在于让测试人员从繁琐重复的测试流程中解脱出来,把更多的时间和精力放在更有价值的测试中,例如探索性测试。
一、自动化工具:
Web自动化测试工具:Selenium、QTP。
App自动化测试工具:Appium、Uiautomator、monkeyrunner、网易atx、基于图像识别对比的测试sikuli。
接口自动化:rest-assured、requests、httprunner等。
二、自动化测试类型
测试静态内容
静态内容测试是最简单的测试,用于验证静态的、不变的ui元素的存在性,例如:
1)每个页面都有预期的页面标题,这可以用来验证链接指向一个预期页面;
2)应用程序的主页包含一个应该在页面顶部的图片;
3)网站的每个页面是否包含一个页脚区域来显示公司的联系方式、隐私政策以及商标信息等;
4)每一页的标题文本都使用
标签吗?每个页面是否都有正确的头部文本?你可能需要(也可能不需要)对页面内容进行自动化测试。如果你的网页是不易受到影响的,则手工对内容进行测试就足够了。假设你的应用文件的位置移动了,则内容测是就非常有价值。
测试链接
web站点的一个常见错误为失效的链接或链接指向无效页。链接测试涉及各个链接和验证预期的页面是否存在。如果静态链接不经常更改,则手动测试就足够了。但是,如果你的网页设计师经常修改链接或者文件不时被重定向,则链接测试应该实现自动化。
功能测试
在你的应用程序中,需要测试应用的特定功能,需要一些类型的用户输入,并返回某种类型的结果,通常一个功能测试涉及多个页面,一个基于表单的输入页面,其中包含若干输入字段,提交和取消操作,以及一个或多个响应页面。用户输入可以通过文本输入域、复选框、下拉列表,或任何其他浏览器所支持输入。
功能测试通常是需要自动化测试的最复杂的测试类型,但通常也是最重要的。典型的测试是登陆,注册网站账户用户账户操作、账户设置变化、复杂的数据检索操作等等。功能测试通常对应着你的应用程序的描述应用特性或设计的使用场景。
测试动态元素
通常网页元素都有唯一的标识符,用于唯一的定位该网页的元素。通常情况下,唯一标识符用html标记的id属性或name属性来实现。
Ajax的测试
Ajax是一种支持以及动态改变用户界面元素的技术。页面元素可以动态更改,但不需要浏览器重新载入页面,如动画,RSS源、其他实时数据更新等。
Ajax有无数更新网页上元素的放大,最简单的方式是在Ajax驱动的应用程序中,数据可以从应用服务器检索,然后显示在页面上,而不需要重新加载整个页面,只有一小部分的页面,或者只有元素本身重新被加载。
三、自动化测试的12个认识误区
1、自动化的软件测试与手工的软件测试过程一样
自动化测试所需要的技巧与手工测试所需要的技巧是不一样的。
通常,你的项目经理会被那些测试工具销售们迷惑,认为自动化的软件测试就是简单地按一个录制的按钮,产生测试脚本。而事实上并没有那么简单。
区分自动化测试所需要的技巧与手工测试所需要的技巧是非常重要的。最重要的是,自动化测试工程师需要掌握软件开发技巧,没有接受任何培训的手工测试人员,或者没有编程背景的手工测试人员,在实施自动化测试时会碰到很多困难。
2、自动化测试一定会马上大量减少测试人员数量
自动化测试不会马上大量减少测试人员数量。因为开展自动化测试初期需要投入一定的人力进行自动化测试脚本开发,并逐渐将自动化测试脚本用于日常的测试中,逐步减少手工测试人员从事重复劳动的时间和人数。为了缩短自动化测试脚本的开发时间,可以考虑将自动化测试脚本的开发工作借助外包的力量来早日实现大规模的自动化测试。
3、测试自动化就是录制和回放
仅仅录制得到的不是有效的自动化脚本。
很多项目经理仍然把测试自动化等同于使用录制回放工具。而事实上,录制得到的脚本通常是不可重用的脚本,脚本中充满了硬编码的值,这些值应该被参数化,否则脚本仅仅适用于一个测试情况,脚本还应该加入条件判断、循环等结构,以便增强测试脚本的灵活性。
4、自动化测试找不到bug
自动化测试不直接找bug,而是通过解放有经验的测试工程师的生产力,让其从重复的回归测试中解放出来,从事新的测试方法和测试手段的研究。通过自动化测试解放出测试人员的时间和精力来间接地找到更多、更深层次的新bug,将产品质量再提高一个档次。
5、自动化测试工具是“万能”的
很多人一听到自动化测试,就认为自动化测试工具可以完成一切测试工作,从测试计划到测试执行再到测试结果分析,都不需要任何人工干预。显然,这是一种理想状态,现实中还没有哪个测试工具有这个能力,并且将来也不会有。在现实中有关的测试设计、测试案例,以及一些关键的测试任务还是需要人工参与的,即自动化测试是对手工测试的辅助和补充,它永远也不可能完全取代手工测试。
6、点赞的朋友都月薪10W了
进来的都是热爱测试的朋友,抬抬各位宝贵的金手反手就是一赞。
7、自动化测试工具容易使用
对于这一点,很多测试工程师有同样的错误观点,认为测试工具可以简单地通过捕获(录制)客户端操作生成脚本,且脚本不加编辑就可用于回放使用。事实上,自动化测试不是那么简单的,捕获的操作是否正确,以及脚本编辑是否合理都会影响测试结果。因此,自动化测试需要更多的技能,也需要更多的培训。
8、自动化能提供百分百的测试覆盖率
并非所有内容都可以被自动化地测试到。不可能覆盖所有可能的输入,所有可能的组合和路径。
自动化测试可以增加测试的广度和深度,但是仍然无法达到100%的测试覆盖率,因为没有足够的时间或资源。
9、忘记了测试的最终目标:找到BUG
在自动化测试中,同样要注意把边界值分析、等价类分析、基于风险的测试方法、挑选最合适的测试用例等技术应用起来。
通常在自动化测试过程中,我们都忙着搭建自动化框架和编写测试脚本,但是我们往往忘记了测试的本来目的:找bug。
项目经理可能雇佣了最好的自动化开发人员来搭建框架,使用了最新最好的自动化开发技术,创建了成千上万的自动化测试脚本。但是如果BUG仍然被遗漏了,那些本该被自动化测试脚本捕捉到的BUG,结果没有被捕捉到,那么你的自动化测试仍然会被认为是失败的。
10、所有测试用例都可以自动化
不是所有的测试用例和测试步骤都可以转化为自动化测试。在自动化测试投入较多的行业,领先企业的自动化测试率有的能达到80%左右,但仍有20%左右的测试用例需要手工来进行。在国外,通常从开发第一版测试用例时,就同步进行自动化测试脚本的开发,所以自动化测试率普遍比中国企业高。
11、只有性能测试才需要自动化
自动化测试不光进行性能测试,更被大量应用于功能测试验证,在国外超过半数的自动化测试脚本都是用于功能验证测试的。
12、测试工具可适用于所有的测试
每种自动化测试工具都有它的应用范围和可用对象,所以不能认为一种自动化测试工具能够满足所有测试的需求。针对不同的测试目的和测试对象,应该选择合适的测试工具来对它进行测试。在很多情况下,需要利用多种测试工具或者开发自动化测试框架才能达到自动化测试的目的。商业和开源的测试工具能够用来进行自动化测试,但是我们需要根据自身产品的特点,开发自动化测试框架,在框架中提供常用的测试用例,加快测试速度,达到测试用例复用,这是今后测试自动化发展的道路。
13、自动化测试能发现大量新缺陷
发现更多的新缺陷应该是手工测试的主要目的,不能期望自动化测试去发现更多新缺陷。事实上,自动化测试主要用于发现原来的缺陷。自动化测试用于回归测试,而大量的新业务测试更多地还是依赖手工测试。
以上描述的就是本文全部内容,提些小建议,大家趁着年轻多吃些学习上的苦,让自己变得自律起来,以后才能成为精神“首富”,有人问精神”首富”值钱吗?小编偷偷的咬了一口,顺便告诉大家,精神“首富”镀金的,纯金的老值钱了,别人靠年薪吃饭,你是靠身价吃饭,想想就饱了。