一、按测试阶段划分
(一)单元测试
又称模块测试,是对软件设计中的最小单位,即程序模块进行正确性检查的测试工作。
单元定义:C中指一个函数,Java中指一个类,在图形化的软件中,单元一般指1个窗口,1个菜单。
(二)集成测试
通常在单元测试的基础上,将所有程序模块进行有序的、递增的测试。重点测试不同模块的接口部分。
(三)系统测试
将整个软件看做一个整体来进行测试,包括功能、性能、兼容性。
系统测试在系统集成完毕后进行测试,前期主要测试系统的功能是否满足需求,后期主要测试系统运行的性能是否满足需求,以及系统在不同的软硬件环境中的兼容性等。
二、是否覆盖源代码
(一)黑盒测试
又称数据驱动测试,完全不考虑程序内部结构和内部特性,注重于测试软件的功能需求,只关心软件的输入数据和输出数据。
1.功能测试
(1)逻辑功能测试
(2)界面测试
(3)易用性测试
(4)安装测试
(5)兼容性测试
2.性能测试
(1)时间性能(事物相应时间等)
(2)空间性能(系统资源消耗)
(3)一般性能
(4)稳定性
(5)负载测试:通过负载测试来确定在各种工作负载下,系统各项性能指标的变化情况。
(6)压力测试:通过确定一个系统的瓶颈或者刚好不能接受的性能点,来获得系统能够提供的最大服务级别。
(二)白盒测试
指的是把盒子打开,去研究里面的源代码和程序结构
三、是否运行程序
(一)静态测试
不运行程序,静态检查代码、界面和文档中可能存在错误的过程。
(二)动态测试
运行被测程序, 输入测试数据以检查实际输出结果是否与预期结果相同的过程。
四、其他
(一)随机测试
针对重要功能、新增加的功能、特殊情况、以前发现过重大bug的模块进行二次测试;也叫探索测试,它可以结合回归测试来使用 。
(二)冒烟测试
证明程序的基本功能、核心功能没有问题。
(三)验收测试
1.α测试(内测)
2.β测试(公测)
3.γ测试(软件候选版本的测试)