软件测试

臧艳辉

目录

  • 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
  • 3 实训任务

使用等价类划分法设计测试用例实例

6.3.1  内部OA系统电话号码文本框测试

城市的电话号码由两部分组成。这两部分的名称和内容分别如下。

Ø  地区码:以0开头的 3位或者4位数字(包括0)。

Ø  电话号码:以非0、非1开头的7位或者8位数字。

假定被调试的程序能接受一切符合上述规定的电话号码,拒绝所有不符合规定的号码,就可用等价分类法来设计它的调试用例。

1)划分等价类并编号,如表6-6所示。

6-6 电话号码的等价类设计

 

输入数据

 
 

有效等价类

 
 

无效等价类

 
 

地区码

 
 

1)以0开头的3位数串

 

2)以0开头的4位数串

 
 

3)以0开头的含有非数字字符的串

 

4)以0开头的小于3位的数串

 

5)以0开头的大于4位的数串

 

6)以非0开头的数串

 
 

电话号码

 
 

(7)以非0、非1开头的7位数串

 

(8)以非0、非1开头的8位数串

 

 

 
 

(9)0开头的数串

 

(10)1开头的数串

 

(11)以非0、非1开头的含有非法字符7或者8位数串

 

(12)以非0、非1开头的小于7位数串

 

(13)以非0、非1开头的大于8位的数串

 

2)为有效等价类设计测试用例,如表6-7所示。

6-7 电话号码的有效等价类测试用例设计

 

测试数据

 
 

期望结果

 
 

覆盖范围

 
 

测试数据

 
 

期望结果

 
 

覆盖范围

 
 

010 23145678

 
 

显示有效输入

 
 

1)、(8

 
 

0851 3456789

 
 

显示有效输入

 
 

2)、(7

 
 

023 2234567

 
 

显示有效输入

 
 

1)、(7

 
 

0851 23145678

 
 

显示有效输入

 
 

2)、(8

 

3)为每一个无效等价类至少设计一个测试用例,如表6-8所示。

6-8 电话号码的无效等价类测试用例设计                  

 

测试数据

 
 

期望结果

 
 

覆盖范围

 
 

测试数据

 
 

期望结果

 
 

覆盖范围

 
 

0a34 23456789

 
 

显示无效输入

 
 

3

 
 

028 12345678

 
 

显示无效输入

 
 

10

 
 

05 23456789

 
 

显示无效输入

 
 

4

 
 

028 qw123456

 
 

显示无效输入

 
 

11

 
 

01234 23456789

 
 

显示无效输入

 
 

5

 
 

028 623456

 
 

显示无效输入

 
 

12

 
 

2341 23456789

 
 

显示无效输入

 
 

6

 
 

028 886234569

 
 

显示无效输入

 
 

13

 
 

028 01234567

 
 

显示无效输入

 
 

9

 



 

6.3.2  Yahoo日历的浏览功能等价类划分示例

1)每日浏览,工作时间(8 : 0017 : 30)期间的时间是一个等价类,非工作时间是另外一个等价类。

2)每周浏览,周一到周五可看成一类,而周六和周日可以看成不同的一类。

3)每月浏览,每月有 31 日(1 3 5 7 8 10 12 月)可归为一类,每月只有 30 ( 4 6 9 11 月)归为第2 类,而2 月份只有28 天或29 天(闰年)需单独归为一类。

4)还有,在创建事件或活动时,名称中输入的文字内容被归为有效数据的等价类,名称中什么都没输(空)就点击“添加”,应归为无效数据的等价类。

6.3.3  ATM机提款等价类划分示例

假定一台ATM机允许提取增量为50元人民币,总额为从50元人民币到5000元人民币(含5000元人民币)不等的现金。测试能否提取想提取的钱数(不考虑、由于硬件的原因造成的提取错误)。

解决步骤如下:

1)划分等价类。

根据测试需求,需要考虑如下3个等价类划分:一个等价类是有效数据,另外两个是无效数据,如图6-3所示。

6-3 等价类划分

2)建立等价类表(表6-9)。

6-9 等价类表

 

序号

 
 

功能项

 
 

有效等价类

 
 

编号

 
 

无效等价类

 
 

编号

 
 

1

 
 

提取现金

 

 

 
 

50=<提取钱的数目<=5000

 
 

2

 

 

 
 

提取钱的数目<50

 

提取钱的数目>5000

 
 

1

 

3

 
 

 
 

 
 

 
 

 
 

 
 

 

3)确定测试用例(表6-10)。

6-10 测试用例

 

测试用例编号

 
 

输入数值

 
 

所属等价类

 
 

预期输出

 
 

1

 
 

20

 
 

1

 
 

错误信息

 
 

2

 
 

1000

 
 

2

 
 

正确输出

 
 

3

 
 

6000

 
 

3

 
 

错误信息

 

4)细化等价类划分。

只要运用等价类划分,只用一个有效的测试用例和两个无效的测试用例就能进行充分的覆盖。还可以尝试将等价类进一步细化,考虑提取钱的数目为负的钱数、零钱数或特别大的数目可能引起ATM机崩溃等。当然,还可以尝试使用其他重要的测试用例,比如特殊字符和带零头的数额(提取145.78元人民币)。

小结

等价类技术提供了一个选择哪些数值,舍弃哪些数值的测试用例设计方法。运用等价类技术,可以把相似输入、输出、操作分成组,这些组就是等价区间。只要从等价区间选择一到两个有代表性的值作为测试用例来执行就等同于测试了所有的值。例如我们测试了18+91的计算结果是正确的,因为是两位数的加法,原理都是一样的,所以可以认为只要在-9999这个区间之内的所有数值相加都是正确的。当然,也可能存在编程人员编写了异常处理的代码(使用多个测试用例才能发现这个错误),但是在发现这种类型的缺陷方面存在其他更为有效的技术(比如代码审查)

运用等价类方法的步骤是,在进行等价类划分之前,首先从程序的功能说明中找出各个输入条件,然后为每个输入条件划分两个或更多个等价类。确定了等价类划分后,给出相应的等价类表,再根据等价类表给出测试用例。