自动化测试的类型​以及自动化测试的几个误区!

2023-09-18 14:32:00

有三种主要类型的自动化测试。

一、自动化单元测试​编辑

自动化单元测试在代码级别上进行测试。bug是在开发人 员编写的函数、方法和例程中识别出来的。

一些公司要求开发人员自己进行单元测试,而有些公司则雇用专门的测试自动化资源。这些资源可以访问源代码,它们编写单元测试来破坏生产代码。由于单元测试的存在,每当代码编译时,所有单元测试都会运行,并告诉我们是否所有功能都正常工作。如果任何单元测试失败,这意味着现在生产代码中存在一个bug。

市场上最流行的一些工具是NUnit和联合股。微软还提供了自己的单元测试框架,称为MSTest。通过这些工具的网站,他们将提供如何编写单元测试的示例和教程。

二、自动化Web服务/API测试

应用程序编程接口(API)使软件能够与其他软件应用程序进行对话。就像任何其他软件一样,API也需要进行测试。在这种测试中,桂通常不涉及。

我们在这里测试的通常是功能、遵从性和安全性问题。在Web应用程序中,我们可以测试应用程序的请求和响应是否安全和加密。

这是我们可以使用API测试的示例之一。最流行的api测试工具是SOAPUI它既有免费版本也有付费版本。还有其他工具,您可以根据需要使用这些工具。

三、自动GUI测试​编辑

这种类型的自动化测试是最严格的自动化形式,因为它涉及应用程序的用户界面测试。

这很难,因为GUI很容易改变。但是,这种类型的测试也最接近于用户对我们的应用程序所做的操作。由于用户将使用鼠标和键盘,自动GUI测试也通过使用鼠标和键盘来单击或写入用户界面上的对象来模仿相同的行为。因此,我们可以尽早发现bug,并且可以在许多场景中使用,比如回归测试或填充表单,这需要花费太多的时间。

最流行的GUI测试工具是QTP(现称UFT), 硒, 测试完成和Microsoft编码UI(这是VisualStudio终极版和高级版的一部分)。

四、自动化测试的几个误区

多年来,我听到了一些关于测试自动化的误解。我想我也应该在这篇文章中澄清这些问题。

误解#1. 自动化将取代手动测试人员。

测试自动化是为了帮助测试人员以更快、更可靠的方式进行测试。它永远无法取代人类。

把测试自动化想象成一辆汽车。如果你走路,你大约要花20分钟才能到达你的家。但是如果你用一辆车,两分钟内你就会到达。汽车的司机仍然是你,一个人,但是.汽车帮助人类更快地实现他/她的目标。而且,你的大部分精力都被节省了,因为你没有走路。所以你可以利用这些能量来做更重要的事情。

自动化测试也是如此。您可以使用它快速测试大部分重复的、冗长的、乏味的测试,并节省您的时间和精力来集中精力和测试新的和重要的功能。

如詹姆斯·巴赫一句精彩的话说:

“工具是不会测试的。只有人来测试。工具只执行“帮助”人们测试的操作。

工具可以单击对象。但是点击的位置总是由手动测试人员来告诉的。我想你现在明白我的意思了。

误解2. 阳光下的一切都可以自动实现。

如果您尝试100%地自动化您的测试用例,也许您将能够这样做,但是如果您可以这样做,那么我们的第一点就会变成错误。因为如果一切都是自动化的,手动测试人员将做什么?

困惑?对吗?

实际上,关键是,您不能100%地自动化您的测试用例。因为我们,作为测试人员,相信没有一个应用程序可以100%测试。总会有一些我们会错过的情景。只有当客户端使用您的应用程序时,才会出现bug。

因此,如果应用程序无法进行100%的测试,如何保证100%的自动化?

而且,您能够自动化所有现有测试用例的可能性非常小。总是有一些场景很难自动化,而且更容易手工完成。

例如一个用户输入数据,第二个用户批准数据,第三个用户查看数据,第四个用户禁止查看数据。这些场景可以自动化,但它们需要大量的时间和精力。所以如果你只需要手动的话就更容易了。

请记住,我们使用汽车的距离,但可能会有很长的信号在路上,会有燃料消耗,会有停车空间的问题,停车收费和更多的头痛。在某些情况下,我们只需步行到达目的地:).

因此,您不应该尝试自动化一切。只需要自动化那些重要的场景,并且需要花费大量的时间来手动完成。

误解#3. 自动化只涉及录制和播放。

请不要生活在幻想的世界里。这种幻想实际上是由来自不同自动化工具供应商的虚假广告造成的。他们说,您只需记录和播放您的步骤,您的测试用例将被自动化。这是个大谎言!

自动化就是一切,除了录音和回放。纯自动化工程师通常根本不使用录音和回放功能。录制和回放通常用于了解工具是如何为我们的步骤生成脚本的。

一旦我们了解了脚本,我们总是使用脚本来创建自动化的测试。记住,如果你想要进行测试自动化,你必须知道编程。. 另一方面,如果你不懂编程的话,就不要胆大妄为。因为和任何其他任务一样,编程也可以通过实践和奉献来学习。

我认识一些人,他们甚至不是计算机科学背景的人,但他们学会编程,现在他们是了不起的自动化工程师。在微软,他们雇佣会编程的测试人员。他们被称为SDET(测试软件开发工程师)。职务描述的第一行说:“sdet编写了许多代码….“

请学习编程,不要逃避它。它会让你惊人的测试器

一个组织要实施自动化测试,首先就要对自动化测试有一个正确的理解。我们通常对自动化测试,都会有一些理解误区,比如:

误解#4. 所有测试用例都可以自动化

首先讲所有的测试用例都自动化本身就是不必要的,因为自动化测试要开发测试脚本,而且执行自动化测试,也是需要时间的,把所有测试用例全部自动化,未必就是性价比最高的。

另一方面自动化测试,主要的是用来减少回归测试的工作量,而回归测试,最重要的是避免最基本的功能和最常用的功能受到影响,从这个理论上来说,我们会把最基本的功能和最常用的功能的测试用例进行自动化,这个就足够了。

现在世界上自动化测试率,最高的也只是达到80%左右。

误解#5. 自动化测试找不到bug

自动化测试,主要是避免由于代码的修改导致原有的正确的功能出现bug,而不是去挖掘更多更深层次的bug。更多更深层次的bug,是把测试人员解放出来后,由测试人员通过探索性测试来发现的。

误解#6. 自动化测试一定会马上大量减少测试人员数量

自动化测试虽然会最终减少测试的工作量,但是他不会是立竿见影的,因为你要实现自动化测试,首先就要进行自动化测试脚本的开发和自动化测试环境的搭建,这需要投入大量的人员和精力。自动化测试能够多长时间见到效果,要取决于这个过程的长短。

误解#7. 自动化测试能代替手工测试

自动化测试,只适用于回归测试,对于新功能测试,还是要依赖于测试人员人员设计测试用例,手动执行。

误解#8. 只有性能测试才需要自动化

自动化测试除了应用于性能测试外,还被大量应用于功能测试。

国外有超过半数的自动化测试脚本,都是用于功能验证测试的。

误解#9. 自动化测试太难上手

自动化测试,已经推行了很长时间,在网上可以找到很多自动化测试的框架、工具、教程。如果你真想实施自动化测试,只要安排专业的测试人员上手学习,自动化测试会很容易实现的。

心动不如行动。

最后,自动化测试既没有那么神奇——能够解决测试的所有问题,也不会非常高精尖——那么难以上手,正确认识自动化测试,脚踏实地地实施自动化测试,你就能享受到自动化测试给你带来的收益。

这正是:

谈虎变色不足取,当成银弹不可行

正确认识自动化,脚踏实地去实施

今天的分享就到此结束了,大家还有什么不懂的可以评论区下提问哈,如果我的文章对你有所帮助的话,可以点赞三联支持一下哈

更多推荐

7-1_MSPI_NANDFLASH SDK例程详解

1.代码示例路径PRJ_M66_4.3.3\boards\apollo4l_blue_eb\examples\interfaces\mspi_ds35x1ga_quad_example\src\mspi_ds35x1ga_quad_example.c本文中主要讲解初始化流程内容2.MSPI通信示意图SCK(Serial

JavaScript系列从入门到精通系列第四篇:JavaScript基本语法(二)

文章目录前言一:Number类型1:字符串与Number类型2:检查数据类型3:Number最大值4:Number四则运算精确性二:布尔值1:布尔值数量2:布尔值类型查看三:Null和Undefined1:Null类型2:null值意义3:Undefined前言varstr="123";varstr="456";这么些

第七章 查找 五、二叉排序树

目录一、定义二、代码实现1、查找2、插入3、构造4、删除三、查找效率分析1、查找成功ASL2、查找失败ASL四、总结一、定义二叉排序树(BinarySearchTree,BST)是一种特殊的二叉树,它满足以下条件:若左子树不为空,则左子树上所有节点的值(权值)均小于它的根节点的值;若右子树不为空,则右子树上所有节点的值

《Docker与Kubernetes容器运维实战》简介

#好书推荐##好书奇遇季#《Docker与Kubernetes容器运维实战》已经出版。本书帮助读者系统掌握Docker与K8s运维技能。本书内容本书分两部分系统介绍Docker与Kubernetes的运维技术。(1)Docker部分包括:全面认识Docker、初步体验Docker、Docker基本管理、Docker仓库

springboot

回顾spring轻量级的:指的是spring核心功能的jar包不大。非侵入式的:业务代码不需要继承或实现spring中任何的类或接口IOC:控制反转(InverseofControl),以前项目都是在哪儿用到对象,在哪儿new,把生成对象的权利反转给spring框架,可以对对象进行功能的增强(让spring把对象管理起

分类问题和回归问题的区别是什么?

分类问题和回归问题是机器学习和统计分析中两种不同类型的问题,它们的主要区别在于其目标和处理方式:问题类型:分类问题(Classification):在分类问题中,目标是将数据分为不同的类别或标签。这意味着模型的输出是一个离散值,通常代表预定义的类别。例如,垃圾邮件检测是一个分类问题,它需要将电子邮件分为两个类别:垃圾邮

Python爬虫深度优化:Scrapy库的高级使用和调优

在我们前面的文章中,我们探索了如何使用Scrapy库创建一个基础的爬虫,了解了如何使用选择器和Item提取数据,以及如何使用Pipelines处理数据。在本篇高级教程中,我们将深入探讨如何优化和调整Scrapy爬虫的性能,以及如何处理更复杂的抓取任务,如登录,处理Cookies和会话,以及避免爬虫被网站识别和封锁。一、

探索人工智能 | 计算机视觉 让计算机打开新灵之窗

前言计算机视觉是一门研究如何使机器“看”的科学,更进一步的说,就是指用摄影机和电脑代替人眼对目标进行识别、跟踪和测量等机器视觉,并进一步做图形处理,使电脑处理成为更适合人眼观察或传送给仪器检测的图像。文章目录前言主题原理常用算法CNNSVM应用自动驾驶医学影像分析无人机和机器人小结面临挑战总结主题计算机视觉既是工程领域

OpenCV实战(27)——追踪视频中的特征点

OpenCV实战(27)——追踪视频中的特征点0.前言1.追踪视频中的特征点2.特征点追踪原理3.完整代码小结系列链接0.前言我们已经知道可以通过一些最独特的点来分析图像,对于图像序列同样如此,其中一些特征点的运动可用于了解捕获场景的不同元素如何移动。在本节中,我们将学习如何在特征点逐帧移动时通过跟踪特征点来执行序列的

Hadoop生态圈中的数据同步工具SQOOP

Hadoop生态圈中的数据同步工具SQOOP一、sqoop的概念二、sqoop的核心功能1、数据导入import2、数据导出export三、sqoop的底层实现四、sqoop的安装和部署五、sqoop的基本操作1、sqoop查看RDBMS中有哪些数据库2、sqoop查看某一个数据库下有哪些数据表3、通过sqoop执行s

Oracle,高斯创建自增序列

某些时候,需要获取到一个自增值然后点击左下Apply也可以通过SQL语句执行dual在Oracle中是张虚拟表,通常用于执行这样的查询Oracle中查询语句:select序列名.nextvalfromdual在高斯数据库中:查询是selectmy_sequence.nextval不需要加formxxx例如:Oracle

热文推荐