首页 > Python自动化测试 阅读数:18

Python自动化测试的常见误区

谈起自动化测试,行业中存在一些普遍的误区。不少从业者认为,自动化测试不就是 QTP、Selenium、Appium 这些玩意吗?一说自动化测试就是指 UI 层自动化测试,甚至把“自动化测试”认为是“基于产品或项目 UI 层的自动化测试”。其实 UI 层自动化测试只是自动化测试中的一种而已。

从产品类型来讲,常见的自动化测试分为:PC 端产品自动化测试、Web 端产品自动化测试、App 移动端产品自动化测试。从产品研发阶段来讲,自动化测试又分为:单元自动化测试、接口自动化测试、契约自动化测试、集成自动化测试、验收自动化测试。

但无论是不同产品类型的自动化测试还是在不同研发环节引入的自动化测试,其核心目标都是一致的。它的核心目标用两个词进行概括就是:质量+效率。有一句俗语:一切不以结婚为目的的谈恋爱,都是耍流氓!这句话同样适用在自动化测试中,一切不以提高产品质量和加快测试效率为目的的自动化测试都是耍流氓。

除了把自动化测试误认为基于产品或项目 UI 层的自动化测试,一些团队或者自动化测试新手在引入自动化测试时难免存在一些观点上的误区,下面列举 12 个自动化测试常见误区,帮助大家更好地理解自动化测试。

1) 误区一:自动化测试与手工测试过程一样

自动化测试所需要的技巧与手工测试所需要的技巧是不一样的。通常很多人认为自动化测试就是简单地按一个录制按钮,产生测试脚本,而事实上并没有那么简单。

区分自动化测试所需要的技巧与手工测试所需要的技巧是非常重要的。最重要的是,自动化测试工程师需要掌握软件开发技巧,没有接受任何培训的手工测试人员,或者没有编程背景的手工测试人员,在实施自动化测试时会碰到很多困难。

2) 误区二:引入自动化测试后就可以大量减少测试人员的数量

即便在项目中成功引入了自动化测试,也不应该大量减少测试人员。因为开展自动化测试初期需要投入一定的人力进行自动化测试脚本的开发,逐渐将自动化测试用于日常的测试中后,可在一定程度上减少手工测试人员重复劳动的时间,进而减少人数。而通过自动化测试节省出来的这部分人力和时间应该投入到做更多有价值的质量探索活动上。

3) 误区三:测试自动化就是录制和回放

仅仅录制得到的不是有效的自动化脚本。很多人仍然把测试自动化等同于使用录制回放工具。事实上,录制得到的脚本通常是不可重用的脚本,脚本中充满了硬编码的值,这些值应该被参数化,否则脚本仅仅适用于一种测试情况,脚本还应该加入条件判断、循环等结构,以便增强测试脚本的灵活性。

4) 误区四:自动化测试找不到缺陷

自动化测试的核心目的并不是找新的缺陷,而是通过自动化测试手段的引入,解放那些有经验的测试工程师的生产力,让其从重复的回归测试中解放出来,进行新的测试方法和测试手段的研究。通过自动化测试解放出测试人员的时间和精力间接地找到更多、更深层次的新缺陷。

5) 误区五:认为自动化测试工具是“万能”的

很多人一听到自动化测试,就认为自动化测试工具可以完成一切测试工作,从测试计划到测试执行再到测试结果分析,都不需要任何人工干预。显然,这是一种理想状态,现实中还没有哪个测试工具有这个能力,并且将来也不会有。在现实中测试设计、测试案例,以及一些关键的测试任务还是需要人工参与的,即自动化测试是对手工测试的辅助和补充,它也不可能完全取代手工测试。

6) 误区六:自动化测试工具很容易掌握

很多测试工程师有这样的误区,认为测试工具可以简单地通过捕获(录制)客户端操作生成脚本,且脚本不加编辑就可用于回放使用。事实上,自动化测试不是那么简单的,自动化测试分层如何设计、测试测试如何管理、异常重试、监听并发机制都需要综合考虑。因此,学好自动化测试需要多方面的技能。

7) 误区七:自动化能提供百分百的测试覆盖率

这里要明确一个观点,并非所有内容都可以被自动化测试。更不可能覆盖所有可能的输入,以及所有可能的组合和路径。自动化测试可以增加测试的广度和深度,但是仍然无法达到 100% 的测试覆盖率。

8) 误区八:忽略了自动化测试的根本目的

通常在自动化测试过程中,我们都忙着搭建自动化框架和编写测试脚本,往往忘记测试的本来目的:挖掘产品更多潜在的质量风险。

很多时候企业雇用了最好的自动化测试人员来搭建框架,使用了最新、最好的自动化测试技术,创建了成千上万的自动化测试脚本。但是如果缺陷仍然被遗漏了,那些本该被自动化测试脚本捕捉到的缺陷没有被捕捉到,那么你的自动化测试仍然会被认为是失败的。

9) 误区九:所有测试用例都应该自动化

不是所有的测试用例和测试步骤都可以转化为自动化测试,这在很大程度取决于自动化测试的投入产出比是否是正向的。

10) 误区十:只有性能测试才需要自动化

自动化测试不只是用于性能测试,更被大量应用于功能测试验证、兼容性测试验证、安全测试验证等,在国外超过半数的自动化测试脚本都用于功能测试验证。

11) 误区十一:测试工具可适用于所有的测试

在很多情况下,需要结合多种测试工具或者开发定制的自动化测试框架才能达到自动化测试的目的。商业和开源的测试工具能够用来进行自动化测试,但是我们需要根据自身产品的特点进行合理选取。

12) 误区十二:自动化测试能发现大量新缺陷

发现更多的新缺陷应该是手工测试的主要目的,不能期望自动化测试发现更多新缺陷。事实上,自动化测试主要用于发现原来的缺陷。自动化测试用于回归测试,而大量的新业务测试更多依赖手工测试。

除了以上列举的 12 项自动化测试常见误区,还存在一些认识和期望上的误区。这些误区的产生,归根到底在于相关人员对自动化测试不现实的期望。

如果一开始没有正确地认识自动化测试的作用,认为自动化测试可以完全代替手工测试,或者认为自动化测试可以发现大量新缺陷,或者不愿在初期投入比较大的资金,这样只会让自动化测试无法发挥它自身的最大价值。建议大家在开展自动化测试之前,正确地理解自动化测试的意义和作用,对自动化测试有一个良好的预期。