聊聊什么是自动化测试,什么是自动化测试框架
无论是在自动化测试实践,还是日常交流中,经常听到一个词:框架。之前学习自动化测试的过程中,一直对“框架”这个词知其然不知其所以然。
最近看了很多自动化相关的资料,加上自己的一些实践,算是对“框架”有了一些理解,这篇博客,就聊聊自动化框架的一些事吧。。。
一、什么是自动化测试
自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程。通常,在设计了测试用例并通过评审之后,由测试人员根据测试用例中描述的规程一步步执行测试,得到实际结果与期望结果的比较。在此过程中,为了节省人力、时间或硬件资源,提高测试效率,便引入了自动化测试的概念。
优点:
①对回归测试更方便:
进行回归测试,要测试系统的所有功能模块,周期较长的回归测试工作量大,测试比较频繁,适合自动化测试。由于测试的脚本和用例都是设计好的,测试期望的结果也可以预料,将回归测试自动化可以极大的提高效率缩短回归时间。
②模拟真实情况:
可以执行手工测试无法执行的测试,比如同时并发上千用户测试系统的负载量
③有效的利用人力物力资源:
频繁地机器化的动作可以用自动化测试执行,减少错误的发生,更好的利用人力资源。
④测试的重复利用:
由于自动测试
通常使用的是自动化脚本技术,这样就可以只需要做较少的甚至是不修改就可以实现在不同的测试过程中使用相同的用例。
⑤减少人为的错误:
自动化测试是机器完成,不存在执行过程中人为的疏忽和错误,测试设计完全决定了测试的质量,可以降低减少人为造成的错误。
缺点:
①自动化测试是工具执行,没有思维,无法进行主观判断,对界面色彩、布局和系统的奔溃现象无法发现,这些错误通过人眼很容易发现。
②自动化测试工具本身是一个产品,在不同的系统平台或硬件平台可能会受影响,在运行时可能影响被测程序的测试结果。
③对于需求更改频繁的软件,测试脚本的维护和设计比较空难。
④自动化测试是机器执行,发现的问题比手工测试要少很多,通过测试工具没有发现缺陷,并不能说明系统不存在缺陷,只能通过工具评判测试结果和预期效果之间的差距。
⑤自动化测试要编写测试脚本,设计场景,这些对测试人员的要求比较高,测试的设计直接影响测试的结果。
二、什么是框架
框架(framework)是一个框子——指其约束性,也是一个架子——指其支撑性。是一个基本概念上的结构,用于去解决或者处理复杂的问题。
在软件工程中,框架(Framework)是整个或部分系统的可重用设计,表现为一组抽象构件及构件实例间交互的方法;
另一种定义认为,框架是可被应用开发者定制的应用骨架,前者是从应用方面而后者是从目的方面给出的定义。
上面的概念比较抽象,换另一个角度解释:
1、框架本身一般不完整到可以解决特定问题;
2、框架天生就是为扩展而设计的;
3、框架里面可以为后续扩展的组件提供很多辅助性、支撑性的方便易用的工具,也就是说框架是配套了一些帮助解决某类问题的库(libraries)或工具(tools)。
约束性:针对解决特定问题的软件框架会首先定义问题的边界,进而将相关的软件组件约束在这个边界内,保持框架在解决问题方面上的内聚性。
支撑性:框架本身不解决什么问题,但给了解决问题的相关组件一个组合底子,这个底子的科学性和易用性直接影响在此之上进一步开发的科学性和方便性
上面的2个对框架的解释和定义,看起来也并没有很简单直白的说清楚什么是框架,下面是我的一些理解:
定义:为解决某些特定问题而约束边界,支撑整个问题解决方案,配套了一些解决问题的组件而构成的工具。
特定问题:什么问题?——自动化测试
约束边界:为什么约束?——明确测试范围和目的
解决方案:用什么方案解决问题?——编程语言+工具+其他
构成工具的组件:哪些组件?—— 用例、脚本、数据、日志、报告、通知
工具:特点是什么?—— 灵活性、可扩展性、高内聚低耦合
三、自动化测试框架
构成框架的组件,最起码应该具备以下的功能:
Log:日志记录和管理功能,针对不同的情况,设置不同的日志级别,方便定位问题;
Report:测试报告生成和管理以及即时通知,测试结果快速响应;
Source:配置文件、静态资源的管理,遵循高内聚低耦合原则;
Common:公共函数、方法以及通用操作的管理,遵循高内聚低耦合原则;
TestCase:测试用例管理功能,一个功能点对应一个或者多个case,尽可能的提高覆盖率;
TestData:测试数据管理功能,数据与脚本分离,降低维护成本,提高可移植性;
TestSuite:测试组件管理功能,针对不同场景不同需求,组装构建不同的测试框架,遵循框架的灵活性和扩展性;
Statistics:测试结果统计管理功能,每次执行测试的结果统计、分析、对比以及反馈,数据驱动,为软件优化和流程改进,提供参考;
Continuous:持续集成环境,即CI环境,包括测试文件提交、扫描编译、执行测试、生成报告及时通知等功能,持续集成是自动化测试的核心!
四、常见的自动化测试框架
1、接口自动化框架:
①、java+testNG/Junit+Maven/Ant/Gradle+Jenkins+MySQL+testlink/redmine
②、python+unittest/pytest+Git+Jenkins+MySQL+testlink/redmine
③、python+rebot framework+unittest/pytest+Git+Jenkins+MySQL+testlink/redmine
④、jmeter+Maven/Ant+Jenkins+MySQL+testlink/redmine
2、UI自动化测试框架
①、java+selenium/appium+testNG/Junit+Maven/Ant/Gradle+Jenkins+MySQL+testlink/redmine
②、python+selenium/appium+unittest/pytest+Git+Jenkins+MySQL+testlink/redmine
③、python+rebot framework+unittest/pytest+Git+Jenkins+MySQL+testlink/redmine
通过上面的一些常见框架,你发现了什么?
它们都拥有共同特性:编程语言+单元测试框架+扫描编译工具+持续集成工具+数据库+项目管理工具。
编程语言:编写测试脚本、日志记录和输出;
单元测试框架:提供测试脚本运行、异常校验等一些列的配置;
扫描编译工具:测试文件扫描编译,一般配合持续集成工具使用效果更佳;
持续集成工具:Jenkins,经典的持续集成工具;
数据库:测试数据管理;
项目管理工具:测试结果统计管理;
PS:自动化测试工具太多,上面只是列举了使用率较高以及我个人还算了解的一些开源工具,具体的框架选型,需要根据具体项目特点和团队、个人技术特点来决定!
关于自动化测试框架的一些理解和思考总结,就是上面这些内容,提到的一些框架组件可能存在不合理的地方,仅供参考,如有更好的建议,请指出,不胜感激。。。
最后在我的QQ技术交流群里整理了我这10几年软件测试生涯整理的一些技术资料,包括:电子书,简历模块,各种工作模板,面试宝典,自学项目等。如果在学习或工作中遇到问题,群里也会有大神帮忙解答,群号 798478386 ( 备注 csdn555 )
全套软件测试自动化测试教学视频
300G教程资料下载【视频教程+PPT+项目源码】
全套软件测试自动化测试大厂面经
聊聊什么是自动化测试,什么是自动化测试框架相关推荐
- web前端自动化测试(基于QT4W框架)
目录 web前端自动化测试(基于QT4W框架) 一.背景 1.1前端测试种类 二.技术方案 三.核心代码 3.1控件封装 3.2操作控件方法实现 3.3测试用例case 3.4断言方法 web前端自动 ...
- 不会做UI自动化测试?一起设计框架再实践吧
目的 相信做过测试的同学都听说过自动化测试,而UI自动化无论何时对测试来说都是比较吸引人的存在. 相较于接口自动化来说它可以最大程度的模拟真实用户的日常操作与特定业务场景的模拟,那么存在即合理,自动化 ...
- 史上最全 Appium 自动化测试从入门到框架实战精华学习笔记(二)
本系列文章汇总了从 Appium 自动化测试从基础到框架高级实战中,所涉及到的方方面面的知识点精华内容(如下所示),希望对大家快速总结和复习有所帮助. Appium 自动化测试从基础到框架实战 App ...
- 自动化测试---移动端自动化测试项目搭建(Appium+IDEA)
自动化测试---移动端自动化测试项目搭建(Appium+IDEA) 模拟器+Appium操作 IDEA项目搭建 模拟器+Appium操作 首先打开黑窗口 输入命令 注:具体命令可看上一篇博客 第一步从 ...
- android手机自动化测试,Android手机自动化测试实例详解
2014-9-24 本人从参加工作以来,一直在做自动化测试方面的工作.最初接触的是Web自动化,后来又做接口自动化测试.由于最近几年手机应用越来越广泛,手机应用的自动化测试也发展的很快,所以我就利用工 ...
- 聊聊并发(八)——Fork/Join框架介绍
转载自 聊聊并发(八)--Fork/Join框架介绍 1. 什么是Fork/Join框架 Fork/Join框架是Java7提供了的一个用于并行执行任务的框架, 是一个把大任务分割成若干个小任务, ...
- 自动化测试基础篇--Selenium框架设计(POM)
一.自动化测试框架 感谢木棉花的漂泊分享,内容转自链接:http://www.cnblogs.com/fengyiru6369/p/8053035.html 1.什么是自动化测试框架 简单来说,自动化 ...
- unittest测试框架_python接口自动化测试 - 4.unittest单元测试框架学习
简介 unittest就是python的一个单元测试框架,unittest非常适合做自动化测试. 官方源码栗子: import unittestclass IntegerArithmeticTestC ...
- 初探自动化测试(爬虫)框架nightmarenightwatch
一.nightmare Nightmare 是一个基于 Electron 的框架,利用了 Electron 提供的 Browser 的环境,用于 Web 自动化测试和爬虫(其实爬虫这个是大家自己给这个 ...
- 【自动化测试】Web自动化测试框架01
目录 测试框架 PageObject 项目介绍 测试代码结构 项目源代码 common PageObject.py SendEmail.py Url.py Page searchPage.py tes ...
最新文章
- 信通院2018人工智能发展白皮书技术篇重磅发布
- JCO连接SAP例子
- OOP_由C到C++
- mobi格式电子书_没有kindle,如何用手机阅读mobi格式的电子书?
- 1200可以读取modbus tcp_S7-1200 作 MODBUS TCP服务器
- LeetCode 940. 不同的子序列 II(动态规划)
- 带有Python示例的math.cos()方法
- switch语句php,PHPswitch 语句 - PHP教程
- Redis的服务端启动和客户端连接
- 路由模式 -- ADSL账号密码拨号
- eclipse部署Javaweb项目
- 目标跟踪 MOSSE(Visual Object Tracking using Adaptive Correlation Filters)
- 图片计算景深matlab程序,在线景深计算器
- 图卷积在语义分割上的应用(论文集)
- 写在“华为伙伴暨开发者大会”前夕:给昇腾AI划三个重点
- 全球首发,国产开源「文本-视频生成」模型!免费在线体验,一键实现视频生成自由...
- 服务器 12 种基本故障+排查方法
- 1.Windows环境配置
- linux sftp与ftp,Linux ftp和sftp命令
- 虚拟机安装华为模拟器eNSP过程中所遇问题与解决办法
热门文章
- Android:方向传感器
- Android开发之方向传感器的使用
- 【实战】疾病-基因与图神经网络和图自动编码器的相互作用
- 离散数学 --- 特殊关系 --- 偏序关系,哈斯图和特殊元素以及其它次序关系
- FTP服务简介与配置
- “智慧路灯”、“一杆多用”、“智慧灯杆”将成为新型智慧城市建设的重要决策部署
- 自然语言处理 情绪识别
- Xcode10适配之libstdc++.6.0.9.tdb
- mysql chunk_【MySQL参数】-innodb_buffer_pool_chunk_size
- 解读用巨象指纹浏览器进行引流的4种操作手法