JavaShuo
【刷题】面筋-测开-自动化测试原理与框架
时间 2020-06-08
标签
刷题
面筋
自动化
测试
原理
框架
目录
自动化测试
自动化框架
常见的自动化测试框架
自动化测试的流程
自动化测试工具脑图
参考连接
自动化测试
概述
自动化测试,就是把以人为驱动的测试行为转化为机器执行的过程。
自动化测试每每经过一些测试工具或框架,编写自动化测试用例,来模拟手工测试过程。
阶段:通常落后于新功能的手工测试阶段,能够在手工用例执行完成或功能上线后,再补充。
分类
自动化测试广义说法包括,白盒自动化测试,GUI自动化测试,性能自动化测试
GUI自动化测试的原理:经过软件模拟用户实际的鼠标和键盘操做,实现自动化执行和操做的过程。
性能自动化测试的原理:经过客户端模拟多个虚拟用户并发请求,来检验服务器的性能行为是否知足系统要求。
自动化测试的优势:
一、经过录制,编写脚本执行测试,减小回归测试
二、执行手工测试困难,或不可能作得测试,(模拟多个用户并发测试)
三、更好的利用资源,(将繁琐的任务自动化,利用晚上或周末的时间进行执行自动化测试)
四、测试具备一致性和可重复性,(重复屡次相同的测试,在不一样配置下执行,能够在不一样的操做系统测试)
五、测试的复用性
六、缩短测试的时间和周期
自动化测试局限:
一、不能取代手工测试:手工测试比自动化测试发现的bug要多;
二、自动化测试对测试人员的要求相对更高;
三、测试用例须要根据版本迭代进行更新,有必定维护成本;
四、工具自己不具备想象力
五、对测试质量的依赖性极大
但愿借助自动化流程解决的问题
一、测试时间紧张,手工测试可能覆盖不全,容易错过某些边界状况;
二、模块间强耦合时,单纯从页面进行测试时,比较难深刻发现问题;
三、回归测试时,须要投入较大的人力和工时;
四、实现手工测试没法达成的测试任务,如并发;
五、经过编写测试用例,加深对业务/数据的认知,有助于下阶段迭代中发现隐藏的问题。
引入自动化测试的前提条件
项目周期长,需求变更不频繁;
自动化测试脚本可重复使用;
测试任务手工测试难以实现;
作自动化测试须要具有的能力
编码能力;
熟悉被测系统;
掌握一个自动化测试框架/工具;
不断学习;
自动化测试用例设计原则
保持case的独立性;
保持case的可迁移性;
提高case的执行效率;
自动化框架
概述
定义:为解决某些特定问题而约束边界,支撑整个问题解决方案,配套了一些解决问题的组件而构成的工具。
特定问题:什么问题?——自动化测试
约束边界:为何约束?——明确测试范围和目的
解决方案:用什么方案解决问题?——编程语言+工具+其余
构成工具的组件:哪些组件?—— 用例、脚本、数据、日志、报告、通知
工具:特色是什么?—— 灵活性、可扩展性、高内聚低耦合
图示
组件
Log:日志记录和管理功能,针对不一样的状况,设置不一样的日志级别,方便定位问题;
Report:测试报告生成和管理以及即时通知,测试结果快速响应;
Source:配置文件、静态资源的管理,遵循高内聚低耦合原则;
Common:公共函数、方法以及通用操做的管理,遵循高内聚低耦合原则;
TestCase:测试用例管理功能,一个功能点对应一个或者多个case,尽量的提升覆盖率;
TestData:测试数据管理功能,数据与脚本分离,下降维护成本,提升可移植性;
TestSuite:测试组件管理功能,针对不一样场景不一样需求,组装构建不一样的测试框架,遵循框架的灵活性和扩展性;
Statistics:测试结果统计管理功能,每次执行测试的结果统计、分析、对比以及反馈,数据驱动,为软件优化和流程改进,提供参考;
Continuous:持续集成环境,即CI环境,包括测试文件提交、扫描编译、执行测试、生成报告及时通知等功能,持续集成是自动化测试的核心!
常见的自动化测试框架
一、接口自动化框架:
①、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
二、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,经典的持续集成工具;
数据库:测试数据管理;
项目管理工具:测试结果统计管理;
面试总结
框架:6项 -- 编程语言+单元测试框架+扫描编译工具+持续集成工具+数据库+项目管理工具。
具体:10项
日志记录和管理功能;测试报告;配置文件、静态资源;公共函数、方法以及通用操做;测试用例;测试数据;测试组件;测试结果统计;持续集成环境。
自动化测试的流程
分析自动化测试需求,通常在手工测试以后开始;
根据项目的特色、选择合适的自动化测试工具,并搭建测试环境
测试用例设计和开发:设计测试用例;或提取手工测试的测试用例,转化为自动化测试用例
开发自动化软件测试框架和测试脚本
执行:经过工具、代码实现自动化的构造输入、自动检测输出结果是否知足预期
生成自动测试报告
持续改进、脚本优化
游戏自动化测试的思考
参考文章:
游戏自动化测试三三二二
自动化测试工具脑图
参考连接
自动化测试原理和优势以及限制
最明白的自动化原理
自动化测试框架总结
聊聊自动化测试框架
web自动化测试
6种自动化测试框架(总有一款适合你)
几种常见自动化测试框架
END