软件测试的分类——按测试手段来分类
2017-05-11 15:09
232 查看
根据测试时对象的可见度分为:黑盒测试、白盒测试
根据测试的状态分为:静态测试、动态测试
测试执行的方式:手工测试、自动化测试
1、黑盒测试:在完全不考虑程序内部结构和内部特性的情况下对暴露出来的接口对程序进行测试
(针对可见的功能进行测试)
优点:
1.容易实施,不需要关注内部的实现
2.更贴近用户的使用角度
缺点:
1.测试覆盖率较低,一般只能覆盖到代码量的不到40%
2.针对黑盒的自动化测试,复用率较低,维护成本较高(程序功能变化快)
黑盒测试主要测试(关注)什么?
1.是否有不正确或遗漏的功能?
2.在接口上,输入是否能正确的接受?能否输出正确的结果?
3.是否有数据结构的错误或外部信息(例如数据文件)访问错误?
4.性能上是否能满足要求?(系统测试阶段主要使用黑盒测试)
黑盒测试的主要设计方法
等价类划分法:针对很多输入条件,等价的归为一类,会形成典型的代表性的输入,根据典型的输入编写用例
边界值分析法:关注各种各样边界条件
错误推测法:基于经验或直觉判断程序中可能出现错误的地方,针对性的设计用例
因果图法:需求规格说明书,根据规格语义说明编写用例
正交试验分析法:通过正交性从一组数据中筛选典型代表性数据的设计方法
状态迁移图法:通过梳理软件功能点中的软件状态变迁关系设计用例
流程分析法:梳理程序逻辑执行路径
2、白盒测试:又称结构化测试和透明盒测试,针对程序的逻辑结构设计用例。
逻辑的单位:语句、条件、条件组合、分支、路径
优点:
1.破事测试人员去仔细思考软件的实现,理解原理
2.可以检测代码中每条分支和路径
3.揭示隐藏在代码中的错误
4.对代码的测试比较彻底
缺点:
1.昂贵(较高的覆盖率)
2.无法检测代码中遗漏的路径和数据敏感性错误(数据处理的有问题)
3.不能直接验证需求的正确性(从代码层面进行验证)
主要测试方法:代码检测法、静态结构分析法、静态质量度量法、逻辑覆盖法、基本路径测试法
灰盒测试:介于黑、白盒测试之间的,关注输出对于输入的正确性,同时也关注内部表现
3、静态测试
定义:是指无须执行被测程序,而是通过评审软件文档或代码,质量程序静态复杂度,检查软件是否符合编码标准,借以发现编写的程序的不足之处,减少错误出现的概率
方式:互审、走查、会议(不正式--正式)
4、动态测试
定义:是指通过运行被测程序,检查运行结果与预期结果的差异,并分析运行效率、正确性和健壮性等。
5.手工测试
定义:由专门的测试人员从用户视角来验证软件是否满足设计要求的行为。更适用针对深度的测试和强调主观判断的测试
众包测试、探索式测试
6.自动化测试
使用单独的测试工具软件控制测试的自动化执行以及对预期和结果进行自动检查
单元测试、接口测试、性能测试等
手工测试VS自动化测试
手工测试
优点:
易发现缺陷
容易实施
创造性、灵活性
缺点:
覆盖量化难
重复测试效率低
不一致性、可靠性低
人力资源依赖
自动化测试
优点:
高效率、速度快
高复用性
覆盖率容易度量
准确、可靠
不知疲劳
缺点:
机械、发现缺陷率低
一次性投入较大
根据测试的状态分为:静态测试、动态测试
测试执行的方式:手工测试、自动化测试
1、黑盒测试:在完全不考虑程序内部结构和内部特性的情况下对暴露出来的接口对程序进行测试
(针对可见的功能进行测试)
优点:
1.容易实施,不需要关注内部的实现
2.更贴近用户的使用角度
缺点:
1.测试覆盖率较低,一般只能覆盖到代码量的不到40%
2.针对黑盒的自动化测试,复用率较低,维护成本较高(程序功能变化快)
黑盒测试主要测试(关注)什么?
1.是否有不正确或遗漏的功能?
2.在接口上,输入是否能正确的接受?能否输出正确的结果?
3.是否有数据结构的错误或外部信息(例如数据文件)访问错误?
4.性能上是否能满足要求?(系统测试阶段主要使用黑盒测试)
黑盒测试的主要设计方法
等价类划分法:针对很多输入条件,等价的归为一类,会形成典型的代表性的输入,根据典型的输入编写用例
边界值分析法:关注各种各样边界条件
错误推测法:基于经验或直觉判断程序中可能出现错误的地方,针对性的设计用例
因果图法:需求规格说明书,根据规格语义说明编写用例
正交试验分析法:通过正交性从一组数据中筛选典型代表性数据的设计方法
状态迁移图法:通过梳理软件功能点中的软件状态变迁关系设计用例
流程分析法:梳理程序逻辑执行路径
2、白盒测试:又称结构化测试和透明盒测试,针对程序的逻辑结构设计用例。
逻辑的单位:语句、条件、条件组合、分支、路径
优点:
1.破事测试人员去仔细思考软件的实现,理解原理
2.可以检测代码中每条分支和路径
3.揭示隐藏在代码中的错误
4.对代码的测试比较彻底
缺点:
1.昂贵(较高的覆盖率)
2.无法检测代码中遗漏的路径和数据敏感性错误(数据处理的有问题)
3.不能直接验证需求的正确性(从代码层面进行验证)
主要测试方法:代码检测法、静态结构分析法、静态质量度量法、逻辑覆盖法、基本路径测试法
灰盒测试:介于黑、白盒测试之间的,关注输出对于输入的正确性,同时也关注内部表现
3、静态测试
定义:是指无须执行被测程序,而是通过评审软件文档或代码,质量程序静态复杂度,检查软件是否符合编码标准,借以发现编写的程序的不足之处,减少错误出现的概率
方式:互审、走查、会议(不正式--正式)
4、动态测试
定义:是指通过运行被测程序,检查运行结果与预期结果的差异,并分析运行效率、正确性和健壮性等。
5.手工测试
定义:由专门的测试人员从用户视角来验证软件是否满足设计要求的行为。更适用针对深度的测试和强调主观判断的测试
众包测试、探索式测试
6.自动化测试
使用单独的测试工具软件控制测试的自动化执行以及对预期和结果进行自动检查
单元测试、接口测试、性能测试等
手工测试VS自动化测试
手工测试
优点:
易发现缺陷
容易实施
创造性、灵活性
缺点:
覆盖量化难
重复测试效率低
不一致性、可靠性低
人力资源依赖
自动化测试
优点:
高效率、速度快
高复用性
覆盖率容易度量
准确、可靠
不知疲劳
缺点:
机械、发现缺陷率低
一次性投入较大