在开始学习如何进行测试自动化之前,了解手动测试是否很重要?

测试自动化是测试活动的一部分,因此显然您需要了解测试概念并具有良好的心态。

这里的问题是-首先,业界在手动测试仪和自动化测试仪之间建立了这种鸿沟,现在行业本身弥合了这种鸿沟,期望只有了解手动和测试自动化的“测试仪”。 />
如今,大多数公司只在寻找自动化配置文件。因此,作为想开始软件测试事业的人,是否有必要在开始测试自动化之前了解手动测试?

评论

更新了标题,使其更易于阅读,希望可以,如果需要,请改回

#1 楼


这不是强制性的,但在启动Test Automation之前了解手动测试将是有益的。通常,在自动化测试中,我们实际上不进行任何测试,大多数时间目标是使手动测试自动化。

在手动测试中,您将必须实际在不同情况下测试功能。在手动测试中,您将利用您的产品和领域知识来识别方案。

在测试中,找到最大数量的重要/相关方案非常重要。因此,如果您有手动测试的经验,那么在过渡到测试自动化之前,它将帮助您更好地理解自动化测试。您将能够想到更好的方法来遍历测试脚本。 。”


评论


“测试自动化减少了手动工作”不一定,许多自动测试不能手动完成(考虑并行性),或者手动完成时效率很低(尽管这与“减少手动工作”相关,但并不相同)

–Rsf
20 Mar 6 '20 at 12:31



“虽然在手动测试中您将不得不进行实际测试”,但这并不完全准确,有时您会使用自动化作为进行测试的工具(与检查相对,即使我不喜欢这样写)

–Rsf
20 Mar 6 '20 at 12:33

过于简化的“在测试中,找到最大方案数非常重要”,通常方案的最大数目是无限的(嗯,不是真的,但确实很大而且不切实际),而您想要的是最大相关数目或重要场景

–Rsf
20 Mar 6 '20 at 12:34

@Rsf我也对这句话有疑问。提出大量无关紧要的方案很容易。尽管很难将参数空间正确地划分为等价类并确定最可能出现问题的位置。

–彼得-恢复莫妮卡
20 Mar 6 '20 at 20:08

@Rsf是的,我同意。通过“测试自动化减少了人工工作”,我试图说这是最常见的用例。 (谢谢!将更新答案,以使您更好地理解)通过“在进行手动测试时,您必须进行实际测试”是指在进行手动测试时,可以更好地验证/测试它,而在机器上效率低下。例如。测试的初始阶段。

–JAINAM
20 Mar 9 '20 at 8:27



#2 楼

这要看情况,但是我想说这不是那么重要。我看到有这样做的公司,因为他们拥有独立的测试自动化团队。在这种情况下,与手动测试技能相比,了解工具以及如何建立可维护的自动化更有价值。如果团队先进行测试,例如tdd或bdd。现在,自动化器不需要手动测试技能。整个团队的方法可以确保设计正确的测试用例。

但是优秀的软件开发人员知道如何从需求到生产。这包括良好的测试技能(手动和自动)。

#3 楼

简单的答案是,

如果您将自己视为手动测试人员,则不必

如果您将自己视为测试工程师,那么您必须

解释:

手动测试:

如果您喜欢玩弄系统,执行重复性任务等,那么您不需要不必学习自动化测试。

自动化测试


但是如果您将自己视为“测试工程师”并希望提高自己的技能,那么您就可以适当地自动化需要自动化的事情,并利用节省的时间来做可以帮助您提高知识的事情。
从产品质量的角度来看,自动化工作可以确保
在期限紧迫的情况下提供更多的测试范围。即使没有太多时间进行手动测试,您也可以放心地发布产品。
作为手动测试器,如果您将自己已经精通的东西自动化,那么您可以花时间专注于产品需要更严格测试的区域。
从组织的角度来看,在拥有公平的自动化测试覆盖率的情况下,可以减少所需的劳动力。 ,这与手动操作并没有冲突。

记住这个口号:

“自动测试只和手动测试一样好”。对优秀的测试案例。他们还需要优秀的自动化测试人员来自动化这些工作,避免重复的工作和在紧迫的期限内错过测试范围。

#4 楼

这取决于特定的公司,在某些情况下,如果您来自开发人员角色,他们会非常高兴;在其他情况下,他们希望您成为具有某些自动化技能的测试人员。在一些公司中,他们有探索性测试人员,然后是测试自动化团队,该团队自动化由探索性测试人员交付给他们的方案。但是在许多其他公司中,您是团队中唯一的测试人员,因此您需要涵盖探索性测试和测试自动化。因此,很明显,这很大程度上取决于您的去向,您工作的公司以及他们如何组织软件开发。许多参考)测试和测试自动化。如果某些公司只想要一个,那么我将开始询问有关他们的开发过程和期望的问题。


没有,这是没有必要的。为了您自己的利益,您需要至少有一些经验,但是正如我所说,您可以找到将由您分配给测试自动化团队的公司,这些测试场景将由其他人和您的工作来设计只是将它们重写为一种编程/脚本语言,以便它们可以自动运行。

总而言之,我不认为这可以泛化。对于每个只需要测试自动化概要文件的公司,还有许多其他公司希望将自动化与探索或仅仅是探索结合起来。另一方面,在我的特定环境中,我所看到的几乎是所有公司都至少需要一些自动化技能,因此,似乎没有相关经验比没有手工测试技能对您的工作构成更大的威胁。

#5 楼


每个人都已经是一个手动测试人员,因为我们现在全天都在使用设备,我们会体验到它们工作时和不工作时会发生什么情况。计划,快乐与悲伤等,但是尝试使用某些东西并查看其是否起作用的基本原理是相同的。
自动化测试需要一整套技术技能,才能实现“它是否起作用?”目标。
手动测试确实有助于自动化测试的一个领域是,在进行UI自动化时,您可以从手动使用和测试应用程序中学到很多知识。在编写自动化测试时,您还需要与应用程序进行很多交互,以我的经验,这总是涉及到手动测试部分,至少要在构建实际自动化时手动检查状态和错误。

评论


人们在使用过程中会检查软件,但这并不是测试。专业的测试人员对探索性测试,边界测试和渗透测试等概念有所了解。这些是专业测试人员提供的独特的思想和技能,而不是“每个人”都能将其带到餐桌上。

– CKlein
20 Mar 6 '20 at 13:46

每个人都不是手动测试人员,那么就不会有好的测试者和糟糕的测试者

– PDHide
20 Mar 6 '20 at 18:52

#6 楼

这里要问的实际问题...

尝试自动测试之前应达到哪些手动测试熟练程度?

0%熟练程度?

当然,如果您只是将预先编写的测试转换为自动测试,那在技术上是可能的。您不必考虑任何事情,因为已经写出了测试的步骤和预期结果。

100%熟练?

很难说这是什么,但可以合理地假设您可能不需要了解有关手动测试的所有知识即可进行自动化测试。

1%-99%的熟练程度?

在此范围内的某个地方,只有手工测试人员的技能才知道该怎么做:A manual tester must know how to record the exact steps to check on a specific feature.

这是自动化测试所必需的–它涉及编写代码,而自然语言很少转换成代码。这意味着至少–自动化测试需要能够编写精确的明确步骤集。

答案

如果您知道如何编写精确的步骤集,特定功能的预期结果–您已经满足了自动化测试所需的所有手动测试技能。但是,编写自动化测试还需要其他技能,例如编写代码,设置IDE /项目以使用库或对页面对象模型有所了解。

#7 楼

自1999年以来,我一直在测试嵌入式设备,从零开始,我是一名手动测试员,现在我是一名全职的自动化测试软件工程师,负责开发测试以及系统/框架,所以我希望可以从中提供一些观点我自己的看法。
我开始(完全手动)测试信用卡机器,然后转到移动电话(最初主要是空中接口设备,但是在那段时间我进入了自动化-涉及手动测试)。现在,我为TETRA无线电(紧急无线电,也用于石油钻井平台,矿山等。在危险环境中使用)创建自动化测试系统。一直存在,但是当我开始手动测试时,我从了解被测系统的角度意识到了测试是多么有趣。
当您手动测试某些东西并且必须针对它提出错误时,您还想要以便尽可能详细地记录日志,复制方案等。这意味着以后您可以减少工作量,并且是解决该问题的工程师的最佳开始。知道被测系统对此至关重要。
这套技能意味着您能够定义重现问题的操作,时间安排和系统设置。您需要按照原样整理测试。
如果您有特定的心态(请记住,我是一名程序员,而不是测试工程师),那么您最终会对如何自动重现场景感兴趣,只要这样,您就可以轻松地重新测试或创建回归方案,而不必自己运行。您自然会逐渐看待自动化(我当然是这样)。
总结-如果您开始进行手动测试,则实际上是在朝着自动化测试的方向发展。因此,是的,在进行自动测试之前,手动测试是一个很好的准则。

#8 楼

最好将“手动测试”表述为“测试”; “测试自动化”实际上是指“使用某些测试工具”。

因此,根据定义,要使用某些工具进行测试,您必须知道如何进行测试。

#9 楼

在某些字段中,您根本无法进行手动测试(没有用户界面的系统,例如机器的部件)。

比起手动测试的经验,更重要的是要有足够的测试理论背景和特定学科领域的知识。

评论


您能举一个更详细的例子吗?我认为,即使您拥有汽车发动机……如果您用手转动点火钥匙,然后将脚踩在踏板上,那也就是手动(端对端)测试。如果存在一些测试线束(机器),您可以提前计划测试(打开点火开关,从而改变油门),然后将为您运行测试,那么该操作将自动进行。 (我确信这些已存在于发动机制造工厂中,尤其是在测试零件寿命等方面。)

–user3067860
20 Mar 9 '20 at 0:45

@ user3067860汽车导航的后端。至少在2000年左右,OEM设备是模块化的:前端是带有显示器和按键的“主机”。后面是一个类似于扩展卡的插槽,如果您掏出2000美元,他们会插入一个盒子,里面装有CPU和与CAN和MOST相连的内存,两条汽车数据总线。没有任何人机界面。所有手动测试都通过主机,即您完全无法手动测试后端。 CAN上的所有嵌入式汽车设备都是这样。

–彼得-恢复莫妮卡
20 Mar 9 '20 at 6:57



您为什么不将集成测试(带有主机)视为手动测试?上一次我更新主机时,我当然手动测试了整个系统...连接所有连接器,推动播放,等待听音乐...(发誓,调整连接,再次推动播放...根据需要重复)。我没想到后端会有问题,但是如果有问题的话,它们会被发现。而且它当然不是自动化的,因为它需要我为每个测试实际调整控件(按播放,调整音量等)。

–user3067860
20 Mar 9 '20 at 18:05

@ user3067860这取决于您要测试的内容。这样的插入式单元的制造商肯定会在某个时候对其集成在主机中的模块进行测试。但它们也会(例如因为主机尚不存在)通过以下方式独立测试插件: MOST或CAN接口。但我同意:如果您以其他方式构建测试工具或集成嵌入式设备,则始终可以随时手动对其进行测试。例如,在某个时候,测试人员将驾驶导航设备在汽车中四处行驶,目前仍在手动操作;-),以及电机控制等。

–彼得-恢复莫妮卡
20 Mar 9 '20 at 18:53

我只是想与“根本无法手动测试”联系起来……我仍然无法想象一个系统是真的。

–user3067860
20 Mar 10 '20 at 16:50

#10 楼

不,不是必须的,但是我想说这是有益的。

了解测试的基本知识是必不可少的,因为根据测试过程,测试场景,测试案例,测试步骤和执行的经验,您将更加健壮,可以更高效地编写自动化测试脚本。如果您从手工测试开始您的职业生涯,然后又转到自动化测试,则过渡会变得更加顺畅。


但是,我不能得出结论,您必须学习手动测试才能将
引入自动测试。


即使您在不了解手动测试方法的情况下开始自动测试,您不会看到任何问题,因为您将接受基本的应用知识培训,可以根据测试计划编写测试脚本。适用于各种情况的独特功能。

#11 楼

并不需要工程师在软件测试公司进入自动化之前应该具有手动测试的知识。但是,如果您对手动测试有基本的了解,那将永远是有益的,例如:

1。缺陷报告

2。创建测试用例

3。回归测试
..应用程序部分。

#12 楼

是的,就像您需要在形成类似单词之前需要了解A到Z一样,手动测试对于开始自动化测试非常重要。测试任何产品时,我们基本上都有“快乐流”和“负流”方案。这些不能通过自动化测试直接学习。当您手动测试产品时,您会看到产品的确切功能,可以提供的可能输入,并且在测试了功能的多个输入后,始终进行手动测试的时间会少一些。使用自动化编码,然后更改输入值需要花费时间。
自动化测试具有其自身的优势。它减少了您的体力劳动。自动化基本上是用于健全性测试,在这种情况下,您想查看所有功能是否正常运行,就无法每天手动进行所有测试。应该学习自动化,因为自动化是当今最重要的要求之一。
希望它会有所帮助!

#13 楼

对任何主题的基本概念都有基本的了解总是可以帮助您理解该主题。它还将帮助您交叉了解使用本主题的信息,使用的必要性以及为什么进行开发(主题的理论和历史)。

如果这样做,您将将成为给定主题的专家。

因此,对于您的特定问题:

是的!对手动测试有基本的了解是真正擅长自动测试的必要条件。您认为需要什么水平的技能,仅取决于您通常具有多少动力才能获得测试或质量管理方面的专家。

#14 楼

不,您不会。
自动化只是您在进行软件测试时可以使用的增值知识。如今,必须具有自动化知识或经验,所以这是另外一回事。
事实是,如果您具有良好的分析能力,那么,就是成为一名优秀的测试人员所要做的。