软件测试

臧艳辉

目录

  • 1 走近软件测试
    • 1.1 走近软件测试
    • 1.2 一个软件测试工程师必备的专业技能和素质
    • 1.3 章节测验
  • 2 软件测试技术
    • 2.1 正确认识软件测试
    • 2.2 软件测试遵循的基本原则
    • 2.3 软件测试的分类
    • 2.4 软件测试的过程模型
    • 2.5 章节测验
  • 3 测试中缺陷的识别与描述
    • 3.1 初识软件缺陷
    • 3.2 全面解析软件缺陷
    • 3.3 有效的记录缺陷
    • 3.4 缺陷报告实例
    • 3.5 缺陷报告模板
  • 4 项目测试计划的制定
    • 4.1 一个项目完整的测试流程
    • 4.2 初识测试计划
    • 4.3 测试计划的基本机构和内容
    • 4.4 测试计划模板和案例
  • 5 初识软件测试用例
    • 5.1 什么是测试用例
    • 5.2 项目测试中设计测试用例的作用
    • 5.3 如何设计一个项目的测试用例
    • 5.4 在测试过程中测试用例怎样进行更新和维护
  • 6 使用等价类划分方法设计测试用例
    • 6.1 等价类划分法的基本思想
    • 6.2 进行等价类划分法的原则
    • 6.3 使用等价类划分法设计测试用例实例
  • 7 使用边界值分析法设计测试用例
    • 7.1 边界值分析法的基本思想
    • 7.2 如何确定边界
    • 7.3 测试知识储备
    • 7.4 使用边界值分析法设计测试用例实例
    • 7.5 项目中如何进行健壮性边界值测试
    • 7.6 等价类+边界值
    • 7.7 章节测试
  • 8 使用大纲法设计测试用例
    • 8.1 什么是大纲法
    • 8.2 项目中如何使用大纲法设计测试用例
  • 9 使用场景法设计测试用例
    • 9.1 什么是场景法
    • 9.2 项目中如何使用场景法设计测试用例
  • 10 因果图和决策表结合设计测试用例
    • 10.1 因果图法的介绍
    • 10.2 决策表的介绍
    • 10.3 项目中选用因果图法和决策表设计测试用例需考虑的问题
    • 10.4 使用因果图法和决策表设计测试用例
  • 11 功能测试
    • 11.1 什么是功能测试
    • 11.2 功能测试的主要内容及测试策略
    • 11.3 功能测试的方法汇总
    • 11.4 功能测试的经验及注意事项
  • 12 界面测试
    • 12.1 界面检查的通用原则
    • 12.2 具体的界面检查的举例
    • 12.3 设计界面测试用例
    • 12.4 界面测试标准总结
  • 13 软件的安装卸载测试
    • 13.1 软件的安装卸载测试
    • 13.2 软件的安装测试
    • 13.3 软件的运行测试
    • 13.4 软件的卸载的测试
  • 14 项目中如何使用进行有效的缺陷管理
    • 14.1 进行缺陷管理的目标是什么
    • 14.2 项目中缺陷管理的流程是怎样的
    • 14.3 缺陷的跟踪方法有哪些
  • 15 测试报告该如何撰写
    • 15.1 软件质量评估
    • 15.2 如何撰写测试报告
    • 15.3 如何写项目总结
    • 15.4 如何写个人测试总结
  • 16 集成测试
    • 16.1 初识集成测试
    • 16.2 集成测试方法
  • 17 白盒测试
    • 17.1 初识白盒测试
    • 17.2 白盒测试技术——逻辑驱动测试
    • 17.3 白盒测试技术——循环覆盖测试
    • 17.4 白盒测试技术——基本路径测
  • 18 软件测试技术及岗位需求介绍
    • 18.1 软件测试岗位需求
    • 18.2 软件测试技术介绍
    • 18.3 软件测试比赛内容
    • 18.4 软件测试岗位应聘简历撰写
等价类划分法的基本思想
  • 1 电子教材
  • 2 PPT

第一章  使用等价类划分法设计测试用例

简介

首先看一下如何测试一个两位数加法计算器的程序。

测试需求:测试两个参数的值相加后的结果是否正确。其中:

Ø  输入的数值在-9999之间。

Ø  大于99或小于-99的输入应被拒绝,并显示错误信息。

根据测试需求开始测试。分别给第1个参数和第2个参数输入表中的值,得到的测试结果如表6-1所示。

6-1 测试数据的结果

1个参数的值

2个参数的值

  两数相加后的值
 

1

 
 

1

 
 

2

 
 

1

 
 

2

 
 

3

 
 

1

 
 

-1

 
 

0

 
 

1

 
 

-2

 
 

-1

 
 

...

 
 

..

 
 

...

 

很明显,如果对第一个参数的值分别取从-9999199个数,第2个参数的值分别取从-9999199个数,我们不可能对两位数相加的所有情况进行穷举测试。如果不能进行穷举测试,则将面临以下问题:

Ø  在测试了1+11+21+ (-1)1+(-2)之后,还是否有必要测试1+31+4?

Ø  如果不对加法计算器程序进行穷举测试,能否放心地认为所有的参数组合都是正确的?

对以上两个问题,能否找到解决的办法?

6.1  等价类划分法的基本思想

6.1.1  什么是等价类划分

在运用等价类技术解决上述问题之前,首先来看看什么是等价类划分法。

等价类划分设计方法是把所有可能的输入数据,即程序的输入数据集合划分成若干个子集(即等价类),然后从每一个等价类中选取少数具有代表性的数据作为测试用例数据。

6.1.2  如何运用等价类划分解决问题

接下来具体看看如何运用等价类技术解决上述问题。

1)在本案例中我们根据测试需求可以把两位数加法分为如图2-1所示的3个等价类:一个有效数据的等价类,两个无效数据等价类(有效数据等价类就是由那些对程序的规格说明有意义的、合理的输入数据所构成的集合;无效数据等价类就是那些对程序的规格说明不合理的或无意义的输入数据所构成的集合)。

2)在实际工作中,通常在确立了等价类以后,把程序中的所有等价类建立为等价类表,以便在设计测试用例时有所依据(表2-2)。

6-1 等价类划分

6-2 等价类表

 

序号

 
 

功能项

 
 

有效等价类

 
 

编号

 
 

无效等价类

 
 

编号

 
 

1

 
 

两位数加法

 
 

-99<=加数取值<=99

 
 

2

 
 

加数取值<-99

 

加数取值>99

 
 

1

 

3

 
 

2

 
 

 
 

 
 

 
 

 
 

……

 

3)根据上面的等价类表,就可以确定测试用例,步骤如下:

1)为等价类表中的每一个等价类分配一个唯一的编号。

2)设计一个新的测试用例,使它能够尽量覆盖尚未覆盖的有效等价类。重复这一步骤,从而使所有有效等价类均被测试用例所覆盖(表6-3)。

3)与步骤2)类似,设计一个新的测试用例,使它只覆盖一个无效等价类。重复这一步骤,从而使所有无效等价类均被测试用例所覆盖(表6-3)。

6-3 测试用例列表

 

测试用例编号

 
 

输入数值

 
 

所属等价类

 
 

预期输出

 
 

1

 
 

-50+24

 
 

2

 
 

正确输出:-26

 
 

2

 
 

-130

 
 

1

 
 

错误信息

 
 

3

 
 

125

 
 

3

 
 

错误信息

 

4)细化等价类划分

在测试“-99<=数值<=99”的这个等价类区间的时候,会发现如10+40-20+30-30+ (-30)这类的正数相加,正数负数相加,负数相加也是不同的等价区间。因此可以使用更多的等价类划分(图6-2)。

6-2 有效等价类细化

根据以上等价类划分的结果,得出表6-4所示的等价类表。

6-4 等价类表

 

序号

 
 

功能项

 
 

有效等价类

 
 

编号

 
 

无效等价类

 
 

编号

 
 

1

 
 

两位数加法

 
 

-99≤加数取值≤0

 

0≤加数取值≤99

 
 

2

 

3

 
 

加数取值<-99

 

加数取值>99

 
 

1

 

4

 

根据上面划分的4个等价类可知,至少需要5个测试用例(表6-5)。

6-5 测试用例

 

测试用例编号

 
 

输入数值

 
 

所属等价类

 
 

预期输出

 
 

1

 
 

50+2

 
 

3

 
 

正确输出:52

 
 

2

 
 

-63+-20

 
 

2

 
 

正确输出:-83

 
 

3

 
 

-30+10

 
 

23

 
 

正确输出:-20

 
 

4

 
 

-130

 
 

1

 
 

错误信息

 
 

5

 
 

125

 
 

4

 
 

错误信息