软件测试是使用人工或自动手段运行或测试系统,检验其是否满足需求或弄清预期与实际结果差别的过程,旨在发现程序错误、评估软件质量。
一句话来说就是软件是否做了它需要做的事情,同时是否做了它不应该做的事儿。
以下是对软件测试的详细解析:
一、定义与目的
- 定义:软件测试是帮助识别开发完成(中间或最终的版本)的计算机软件(整体或部分)的正确度(correctness)、完全度(completeness)和质量(quality)的软件过程,是Software Quality Assurance(软件质量保证,简称SQA)的重要子域。
- 目的:检验软件系统是否满足规定的需求,并弄清预期结果与实际结果之间的差别。
二、测试类型
- 单元测试/模块测试:为了检验软件组成单位的正确性。
- 集成测试:检查软件单位之间的接口是否正确。
- 系统测试:对功能、性能以及软件所运行的软硬件环境进行测试。
- 回归测试:修改了旧代码后,重新测试以确认修改无误。软件开发的各个阶段都会进行多次回归测试,项目系统越大,回归测试的成本越大。
- 冒烟测试:源自硬件行业,指对一个硬件或硬件组件进行更改或修复后,直接给设备加电。如果没有冒烟,则测试通过。目前在软件行业中,指软件部署成功,主流程OK。
- 验收测试:部署软件之前的最后一个测试操作,也称为交付测试。
- 静态测试:不运行被测程序本身,仅通过分析或检查源程序的语法、结构、过程、接口等来检查程序的正