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