一:软件测试的定义和目的
定义:利用技术手段验证软件是否满足需求
目的:尽早的发现软件的缺陷,节省开发的成本,提高软件的质量,满足客户的需求。
二:软件测试的分类
1.按照测试技术划分
黑盒测试:又称为功能测试,比较简单,不需要了解程序内代码进行实现。用例方法主要有:等价类,边界值,判定表,流程分析,错误推荐法,因果图,场景分析。检查程序是否按照需求规格说明书的规定正常使用,程序是否能适当的接收和正常的输出。
白盒测试:根据程序的源代码进行测试。测试方法有:代码检查法、静态结构分析法、静态质量度量法、逻辑覆盖法、基本路径测试法。需要从代码语句中发现算法、路径、溢出、条件等中的错误,进而加以改正。
灰盒测试:介于白盒和黑盒之间,既要关注输入和输出,也要关注程序内部的逻辑。
2.按照测试执行阶段进行划分
单元测试:对单个模块进行测试,具体到类,验证功能是否完备,一般由开发人员做
集成测试:以模块和子系统为单元的测试,主要测试接口之间的关系
系统测试:利用黑盒测试参照需求规格说明书对整个系统进行功能测试
验收测试:以用户为主的测试,主要分为内测,公测,以用户为主的测试
3.按照被测对象是否运行进行测试
静态测试:不执行任何代码的情况下测试应用程序,对代码或者需求文档进行手动或者自动审查
动态测试:通过运行被测程序,检查运行结果与预期的差异,分析运行效率,正确性和健壮性等。三部分组成:构造测试用例,执行程序,分析程序的输出结果
4.按不同的测试手段进行划分
手动测试:在大规模测试的时候需要更多的时间,周转时间长
自动化测试:需要多个配置下进行的测试
5.按照测试包含内容进行划分
功能、性能、兼容、易用、安全、可靠、可移植、可维护性
6.冒烟测试、回归测试
冒烟测试:每个版本或者需求变更后,在正式测试之前,对产品或者系统进行的一次简单的“验证性测试”,验证基本功能流程是否正常
回归测试:对旧的代码修改以后,重新进行的测试,验证缺陷是否得到了修复。