每个测试都可以通过自动化完成吗?

还是有什么不能通过自动化完成的事情?

评论

如果满意,请将一个答案标记为“正确”

@Tarun,肯定的,我只想再开放一点,因为这个话题有点宽,直到几个小时前才得到新的答案。

#1 楼

不能。
不能使所有事情自动化。

,不能使人们对软件的反应(情感)自动化。的。 (eh?eh?)仍然。)

那只需要2分钟。我确定我可以提出更多的建议。

评论


是的这很简单。

–布鲁斯
2011年5月4日下午6:36

喜欢简单和直接。

–埃德加·冈萨雷斯(Edgar Gonzalez)
2011年5月5日下午14:52

对了,最简单的答案就是最好的... + 1

– MichaelF
2011年5月5日19:34

只有在Google发明了一个服务器环境来模拟实时发送您的应用程序,烘焙客户原型以供用户研究他们的情绪反应,以及这些用户会想到所有事情(至少您的真实用户会想到的所有事情)之后,这个答案才是正确的。拜托Google,我们指望您!

–corsiKa♦
2011年5月5日19:44

@Marcus我倾向于不同意。仅仅因为可以测量某些东西并不意味着它可以自动化。准备好MRI扫描仪来测量测试人员的反应是不可行的(或者我们应该称呼他们为患者?),即使这样,您也只能得到他们的最初反应一次,因此您需要无休止地供应受试者'测试'。我要说的是,如果在执行过程中涉及人员,则它不是自动化测试。根据定义,您所描述的内容需要一个人,这就是为什么您无法使其自动化。

–corsiKa♦
13年8月12日在1:27

#2 楼

我认为尝试自动化所有操作而不考虑您实际要测试什么是一种可怕的(但不幸的是很常见)的做法。

我的标准行是应该自动化100%应该自动化的测试。找出要自动化(或不自动化)的测试是困难的部分。测试人员经常浪费时间来尝试自动化不应该自动化的东西,而其他测试人员却浪费时间手动测试应该自动化的东西。我将无聊的东西自动化,并用我的大脑测试我感兴趣的东西。当然也有例外,但这对我来说很好。

#3 楼

否。有几种类型的测试对自动化毫无用处。


自动化测试在探索性测试中毫无意义。这种测试的主要思想是探索发现错误的功能,以偏离标准的用户故事。

安全性测试主要是手动的。虽然在那里可以使用测试脚本(例如,测试输入字段可能包含带有SQL或XPATH注入的字符串),但主要要点是分析程序并将其破解,而仅使用自动化工具很难做到这一点。 >
可用性测试不能仅通过自动化测试来执行。可以使用工具收集有关程序使用方式的数据。但是,这里的另一种技术是用户调查或采访以及用户观察,这是无法通过运行测试程序来完成的。


评论


无意义?探索性测试自动化如何?我认为这很有价值。仅供参考:kaner.com/wp-content/uploads/2010/08/…

–克里斯·肯斯特(Chris Kenst)
15年1月3日,17:34



#4 楼

我想为“自动化测试在探索性测试中毫无意义”添加一个方面。

我可以想象一些场景,在这里我想探索一些东西,让我说一遍又一遍地执行功能达八个小时,程序的行为方式。或某些工作流程。

在这种情况下,手动进行探索将非常耗时。因此,我可能会考虑编写一些自动化测试来帮助我完成该任务。

因此,我永远不会说“自动化”对ET毫无帮助,但通常如此(总是? )这取决于后面的上下文。

评论


在那种情况下,它不再是探索性测试,而现在是寿命测试(例如,连续使用x个小时后会崩溃吗?如果不每两天重启一次,它会冻结吗?)

– Eptin
19-12-5'0:16

#5 楼

自动化对检查,验证,验证非常有用。它是可以用作测试一部分的工具。其他大多数测试都需要精明的思想,并且不利于自动化。最后,自动化只能检查您用特定术语编码的内容。

#6 楼

您将如何自动化应用程序的可用性测试?

评论


我相信这个答案实际上是在说:“不,并非每个测试都可以通过自动化来完成。例如,您无法自动化应用程序的可用性测试。”因此,尽管形式不是很好,但从技术上讲,这是一个答案。

–corsiKa♦
14年6月16日在16:05

#7 楼

有两个答案,具体取决于您对这个问题的理解方式:

是的,可以使用正确的工具组合并在适当的环境下自动执行可以手动完成的所有操作。 br />但是,实际上创建/获得工具,花时间编写/维护测试以及验证结果可能会导致成本过高,因此...并且不应该自动化所有操作。

#8 楼

不,在撰写本文时。正如该领域的专业人士向我介绍的那样,一个问题是否能够实现自动化的最好条件是,它是否是AI完整的,也就是说,如果自动化任务至少与解决中央人工智能问题一样困难,使计算机像人一样聪明(进一步阅读)。在这个框架中,请考虑此问题的其他几个答案。其中许多问题取决于人类非常擅长解决计算机无法解决的问题,包括大型多维模糊匹配和搜索问题以及EXPtime或EXPspace所限制的问题(例如Go游戏的确定性求解器,以得出问题集)。正确的算法解决方案)。在这些问题上,人类仍然不完美,但是在撰写本文时,他们做出专家决定和识别模式的能力仍然比AI研究的前沿要好。

使用此定义,您应该能够将问题空间优雅地划分为自动任务和需要一定程度手动干预的任务。从这里开始,我将结合前一组(通过超出此答案范围的类比和设计原则)并修剪后一组,直到您得出了令人信服且可实施的系统测试集。

祝你好运!

#9 楼

您无法实现自动化:


CAPTCHA
满足特定特征的随机数
来自不同文化背景的人们的不同观点

您几乎无法实现自动化(因此理论上是可以的,但在现实世界中却不现实)


当过程具有许多参数时所有可能的组合
对所有对象持续运行测试不同的android设备和操作系统(成千上万)

您不希望自动化


UI自动化,以便从不同的数据组合中获得许多不同的结果(使用单元测试)
用于大量情况/场景的UI自动化-大多数测试应为单元测试
具有泄露机密信息的高风险的过程。让人员处于循环之中
安全绕过
在不告知安全性的情况下测试安全性


评论


偏见测试(例如文化观点)真的是测试吗?还是更多的研究主题?

– Niels van Reijmersdal
18年7月28日在10:08

#10 楼

您可以自动化项目的每个技术方面,如果需要还可以进行一些人类行为测试,例如,您可以使用ClickDensity来跟踪用户在网站或在线应用程序上的行为(是主题吗?)

http://www.clickdensity.com/

但是根据经验,与人类行为有关的是不可测的。

#11 楼

这个问题有一个更根本的答案。暂停问题使我们无法在所有可能的输入上全面测试任何非平凡的软件。我们可以并且应该尽可能地自动化,以便更有效地测试更多的输入,但是这样做时,我们需要考虑到这样一个事实,即自动化测试本身就是代码,并且也会遇到停顿问题。完全是乌龟。

由于所有这些,随着测试变得更加完整,它们变得更加可疑。避免递归陷阱(编写测试以测试测试)的一种方法是,识别被测应用程序代码和测试套件实际上是在相互测试。这意味着应用程序本身需要能够跟踪测试的有效性,这意味着应用程序内置了更多的工具来记录和分析用户输入以及用户对应用程序输出的响应。这种架构在任务关键型应用程序中往往会出现更多的情况,最明显的例子是遥测系统和飞行数据记录器。

在保持应用程序更简单的同时避免递归的另一种方法是拥有第三套套件,应用程序和测试套件之间的填充程序,它可以同时监视两者和提供自己的分析。例如,覆盖率测试套件往往落入该体系结构之内或附近。

因此,不能完全自动化每个测试,但是对我们可以做到的自动化非常重要。由于存在停机问题,软件测试是发现的过程,自动化的目的是能够快速重复我们所知道的,因此我们有时间发现我们不知道的事情。

#12 楼

我同意这里的大多数人。并非所有的东西都可以实现自动化,而通过这样做,您将把重点从实际的测试和发现错误上移开了。 t提供必要的值。其中一些是-


使用自动化来捕获应用程序中的呈现问题(外观)是一个坏主意。那里很少有可以进行视觉验证的工具,但是在这方面很难替代人类。例如-我有一种情况,我的移动网页在一部手机上显示为白色,而在另一部手机上显示为深灰色。是的,我们可以尝试实现自动化,但是我认为人类会更好地发现应用程序在外观和感觉上的细微差异
使用自动化来确定页面上元素的位置是否相同。如果您开始基于元素的x,y坐标编写测试,那么您的自动化测试将变得非常困难,因为可以在不同的浏览器,设备和操作系统中查看网页,并且坐标将根据屏幕尺寸而变化。
使用自动化来测试包含软件,硬件,Web服务,API和云服务的所有彼此实时通信的集成系统将是一个坏主意。例如-您将如何编写自动测试来测试Fitbit等健身追踪器的所有端到端方案?您可以尝试尽可能地模拟真实的人体运动等,但是要使健身追踪器的整个过程实现自动化将是非常困难的任务,相反,我们人类需要对其进行实际的探索性测试。

等等...

因此,如您所见,有许多场景不值得自动化。自动化在某些情况下是好的,应该与手动测试互补使用。了解自动化的成本与价值也很重要。

-Raj

#13 楼

如果可能的话,甚至还需要自动化100%的测试?如果您对所有受支持的平台上所有受支持的客户端/浏览器的GUI的每条路径进行了自动化测试,我会对您的流程和策略感到好奇。您的GUI长期以来都是静态的,或者您的GUI非常简单,或者您的测试自动化团队是绝对的摇滚明星。如果所有这些都不是正确的,那么我不得不怀疑您是否在自动化方面投入了过多的资源。如果不是,那么我很想听听您如何获得如此出色的自动化套件。

#14 楼

不能,每项测试都无法自动化
例如,如果您要测试Web应用程序中页面的颜色,则自动化无法实现。像这样,我们可以说有太多无法自动化的测试,例如安全性测试,可用性测试等。

评论


实际上,您可以确定Web应用程序中页面的颜色。同样,许多安全测试可以自动化。可用性测试是一个很好的例子。

–user246
2015年1月6日在16:04

#15 楼

不,您不能使所有事情自动化。以下是一些您无法使用自动化的情况。


动态更改功能
需要更多人工交互的测试用例
基于CUI(命令用户界面)的测试情况
我们无法捕获图像的内容
Web应用程序的外观和感觉。


#16 楼

还没有,但是人工智能正在变得越来越好,所以我希望在几年内甚至可以使用自动化来测试某些答案描述的一些无法测试的选项。

我旨在使大多数测试(也称为检查)中的大多数自动化的产品。我什至主张将功能更改为可以通过自动化进行测试,或者根本不构建它。暂时执行一些手动操作是可以的,但是如果您想真正扩大规模,则流程中的每个手动操作都应该是自动化的。