软件测试是指在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程;是产品发布、提交给终用户前的稳定化阶段。根据不同的划分标准,测试可以分为不同的种类:

从测试方法的角度可以分为手工测试和自动化测试:
手工测试是指不使用任何测试工具,根据事先设计好的测试用例来运行系统,测试各功能模块;
自动化测试是指利用测试工具,通过编写测试脚本和输入测试数据,自动运行测试程序。
从整体的角度可以分为单元测试、集成测试、系统测试、确认测试:
单元测试是针对软件设计的小单位—程序模块,进行正确性检验的测试工作;
集成测试是在单元测试的基础上,将所有模块按照设计要求组装进行测试;
系统测试是在所有单元、集成测试后,对系统的功能及性能的总体测试;
确认测试是模拟用户运行的业务环境,运用黑盒测试方法,验证软件系统是否满足用户需求或软件需求。
从测试原理上分为:白盒测试、黑盒测试和灰盒测试:
白盒测试是通过程序的源代码进行测试而不使用用户界面;
黑盒测试是通过使用整个软件或某种软件功能来严格地测试,而并没有通过检查程序的源代码;
灰盒测试与黑盒测试想死,不过测试人员了解该软件或某种软件功能的源代码程序具体是怎样设计的。
从软件特性上分为功能测试和性能测试:
功能测试是指为了确保软件系统功能实现的正确性,完整性和其他特性而进行的测试;
性能测试是指为了评估软件系统的性能状况,和预测软件系统性能趋势而进行的测试和分析。
