测试导论
[TOC]
测试介绍
什么是测试?
运行程序,发现bug。
验证程序的正确性、完整性、安全性和质量的过程
测试的分类
按开发阶段
单元、集成、系统、验收
按是否接触代码
黑盒、白盒、灰盒
按是否运行
静态、动态
按测试对象
性能、安全、兼容性、文档、用户体验、业务、界面、安装、内存泄漏
按测试实施的组织
α、β、第三方测试
按是否手工
手工、自动化
其他
冒烟、回归
什么是自动化测试?
自动化测试是软件测试活动中一个重要分支和组成部分,随着软件行业发展,市场对软件周期及软件质量要求越来越高,催生出来各种开发模式,比如常见开发模式敏捷开发,同时对我们测试人员提更高的要求,此时,产生自动化测试,即通过工具或者脚本来达到测试的目的,没有人工或者很少人工参与的软件测试活动叫自动化测试
自动化测试就是将测试流程从手工转换为自动化实现形式
自动化测试技术是目前业内特别流行也是特别主流的一个测试技术,是目前测试人员最为核心的能力之一
[]什么是框架?
框架(framework)是一个框子——指其约束性,也是一个架子——指其支撑性。是一个基本概念上的结构,用于去解决或者处理复杂的问题。
在软件工程中,框架(Framework)是整个或部分系统的可重用设计,表现为一组抽象构件及构件实例间交互的方法;
另一种定义认为,框架是可被应用开发者定制的应用骨架,前者是从应用方面而后者是从目的方面给出的定义。
- 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,经典的持续集成工具;
- 数据库:测试数据管理;
- 项目管理工具:测试结果统计管理;