自动化测试实现基本策略
自动化测试与软件开发本质上是一样的,利用自动化测试工具,经过测试需求分析,设计出自动化测试用例,从而搭建自动化测试的框架,设计与编写自动化脚本,验证测试脚本的正确性,最终完成自动化测试测试脚本(即主要功能为测试的应用软件)。
1、测试系统需求分析
任何测试的基础都是被测系统的功能,不管是手工的功能测试还是自动化测试或者是性能测试,都是基于系统的功能展开的。
当测试项目满足了自动化的前提条件,并确定在该项目中需要使用自动化测试时,我们便开始进行自动化测试需求分析。此过程需要确定自动化测试的范围以及相应的测试用例、测试数据,并形成详细的文档,以便于自动化测试框架的建立。
2、自动化测试工具的选择
很多测试的同行或以前的老同事都会问,你们用什么自动化测试工具?
几年前入门测试时跟着老前辈写自动化测试工具,后来因为兴趣偶尔玩一下当时流行的自动化测试工具,再到现在毫无选择工具的余地设计自动化测试架构,越来越发觉自动化测试工具真的没有那么的重要。
工具始终是工具,思想和架构才是自动化测试的核心,同样的工具不同的人使用会出现完全不一样的结果,而且,不管是什么样的自动化测试工具,原理都有异曲同工之处。
3、自动化测试架构设计
怎样的自动化测试架构才算是一个好的架构?
第一是容易扩展,能够满足现在的功能需求,也能满足以后需要测试的功能的需求。
第二,容易维护,当业务流程、接口或页面变动的时候,只需要做一些简单的修改就可以实现。
第三,可读性强,别人能够容易读懂和接手维护。
第四,容易使用,项目组的其他人想要使用的时候能够简单地搭建和运行。
第五,有统一的编码规范、存储规范和编写风格。
第六,方便调试,当脚本运行出现问题的时候,可以方便跟踪问题产生的根源。第七,结构清晰,测试用例与测试工具和代码分离。最后,是最重要的一点,是脚本具有很高的可信性以及自动运行的稳定性。
自动化测试架构设计的时候的一些基本的策略
1)自动化测试脚本与自动化测试架构的代码分离,自动化测试架构的代码实现自动化测试的基本功能,自动化测试脚本包含业务逻辑。
2)设计清晰的脚本和配置文件的存放目录。
3)数据驱动
①测试系统相关的配置、模拟器的配置等系统级的配置用系统级配置文件存放,不要把这些值写死在脚本或代码中,否则当测试系统的环境变化的时候相应的维护成本也会很高。
②测试系统所使用到的一些规范定义取值,定义在配置文件中,在脚本中需要使用的时候引用变量定义,这样即使规范定义改变了也不需要修改脚本,只要简单的修改配置文件即可;
如果外部规范定义和内部的定义取值不一样,最好有对应的mapping定义表。
③测试数据的数据模型如果比较复杂,最好也在配置文件中对数据模型以及字段的取值进行定义,方便在脚本中创建数据时使用。
④协议或Schema或话单的格式,在配置文件中定义,当协议的格式改动的时候,只需要修改配置文件即可。
⑤脚本中尽量少用常量,输入参数、脚本运行时提取的值、测试结果的对比等,都可以使用变量,避免脚本的常量写死后引起的维护工作。
4)测试数据准备
①测试数据准备,有两种类型,一类是脚本运行前事先可以准备好的数据,这种类型的数据,可以在自动化测试前自动创建好并保存到文件中提供给测试脚本使用;另一类是脚本运行时要创建的特殊数据,这些数据可以在脚本运行的过程中调用基础脚本进行创建。
②公用的数据,如果在脚本运行的过程中被修改,在该脚本运行结束后需要恢复到原样,避免因为公用数据的修改引起其它脚本运行失败。
5)模块化:对基础脚本进行封装,一些可以公用的脚本单独封装给其余的测试脚本调用,当公用的业务逻辑改变的时候,只需要修改基础脚本,而不需要对所有的测试脚本进行改动。
6) 提供自动化脚本编写模版,新写的脚本只需要在模版的基础上做很小的改动就可以实现功能,可以节省脚本编写的时间和降低脚本编写的门槛。
4、自动化测试脚本执行
自动化脚本主要有三个用途:功能测试、为手工测试做数据准备和回归测试。在功能测试的阶段,可以利用自动化测试脚本进行数据的准备,也可以利用自动化脚本进行功能测试。在项目稳定之后自动化测试的最大价值就是回归测试。
脚本可以分为三个级别:基本流程测试脚本,用于每次出新build安装后做smoke test;
关键功能测试脚本,每次出新build后对所有重要功能进行回归测试,确保改动不会对原有功能的造成影响;
全面回归测试脚本,系统经过比较大的修改或系统上线前作回归测试。自动测试脚本在回归测试中发挥了出色的作用,特别是系统在上线前夕,为了适应客户的需求,功能不断修改,对于原有的功能,自然不可能都手工测试,脚本在这个时候的意义特别大。
5、自动化测试持续集成
自动化测试可以做到持续集成,从编译到测试,任何一步都可以自动化:
1)将所有的源代码存放在服务器,持续集成任务起来后到源代码管理服务器上进行自动编译,对编译的结果进行分析,并将编译成功的软件版本放到发布服务器;
2)将新版本的软件下载到测试环境,并且自动安装;
3)自动安装成功后进行冒烟测试,如果冒烟测试成功则证明软件的版本是可用的;
4)自动执行自动化测试脚本进行功能测试或回归测试;
5)自动化测试结束后生成测试报告,将测试结果发送邮件给相关的人员。
在持续集成中任何一步失败都会导致整个测试失败,自动化测试生成失败的测试报告,并将测试结果发送给相关的人员。
下面是我整理的2023年最全的软件测试工程师学习知识架构体系图 |
人生如一场马拉松,放慢脚步只会被淘汰,加快步伐才能接近胜利。无论前方有多少艰难险阻,坚持不懈、追求卓越,才能超越自我,实现辉煌的人生华章。奋斗,成就未来!
在漫长的人生旅途中,只有拼搏奋斗的人才能跨越山川,只有坚持不懈的人才能穿越风雨。不畏艰辛、不惧挑战,用汗水浇灌理想,用努力开启辉煌,让每一天都成为追逐梦想的起点。
奋斗是一种态度,也是一种力量,它让平凡变得伟大,让梦想绽放光彩。不论起点如何,只要持之以恒,不放弃追求,就能超越自我,收获成功的喜悦。