系列文章目录
第一章 【软件测试】常见的开发模型和测试模型
第二章 【软件测试】bug以及测试用例的设计方法
前言
在前文中简单了解了测试用例的设计方法和测试思路。我们知道,软件测试其实并不十分简单,需要具备足够的思维能力,因此我们对于测试从不同的角度进行分类,在不同的阶段对测试工作进行更好的执行和管理测试的分类方法。
一、按照测试目标进行分类
简单来说,对整个软件的各个方面进行分类,如界面测试、功能测试、性能测试、安全性测试、易用性测试。 这里不再赘述。
二、按照执行方式分类
这种方式将软件测试分为动态测试和静态测试。
静态测试:不实际运行测试软件,只是静态检查程序源码、界面或文档中可能存在的错误。
动态测试:实际运行被测试程序,检查输入、输出结果是否与预期结果相符合。
三、按照测试方法
- 白盒测试:分为动态测试和静态测试两种。
静态测试常见于桌面检查、代码审查、代码扫描工具等。
动态测试:分为语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖、路径覆盖 六种方法。
接下来存在两个伪代码:
if(A && B) {
//执行语句
}
if(C || D) {
//执行语句
}
(1)语句覆盖:每个语句至少执行一次。
(2)判定覆盖:对于判定语句(如为真为假)中T和F的情况都要进行测试。
(3)条件覆盖:对于多个条件的情况下,需要测试多个条件为真为假的情况。将(A&&B)当成一个整体,(C||D)当成一个整体,分别进行真假的判断。
测试用例分别为 (A&&B)=T (C || D) = T;(A&&B)=F (C || D) = F
(4)判定条件覆盖:结合判定覆盖和条件覆盖,测试用例既可以覆盖到判定,也可以覆盖到条件。
测试用例:【1】 A = T B = T C = T D = T
【2】A = F B = F C = F D = F
(5)路径覆盖:对于一个功能来说有许多种发生的可能,包括成功和失败。
以下图为例,路径覆盖就是要走遍所有操作的流程。
下图的测试用例为:
[1] 3,12
[2]3,4,3,12
[3]3,4,5,6,3,12
[4]3,4,5,678,4,3,12
2. 黑盒测试
黑盒测试是指不关注代码内部实现的情况下,只关注功能能否正常使用,是否能按照规格说明一样完成输入输出。
四、按照测试阶段分类
测试阶段分为:单元测试、集成测试、系统测试、验收测试和回归测试。
单元测试是以规定的(如功能、接口)为最小单位进行测试,测试人员一般为开发人员。
集成测试是将功能模块联合起来组装测试,检查软件单位之间的接口是否正确。
系统测试是由测试人员对于整个软件系统进行测试,验证功能性和非功能性需求的实现。
回归测试是指在代码修改之后,重新测试以确认没有引入新的错误或导致其他功能产生错误。
验收测试是用户方对于整个软件系统重新测试,检查整个软件是否与用户需求相同,若有差异的的地方,则需要再次开发修正。
五、按照实施组织分类
大型软件在正式发布之前都会进行α测试和β测试
α测试又称为内测,是公司内部用户在模拟实际操作下进行的测试。
β测试又称为公测,是正式用户中的一部分用户在任意场合下使用软件。
区别:α测试环境是受开发商控制的,用户数量较少;β测试是不受开发商控制的,使用时间不集中,用户数量多。
总结
在软件测试中,依照不同的环境采用不同的测试方法,因此也诞生了这些测试分类。在实际场景中,许多测试分类是结合一同使用的,在最大程度上做到软件无bug,用户体验好。