028-86261949

当前位置:首页 > 技术交流 > 自动化测试项目流程

自动化测试项目流程

2020/02/06 18:33 分类: 技术交流 浏览:3

 

1. 自动化测试概述

1.1. 什么是自动化测试

自动化测试是把手工测试转化为机器执行的过程。

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

最初的自动化测试,是为了替代执行重复的手动测试,主要是用于回归测试和测试同一软件的新版本。因此在测试前要考虑好如何对应用程序进行测试,例如要测试那些功能、操作步骤、输入数据和期望的输出数据等。

目前自动化测试的脚本编写,通常情况是基于已有的手工用例的基础上,将手工测试用例编写成对应的自动化脚本。

1.2. 适用场合

不是所有的项目都需要作为自动化测试项目,有时候手工测试可能比自动化测试反而简单,有些时候因为技术或者环境等因素,某些功能也无法实现自动化。

通常适合于软件测试自动化的场合:

  1. 重复的数据录入或是击键等;
  2. 性能测试;
  3. 用例需要反复执行多次(版本迭代);

与手工测试相比,测试自动化的优势是明显的。首先自动化测试可以提高测试效率,使测试人员更加专注于新的测试模块的建立和开发,从而提高测试覆盖率;其次,自动化测试更便于测试资产的数字化管理,使得测试资产在整个测试生命周期内可以得到复用,这个特点在功能测试和回归测试中尤其具有意义。

 

2.自动化测试流程图

通过流程图可以看到,自动化测试流程图和手工测试流程在测试用例编写前基本一致,不同之处是,测试用例输出完成后是脚本开发者开始编写脚本,脚本编写完成后执行自动化测试。

 

3.自动化测试需求接入

在对一个项目开展自动化测试以前,需要对软件需求进行分析,以观察其是否适合使用自动化测试。对于适合自动化测试的项目或者模块开展自动化测试,对于不适合的应该及时提出。

可以开展自动化测试,通常需要同时满足以下条件:

 

3.1. 需求不会频繁变动

需求的稳定性决定了自动化脚本的维护成本。如果软件需求变动过于频繁,测试人员需要根据变动的需求来更新测试用例以及相关的测试脚本,而脚本的维护本身就是一个代码开发的过程,需要修改、调试,必要的时候还要修改自动化测试的框架,如果所花费的成本不低于利用其节省的测试成本,那么使用自动化测试将没有任何意义。

项目中的某些模块相对稳定,而某些模块需求变动性很大。我们便可对相对稳定的模块进行自动化测试,而变动较大的仍是用手工测试。

 

3.2. 项目周期足够长

自动化测试需求的确定、自动化测试框架的设计、测试脚本的编写与调试均需要相当长的时间来完成,这样的过程本身就是一个测试软件的开发过程,需要较长的时间来完成。如果项目的周期比较短,没有足够的时间去支持这样一个过程,那么将没有必要引入自动化测试,手工测试完全可以胜任。

 

4.计划方案制定

根据项目时间安排,制定自动化脚本的交付时间和交付范围。

在展开自动化测试之前,最好做个测试计划,明确测试对象、测试目的、测试的项目内容、测试的方法、测试的进度要求,并确保测试所需的人力、硬件等资源都准备充分。制定好测试计划后,下发给测试组内人员,测试组内人员根据计划完成各自分配的任务。

 

5. 自动化测试用例设计

自动化用例的设计和手工用例的设计一致,绝大多数情况并没有单独区分,而是统一由用例设计者设计出来,手工测试执行用例的过程中,自动化人员编写测试脚本。自动化用例的设计在实际项目中,一般分为两种情况:

 

5.1. 已有用例的自动化实现

5.1.1.    自动化转型企业

通常情况下这类的企业已经有成熟的用例,需要招聘自动化编码人员将已有的用例,实现自动化。这类的公司的自动化人员只需要根据已有的用例实现自动化即可。

5.1.2.    公司有专人负责编写用例

有些公司对于测试的质量尤其看重,这个时候往往需要一个经验丰富且对需求非常熟悉的测试人员来专门负责测试用例的编写,以防止设计漏测的发生。

 

5.2. 需要自动化编码人员编写用例

5.2.1.    只针对自动化编写用例

这种情况大多是对于已有的用例进行修改和补充,方便自动化脚本适配。

5.2.2.    编写所有用例

这种情况一般是由于公司里面的测试不多。每个人都分配任务,这个时候需要自动化测试人员根据所分配的任务设计用例,同时还可能负担起手工测试,以及用例编写者和用例执行者的身份。

 

6. 编写自动化脚本

脚本的编写和命名要符合管理规范,以便统一管理和维护。脚本编写好了之后,需要反复执行,不断调试,直到运行正常为止。调试的期间也有可能发现产品质量问题,这个时候需要提单跟踪。

脚本的质量会影响到整个自动化执行的效率以及质量,更是影响到后期的维护成本,每一个自动化脚本在诞生后,都会在后续的版本上持续运行,如果某个脚本存在质量问题,那么就意味着这个脚本所检测的测试点,会被一直漏测。

6.1. 人员要求:

自动化脚本开发人员,应该是一个合格且经验丰富的测试人员。

  • 前面在将自动化概念的时候有提到过“目前自动化测试的脚本编写,通常情况是基于已有的手工用例的基础上,将手工测试用例编写成对应的自动化脚本。”那么这就要求自动化脚本开发人员不只是能看得懂用例步骤,将其实现成自动化脚本,并且需要提取出用例的观测点,尤其的隐藏观测点(毕竟不是每一个用例编写者都会写的非常的详细)。
  • 不是所有的项目都是基于已有的用例实现自动化脚本的,也有些团队需要自动化脚本开发人员编写自动化用例。
  • 如果项目进度紧张的时候,自动化测试人员有时候需要协助,完成手工测试的任务。

 

6.2. 脚本规范要求:

  • 每个脚本应该有一个唯一的文件名(可以是用例ID),并且不同功能模块的脚本应该放到不同的目录下面。

方便后续对于脚本的查找。

  • 脚本中应该备注上用例的详细信息(包括用例ID,预置条件,用例步骤,预期结果等)

在后续通过脚本的备注,就可以方便的知道脚本里面的写的是那条用例,和用例的详细信息。

  • 脚本中应备注脚本ID,应该写上脚本作者和脚本编写时间,包括后续修改也应该写上修改人和修改时间。

第一个好处是:一眼就可以看出脚本的创建人创建时间,修改人修改时间,方便找人定位问题。

    第二个好处是:后续脚本出现问题,责任划分明确。

  • 一个脚本尽量只有一个检测点(这一点和用例的设计一致)

脚本的检测点太多,会导致两个问题。其一,脚本篇幅太长,不利于后期维护。其二,检测点过多,不利于问题定位。

  • 一定要清理环境

如果在编写脚本的时候没有对脚本修改或者创建的内容进行复原,很可能会对之后运行的脚本产生影响。

 

6.3. 流程要求

在脚本开发人员编写好脚本后,不应在直接交付脚本参与测试,而是应该组织组内专家,对脚本进行检视。确认脚本无问题后,才可参与测试。(检视一般有两种。一种是交叉检视,又组内脚本开发人员互相检视。另一种方式,是由测试经理或者自动化负责人统一检视)

 

7.自动化测试执行

7.1. 自动化脚本执行时间安排

自动化测试的执行并不依赖人员,任何时候都可以执行自动化测试。但不是任何时候都适合执行自动化脚本。

一般情况下都是在设备空闲的时候运行自动化测脚本,因为不同的脚本之间会产生影响,如果同时运行多个脚本,或者在运行脚本的同时有其余人员在使用设备,那么会引发难以定位的问题。例如:运行脚本在运行过程中需要删除某一个数据,但是恰好在脚本运行前有人使用环境人为的删除了脚本要删除的数据,那么脚本就会出错,如果不看产品的运行日志,或者说日志记录不清楚,那么很可能被当成一个“bug”来处理。但是这个“bug”并非一个真正的bug,没有办法定位和修改,最后会被当成一个无法复现的问题。这期间既浪费了开发的人力也浪费了测试的人力。

7.2. 自动化脚本执行人员的安排

自动化执行人员和脚本编写人员可以不是同一个人,在实际项目中,很可能是某一个人运行产品的所有自动化脚本。如果脚本运行失败,运行人员需要大致对脚本失败原因进行分析:如果是产品问题,需要提单跟踪;如果是脚本问题,那么可以找对应的脚本开发人员进行修改;如果是环境问题,那么就修复环境。

 

8.分析脚本运行结果

应该及时分析自动化测试结果,如果没有专人执行自动化测试,建议测试人员每天抽出一定时间,对自动化测试结果进行分析,以便尽早地发现缺陷。如果有专人负责自动化测试,可以交给专人完成。

理想情况下,自动化测试案例运行失败后,自动化测试平台会自动大致判断一下是什么缺陷,然后对于缺陷进行一个初步的分类(脚本问题?环境问题?产品问题?)。如果是产品问题,就会自动上报一个缺陷。测试人员任然需要,确认这些自动上报的缺陷,是否是真实的系统缺陷。如果是产品缺陷就提交开发人员修复,如果不是系统缺陷,就检查自动化测试脚本或者测试环境;如果是环境问题,需要去环境上面确认;如果是脚本问题,脚本开发人员修改脚本。

 

9. 跟踪测试BUG

测试记录的BUG要记录到缺陷管理工具中去,以便定期跟踪处理。开发人员修复后,需要对此问题执行回归测试,就是重复执行一次该问题对应的较薄的地方,执行通过则关闭,否则继续修改。自动化测试回归相对于手工测试回归方便很多,只需要将失败的用例和开发修改点相关的用例运行一遍即可。

如果问题的修改方案与客户达成一致,但与原来的需求有所偏离,那么在回归测试前,还需要对脚本进行必要的修改和调试。

 

10.自动化测试结果分析

在自动化脚本运行完成后,测试组长需要对测试的所有结果进行分析,分析结果一般以数据为主。例如:一共执行了多少条自动化用例,覆盖了哪些功能模块,用例通过百分比,没有通过的脚本有多少是产品问题,是否所有的产品问题都已经提单跟踪。

通过对于脚本的分析,大概了解项目的运行情况,可以及时调整人员安排和计划的制定。

 

11.自动化脚本的维护

很多自动化脚本不可能写了之后一运行就是好几年,永远不会变化。

一般情况产品的需求都可能发生变化,需求发生变化用例和脚本也会随之发生变化。这样就需要自动化脚本编写者新增脚本,或者对于不适用的脚本及时的进行剔除或者修改。

不只是需求会发生变化脚本才会变化,可能在运行脚本的时候发现脚本稳定性、可靠性不好等因素,导致某些脚本有时候运行成功,有时候运行不成功。这样也需要脚本开发者对脚本进行加固处理。

#标签:自动化测试,自动化测试流程图