一、软件测试是贯穿整个软件开发生命周期,使用人工或自动化手段来验证和确认某个软件系统的过程,其目的是尽快尽早地发现在软件产品中所存在的各种问题——与用户需求、预先定义的不一致性。或者说是为了检验它是否满足规定的需求或是弄清预期结果与实际结果之间的差别。贯穿于整个软件生命周期。
二、测试是为了证明程序有错,而不是证明程序无错误。
一个好的测试用例在于它能发现至今未发生的错误;一个成功的测试发现了至今未发现的错误的测试。
三、测试包含了“分析”或“运行”软件。
分析软件产品的过程称为静态测试,运行软件的测试过程称为动态测试。
四、软件测试有两个基本的功能:验证和确认
验证保证产品的正确性,确认保证了生产的正确性。
五、测试用例(test case)是为了某个特殊的目标而编制的一组测试输入、执行条件以及预期结果,以便测试某个程序路径或核实是否满足某个特定需求。
关于定义,比较通常的说法是,对一项特定的软件产品进行测试任务的描述,体现测试方案、方法、技术和策略。内容包括测试目标、测试环境、输入数据,测试步骤、预期结果、测试脚本等,并形成文档。
不同类别的软件,测试用例是不同的。
三个要素:前提条件和操作步骤、预期结果、测试脚本等。
六、软件测试的重要意义:
1、产品质量的保证
2、控制成本的关键
3、软件可靠性的关键
4、让企业具备国际竞争的实力
七、软件测试分类
基于是否需要执行被测试软件:动态测试、静态测试;
基于是否关注软件结构与算法:黑盒测试、白盒测试;
基于测试的不同阶段:单元测试、集成测试、系统测试、验收测试;
其它:冒烟测试、回归测试、功能测试、负载测试(压力测试)、性能测试、易用性测试、安装与反安装测试、安全性测试、兼容性测试、Alpha测试、Beta测试等。
八、测试的各种分类之间的关系
测试阶段
|
主要依据
|
测试人员、测试方式
|
主要测试内容
|
单元测试 |
系统设计文档
|
由程序员执行白盒测试
|
接口测试、路径测试
|
集成测试
|
系统设计文档和软件需求
|
由程序员执行白盒、黑盒测试
|
接口测试、路径测试、功能测试、性能测试
|
系统测试
|
软件需求
|
独立测试小组执行黑盒测试
|
功能测试,健壮性测试、UI测试、安全性测试
|
验收测试 |
软件需求
|
由用户执行黑盒测试
|
压力测试、可靠性测试、安装反安装测试等。
|