目录
一、自动化测试技术的发展和演进?
二、自动化测试的概念?
三、自动化测试的分类
四、自动化测试工具的分类
五、自动化测试的优缺点和局限
六、自动化测试的通用架构
七、自动化测试框架
八、练习题
一、自动化测试技术的发展和演进?

二、自动化测试的概念?
自动化测试:
1、是把人为驱动的测试行为转化为机器执行的一种过程。
2、即模拟手工测试步骤,通过执行由程序语言编制的测试脚本,自动地完成软件的测试设计、单元测试、功能测试、性能测试等全部工作,包括测试活动的自动化和测试过程管理的自动化。
3、按自动化的流程环节:分为?自动化测试执行技术?和?自动化测试设计技术。

【自动化测试 执行?技术】:?
1、人为驱动的测试行为 → 机器执行的过程
2、在敏捷开发模式下,自动化测试执行是必不可少的步骤
【自动化测试 设计 技术】基于 模型 的测试技术:?
1、通过模型描述软件的需求和期待的行为,自动地生成测试用例和脚本
2、通过建立系统的模型,利用模型来描述系统的需求、行为、数据等各个方面的信息
3、通过计算机算法从模型中自动地生成测试用例和测试脚本
4、通过成熟的自动化测试执行系统来执行生成的测试,从而进一步提高自动化测试的效率
测试用例设计过程(人工实施) → 测试建模(人工实施) +? 测试生成(算法自动完成)
【自动化测试 设计 技术】基于 搜索?的测试技术:?
1、包括了各种元启发式技术
2、核心思想:测试数据生成问题 → 搜索问题
3、从软件允许的输入域搜索所需的值以满足测试要求
4、经典技术:基于遗传算法的测试生成
5、基本步骤:不断地进行迭代生成测试用例集合
软件自动化测试的良好实践,涉及以下等多方面的整合:?
1、开发和发布流程
2、测试流程
3、测试规范体系
4、自动化测试设计
5、自动化测试执行
测试工程师或业务专家完成建模 → 系统自动生成测试脚本 → 自动将测试脚本发送给自动化执行系统执行 → 自动将执行结果反馈回自动测试设计系统 → 形成测试报告
三、自动化测试的分类

自动化测试目标:?
1、功能自动化测试:
① 软件功能验证
② 提高测试效率
2、非功能自动化测试 — 性能自动化测试:
① 软件性能的验证
② 完成人工无法完成的测试任务
3、非功能自动化测试 — 信息安全自动化测试:
① 漏洞检测,信息安全验证
② 完成人工无法完成的测试任务和提高测试效率
四、自动化测试工具的分类

五、自动化测试的优缺点和局限

?
?
作为测试工程师,在考虑选用自动化测试的过程中,除了考虑选用合适的测试工具外,还需要了解公司领导、项目负责人等对于自动化测试的期望,并消除他们一些不正确的期望。?

六、自动化测试的通用架构

自动化测试的通用架构:
1、通用架构从上往下依次为:?测试生成层 →?测试定义层 →?测试执行层 →?测试适配层
2、上层模块依赖下层模块来实现其功能:即上层模块调用下层模块,一般不允许下层对上层的调用(除非是消息通知)
3、上层仅依赖下层提供的接口
4、分层架构使得下层的处理逻辑和数据对上层影响(不可见),从而使得上层或下层的模块可任意变更,互不影响。
5、很好并高效地解决自动化测试系统的最大难题:维护性和可移植性。
6、优点:能降低成本地应对变更和多样性,易维护和易移植。
7、缺点:层次较多,从而可能导致该架构在执行时速度慢一些(相比人为执行的速度还是快很多的),牺牲的是实时性。
8、局限性:在需要测试脚本的动作、检查、下一动作这样的序列满足高实时性要求时,通用架构可能不完全适用。
9、在满足实时性的同时,最大程序上保持对变更的灵活应对能力的平衡方式:测试用例决定操作步骤的序列 → 适配记录该序列 → 开始命令触发序列的真正执行
测试生成层:?
1、生成测试用例或脚本 (实际通过 “测试定义层” 提供的接口来定义)
2、自动化测试设计(基于模型的测试)属于本层
3、如果是人工设计测试用例,则测试工程师的工作也属于本层
测试定义层:?
1、定义测试用例和测试过程
2、测试用例的具体描述,或者测试脚本的文本属于本层
3、关键字驱动的关键字和数据驱动的数据表(库)也属于本层
测试执行层:?
1、提供测试执行所必须的功能
2、比如:
① 对上层测试用例或者脚本进行解释执行的模块
② 提供测试记录功能的模块
③ 提供测试报告自动生成的模块
测试适配层:?
1、通常实现多个模块
2、每个模块的主要任务是:与被测对象或测试环境中的给中设备直接接口(交互),并为 “测试定义层” 的测试用例提供一致的接口。
3、比如:
① 测试用例中所需的菜单操作在?安卓?上要通过 accessibility / UI automator 来完成,编程语言是 Java
② 测试用例中所需的菜单操作在?iOS?上要通过 instrument 来完成,编程语言是 Object C (类似 C++)
测试框架:
1、这里的 “测试框架” 是在通用自动化测试架构内的一个层面。
2、与其他部分提到的测试框架含义不同:
① 这里仅指:在通用自动化测试架构中的任何自动化测试系统都应支持的通用功能的模块。
② 比如:基础的文件读写、测试结果、被测试对象的安装、初始化、卸载等方法,被测试对象出错的检测机制和恢复机制等。
七、自动化测试框架
Python 自动化测试框架的主要构成如下(包括其他编程语言如 Java / C / C++ 等),主要是自动化测试框架搭建好的文件目录构成 :

八、练习题
「Python技能树」有奖征题 —— 文件
练习题 1
问题:Python?自动化测试系统的通用架构主要包含哪些层次?(多选题)
选项:
- A. 测试生成层?
- B. 测试定义层
- C. 测试执行层
- D. 测试适配层
答案:ABCD
练习题 2
问题:Python?自动化测试系统的通用架构从上到下的分层顺序是什么?(单选题)
选项:
- A. 测试生成层 →?测试定义层 →?测试执行层 →?测试适配层?
- B. 测试定义层 →?测试执行层 →?测试适配层 → 测试生成层
- C. 测试适配层 →?测试定义层 →?测试执行层 →?测试生成层
- D. 测试适配层 →?测试执行层 →?测试定义层 →?测试生成层
答案:A
练习题 3
问题:Python 自动化测试的通用架构中,生成测试用例或脚本的是哪个层次?(单选题)
选项:
- A. 测试生成层?
- B. 测试定义层
- C. 测试执行层
- D. 测试适配层
答案:A
练习题 4
问题:Python “测试框架” 不包含自动化测试通用架构中的哪个层次?(单选题)
选项:
- A. 测试生成层?
- B. 测试定义层
- C. 测试执行层
- D. 测试适配层
答案:A
练习题 5
问题:Python “测试框架” 的主要构成文件目录有哪些?(单选题)
选项:
- A. Source、Common、Testcase、Testdate、TestSuite、Statistics、Continuous?
- B. Log、Report、Source、Common、Statistics、Continuous?
- C. Log、Report、Testcase、Testdate、TestSuite、Statistics
- D. Log、Report、Source、Common、Testcase、Testdate、TestSuite、Statistics、Continuous
答案:D
|