主编:祁彩云
审核:汪腾霞
进度:未完成
质量模型、测试类型和测试方法
我们在掌握质量模型章节,明白了质量模型和测试类型的逻辑关系,而我们经常说的测试方法,和测试类型又是什么的关系呢?底层逻辑搞搞清楚,才不会被很多概念或者不专业的说法忽悠。
这里我把测试方法分为两大类,一种是测试分析方法,一种是测试用例设计方法,两者有先后顺序,且终极目标不同。
逻辑关系
从质量模型的质量特性,确定测试类型,是从不同质量特性的不同维度对测试对象进行验证。其终极目标是:确定针对系统或功能,要做哪些类型的测试,比如功能测试、性能测试、可靠性测试。
这是第一层的测试分析。
确定了功能测试、性能测试和可靠性测试等等。
下面进行第二层的分析。
如果该功能属于流程类型的,那么我们采用流程分析法,确定测试该功能需要多少条测试路径进行覆盖。
当然很多功能可以采用多种分析方法,达到殊途同归的效果,比如也可以采用场景分析法。
第二层分析,确定了测试路径,或者有多少测试项、测试子项对该功能进行验证。
确定路径之后,还并不是最终对测试用例,一个路径需要多个操作步骤,而每个操作步骤都有相应的输入或者条件,这些输入不同的人输入不同的数据,那么我们讲需要设计不同的数据对其进行测试。
测试数据的设计是第三层的测试,我们通常用的等价类、边界值重点是用例的设计。
我们可以把第一层和第二层的分析,称为测试分析,那么其采用的方法就是测试分析方法。第三层的方法称为测试用例设计方法。
当然这个也可以定义为第一层是测试分析方法,第二层和第三层是测试用例设计方法,把测试路径做完测试用例的维度也不是不可以。
但是如何称呼,如何定义都需要了解底层的逻辑,逻辑清晰了,叫什么名字,其实不是很重要了。但是团队内部要建立同样的认知,否则会存在沟通上的偏差。
为了统一思想,我们按照第一种定义,就是第一层和第二层的测试,统称为测试分析方法。那么得出结论,我们本书覆盖的这些方法就可以定义如下:
测试分析方法包括:质量模型分析法、场景分析法、流程分析法。
测试用例设计方法包括:等价类、边界值法。
不同层次的测试方法不同,相同层次的需要进行的覆盖也不同,比如我们会花大部分的精力在功能测试,功能测试的测试方法也是最多的,可以用下图形象的表示:
画一张图,形象有点像金字塔,姑且称为产品/系统级测试等金字塔模型。和测试行业的提到的金字塔模型并不相同。有兴趣的同学可以网上搜索对比一下。
测试分析方法
最终目标
- 确定从哪些维度(功能、性能和可靠性)进行测试设计。
- 确定功能、性能和可靠性测试维度。
功能测试方法
大部分的用例设计方法主要是为功能测试设计的,因此都可以应用在功能测试。
可靠性测试方法
在功能的基础之上才可以做性能测试,其实是基于测试对象的用户不同、运行环境不同,因此需要站在不同的场景之下进行测试的设计。《软件测试架构师修炼之道》里面提出的多、并、复、异四个点不仅容易记忆而且比较实用。
- 多
- 并
- 复
- 异
易用性测试
性能测试
测试用例设计方法
方法对比
最终目标
- 确定测试路径。(一个路径可以设计成多条测试用例,如果从自动化的角度,一个路径是一个重复的步骤,可以编写一个脚本,覆盖一组测试数据)
确定一条条测试用例。(一条用例一个数据)
测试数据的设计
- 测试覆盖率的概念
测试方法对比
什么是测试方法?测试方法的分类。
按照不同角度分,测试方法的名称不同。
按照测试阶段,测试分为单元测试、集成测试、系统测试和用户验收测试。
按照是否需要知道被测对象的内部逻辑,测试分为白盒、灰盒和黑盒测试。
按照测试类型,测试分为功能测试、性能测试、易用性测试、可靠性测试、兼容性测试等。
按照是否需要运行被测对象,测试分为静态测试、动态测试。
回答以下问题验证你是否理解测试方法。
自动化测试是采用的白盒测试方法,对吗?为什么?
自动测试工具包括黑盒测试工具,白盒测试工具,性能测试工具等等。 不能说自动化测试属于哪一种测试,而是要看使用的是哪种测试工具。 就是说不管是黑盒或者白盒测试,都有手动测试和自动化测试。
名称、来源、优势、不足、常用场景。
1、等价类划分,将无限测试变成有限测试,这是减少工作量和提高测试效率最有效的方法;
2、在任何情况下都必须使用边界值分析方法,用这种方法发现的程序错误能力最强;
3、业务流清晰的系统,可用场景法贯穿整个测试案例过程,在案例中综合使用各种测试方法;