测试是一项复杂的系统工程,同样从不同的角度考虑可以有不同的划分方法。对测试进行分类是为了更好地明确测试的过程,了解测试究竟要完成哪些工作,尽量做到全面测试。
1.按是否需要执行被测软件的角度分类
按是否需要执行被测软件的角度来分类,可分为静态测试和动态测试。前者不利用计算机运行待测程序而应用其他手段实现测试目的,如代码审核,而后者则通过运行被测试软件来达到目的。
2.按开发阶段分类
1)单元测试。单元测试又称为模块测试,是对软件中的基本组成单位进行的测试,如一个模块、一个过程等。它是软件动态测试的最基本的部分之一,也是最重要的部分之一,其目的是检验软件基本组成单位的正确性。因为单元测试需要知道内部程序设计和细节知识,一般应由程序员来完成,往往需要开发测试驱动模块和桩模块来辅助完成单元测试。因为,应用系统有一个设计良好的体系结构就显得尤为重要。
一个软件单元的正确性是相对于该单元的规约而言的。因此,单元测试以被测试单位的规约为基准。单元测试的主要方法有控制流测试、数据流测试、排错测试、分域测试等。
2)集成测试。集成测试也称为组装测试,是在软件系统集成过程中所进行的测试,其主要目的是检查软件单位之间的接口是否正确。它根据集成测试计划,一边将模块或其他软件单位组合成越来越大的系统,一边运行该秕,以分析所组成的系统是否正确,各组成部分是否合拍。集成测试的策略主要有自顶向下和自底向上两种。
3)确认测试。确认测试又称为有效性测试。确认测试的目的是检查已实现的软件系统是否满足需求规格说明书中规定的各种需求,以及软件配置是否完全、正确。
4)系统测试。系统测试是对日 经集成好的软件系统进行彻底的测试,以验证软件系统的正确性和性能等是否满足其规约所指定的要求。检查软件的行为和输出是否正确并非一项简单的任