测试|测试分类
文章目录
- 测试|测试分类
- 1.按照测试对象分类(部分掌握)
- 2.是否查看代码:黑盒、白盒灰盒测试
- 3.按开发阶段分:单元、集成、系统及验收测试
- 4.按实施组织分:α、β、第三方测试
- 5.按是否运行代码:静态、动态测试
- 6.按是否手工划分
- 7.按跨地域分:国际化、本地测试(略)
1.按照测试对象分类(部分掌握)
2.是否查看代码:黑盒、白盒灰盒测试
黑盒测试/数据驱动测试:就是在完全不考虑程序逻辑和内部结构的情况下,检查系统功能是否满足规范需求。只注重软件功能。
黑盒测试的优缺点:优点不关注软件内部实现 ,需要从用户角度出发设计测试用例 ,测试用例是基于软件需求开发文档。缺点:代码覆盖率比较低。
白盒测试:一般用来分析程序的内部结构,针对程序的逻辑结构设计测试用例进行测试。关注代码逻辑,对业务功能有一定漏洞。
主要有六种测试方法:语句测试、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖、路径覆盖。
白盒测试优缺点:优点代码覆盖率高,缺点业务功能覆盖率较低。
灰盒测试:介于白盒和黑盒测试之间的测试,多用于集成测试阶段。
灰盒测试特点:既关注输入输出的正确性,同时也关注程序内部的情况。
3.按开发阶段分:单元、集成、系统及验收测试
顺序:单元测试–>集成测试–>冒烟测试–>系统测试–>回归测试–>验收/交付测试(系统测试之后)
冒烟测试的执行:
单元测试:
单元测试是对软件组成单元进行测试。其目的是检验软件基本组成单位的正确性。测试的对象是软件设计的最小单位:模块。又称为模块测试
测试阶段:编码后或者编码前(TDD)
测试对象:最小模块
测试人员:白盒测试工程师或开发工程师(测试人员+后端开发人员)
测试依据:代码和注释+详细设计文档
测试方法:白盒测试(语句覆盖、判定覆盖、条件覆盖…(6))
测试内容:模块接口测试、局部数据结构测试、路径测试、错误处理测试、边界测试Java如何进行单元测试?
利用Junit等框架
集成测试:
集成测试也称联合测试(联调)、组装测试,将程序模块采用适当的集成策略组装起来,对系统的接口及集成后的功能进行正确性检测的测试工作。集成主要目的是检查软件单位之间的接口是否正确。
测试阶段:一般单元测试之后进行
测试对象:模块间的接口
测试人员:白盒测试工程师或开发工程师
测试依据:单元测试的模块+概要设计文档
测试方法:黑盒测试与白盒测试相结合
测试内容:模块之间数据传输、模块之间功能冲突、模块组装功能正确性、全局数据结构、单模块缺陷对系统的影响
系统测试:
将软件系统看成是一个系统的测试。包括对功能、性能以及软件所运行的软硬件环境进行测试。
测试阶段:集成测试通过之后
测试对象:整个系统(软、硬件)测试人员:黑盒测试工程师
测试依据:需求规格说明文档
测试方法:黑盒测试
测试内容:功能、界面、可靠性、易用性、性能、兼容性、安全性等
回归测试:回归测试是指修改了旧代码后,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误 。
解决回归测试的重复性:自动化
冒烟测试:
对象:每一个新编译的需要正式测试的软件版本
测试阶段:系统测试之前完成
目的:确认软件主要功能和核心流程正常,在正式进行系统测试之前执行冒烟测试一般在**开发人员开发(也需要首先进行冒烟测试)**完毕后提交给测试人员来进行测试
时,先进行冒烟测试,保证基本功能正常,不阻碍后续的测试。
如果冒烟测试通过,则测试人员开始进行正式的系统测试,如果不通过,则测试人员可以让开发人员重新修复代码直到冒烟测试通过,再开始进行系统测试。
回归测试和冒烟测试都属于系统测试
验收测试:
测试人员:一般交给最终用户/需求方(产品)
测试方法:黑盒测试
阶段:一般是在系统测试之后
4.按实施组织分:α、β、第三方测试
α测试是由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的测试。 α测试不能由程序员或测试员完成。
Beta测试是一种验收测试。Beta测试由软件的最终用户们在一个或多个场所进行 .
第三方测试是介于开发方和用户间的组织的测试。
α测试与β测试区别:
- 环境上,α测试是公司内部进行测试,β测试环境不确定;
- 测试人员类型上,α测试是公司内部人员,β测试人员是用户
- 测试人员数量上,α测试人员数量较少,β测试人员较多
- 阶段上,α测试是在β测试之前测试
- 测试周期上,α测试周期较短,β测试周期较长
5.按是否运行代码:静态、动态测试
区别:静态测试就是不实际运行被测软件而只是静态检查程序代码,界面或文档中可能存在的错误过程;动态测试指的是实际运行被测程序输入响应的测试数据,检查实际输出结果和预期结果是否相符的过程。
大部分软件测试都属于动态测试
6.按是否手工划分
手工测试:人一个一个输入用例,观察结果与机器测试相对应,比较原始但是必须进行。
自动化测试:把人测试转化为机器执行的一个过程
Q1:自动化能否完全替代手动测试?
A1:不能,只能完成一部分
Q2:手工测试和自动化测试哪个好?
A2:自动化测试可以执行手工测试相当困难或根本做不到的测试,自动化测试具有一致性和可重复性, 自动化脚本完全可复用,自动化测试使软件更有信任度,自动化测试适合做兼容性测试,自动化测试使回归测试更方便、可靠;手工发现的缺陷远远比自动化测试得多,自动化测试对测试人员的技术要求较高,自动化测试成本投入高、风险大,自动化测试是死的,不具有情感,自动化测试完全不可能取代手工测试。
7.按跨地域分:国际化、本地测试(略)
本地化测试
国际化测试
国际化:货币格式,语言,页面布局,时间,日期,流行的设备等
什么是软件国际化?
是在软件设计和文档开发过程中,使得功能和代码设计能处理多种语言和文化习俗,使创建不同语言版本时,不需要重新设计源程序代码的软件工程方法。
测试
国际化测试
国际化:货币格式,语言,页面布局,时间,日期,流行的设备等
什么是软件国际化?
是在软件设计和文档开发过程中,使得功能和代码设计能处理多种语言和文化习俗,使创建不同语言版本时,不需要重新设计源程序代码的软件工程方法。