翻译 | 手动测试,还是自动化测试?
本文翻译自:How to choose between manual or automated testing for your software
原文作者:Qt Group 市场经理 Sebastian Polzin
校审:Shawn Luo
在软件开发领域,自动化测试已经变得不可或缺。虽然可能需要初始投资,但随着时间的推移,它能够弥补前期成本。手动测试瑕瑜互见,比如更容易出错,但可以深入了解视觉对象。最终,这一切都归结于项目的需要以及您手中的资源。
手动测试是一种应用程序测试,QA或软件工程师在不使用任何自动化工具的情况下手动执行测试用例。在这个过程中,测试人员利用他们自己的经验、知识和技术能力对开发中的应用程序或软件执行测试。这样做是为了发现软件或应用程序中的bug和任何问题,并确保其在上线后正常工作。
与能够自行运行的自动化测试相反,手动测试需要QA工程师在所有阶段密切参与,从测试用例准备到实际测试执行。
使用Test Center进行手动软件测试
Test Center是Qt Quality Assurance Tools组合中的一个工具,它提供了一个简化的系统来管理手动测试结果,并给出了这些自动化测试结果的概述。此外,还有一个测试管理部分,可以在其中设置和管理手动测试的流程和记录。
它有一个分屏设计,左边是用于创建和管理测试层次结构,包括创建测试套件、测试用例、特性和场景。同时,右边的窗格是对测试用例或场景描述和先决条件进行更改的区域。它也被用来设计和管理测试的每个部分。
什么是自动化测试?
自动化测试是使用软件工具和脚本对测试工作进行自动化。测试人员必须编写测试脚本,指示计算机执行一系列操作,例如检查bug或在目标平台(如移动应用程序或网站)上执行任务。通过在更短的时间内比手动测试运行更多的测试用例,它能够帮助提高测试覆盖率。
这需要有脚本编写经验的用户。常见的自动化测试工具有Selenium、QTP、UFT和Squish等。Squish支持多种非专有编程语言,包括Python、JavaScript、Ruby、Perl和Tcl,因此,了解这些语言是有优势的。
使用Squish进行自动化软件测试
使用Squish,您可以在跨平台的桌面、移动端、嵌入式设备和在线应用程序上自动化GUI测试,并且可以在不同的开发平台上使用。它简化了通常费力且容易出错的过程---测试当今新开发以及不断发展的应用程序的用户界面。
Squish支持功能回归测试和自动化GUI功能测试。它还可以帮助您在不同的环境中自动化测试应用程序,以可控和可重复的方式模拟用户的操作。
它包括:
全面支持所有领先的GUI交互界面
完全兼容各种平台(PC、智能手机、Web和嵌入式平台)
测试脚本录制
健全可靠的对象识别和验证技术
独立于视觉外观或截图
高效的集成开发环境(IDE)
用于测试脚本编写的大量广泛应用的脚本语言
完全支持行为驱动开发(BDD)
使用命令行工具进行全面控制
支持将测试管理与CI系统集成
选择手动或自动化测试---利与弊
在两者之间进行选择时有许多因素需要考虑。首先,软件开发者面临的最大挑战是截止日期。如果错过了完工日期,公司可能会失去客户。还有预算的问题,因为自动化测试需要设置和维护。
这两种解决方案各有优点和缺点,因此您需要根据自己的需要来检查它们。下面我们来仔细看看:
手动测试
优点:
启动成本低于自动化测试
为人类的感知提供了空间,这有助于洞察用户体验
可以提供有价值的人类视觉反馈(如颜色,字体,大小,对比度和使用的按钮大小)
当测试用例只需要运行一两次时更高效
可以快速应用细微的修改,无需编码
最适合探索性、可用性和临时测试
缺点:
对于QA工程师或测试人员来说可能非常费时费力
存在人为错误的可能性
不能复用 – 重复会导致QA工程师或测试人员的工作相当累人和枯燥
伸缩性差,因为更大更复杂的应用程序需要更多的手动测试人员
自动化测试
优点:
工作速度更快,因为自动化工具可以持续运行,不眠不休
有能力发现更多的缺陷
适合重复的测试用例
可以同时运行多个测试
与手动相比,增加了覆盖范围的广度
可以记录下来并复用于类似的测试用例
最适合回归、性能、负载和高度重复的功能测试用例
较大的项目可能需要更多的人力,但仍少于手动测试,因为只需编写新的测试脚本
缺点:
无法进行进行探索性测试
需要编码
无法考虑人为因素,因此无法提供用户体验反馈
细微的修改必须进行编码,这可能需要时间
初始测试设置和所需的维护可能非常昂贵
自动化测试在大多数情况下都要比手动测试更占优势,但所有技术都有局限性。在创造任何能够提升消费者体验的内容时,人工测试所提供的人类判断和直觉将发挥作用。
自动化测试和手动测试哪个更适合您的组织,这在很大程度上取决于您需要运行的测试用例的数量、重复测试的频率以及团队的预算。
理想情况下,您的组织应将两者结合起来,各取所长。因为在许多情况下,手动测试仍有必要,而自动化测试可能效率更高。不管怎样,这两种软件测试方法都是重要的资产。