对自动化测试常见的5个误解

对自动化测试常见的5个误解

长期以来,自动化软件测试一直被认为是大型软件开发组织的关键,但是通常被认为对于小公司来说太昂贵或难以实现。

自动化测试不是银弹,很对管理者和测试者对于应用自动化测试有很多误解。其实在组织中引入自动化测试的成本是很高的,涉及到自动化测试的框架选择、环境构建、人员技能、测试流程和测试管理、测试效果评估和测试度量等等一系列的问题。

下面列出对于应用自动化测试常见的5个误解:

对自动化测试常见的5个误解_第1张图片

 

误解 误解的表现 分析

误解1

提高测试覆盖程度

这个答案非常有效。

但是我们如何定义覆盖率呢?如果我们有100个测试,我们如何测量覆盖率?

 

有了成熟的测试自动化实践,您可以在相对短的时间内运行数百个测试。

正因为如此,我们可以为给定的特性创建更多的测试用例、更多的测试场景和使用更多的输入数据进行测试,从而获得更多的信心,相信系统按预期工作。

然而,在测试,尤其是测试自动化中,更多的测试并不意味着更好的质量或者更多的发现bug的机会。

误解2

节省时间

这个答案也是正确的。

因为你可以在自动化测试运行时花费宝贵的时间进行更多的的探索性测试。然而,对于已经开发的一个全新的特性,编写自动化脚本实际上要比在第一瞬间手动测试该特性花费更长的时间。

重要的是要注意,为了从自动化测试中节省时间,需要在编写自动化测试的脚本时进行初始的增加的努力,确保这些测试经过了代码审查,并且自动化测试的执行中没有出现任何中断。

误解3

发现更多的缺陷

这个答案就非常不好了,因为我从来没有见过任何指标表明自动化比手动/探索性测试发现更多的bug。

自动化测试通常在实现新特性之后检查系统中的功能回归。

与现有功能相比,在新特性中总是有更多的机会发现新的bug。

此外,自动化测试未能发现缺陷还有其他原因。

误解4

替代手工测试(者)

这可能是我听到的最糟糕的答案。

手动测试人员所做的与自动化测试检查之间有明显的区别。

自动化测试其实本质上并不是测试,而是检查事实。

为了能够自动化测试,我们必须知道预期的结果,以便我们能够检查有效或无效的结果。这就是给予我们真或假,positive or negative,通过或失败的原因。

由于不同的心态和质疑系统的能力,总是需要优秀的手动测试人员。

误解5

提高质量

这也是我听到的最糟糕的答案。

尽管自动化测试能够给我们快速反馈并提醒我们应用程序中的问题,但是自动化测试本身并不能提高质量。

我们可以通过确保在开发周期的从头到尾遵循正确的实践来提高质量。质量不是事后考虑的,它应该从一开始就做好。

仅仅依靠测试,包括手动测试和自动化测试来获得产品的质量是完全不够的。

预防胜于检查。

 

那么问题又来了,我们为什么需要自动化测试?

简单的一句话:为了消除测试中的重复测试。为了增强团队对于系统构建和产品发布的信息。

每当新功能部署发布时,可以通过采用自动化测试的方式进行快速的Regression Test,这可能是应用自动化测试最主要的原因了。

对于引入自动化测试的正确的理解

1. 关于提高测试覆盖

自动化软件测试可以增加测试的深度和范围,以帮助改善软件质量。自动化软件测试可以查看应用程序内部,查看内存内容、数据表、文件内容和内部程序状态,以确定产品是否按预期运行。测试自动化可以在每次测试运行期间轻松地执行数千个不同的复杂测试用例,这提供了手动测试所不能覆盖的范围。

2. 关于节省时间

为了确保质量,在开发周期中必须经常重复软件测试。每次修改源代码时都应该重复软件测试。对于软件的每个版本,可以在所有支持的操作系统和硬件配置上进行测试。手动重复这些测试既昂贵又耗时。一旦创建,自动测试就可以在不增加成本的情况下一次又一次地运行,并且它们比手动测试快得多。自动化的软件测试可以减少从几天到几小时运行重复测试的时间。直接转化为成本节省的时间节省。[ 这才是对于引入自动化测试可以节省测试时间的正确理解。]

3. 自动化测试和手动测试最大的区别

即使是最认真的测试人员也会在单调的手动测试中犯错误。自动化测试每次执行时都精确地执行相同的步骤,并且永远不会忘记记录详细的结果,因为可以自动产生测试结果和报告。从重复的手动测试中解放出来的测试人员有更多的时间来创建新的自动化软件测试和处理复杂的特性。

即使最大的软件组织和测试部门也不能系统/产品模拟高并发、高负载、高可靠性的测试。自动测试可以模拟数以万计、百万计的虚拟用户与网络、软件和应用程序交互。所以,在某些特定的测试中,必须依赖于自动化测试的实施才能达到测试的目的。

4. 改善开发团队等所有人对于系统/产品的信息

开发人员和测试者可以使用共享的自动化测试在发送给QA之前快速捕获问题。每当签入源代码更改时,测试可以自动运行,如果它们失败则通知团队或开发人员。这样的特性节省了开发人员的时间,提高了他们的信心。

通过自动化软件测试执行重复的任务,让团队有时间花费在更具挑战性和更有价值的项目上。团队成员提高了他们的技能集和信心,并且反过来,将这些成果传递给他们的组织。

总结

我们将测试自动化,因为我们需要反复执行相同的测试。如果只运行一次而忘记它,您想要自动化测试吗?当然不是!您在自动化测试上花费的时间和精力,可以手动执行它。

现在,根据定义,我们将需要频繁执行的可重复测试(即回归测试)自动化。

因此,下次,当您想要自动化一个测试时,退后一步,想想您可能多久执行一次这个测试?自动化测试真的值得吗?

 

你可能感兴趣的:(软件测试方法论,Agile,Testing)