学软件测试一定要学自动化么?功能测试和自动化测试有什么区别?
Posted 一始如衷
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了学软件测试一定要学自动化么?功能测试和自动化测试有什么区别?相关的知识,希望对你有一定的参考价值。
本节内容,将从测试的底层本质出发,让大家真正的理解测试和自动化测试之间的区别。想了解自动化测试概念,那我们一定要先认识一下 软件测试到底是做什么的?
大家都知道一个游戏叫"大家来找茬"。我们看下图,你可以尝试着从找一下左右两张图的不同之处:
其实在我们找两幅图不同之处的过程中,就是进行了一个测试的工作。左边是用户的需求,右边是开发做出来的样子。那软件测试,就是从开发做出来的样子找出与客户需求不一样的地方,一句话概括:软件测试就是大家来找茬。当然此茬非彼茬。软件测试其实就是我们在找软件上面的 bug,确保软件产品质量过关!
软件测试,是指在运行软件的过程当中去发现软件当中的问题,提高软件质量,保证软件的品质。
理解了什么是软件测试之后。我们就来讲一讲自动化测试了!
首先,先说自动化。自动化的话是指通过系统软件、代码框架等方式,在没有人或者是较少人的直接参与下,按照人的要求经过自动检测、信息处理、分析判断、操纵控制等手段实现预期的目标过程
其实现在传统的制造行业都已经偏向于自动化了。我们可以看到汽车的制造过程全程都是机器完成的,很多环节只要人工设定好了对应的程序,机器就能按照程序的指令,按顺序完成指定的操作,这种行为就是一种自动化。
那什么又是自动化测试呢?
我们可以用传统的自动化来理解这个概念。所谓的自动化测试,就是通过我们自动化测试工程师研发出来的自动化测试软件和测试框架,将我们的软件应用放置于这个测试框架中,再设定好对应的测试项目以及预期的测试数值,由程序执行测试自动化执行全部的测试流程,再将结果与预期结果进行比对,就能检测出软件应用存在的BUG了。这个过程中完全不用人工的点点点去测试,能更大程度的提升测试效率和测试结果的准确性。
通过上面的了解我们可以知道,一切通过工具、程序的方式来代替或者是辅助手工测试的行为都可以看作是自动化测试。其主要的手段就是模拟手工测试,通过组织编写自动化脚本执行测试用例,解决工作当中的大量问题。自动化测试,可以有效的提高我们的工作效率。
那接下来,再说一说为什么现在的互联网企业都需要进行自动化测试?它的意义到底是什么?
软件测试工程师这个职业,就像工厂里的质检员。都是通过手工和感官去检查产品的质量。慢慢的随着产品的生产规模扩大和速度的加快,这种纯手工的测试和质检就暴露出一些问题了:
第一个能力成本的增加。因为需要更多的质检员和测试工程师
第二个人为错误率的上升。因为工作量的增加和持续时间的增加,导致人员的疲惫或者是惯性思维,这种情况下漏测和误测的概率大大增加
第三个则是效率的瓶颈。因为生产速度远远超过手工质检和测试的速度,而自动化测试也就像工厂里的自动化质检一般在这个时候应运而生了
那么接下来,咱们在结合实际的工作经验去分析什么类型的项目适合做自动化测试?什么类型的项目不适合做自动化测试?
1、项目需求稳定性
首先我们当我们拿到公司的项目之时,你要分析项目的第一个问题:需求稳不稳定、会不会频繁变更。如果项目的设计需求不稳定,频繁变更。对应的你的自动化的脚本也是需要不断的去维护和修改的。所以也就失去了我们自动化的一个意义。因为自动化的意义就是提高工作效率节省时间的
2、项目的周期
第二个就是要分析一下这个项目的周期时长。如果周期时长短,那么可能没有足够的时间让我们进行自动化测试。因为我们自动化测试需要搭建框架,还需要写脚本,这需要一定时间的。如果周期太短的项目,可能你连宽架都没带好就已经结束了。所以时间太短的项目不适合,一定要周期稍微较长的项目才适合
3、项目迭代情况
第三个就是分析项目迭代的频率是否频繁。如果经常迭代,那么我们是需要不断的进行回归测试的。也就是说每一次新的版本,我们都需要测一下之前我们测过的用例看一下有没有新的缺陷。这个时候如果纯靠,人为手工点点点去测试的话。那可能会花费大量的人力和时间做一些重复性的工作。因为之前的很多地方你都测过了,后面的测试,只需要第一次写好脚本以后,我们稍微的做一些调整。每一次迭代,我们把之前写好的脚本去运行一遍就可以了
然后就能发现迭代的程序存在的一些问题,当然如果项目存在功能的增加、需求的增加,那么对应的我们就要完善自动化框架对这部分新生功能的测试需求了。
所以适合做自动化测试的项目,总结下来就是以下三点:
需求稳定不会频繁变更
项目周期时长比较长,足够我们进行自动化测试
项目的迭代比较频繁
当然在实际工作情景中,什么情况下该做自动化测试,大家可以结合自己的真实情况去分析
这个项目到底要不要进行自动化测试、做自动化测试带来的"收益"与传统手工测试相比到底有多少优势?
最后:【可能给予你助力的视频教程】
这些资料,对于想从功能测试进阶到自动化测试的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。希望对大家有所帮助,需要的小伙伴点击下方插件进群免费领取:
以上是关于学软件测试一定要学自动化么?功能测试和自动化测试有什么区别?的主要内容,如果未能解决你的问题,请参考以下文章
学JavaWeb的有必要学PythonWeb么?目前市场开发的python更多是测试和自动化岗位吧?