按测试阶段划分
(1) 单元测试
又称模块测试,针对软件设计中的最小单位-程序模块,进行正确性检查的测试工作。单元测试需要从程序内部结构出发设计测试用例。多个模块可以平行地独立进行单元测试。
单元定义:C中指一个函数,Java中指一个类。
(2) 集成测试
又叫组装测试,通常在单元测试的基础上,将所有程序模块进行有序的、递增的测试。
(3) 系统测试,指的是将整个软件系统看为一个整体进行测试
(4) 验收测试
检验软件是否符合用户需求的测试
α测试
Alpha 是内测版本
通常只在软件开发者内部交流
一般而言, 该版本软件的bug较多,普通用户最好不要安装
β测试
Beta是公测版本,是对所有用户开放的测试版本
这一版本通常由软件公司免费发布, 用户可从相关的站点下载
通过一些专业爱好者的测试, 将结果反馈给开发者, 开发者们再进行有针对性的修改
γ测试
Gamma版本,指的是软件版本正式发行的候选版。该版本已经相当成熟了, 与即将发行的正式版相差无 几, 成为正式发布的候选版本
按是否查看源代码
(1) 黑盒测试
又称数据驱动测试,完全不考虑程序内部结构和内部特性,注重于测试软件的功能需求,只关心软件的输入数据和输出数据。
(2) 白盒测试
指的是把盒子打开,去研究里面的源代码和程序结构。
(3) 灰盒测试
灰盒测试,是介于白盒测试与黑盒测试之间的一种测试,不仅关注输出、输入的正确性,同时也关注程序内部的情况。
按是否运行分类
静态测试:
指不实际运行被测软件,而只是静态地检查程序代码、界面或文档中可能存在的错误过程。
动态测试:
是指实际运行被测程序,输入相应的测试数据,检查实际输出结果和预期结果是否相符的过程。
按照是否自动化
人工测试
也叫做手工测试,测试人员手动去进行的测试
自动化测试
利用代码或者工具帮助人工进行测试
软件测试的更多分类
冒烟测试
冒烟测试就是对系统进行最基本功能的测试,保证基本的功能和流程能走通
回归测试
当修复一个BUG后,把之前的测试用例在新的代码下进行再次测试
随机测试
随机测试主要是对被测软件的一些重要功能进行复测,也包括测试那些当前的测试用例没有覆盖到的部分
探索性测试
探索性测试意味着同时设计测试和执行测试。测试人员通过测试来不断学习被测系统。