软件测试的分类

一、软件测试的分类

1.按测试层次分类:

(1)底层测试:单元测试

(2)接口测试:集成测试(完成系统内单元之间接口和单元集成为一个完整系统的测试。)

(3)系统层次:系统测试

(4)用户层次:验收测试(验证是否是用户真正所需要的产品特性,验收测试关注用户环境、用户数据,而且用户也参与测试过程中。)

2.按被测试的对象(单元/组件、文档、子系统、系统等)分类:

(1)单元测试:包括组件测试、模块测试等。

(2)程序测试

(3)系统测试

(4)文档测试:包括需求文档、设计文档、用户手册等。

(5)Web应用测试、客户端测试

(6)数据库测试、服务器测试

3.按测试阶段分类:

(1)传统软件测试流程:一般分为需求评审、设计评审、单元测试、集成测试、系统测试、验收测试、a测试、b测试等。

(2)敏捷测试流程:一般分为测试需求分析、迭代测试计划、持续的单元和系统测试、验收测试等。

4.按测试目的分类:

(1)功能(正确性)测试:验证每个功能是否按照事先定义的要求那样正常工作。

(2)压力(负载)测试:用来检查系统在不同负载条件下的系统运行情况,特别是高负载、极限负载下的系统运行情况,以发现系统不稳定、系统性能瓶颈、内存泄露、CPU使用率过高等问题。

(3)性能测试:测定系统在不同负载条件下的系统具体的性能指标。

(4)可靠性测试:检验系统是否能保持长期稳定、正常的运行,如确定系统平均故障间隔时间。可靠性测试包括强壮性测试和异常处理测试。

(5)灾难恢复性测试:在系统崩溃、硬件故障或其他灾难发生之后,重新恢复系统和数据的能力测试。

(6)安全性测试:测试系统在应对非授权的内部/外部访问、有意攻击时的系统防护能力。

(7)兼容性测试:测试系统在不同运行环境(网络、硬件、第三方软件等)下的实际表现。

(8)回归测试:为保证软件中新的变化(新增加的代码、代码修改等)不会对原有功能的正常使用有影响而进行的测试。

(9)安装测试:在一个真实的或近似的用户环境中,验证系统是否能按照安装说明是成功地完成系统的安装,其中要考虑环境的不同设置或配置、安装文档的准确性等。

5.其他分类:

(1)根据测试过程中被测软件是否被执行,可分为静态测试和动态测试。

(2)根据是否针对系统的内部结构和具体实现算法来完成测试,可分为白盒测试和黑盒测试。

(3)按照测试是否由软件工具来完成测试工作,可分为手工测试和自动化测试。

 

二、静态测试和动态测试

静态测试:对软件产品的需求和设计规格说明书的评审、对程序代码的审查以及静态分析等。

动态测试:通过真正运行程序发现错误,通过观察代码运行过程,来获取系统行为、变量实时结果、内存、堆栈、线程以及测试覆盖度等各方面的信息,来判断系统是否存在问题,或者通过有效的测试用例,对应的输入输出关系来分析被测程序的运行缺陷,来发现缺陷。

1.静态测试

(1)软件评审

定义:对软件元素或者项目状态的一种评估手段,以确定其是否与计划的结保持一致,并使其得到改进。检验工作产品是否正确得满足了以往工作产品中建立的规范。

目的:通过软件评审尽早地发现产品中的缺陷,将问题记录下来,使其具有可追溯性,找出问题产生的根本原因,在将来的项目开发中进一步减少缺陷,有利于软件质量的提高。

形式:互为评审(同行评审)、走查、会议评审。

对象:主要分为管理评审、技术评审、文档评审、流程评审。对于软件测试,应该包括需求评审(需求规格说明书)、设计评审、代码评审(程序结构、代码风格、算法等)和文档评审(格式、术语、内容)。

(2)静态分析

定义:对系统的源代码进行研读,查找错误或收集一些度量数据,并不需要对代码进行编译和仿真运行。

分析手段:人工检测、计算机辅助静态分析。

 

三、主动测试和被动测试

1.主动测试

定义:测试人员主动向被测试对象发送请求、或借助数据、事件驱动被测试对象的行为,从而验证被测试对象的反应或输出结果。

2.被动测试(适合性能测试和在线监控)

定义:测试人员不干预产品的运行,而是被动地监控产品的运行,通过一定的被动机制来获得系统运行的数据,包括输入、输出数据。

 

四、黑盒测试和白盒测试

1.白盒测试

定义:也称结构化测试或逻辑驱动测试,已知产品的内部工作过程,清楚最终生成软件产品的计算机程序结构及其语句,按照程序内部的结构测试程序,测试程序内部的变量状态、逻辑结构、运行路径等,检验程序中的每条通路是否都能按预定要求正确工作,检查程序内部动作或运行是否符合设计规格要求,所有内部成分是否按规定进行。

白盒测试基本原则:

(1)在执行测试时,先考虑各个分支被覆盖;

(2)再考虑完成所有逻辑条件分别为真值和假值的测试;

(3)如果有更高的质量要求,测试对象流程图中所有独立路径至少被运行一次;

(4)检查内部数据结构,注意上下文的影响,以确保其测试的有效性。

2.黑盒测试

定义:也称数据驱动测试方法,在完全不考虑程序内部结构和内部特性的情况下,测试人员针对软件直接进行测试。检查系统功能是否按照需求规格说明书的规定正常使用、是否能适当地接收输入数据而输出正确的结果等,检查相应的文档是否采用了正确的模板、是否满足规范要求。

黑盒测试常用于发现以下缺陷:

(1)有错误的功能或遗漏了某项功能;

(2)不能正确地接收输入数据,输出错误的结果;

(3)功能操作逻辑不合理、不够方便;

(4)界面出错、扭曲或不美观;

(5)安装过程中出现问题 ,安装步骤不清晰、不够灵活;

(6)系统初始化问题。

 

*针对不同测试对象的4种基本组合的测试方法:

                               白盒测试方法                                  黑盒测试方法
静态测试方法

                          静态-白盒测试方法

(对源程序代码的语法检查、扫描、评审等)

                              静态-黑盒测试方法

(对需求文档、需求规格说明书的审查活动,一些非技术性文档测试等)

动态测试方法

                          动态-白盒测试方法

(在单元测试中,一边运行代码,一边对结果进行检查、验证和调试等)

                              动态-黑盒测试方法

(在运行程序时,通过数据驱动对软件进行功能测试,从用户角度验证软件的各项功能)

你可能感兴趣的:(软件测试,软件测试,测试分类,测试方法)