自动化测试与手动测试 必须知道的重要差异
发布于 2021-05-10 01:25 ,所属分类:软件测试工程师学习资料
手动测试与自动化测试在这里中,我们将看到自动化测试与手动测试。
我们知道,每个项目都有三个重要方面,例如质量,成本和时间。任何项目的目标都是在控制完成项目所需的成本和时间的同时获得预期的输出。
什么是软件测试?
但是首先,让我们清楚一下“软件测试”一词。
软件测试是一个过程,预测评估软件应用程序的功能,以发现所开发的软件是否满足指定要求,并识别缺陷以确保产品无缺陷,从而生产出可以替代的产品。
检查此ANSI / IEEE 1059软件测试标准定义。
软件测试是任何项目的组成部分。
软件测试分为两个领域,即手动测试和自动化测试。手动测试和自动化测试都有其优点和缺点,但是值得了解手动和自动化测试之间的区别以及何时使用手动测试以及何时使用自动测试。
首先,我们将了解什么是手动测试和自动化测试。
什么是手动测试?
手动测试是手动测试软件以查找缺陷的过程。测试人员应该具有最终用户的观点,并确保所有功能都按需求文档中所述运行。在此过程中,测试人员将执行测试案例并手动生成报告,而无需使用任何自动化工具。
手动测试的类型:
黑盒测试
白盒测试
单元测试
系统测试
整合测试
验收测试
黑盒测试:黑盒测试是一种软件测试方法,测试人员无需查看内部代码结构即可评估被测软件的功能。这可以应用于软件测试的各个级别,例如单元测试,集成测试,系统测试和验收测试。
白盒测试:白盒测试也称为玻璃盒,透明盒和结构测试。它基于应用程序的内部代码结构。在白盒测试中,系统的内部视角以及编程技巧被用来设计测试用例。此测试通常在单位级别进行。
单元测试:单元测试也称为模块测试或组件测试。检查源代码的各个单元或模块是否正常工作。它是由开发人员在开发人员环境中完成的。
系统测试:测试完全集成的应用程序以评估系统是否符合其指定要求称为系统测试AKA端到端测试。验证完整的系统,以确保应用程序按预期运行。
集成测试:集成测试是测试两个软件单元之间的接口的过程。集成测试通过三种方式完成。大爆炸法,自上而下法,自下而上法
验收测试:也称为生产前测试。这是由最终用户和测试人员共同完成的,以验证应用程序的功能。经过成功的验收测试。进行正式测试以确定是否根据要求开发了应用程序。它允许客户接受或拒绝该应用程序。验收测试的类型为Alpha,Beta和Gamma。
有许多类型的软件测试,但是这里我们主要讨论手动和自动化测试。在这里,您可以阅读软件测试类型的完整列表。
何时使用手动测试?
探索性测试:探索性测试将由领域专家进行。他们只是在不了解需求的情况下通过探索应用程序的功能来执行测试。
可用性测试:验证该应用程序是否对用户友好,并且是否被最终用户舒适地使用。该测试的主要重点是检查最终用户是否可以轻松理解和操作该应用程序。某个应用程序应具有自我探索性,并且无需培训即可操作。
临时测试:临时测试与正式测试完全相反。这是一种非正式的测试类型。在Adhoc测试中,测试人员在不遵循任何文档和测试设计技术的情况下随机测试应用程序。如果被测应用程序中的测试人员的知识很高,则主要执行此测试。测试人员将在没有任何测试用例或任何业务需求文档的情况下对应用程序进行随机测试。
什么时候您更喜欢手动测试而不是自动化测试?
在以下情况下,我们更喜欢手动测试而不是自动化测试
当项目处于初始开发阶段时。
测试用户界面时,尤其是其视觉方面。
需要进行探索性或临时性测试时。
如果该项目是短期项目,并且与手动测试相比,编写脚本会很耗时
如果测试用例不是自动化的。
验证码示例。
手动测试的利弊
手动测试的优点:
可以在各种应用程序上进行手动测试
对于生命周期短的产品更可取
新设计的测试用例应手动执行
必须先手动测试应用程序,然后才能使其自动化
在要求经常更改的项目中以及GUI不断更改的产品中,它是首选
与自动化测试相比,在初始投资方面更便宜
开始生产性手动测试所需的时间和金钱更少
它允许测试人员执行即席测试
测试人员无需了解自动化工具
手动测试的缺点:
手动测试主要在进行回归测试时非常耗时。
与手动测试相比,手动测试的可靠性较低,因为它是由人工执行的。
因此,总是容易出现错误和错误。
从长远来看,昂贵的自动化测试费用
无法重复使用,因为此过程无法记录
什么是自动化测试?
自动化测试是使用自动化工具来发现缺陷的软件测试过程。在此过程中,自动化工具会自动执行测试脚本并生成结果。进行自动化测试的一些最受欢迎的工具是HP QTP / UFT, Selenium WebDriver等,
一些流行的自动化测试工具
HP QTP(专业快速测试)/ UFT(统一功能测试)
Selenium
LoadRunner
IBM Rational Functional Tester
WinRunner
何时使用自动化测试?
我们在以下领域进行自动化测试:
回归测试:修改后,对已经测试过的程序进行重复测试,以发现由于测试软件或其他相关或不相关软件组件的更改而导致的任何引入或发现的缺陷。因此,由于频繁的代码更改,回归测试最适合自动化测试,这超出了人类及时执行测试的能力。
在此处阅读有关回归测试的更多信息
负载测试:验证系统/应用程序可以处理预期的事务数量,并验证系统/应用程序在正常负载和峰值负载条件下的行为。自动化测试也是进行负载测试时有效完成测试的最佳方法。最适合自动化测试。
性能测试–这种类型的测试确定或验证被测系统或应用程序的速度,可伸缩性和/或稳定性特征。性能与实现满足项目或产品性能目标的响应时间,吞吐量和资源利用水平有关。最适合自动化测试。
可以通过自动或手动方法进行的测试:
集成测试–集成测试是测试两个软件单元之间的接口的过程。集成测试通过多种方法完成,例如大爆炸方法,自上而下方法,自下而上方法和混合集成方法。
集成测试完整指南
系统测试–测试完全集成的应用程序,以评估系统是否符合其指定要求,这称为系统测试AKA端到端测试。验证完整的系统,以确保应用程序按预期运行。
单元测试:单元测试也称为模块测试或组件测试。检查源代码的各个单元或模块是否正常工作。它是由开发人员在开发人员环境中完成的。
验收测试:也称为生产前测试。这是由最终用户和测试人员共同完成的,以验证应用程序的功能。经过成功的验收测试。进行正式测试以确定是否根据要求开发了应用程序。它允许客户接受或拒绝该应用程序。验收测试的类型为Alpha,Beta和Gamma。
在面试中,可能会要求您回答以下问题
哪些测试不能自动化?
让我们看看哪些测试不能自动化。测试需要花费大量精力来实现自动化
探索性测试
用户界面(UI)测试
临时测试
什么时候您更喜欢自动化测试而不是手动测试?
在以下情况下,我们更喜欢手动测试而不是自动化测试
处理重复且耗时的任务
进行并行测试
做非功能测试,例如负载,性能,压力测试
避免人为错误
自动化测试的利弊
自动化测试的优势:
自动化测试执行速度更快
从长远来看,与手动测试相比更便宜
自动化测试更可靠
自动化测试功能更强大,用途更广
它主要用于回归测试
可重用,因为可以记录自动化过程
它不需要人工干预。
测试脚本可以无人值守运行
它有助于增加测试范围
自动化测试的缺点:
仅推荐用于稳定的产品
自动化测试最初很昂贵
大多数自动化工具都很昂贵
它有一些局限性,例如处理验证码,获取UI的视觉方面(如字体,颜色,大小等),
需求反复变化时需要大量维护
并非所有工具都支持各种测试。例如Windows,Web,移动性,性能/负载测试
手动测试与自动化测试之间的区别(自动化测试与手动测试)?
让我们看看手动测试和自动化测试之间的区别。
自动化测试与手动测试:
自动化测试更加可靠。每次执行相同的操作。它消除了人为错误的风险。手动测试不太可靠。由于人为错误,手动测试并非始终都是准确的。
自动化测试的初期投资较高。测试工具需要投资。从长远来看,它比人工便宜。与手动测试相比,从长远来看,ROI更高。手动测试的初始投资少于自动化。人力资源需要投资。与自动化测试相比,从长远来看,ROI较低。
当我们进行回归测试时,自动化测试是一个实用的选择。手动测试是一种实用的选择,其中测试用例不会重复运行,只需要运行一次或两次。
执行是通过软件工具完成的,因此它比手动测试更快,并且与手动测试相比需要更少的人力资源。执行测试用例非常耗时,需要更多的人力资源
无法进行探索性测试可以进行探索性测试
诸如负载测试,压力测试等性能测试是自动化测试中的一种实用选项。性能测试不是手动测试中的实际选择
它可以并行执行,并减少测试执行时间。在手动测试中并行执行测试用例并非易事。我们需要更多的人力资源来做到这一点,并且变得越来越昂贵。
自动化测试中必须具备编程知识进行手工测试不需要编程知识。
强烈建议进行构建验证测试(BVT)不建议进行重建验证测试(BVT)
人为干预不多,因此进行用户界面测试无效。它涉及人工干预,因此进行用户界面测试非常有效。
摘要:
在这里,我将结束本“手动测试与自动化测试”文章。手动和自动化测试的真正价值在于在正确的环境中应用正确的测试类型。希望您了解手动测试和自动化测试之间的区别,并了解两者的优缺点。如果您发现任何其他我们忽略的要点,只需将其放在注释中即可。
往期推荐
相关资源