1.1. 自动化测试的优点
● 提高测试效率和降低测试成本
● 实现快速的回归测试,加快测试进度从而加快产品发布进度
● 更多的测试,提高测试覆盖率
● 保证一致性
● 提高测试的可靠性,避免人为因素
1.2. 为什么要做自动化测试框架
通过以往的尝试,发现真正实现自动化测试,并不是掌握了某个自动化测试工具,掌握了脚本的编写技术就能够达成,面对复杂的ERP系统,简单的录制/回放并不能达到自动化测试的要求,完全通过编写脚本的方式,工作量巨大且可维护性极差、不能复用。实现自动化就是为了能够提升测试效率,不具备可维护性、复用性差将成为导致自动化测试失败的最致命因素,付出巨大代价但起到的效果甚微。
基于以上因素并结合行业发展思路,在正式实施自动化之前,必须搭建一套适合的自动化测试框架,将脚本能够有效的组织、连贯应用起来,提高测试脚本的可维护性和可读性。
1.3. 希望达成的目标
搭建符合以下要求的自动化测试框架,使得未来自动化测试正式实施时能够有序、高效的开展:
● 高复用性
● 高可维护性
● 稳定性
● 快速编写脚本
● 自动执行
● 正确输出结果
● 能够不断提升自动化测试比例
1.4. 实现思路
● 分层设计:业务流程、功能点、操作组件
我们在进行测试时,首先会验证各个页面、各个字段的正确性,到验证功能点的正确性,再组合各个功能点进行业务逻辑、业务流程的验证,最终确保系统满足业务需求。
* 对于自动化脚本,采用分层的思想,先实现最底层的操作组件,通过调用操作组件、及业务逻辑实现对功能点的验证,再通过调用业务逻辑组合功能点实现对业务流程的验证。不同的业务流程,对于底层的操作组件、中间层的功能点函数是完全可以复用的,只是调用的业务逻辑的差异,或者是测试数据的差异性。
* 尽可能做到各脚本之间具备独立性,不相互依赖,便于进行各种基本场景的组合运行。
如销售系统中的选择房间操作,在做预约、小订、认购等操作时,都需要用到选择房产,因此可以将选择房产做为一个公共的操作组件,详细描述选择房产的操作步骤,在测试新增预约、新增小订、新增认购等功能点时都需要调用到选择房产的操作组件,只是业务的校验逻辑与所选择的数据不一致。
再看业务流程,新增一个小订单后可以作废,也可以由小订转认购,业务流程就有两个:新增小订单—作废订单,新增小订单—转认购,这两个业务流程中“新增小订单”这个功能点是一致的,可以通过调用不同的用例数据组合成不同的业务流程。
● 脚本分离设计:对象、操作、测试数据、业务逻辑相互剥离、灵活调用
对某个功能进行自动化测试,实际上就是对这个功能涉及的对象进行操作,输入测试数据来验证其结果的正确性,复杂的验证点需要编写业务逻辑。如果全部用脚本的方式编写,针对每一条测试数据就需要编写一份脚本,脚本量相当巨大,同时任何改动(程序、测试用例、GUI对象)都需要调整大量的脚本。
为了达到可维护性、可复用性,将对象、操作、测试数据、业务逻辑剥离、分开管理,通过调用关系去组合实现不同的测试用例。
* 对象资源库
* 测试数据资源库
* 操作组件(描述操作步骤)
* 脚本:业务逻辑
分离后,如果要增加测试用例,只需要维护测试数据,如果程序修改,增加了对象,那么只需要维护对象库、操作组件,增加对这个对象的操作。
● 封装基础函数、基本的业务逻辑、验证点
通过对基本业务逻辑、验证点的封装、调用,实现快速的脚本开发
如一个数据保存的功能,每一条数据在做了增、删、改的操作后,都需要验证保存至后台数据库的数据正确性,通过预期结果与数据库实际产生的数据集进行比较验证,在获取数据库实际产生的数据集的方式是通用的,只是不同的功能所要验证的数据表、字段及Where条件不一致,获取数据集的方式就可以封装成一个基础函数,传入不同的SQL语句做为参数即可。同时预期结果与实际结果集的比较也可以封装为基础函数。
再如,系统页面中在某些操作或条件下,部分字段是只读不允许编辑的,或者是隐藏不显示的,编写脚本时需要对每一个对象写一条语句验证其只读和隐藏属性的正确性,如果将只读和隐藏属性的验证进行封装,针对每一个页面进行验证,那么只需要传入这个页面只读或隐藏的对象名称,调用封装的函数执行验证。可以大大减少脚本量,也更易于维护。
● 有效的执行体系
* 批量、定制执行、自动运行
自动化测试真正达到提升测试效率,需要实现无人值守情况下的批量自动执行,并且可以定制执行。
* 异常处理机制
脚本执行过程中,因程序错误或环境问题、脚本自身问题经常会出现非预期的错误:如意料外的弹出窗口、发现错误的数据、未找到对象、输入文件打不开或不能读等,有些情况下当前用例出错,并不影响后续用例的执行,需要支持异常处理机制,终止执行或者终止当前用例,继续后续用例的执行,亦或者跳过当前步骤,继续执行后续操作,并输出当前的错误报告。
* 业务数据还原初始状态
自动化测试需要循环执行,执行完成后,需要恢复初始状态(主要是业务数据),以使得程序重新提交版本后能够循环执行,不断的对新版本进行回归验证。
* 版本管理
随着待验证版本的不一致,自动化测试脚本也会不断的更新、维护,同样需要进行版本管理。
● 结果体系
* 针以每条用例,输出用例执行结果
* 针对每个检查点,输出详细的检查点执行结果
* 输出执行日志
● 结构化管理
对象、操作组件、基础函数、测试数据、功能点脚本、业务流程组合,如此多的层级、调用关系,必须进行结构化管理,采用高度组织化的目录结构、分级管理,方便进行正确及快速的调用,方便能够快速定位、查找问题。
(以上言论仅代表作者的个人观点,不代表51Testing观点)
版权声明:本文出自liqf的51Testing软件测试博客:http://www.51testing.com/?4340
原创作品,转载时请务必以超链接形式标明本文原始出处、作者信息和本声明,否则将追究法律责任。
分享到:
相关推荐
通过以往的尝试,发现真正实现自动化测试,并不是掌握了某个自动化测试工具,掌握了脚本的编写技术就能够达成,面对复杂的ERP系统,简单的 录制/回放并不能达到自动化测试的要求,完全通过编写脚本的方式,工作量...
【文档标题】:“WEB自动化测试框架文档.doc” 【文档描述】:该文档详细阐述了WEB自动化测试的关键思路、编码基础和框架介绍,旨在提供一套有效的自动化测试解决方案。 【标签】:“WEB自动化测试框架文档.doc” ...
#### 二、接口自动化测试框架设计思路 1. **测试流程**: - **数据准备**:向测试数据库插入必要的测试数据。 - **接口调用**:通过HTTP请求调用目标系统的接口。 - **结果获取**:系统根据请求参数查询数据库并...
【标题】"基于appium+java 的APP UI自动化测试框架.zip"揭示了这个压缩包内容主要涉及使用Appium和Java语言构建的移动应用UI自动化测试框架。Appium是一款开源的自动化测试工具,它允许开发者对Android和iOS平台的...
本文将详细介绍一种轻量级B2C自动化测试框架的设计思路与实践经验。 #### 二、轻量级B2C自动化测试框架的重要性 在电商行业中,由于业务需求的快速变化,测试团队面临着巨大的压力。一方面,需要确保产品质量,另一...
在本文中,我们将详细介绍面向 WinForm-Control 的自动化测试框架的设计与实现,包括 WinForm Control 的特点、自动化测试的原理及过程、现有的单元测试框架、 ComponentGUI 的设计和实现、自动化测试的思路和步骤等...
**Python-Robot Framework:通用自动化测试框架详解** Python-Robot Framework是一个强大且灵活的开源自动化测试框架,尤其适合于系统集成、验收测试以及端到端的业务流程验证。它的设计思路是面向关键字驱动,允许...
通过以上内容的详细解读,我们可以了解到分布式自动化测试框架设计的重要性和研究方向,以及DSATE框架的理论基础、设计思路、功能特点及其潜在优势。这些知识点对于IT行业的专业人士来说,是深入理解和掌握自动化...
云管理平台自动化测试框架研究的...同时,通过研究云管理平台自动化测试框架的高可行性和高效性,为未来云平台测试提供了新的思路和方法。此外,随着技术的发展,自动化测试框架的研究和应用将得到进一步的深化和拓展。
### Web自动化测试框架文档知识点详解 #### 一、自动化测试的关键思路介绍 1. **背景与意义** - 在软件开发过程中,测试占据了相当大的比例(通常为40%-60%的总开发时间),因此优化测试流程对于提高整体开发效率...
本文将介绍基于JS脚本的BOSS系统自动化测试框架的研究和实现,主要包括BOSS系统的特点和面临的挑战、自动化测试框架的建设思路、基于JS脚本的自动化测试框架的设计和实现等内容。 BOSS系统的特点和面临的挑战 BOSS...
【QTP自动化测试框架SAFFRON详解】 ...它的设计思路和实现方式为理解和自定义自动化测试框架提供了很好的参考。通过深入理解SAFFRON的内部工作机制,测试工程师可以更好地利用自动化测试框架来提升测试效率和质量。
接口自动化测试方案 本文档主要介绍了接口自动化测试方案的设计和实现,旨在确保系统的稳定性和可靠性。该方案主要包括测试需求、测试方法、测试工具、测试环境、测试思路等几个方面。 测试需求 根据公司项目的...
然而,尽管自动化测试具有诸多优点,也存在一些错误的思路,例如认为所有的测试都能被自动化、自动化测试可以完全取代人工测试、不需要对测试人员进行培训、可以减少测试方案的制定等。这些观点都是错误的,因为自动...
同时,开始学习自动化测试框架,能够根据产品的实际情况来编写合适的测试框架。 以上,我认为大体就是学习web自动化测试的一个思路。都是个人观点,而且由于时间原因,写的不是很详细,还请大家见谅。
- **《自动化测试解决方案》**:概述了自动化测试的整体框架和技术路线。 - **《采购通自动化测试总体设计》**:提供了更为具体的自动化测试策略和技术实现细节。 - **《采购通功能设计说明书》**:详细描述了被测...