一、首先我们要了解我门做软件测试的原因,为什么要做软件测试

1、软件产品的监视和测量

对软件产品的特性进行监视和测量,主要依据软件需求规格说明书,验证产品是否满足要求。所开发的软件产品是否可以交付,要预先设定质量指标,并进行测试,只有符合预先设定的指标,才可以交付。

2、对不符合要求的产品的识别和控制

对于软件测试中发现的软件缺陷,要认真记录它们的属性和处理措施,并进行跟踪,直至最终解决。在排除软件缺陷之后,要再次进行验证。

3、产品设计和开发的验证

通过设计测试用例对需求分析、软件设计、程序代码进行验证,确保程序代码与软件设计说明书的一致,以及软件设计说明书与需求规格说明书的一致。对于验证中发现的不合格现象,同样要认真记录和处理,并跟踪解决。解决之后,也要再次进行验证。

4、软件过程的监视和测量

从软件测试中可以获取大量关于软件过程及其结果的数据和信息,它们可用于判断这些过程的有效性,为软件过程的正常运行和持续改进提供决策依据。

二、为什么要做自动测试?好处是什么?

1、缩短测试周期

2、避免人为出错

说到自动化测试,与之对应的就是手工测试,所谓“人非圣贤,孰能无过”,传统的手工测试很大部分依赖于人,简单概括起来出错的可能性会有:

  • 用例执行方法出错

  • 输入数据出错

  • 用例执行步骤出错

  • 测试报告数据出错

  • 忘了执行某些用例

  • 忘了设置预置条件

  • 错误的理解被测系统的行为

通过实现自动化,可以避免出现这些错误。

3、测试信息存储

自动化测试主要通过自动化脚本实现,和传统的手工用例相比,脚本中可以记录测试点,测试拓扑图,测试设计思路等信息,是非常理想的测试信息存储处,即“脚本体现思路”。另外带来的好处就是新人接收测试时,可以快速掌握已测试点,因为可以通过运行了解测试。

4、轻易获取覆盖率

在较好的自动化框架下,测试执行完自动化脚本,可以轻易的获取到代码覆盖率,进而根据覆盖情况分析,进行测试用例补充。

5、其他

比如:自动生成清晰的测试报告,定时执行测试套,数据驱动测试的测试套重用等。这些是本人暂未体会到的,但和一个网友交流时获取的。

三、自动化软件测试的学习路线

(1)自动化测试的学习步骤;

(2)自动化测试需要掌握的技术能力;

(3)自动化测试的认识误区

首先要说的就是自动化测试的学习步骤

1. 做好手工测试(了解各种测试的知识)-> 2. 学习编程语言-> 3. 学习Web基础-> 4. 学习自动化测试工具 ->5. 学习自动化测试框架 -> 6. 实现自动化测试用例 -> 7. 开发自动化测试工具 ->8. 开发自动化测试框架

按照这个步骤来说,基本上到第7步,难度就比较大了,这个时候也可以称呼自己为“测试开发”。

下面说说第二个问题,做自动化测试需要掌握哪些技能。当初自己做的时候一直是基于Python去做的自动化,同时Python自动化也比java自动化更为容易上手一些,在这里我就按照Python自动化的思路去说一下如何学习自动化,解答完这个问题,文章的后半部分也会分享一下做自动化测试中容易出现的一些问题。老规矩,思维导图放在文末。

一.首先要学会一门语言,java或者Python,这里针对Python去说。如果要能够满足自动化测试的需求,不要求Python的能力上来就达到精通的水平,但是最起码的使用是要有的,然后在后期在逐步根据测试工具进行进阶。

二、需要掌握前端的一些知识,无论学习语言还是前端知识,都是为了接下来的脚本和框架做铺垫。

三、数据库的重要性不言而喻,MySQL必须掌握

四.web端自动化测试工具selenium

五、接口测试自动化工具jmeter、postman等

六、移动端自动化测试appium

自动化测试的12个认识误区

1、自动化的软件测试与手工的软件测试过程一样

自动化测试所需要的技巧与手工测试所需要的技巧是不一样的。

通常,你的项目经理会被那些测试工具销售们迷惑,认为自动化的软件测试就是简单地按一个录制的按钮,产生测试脚本。而事实上并没有那么简单。

区分自动化测试所需要的技巧与手工测试所需要的技巧是非常重要的。最重要的是,自动化测试工程师需要掌握软件开发技巧,没有接受任何培训的手工测试人员,或者没有编程背景的手工测试人员,在实施自动化测试时会碰到很多困难。

2、自动化测试一定会马上大量减少测试人员数量

自动化测试不会马上大量减少测试人员数量。因为开展自动化测试初期需要投入一定的人力进行自动化测试脚本开发,并逐渐将自动化测试脚本用于日常的测试中,逐步减少手工测试人员从事重复劳动的时间和人数。为了缩短自动化测试脚本的开发时间,可以考虑将自动化测试脚本的开发工作借助外包的力量来早日实现大规模的自动化测试。

3、测试自动化就是录制和回放

仅仅录制得到的不是有效的自动化脚本。

很多项目经理仍然把测试自动化等同于使用录制回放工具。而事实上,录制得到的脚本通常是不可重用的脚本,脚本中充满了硬编码的值,这些值应该被参数化,否则脚本仅仅适用于一个测试情况,脚本还应该加入条件判断、循环等结构,以便增强测试脚本的灵活性。

4、自动化测试找不到bug

自动化测试不直接找bug,而是通过解放有经验的测试工程师的生产力,让其从重复的回归测试中解放出来,从事新的测试方法和测试手段的研究。通过自动化测试解放出测试人员的时间和精力来间接地找到更多、更深层次的新bug,将产品质量再提高一个档次。

5、自动化测试工具是“万能”的

很多人一听到自动化测试,就认为自动化测试工具可以完成一切测试工作,从测试计划到测试执行再到测试结果分析,都不需要任何人工干预。显然,这是一种理想状态,现实中还没有哪个测试工具有这个能力,并且将来也不会有。在现实中有关的测试设计、测试案例,以及一些关键的测试任务还是需要人工参与的,即自动化测试是对手工测试的辅助和补充,它永远也不可能完全取代手工测试。

6、自动化测试工具容易使用

对于这一点,很多测试工程师有同样的错误观点,认为测试工具可以简单地通过捕获(录制)客户端操作生成脚本,且脚本不加编辑就可用于回放使用。事实上,自动化测试不是那么简单的,捕获的操作是否正确,以及脚本编辑是否合理都会影响测试结果。因此,自动化测试需要更多的技能,也需要更多的培训。

7、自动化能提供百分百的测试覆盖率

并非所有内容都可以被自动化地测试到。不可能覆盖所有可能的输入,所有可能的组合和路径。

自动化测试可以增加测试的广度和深度,但是仍然无法达到100%的测试覆盖率,因为没有足够的时间或资源。

8、忘记了测试的最终目标:找到BUG

在自动化测试中,同样要注意把边界值分析、等价类分析、基于风险的测试方法、挑选最合适的测试用例等技术应用起来。

通常在自动化测试过程中,我们都忙着搭建自动化框架和编写测试脚本,但是我们往往忘记了测试的本来目的:找bug。

项目经理可能雇佣了最好的自动化开发人员来搭建框架,使用了最新最好的自动化开发技术,创建了成千上万的自动化测试脚本。但是如果BUG仍然被遗漏了,那些本该被自动化测试脚本捕捉到的BUG,结果没有被捕捉到,那么你的自动化测试仍然会被认为是失败的。

9、所有测试用例都可以自动化

不是所有的测试用例和测试步骤都可以转化为自动化测试。在自动化测试投入较多的行业,领先企业的自动化测试率有的能达到80%左右,但仍有20%左右的测试用例需要手工来进行。在国外,通常从开发第一版测试用例时,就同步进行自动化测试脚本的开发,所以自动化测试率普遍比中国企业高。

10、只有性能测试才需要自动化

自动化测试不光进行性能测试,更被大量应用于功能测试验证,在国外超过半数的自动化测试脚本都是用于功能验证测试的。

11、测试工具可适用于所有的测试

每种自动化测试工具都有它的应用范围和可用对象,所以不能认为一种自动化测试工具能够满足所有测试的需求。针对不同的测试目的和测试对象,应该选择合适的测试工具来对它进行测试。在很多情况下,需要利用多种测试工具或者开发自动化测试框架才能达到自动化测试的目的。商业和开源的测试工具能够用来进行自动化测试,但是我们需要根据自身产品的特点,开发自动化测试框架,在框架中提供常用的测试用例,加快测试速度,达到测试用例复用,这是今后测试自动化发展的道路。

12、自动化测试能发现大量新缺陷

发现更多的新缺陷应该是手工测试的主要目的,不能期望自动化测试去发现更多新缺陷。事实上,自动化测试主要用于发现原来的缺陷。自动化测试用于回归测试,而大量的新业务测试更多地还是依赖手工测试。

除了以上列举的常见误区外,还有其他不同的认识误区。自动化测试认识误区的产生,归根到底最本质的原因是由于对自动化测试不现实的期望,也就是期望过高造成的。

如果没有建立一个正确的软件测试自动化的观念,认为测试自动化可以完全代替手工测试,或者认为测试自动化可以发现大量新缺陷,或者不愿在初期投入比较大的开支等,则自动化测试一定会让我们大失所望。

相信通过这样的解答,明白了什么时候用手工测试,什么时候用自动化测试,并且知道了自动化测试的局限性,这样就不会对做自动化测试的意义产生质疑了。

关于Python技术储备

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

二、Python必备开发工具

三、精品Python学习书籍

当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。

四、Python视频合集

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

五、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

六、Python练习题

检查学习结果。

七、面试资料

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

这份完整版的Python全套学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

Python自动化软件测试,解放我们的双手相关推荐

  1. Python自动化软件测试,解放我们的双手!

    一.首先我们要了解我门做软件测试的原因,为什么要做软件测试 1.软件产品的监视和测量 对软件产品的特性进行监视和测量,主要依据软件需求规格说明书,验证产品是否满足要求.所开发的软件产品是否可以交付,要 ...

  2. 2020软件测试自学全套教程-基于python自动化软件测试-2020新版软件测试中级程序员学习路线

    不知不觉间,在软件测试行业野蛮的折腾了七年之久.七年之痒也即将过去,但我还是热爱着软件测试这一份工作,一路坚持,走到现在.经历过各种难题,有过迷茫,有过焦虑失眠.也踩过无数的坑,深知行业的不易.自从9 ...

  3. 2022软件测试自学全套教程-基于python自动化软件测试-2022新版软件测试中级程序员学习路线

    不知不觉间,在软件测试行业野蛮的折腾了七年之久.七年之痒也即将过去,但我还是热爱着软件测试这一份工作,一路坚持,走到现在.经历过各种难题,有过迷茫,有过焦虑失眠.也踩过无数的坑,深知行业的不易.自从9 ...

  4. Python自动化软件测试的发展前景及学习路线!

    前言: 很多刚入行的朋友可能会遇到的一个问题,也是很多想要入行的朋友所关心的一个问题,就是:这个行业前景怎么样,我入行的话会出现什么样的问题,遇到题主这样的问题怎么办?遇到瓶颈怎么破? 我先分析一下软 ...

  5. 2021最新Python自动化软件测试笔试题(含答案)

    1.TCP是互联网中的(1 A)协议,使用(2 C)次握手协议建立连接.当主动发出SYN连接请求后,等待对方回答(3 A).这种连接的方法可以防止(4 D),TCP使用的流量控制协议是(5 B). ( ...

  6. 2023备战金三银四,Python自动化软件测试面试宝典合集(二)

    马上就又到了程序员们躁动不安,蠢蠢欲动的季节~这不,金三银四已然到了家门口,元宵节一过后台就有不少人问我: 现在外边大厂面试都问啥 想去大厂又怕面试挂 面试应该怎么准备 测试开发前景如何 面试,一个程 ...

  7. 2023备战金三银四,Python自动化软件测试面试宝典合集(三)

    马上就又到了程序员们躁动不安,蠢蠢欲动的季节~这不,金三银四已然到了家门口,元宵节一过后台就有不少人问我: 现在外边大厂面试都问啥 想去大厂又怕面试挂 面试应该怎么准备 测试开发前景如何 面试,一个程 ...

  8. 【软件测试】Python自动化软件测试算是程序员吗?

    今天早上一觉醒来,突然萌生一个念头,[软件测试]软件测试算是程序员吗?左思右想,总感觉哪里不对.做了这么久的软件测试,还真没深究过这个问题. 基于,内事问百度的准则: 结果-- 我刚发出软件测试这四个 ...

  9. 2023备战金三银四,Python自动化软件测试面试宝典合集(十四)

    15.8 App 的性能测试 内容要点: 指标:cpu,内存,电量,流量,FPS, 怎么测? cpu,内存,流量 android studio cpu 不能超过 10-20% 普通业务要求在 10%左 ...

最新文章

  1. Plotly_绘图画图作图交互
  2. Linux必学的系统管理命令
  3. 数据库操作技术--Spring jdbcTemplate
  4. timerpickerview使用_详解iOS App中UIPickerView滚动选择栏的添加方法
  5. C语言实用算法系列之冒泡排序、sizeof与strlen的区别
  6. go 修改结构体方法_「GCTT 出品」Go 系列教程——26. 结构体取代类
  7. 命令创建mysql数据库_怎么在命令行创建一个mysql数据库
  8. 王道考研 计算机网络18 私有IP地址 网络地址转发NAT 路由器 路由表 路由转发
  9. Linux的实际操作:文件目录类的实用指令(cat more less)
  10. highscore软件_软件|标准物质PDF卡片查找HighScore
  11. pytorch 入门学习 MSE
  12. Lazyload 延迟加载效果(转载)
  13. OpenCvSharp4初识
  14. mapxtreme 论坛_会议纪要 | 取栓论坛 云端论剑 大梗死核心取栓专场 精华回顾
  15. 模型预测控制器(MPC)系列: 3.车辆横向MPC控制中的前馈设计
  16. 健康管理平台设计与实现
  17. Deep Voice 论文
  18. Autowired注解与Resource注解的区别
  19. 8段数码管C语言,单片机控制4位8段数码管显示温度的程序谁会啊
  20. 做数据分析的36款常用工具!!!初学者必备,纯干货!!

热门文章

  1. 华为交换机S5735S如何堆叠iStack
  2. vue elementUI 时间控件优化 选择起始时间不能在结束时间之后,结束时间不能在起始时间之前
  3. 网络编程:使用tcp协议实现服务器与客户端交互
  4. PTA换硬币【满分】
  5. 离散型随机变量及其分布
  6. 定义一个方法,使用随机的字母+数字生成一个6位数的密码
  7. phpredis中文手册《redis中文手册》php版
  8. 更改公众号名称对用户关注的影响
  9. SWF文件格式说明书--SWF文件头
  10. JAVASE之多线程初识