自动化vs手工测试:怎么做明智决定

无论你想要手工测试还是自动化测试应用,都取决于许多因素。为了做出正确的决定,需要正确的信息。它们在测试世界中都有自己的重要性和地位。

在这篇文章中,我将列出所有可以帮助你做出决定的因素。我们不能低估自动化工具的作用,节省时间的能力,以及准确性;我们也不能否认手工测试员的创新和创造性思维。是的,两者都很重要,在测试软件方面有自己的作用。这里的问题是,如何决定怎么做选择最适合你的项目,兼顾所有的测试需求,以及如何进行?只需要其中一个,还是平衡两者会工作的最好?

自动化vs手工测试

以下是有助于你作出此类决定的一些要点:

项目类型:如果你的项目更多在GUI(图形用户界面)方面,则手工测试是第一选择。例如,移动应用测试。你可以添加自动化来测试负载、压力情况,例如,如果你点击特定图标或按钮1000次。内存已利用90%,然后尝试打开一些应用程序等,在这种情况下,主要的测试将由手工来完成。让我们再举一个Web应用程序测试的例子,你需要对UI(用户界面),多浏览器测试,以及负载测试。这样的项目需要手工和自动化的良好平衡,因为你已经设计有在不同的平台上都有效的重复测试用例。

回归测试的数量:一个好的做法是在软件中引入新的更改或bug修复时运行回归测试。在一个版本中,很可能会进行多轮回归测试。如果你的项目需要大量的回归测试,并且有大量的回归测试列表,那么自动化就是很好的选择。如上所述,兼容性测试需要自动化来节省测试员的时间和精力。而且,回归是你的日常工作,要定期运行重要的、基本的测试用例集。

软件测试团队的技能:手工测试和自动化都需要技能。手工测试员需要创造性思维,自动化需要脚本和工具知识。你的测试团队具备多少技能?如果你有更多的手工测试员,那么你将需要纳入更多的探索性测试,如果你有更多的自动化测试员,那么你将必须找到更好的工具和脚本用于测试。还有其他因素决定所需的技能,如项目类型,以及项目预算。

预算:这是最重要的因素之一,自动化工具,测试人员,脚本和框架需要额外的费用,这将是整个项目预算的一部分。如果项目预算不允许额外的费用,那么你最终只能进行手工测试。对于小型固定测试或小工期的项目,手动测试是有效的,而对于周期长,团队大和维护量大的项目将需要自动化。

随机/探索性测试的需要:我们不能否认通过进行一些探索性测试可以发现一些重要的bug。例如,如果你正在测试移动应用程序,可能会有如此多可能会破坏该功能的随机场景,探索性测试,将为你提供通过简单运行某些功能或回归测试用例而无法找到的bug。如果你的项目需要相当多的探索性测试,那么手工测试的部分将比自动化更重。

团队规模:当你有较少的人,你会想使用自动化工具,以节省时间,并减少重复工作。当你的团队中有更多的人,你可以让他们执行更多的手工和随机的场景,并相应地分配工作量。

测试作为长期股权:我们不能否认事实,虽然手工测试能发现更多的bug,但它并不如自动化测试那样作为长期股权。我们都会认同,在一段时间内,我们有一个对应用行为有非常好的了解的熟练团队。有一天如果这些熟练的手工测试员退出组织会怎么样呢?新测试员进行的手动测试将获得自由发现bug同样的好处吗?显然,答案不是100%。而构建一个测试自动化环境有助于建立长期股权,这样可以确保在迭代测试时至少有回归测试,这是熟手或新手在测试应用时可能会遗漏的。因此,长期来看,自动化测试可以证明是项目的长期股权或资产。但是如前所述,自动化团队需要预算来开发、维护自动化脚本。

总之,当你在项目规划中考虑上述因素时,你就知道自动化和手工测试的平衡对你和你的团队是最有效的。如果该项目更多地在数据驱动方面,那么自动化将占主导地位,如果其是基于GUI的,那么手工将占主导地位。理想情况下,要进行有效的测试,需要平衡两种形式的测试。例如,要测试Web应用,先使用手工测试技能来测试,然后如果有可能,自动执行这些测试用例。在更改或修复应用之后,并在发布之前,常规测试自动化后,你只需执行一些随机场景,并像真实用户那样使用该应用。



留言