# 1.什么是自动化测试?

自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程。通常,在设计了测试用例并通过评审之后,由测试人员根据测试用例中描述的规程一步步执行测试,得到实际结果与期望结果的比较。在此过程中,为了节省人力、时间或硬件资源,提高测试效率,便引入了自动化测试的概念。

# 2.自动化测试的优势

# 2.1 提高回归测试效率

通常来说,这是自动化测试最主要的任务和特点,特别是在程序修改比较频繁时(新功能的不断加入,老功能逻辑不变或很少变的),效果是非常明显的。由于回归测试的业务流程操作和测试用例是预先完全设计好的,预期结果也是完全在项目人员掌握之中,将回归测试交给计算机自动运行,可以极大提高测试效率,缩短回归测试时间。

# 2.2 繁琐测试更高效

自动化测试明显的一个好处就是可以在较少的时间内运行更多的测试,有很大一部分业务功能由于业务逻辑极其繁琐,使用手工测试的话要耗费很多时间,测试次数不是太多的话还可以接受,但是要求测试次数多了的话手工测试人员会没有耐心,而自动化测试的耐心是无限大的,并且计算机的执行速度远比人工快。

# 2.3 扩大测试范围

比如对于大量用户的并发测试,不可能让足够多的测试人员同时进行,但是可以通过自动化测试模拟很多用户同时并发点击某一功能,从而达到测试的目的,再例如人工不可能二十四小时不休息的进行测试,但是计算机则不用休息....等。

# 2.4 提高资源使用效率

将更繁琐的任务自动化,以及提高准确性和测试人员的积极性,将测试人员解脱出来投入更多的精力设计更好的测试用例,有些测试不适合自动化测试,手工测试人员可专注于手工测试部分,或将测试人员精力投入新功能或者测试更深的业务逻辑中去争取发现更深层次的缺陷。

# 2.5 具有一致性和可重复性

由于机器是自动执行的,每次测试的内容与操作的一致可以得到保障,从而达到测试可重复的效果 ,机器可以按照相同的轨迹不断的执行测试并不会发生差错,而手动测试很难或者不可能做到这一点。

# 2.6 脚本具有复用性

由于自动化测试通常以脚本的方式来实现,这样在不同的版本之间,就有可能只需要做少量的维护甚至不用做任何修改,实现在不同版本中使用相同的测试脚本执行相同的测试用例。

# 2.7 提高软件信任度

由于测试是由计算机代劳的,所以不存在执行过程中的疏忽和错误,完全取决于测试的设计质量,一旦软件通过了具有说服力的自动化测试后,软件的信任度会大大增加。

# 2.8 多环境下测试

一个系统往往会被要求能支持各种不同的环境并稳定运行,但是这么多不同的环境如常用的浏览器:Edge,Chrome,Safari,FireFox等,系统有:Win10,Linux,Mac等,甚至还有杀毒软件 ,那么多环境组合,如果每一种环境组合都来人力完成,那么研发周期得成倍增加,而自动化可以发挥其优势与作用,由计算机代劳,在不同的环境组合中运行。

# 3.何时开始自动化测试?

测试是开发周期不可或缺的一部分,自动化测试只是其中一项工具和实现质量保障的手段。因此至关重要的是在切换到自动化测试之前确定要实现的目标。为了实施测试自动化,测试项目应满足一些条件。否则,自动化测试可能会浪费时间和金钱,而不是为企业节省这些。自动化测试的目标是减少测试时间、精力和金钱。在做出实施决定之前,请考虑以下条件。

# 3.1 关键业务测试用例

一些测试用例可能包含严重的风险,这将对业务产生负面影响。负面影响包括成本增加、用户不满,不良的用户体验。如果整个测试过程都是由手动测试员运行的,即使是最有经验的测试员,总是容易出错。在基于风险的测试中,运行自动测试被认为是更好的方法。

# 3.2 重复测试用例

将自动化测试工具应用于只能运行一次的测试是没有意义的。在这种情况下,可按需运行可重复的测试,从而减少了每次测试的成本,并缩短了完成开发周期的时间。

# 3.3 功能测试用例

功能测试也是利用自动化测试的绝佳时机。自动化测试可以快速地检测功能需求的实时报告。这种方法使团队可以轻松实现准确性、互操作性和稳定性。

# 4.自动化测试的步骤

# 4.1 制定测试计划

我们在准备展开自动化测试之前,最好是先制定好测试计划,明确测试对象、测试目的、测试的项目内容、测试的方法、测试的进度要求,并确保测试所需的人力、硬件、数据等资源都准备充分。制定好测试计划后,下发给用例设计者。

# 4.2 分析测试需求

测试用例设计者根据测试计划和需求说明书,分析测试需求,设计测试需求树,以便用例设计时能够覆盖所有的需求点。

# 4.3 设计测试用例

通过分析测试需求,设计出可以覆盖所有需求点的测试用例,从而形成专门的测试用例文档。由于不是所有的测试用例都能用自动化来执行,所以需要将能够执行自动化测试的用例汇总成自动化测试用例。

# 4.4 搭建测试环境

自动化测试人员在用例设计工作开展的同时即可着手搭建测试环境。因为自动化测试的脚本编写需要录制页面控件,添加对象。测试环境的搭建,包括被测系统的部署、测试硬件的调用、测试工具的安装和设置、网络环境的布置等。

# 4.5 编写测试脚本

根据自动化测试用例和问题的难易程度,采取适当的脚本开发方法编写测试脚本。一般先通过录制的方式获取测试所需要的页面控件,然后再用结构化语句控制脚本的执行,插入检查点和异常判定反馈语句,将公共普遍的功能独立成共享脚本,必要时对数据进行参数化。当然还可以用其他高级功能编辑脚本。脚本编写好了之后,需要反复执行,不断调试,直到运行正常为止。脚本的编写和命名要符合管理规范,以便统一管理和维护。

# 4.6 分析测试结果

应该及时分析自动化测试结果,建议测试人员每天抽出一定时间,对自动化测试结果进行分析,以便尽早地发现缺陷。

# 5.使用Python进行自动化测试

自动化测试工具开发需要具备开发能力, 目前编程语言有很多种, 而对于初学者来说, Python是最合适的编程语言,因为:

  1. 对于没有接触过代码的小白,从Python入手门槛更低, 容易上手, 学习成本比较低。
  2. Python语言不需要拥有很复杂的语法, 简单明了又直奔主题,只需用少量的代码就能建出更多功能。
  3. Python编写代码速度快,非常适合测试资源不充足的情况下,快速开发各种测试工具。
  4. Python实现自动化测试的框架非常丰富, 可以简化测试的流程,更容易提高测试的效率。

我们选取几个常见的自动化测试场景,结合Python和业务,介绍自动化测试方案。每个章节相对完整且独立,抛砖引玉,希望能给AI大学堂学习Python并且想从事软件测试的同学带来启发和帮助。

# 6.总结

本节课我们介绍了什么是自动化测试、自动化测试的优势、何时开始自动化测试、自动化测试的步骤以及为什么要使用Python进行自动化测试。

更新于: 12/30/2021, 2:46:39 AM