1 软件测试过程¶
1.1 软件测试模型¶
V 模型¶
左边每个开发活动都有右边的测试活动相对应,而相应的测试活动,其开展的次序刚好相反。

W 模型¶
测试伴随着整个开发周期,而且,测试的对象不仅仅是程序,需求、功能和设计同样要测试。

1.2 功能测试¶
检查实际软件的功能是否符合用户的需求。
- 逻辑功能测试:验证程序的业务流程。假设一个软件的业务流程是,如果输入1就走A流程,输入2,走B流程,输入3,退出。那对于测试人员来说,输入1到3就是不同的逻辑。
- 界面测试:验证软件用户界面的设计是否合乎用户期望或要求。它常常包括菜单,对话框及对话框上所有按钮,文字,出错提示,帮助信息等方面的测试。
- 易用性测试:从软件使用的合理性和方便性等角度对软件系统进行检查,来发现软件中不方便用户使用的地方。
- 安装测试:是验证软件能否正常进行安装和卸载的测试。
- 兼容性测试:是测试软件在一个特定的硬件/软件/操作系统/网络等环境下的性能如何。包括向上兼容、向下兼容,软件兼容和硬件兼容。
1.3 性能测试¶
验证系统的性能指标是否满足需求要求。
- 一般性测试:指的是让被测系统在正常的软硬件条件下运行,不向其施加任何压力。
- 稳定性测试:也叫可靠性测试,是指连续运行被测系统,检查系统运行时的稳定程度。
- 负载测试:指让被测系统在其能忍受的压力的极限范围内连续运行,检查系统运行时的稳定性。
- 压力测试:通常是指持续不断地给被测系统增加压力,直到将被测系统压垮为止,用来测试系统所能承受的最大压力。
1.4 其他测试方法¶
回归测试¶
在软件维护阶段,重复执行上一个版本测试时的测试用例,对修改后的新版本进行的测试。其目的是检验对软件所做的修改是否正确。
冒烟测试¶
在对一个新版本进行系统的大规模测试之前,验证一下软件的基本功能是否实现,是否具备可测性。
随机测试¶
测试中所有的输入数据都是随机生成的,其目的是模拟用户的真实操作,并发现一些边缘性的错误
α、β测试¶
- α 测试是指软件开发公司组织内部人员模拟各类用户对即将面市软件产品(称为 α 版本)进行测试,试图发现错误并修正。
- 经过 α 测试调整的软件产品称为 β 版本。紧随其后的β测试是指软件开发公司组织各方面的典型用户在日常工作中实际使用 β 版本,并要求用户报告异常情况、提出批评意见。然后软件开发公司再对 β 版本进行改错和完善。
2 白盒测试技术¶
2.1 逻辑覆盖¶
是通过对程序逻辑结构的遍历实现程序的覆盖。
- 语句覆盖:设计足够多的测试用例,使被测程序中每条语句至少执行一次。
- 判定覆盖:设计足够多的测试用例,使得程序中的每一个判定至少获得一次‘真’值和‘假’值
- 条件覆盖:设计足够多的测试用例,使得每一判定语句中每个逻辑条件的可能值至少满足一次
- 路径覆盖:设计足够多的测试用例,覆盖被测程序中所有可能的路径
- 条件判定组合覆盖:设计足够多的测试用例,使得判定中的每个条件的所有可能(真/假)至少出现一次,并且每个判定本身的判定结果也至少出现一次
- 条件组合覆盖:设计足够多的测试用例,使得每个判定中条件的各种可能组合都至少出现一次 满足条件组合覆盖一定满足判定覆盖、条件覆盖、条件判定组合覆盖
2.2 循环覆盖¶
设计足够多的测试用例,覆盖被测程序中所有的循环体
2.3 基本路径测试¶
是在程序控制流图的基础上,通过分析控制构造的环路 复杂性,导出基本可执行路径集合,从而设计测试用例 的方法,设计出的测试用例要保证在测试中程序的每个可执行语句至少执行一次。
3 黑盒测试技术¶
3.1 等价类划分¶
- 是把所有可能的输入数据,即程序的输入域划分成若干部分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例。
- 等价类是指某个输入域的子集合。在该子集合中,各个输入数据对于揭露程序中的错误都是等效的,并合理地假定:测试某等价类的代表值就等于对这一类其它值的测试,因此,可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件就可以用少量代表性的测试数据取得较好的测试结果。
- 等价类划分可有两种不同的情况:有效等价类和无效等价类。
3.2 边界值分析¶
对输入或输出的边界值进行测试的一种黑盒测试方法。通常边界值分析法是作为对等价类划分法的补充,这种情况下,其测试用例来自等价类的边界。
3.3 错误推测¶
基于经验和直觉推测程序中所有可能存在的各种错误,从而有针对性的设计测试用例的方法。