测试
黑盒、白盒、单元测试、集成测试、系统测试、验收测试
开发人员:黑盒、白盒、单元
测试人员:黑盒、集成、系统
用户: 验收测试
- 单元测试(unit testing),是指对软件中的最小可测试单元进行检查和验证。
- 集成测试:测试模块之间的接口,测试重要业务功能。各模块联调。最简单的形式:把单元测试过的多个单元组合成一个组件,测试他们之间的接口。
- 系统测试:站在用户的角度,模拟真实环境包括软件硬件外设网络等,是否符合需求。有问题提出解决方案,没有问题可以想出优化方案。测试后需要交付测试报告,说明测试数据、用例、结果。
- 包含:验证性测试即验证前两个阶段的测试。功能性测试。健壮性。安全性。可维护性。各种性能参数的测试。
白盒测试
白盒测试:也称为结构测试、逻辑驱动测试,是针对被测单元内部是如何进行工作的测试。是根据程序的控制结构设计测试用例。
主要用于
软件或程序验证。
特点
检查程序内部逻辑结构,对所有逻辑路径进行测试,是一种穷举路径的测试方法。
但即使每条路径都测试过了,仍然可能存在错误。
因为:
- 穷举路径测试无法检查出程序本身是否违反了设计规范,即程序是否是一个错误的程序。
- 穷举路径测试不可能查出程序因为遗漏路径而错误。
- 无法发现 与数据相关的错误
为了达到测试目的,做白盒测试遵循的原则
- 保证一个模块中的所有独立路径至少被测试一次
- 所有逻辑值均需测试 true/false 两种情况
- 检查程序的内部数据结构,保证其结构的有效性
- 在上下边界及可操作性范围内,运行所有循环
- 白盒测试主要是检查程序的内部结构、逻辑、循环和路径
主要考虑:
分支、循环、边界条件
1. 测试覆盖率
- 测试覆盖率:用于确认测试所执行到的覆盖项的百分比。其中的覆盖项是指作为测试基础的一个入口或属性,比如语句、分支、条件等。
- 测试覆盖率可以表示出测试的充分性,在测试分析报告中可以作为量化指标的依据,越高越好。但是这只是一种手段,不是目标。
- 测试覆盖率包含:功能点覆盖率和结构覆盖率
- 功能点覆盖率:用于表示软件已经实现的功能与软件需求实现的功能之间的比例。
- 结构覆盖率: 语句覆盖率、分支覆盖率、循环覆盖率、路径覆盖率等等。
Q: 如何保证项目完成了,或代码质量是好的?
A:单元测试、、、
2. 逻辑覆盖法
根据覆盖目标的不同,逻辑覆盖又可分为语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、组合覆盖和路径覆盖。
- 语句覆盖:选择足够多的的测试用例,是的程序中的每个可执行语句至少执行一次
- 判定覆盖(分支覆盖):通过执行足够多的的测试用例,是的每个分支 true/false 都经历一次
- 条件覆盖:设计足够多的的测试用例,使得程序中每个判定包含的每个条件的可能取值(true/false) 都至少满足一次。conditions中会有比如 a>10 && b<100 含有两个condition,那么每个condition都要覆盖。
- 注:当整个流程里有多个分支,每个分支有多个条件,那么整体测试的用例而言 会有 2x2x …关系。
- 组合覆盖:通过执行足够多的的测试用例,是的程序中每个判定的所有可能的条件取值组合都至少出现一次。
- 满足组合覆盖的测试用例一定满足判定覆盖、条件覆盖和 判定/条件覆盖。
黑盒测试
被称为功能测试或数据驱动测试。
在测试时,把被测程序视为一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下进行。
目的
在已知软件产品所应具有的功能的基础上,进行:
- 检查程序功能是否按照需求规格说明书的规定正常使用,测试各个功能是否遗漏,检查性能等特性要求是否满足。
- 检查人机交互是否错误,检测数据结构或外部数据库访问是否错误,程序是否能适当地接收输入数据而产生正确的输出结果,并保持外部信息(如数据库和文件)的完整性。
- 检查程序初始化和终止方面的错误。
黑盒测试可用于发现以下类型的错误:
- 不正确或遗漏的功能
- 接口错误,如输入、输出参数的个数、类型等
- 数据结构错误或外部信息(如外部数据库)访问错误
- 性能错误
- 初始化、终止错误
黑盒测试法的概念
- 黑盒测试是依据软件的需求规约,检查程序的功能是否符合需求制约的要求
- 主要的黑盒测试方法:设计测试用例的方法
- 等价类划分
- 边界值分析
案例:
- 输入3个整数a,b,c。是否能构成三角形,那种三角形。
要求:
条件1:1<= a <= 100
条件2:1<= b <= 100
条件3:1<= c <= 100
条件4:a < b+c
条件5:b <a+c
条件6:c< a+b
实施:
-
等价类的做法:
比如:a 的取值分成3类, 1,100分界。然后,在每个类中随便取个值 来代表这个等价类。 -
边界值方法,来设计测试用例
程序出错高频:边界,比如for循环边界,数组index越界
参考
https://www.bilibili.com/video/BV1GE411T7xv?from=search&seid=14585900912808728980