软件测试

臧艳辉

目录

  • 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

7.4  使用边界值分析法设计测试用例实例

7.4.1  标准化考试成绩统计的测试用例

例如,如果已经编制了一个为学生标准化考试批阅试卷,产生成绩报告的程序。其规格说明如下。

程序的输入文件由一些有80个字符的记录(卡片)组成。所有这些记录分为3组。

Ø  标题。这一组只有一个记录,其内容是成绩报告的名字。

Ø  各题的标准答案。每个记录均在第80个字符处标以数字“2”。该组的第1个记录的第1~3个字符为试题数(取值为 1~999 )。第 10~59 个字符给出第1~50题的标准答案(每个合法字符表示一个答案)。该组的第2、第3……N个记录相应为第 51~100题、第101~150题等的标准答案。

Ø  学生的答卷。每个记录均在第80个字符处标以数字“3”。每个学生的答卷在若干个记录中给出。比如,甲某的第1个记录第1~9个字符给出学生的学号,第10~59个字符列出的是甲某所做的第1~50 题的解答。若试题数超过50 ,则其第2 、第3……第 N 个记录分别给出他的第51~100题、第101~150题等的解答。然后是乙某的答卷记录。

程序的输出有4个报告:

Ø  按学号排列的成绩单,列出每个学生的成绩(百分制)、名次。

Ø  按学生成绩排序的成绩单。

7-3 学生考核评分和成绩统计程序输入数据形式

Ø  平均分数及标准偏差的报告。

Ø  试题分析报告。按试题号排列,列出各题学生答对的百分比。

7-5、表7-6 分别列出根据输入条件、输出条件和边界条件所选择的测试用例。

7-5 学生考卷评分和成绩统计程序的测试用例(一)

 

输入文件

 
 

测试用例

 
 

输入文件

 
 

空输入文件

 
 

标题

 
 

没有标题记录

 

标题只有一个字符

 

标题有80个字符

 
 

试题数

 
 

试题数为1

 

试题数为50

 

试题数为51

 

试题数为100

 

试题数为999

 

试题数为0

 

试题数含有非数字字符

 
 

标准答案记录

 
 

没有标准答案记录,有标题

 

标准答案记录多一个

 

标准答案记录少一个

 
 

学生人数

 
 

0个学生

 

1个学生

 

200个学生

 

201个学生

 
 

学生答题

 
 

某学生只有一个答案记录,但有两个标准答案记录

 

该学生是文件中的第1个学生

 

该学生是文件中最后1个学生(记录数出错的学生)

 
 

学生答题

 
 

某学生有两个答案记录,但只有一个标准答案记录

 

该学生是文件中第1个学生(指记录数出错的学生)

 

该学生是文件中最后一个学生

 

 

7-6 学生考卷评分和成绩统计程序的测试用例(二)

 

输入文件

 
 

测试用例

 
 

学生成绩

 
 

所有学生的成绩都相等

 

每个学生的成绩都互不相同

 

部分(不是全体)学生的成绩相同(检查是否能按成绩正确排名次)

 

有个学生得0

 

有个学生得100

 
 

输出报告

 

1)、2

 
 

有个学生的学号最小(检查按学号排序是否正确)

 

有个学生的学号最大(检查按学号排序是否正确)

 

适当的学生人数,使产生的报告刚好印满一页(检查打印页数)

 

学生人数比刚才多出一人(检查打印换页)

 
 

输出报告

 

3

 
 

平均成绩为100分(所有学生都得满分)

 

平均成绩都得0分(所有学生都得0分)

 

标准偏差为最大值(有一半学生得0分,其他100分)

 

标准偏差为0(所有学生的成绩都相等)

 
 

输出报告

 

4

 
 

所有学生都答对了第1

 

所有学生都答错了第1

 

所有学生都答对了最后1

 

所有学生都答错了最后2

 

选择适当的试题数,使第4个报告刚好打满一页

 

试题数比刚才多1题,使报告打满一页后,刚好剩下一题未打

 

有经验的程序员都会承认,上述43个测试用例可以发现在程序中大部分常见的错误。如果用随机方法设计测试用例不一定会发现这些错误。如果使用得当,边界值分析方法是很有效的。这个方法看起来似乎很简单,但是由于许多程序中的边界情况很复杂,要找出适当的测试用例还需针对问题的输入域、输出域边界,耐心细致地逐个考虑。

7.4.2  加法器边界值测试用例设计

加法器程序计算两个 1 ~100 之间整数的和。

对于加法器程序,根据输人要求可将输人空间划分为三个等价类,即1个有效等价类 (1~100之间),两个无效等价类( < 1 > 100 )。但这种等价类划分不是很完善,只考虑了输人数据的取值范围,而没有考虑输人数据的类型,我们认为输人应为整数,但用户输入什么都有可能。测试用例如表 7-7所示。

   7-7 加法器程序测试用例                     

 

测试用例

 
 

输入数据

 
 

预期输出

 
 

加数1

 
 

加数2

 
 

 
 

Test 1

 
 

1

 
 

50

 
 

51

 
 

Test 2

 
 

2

 
 

50

 
 

52

 
 

Test 3

 
 

99

 
 

50

 
 

149

 
 

Test 4

 
 

100

 
 

50

 
 

150

 
 

Test 5

 
 

50

 
 

1

 
 

51

 
 

Test 6

 
 

50

 
 

2

 
 

52

 
 

Test 7

 
 

50

 
 

99

 
 

149

 
 

Test 8

 
 

50

 
 

100

 
 

150

 
 

Test 9

 
 

0

 
 

50

 
 

提示“请输入1~100间的整数”

 
 

Test 10

 
 

50

 
 

0

 
 

提示“请输入1~100间的整数”

 
 

Test 11

 
 

101

 
 

50

 
 

提示“请输入1~100间的整数”

 
 

Test 12

 
 

50

 
 

101

 
 

提示“请输入1~100间的整数”

 
 

Test 13

 
 

0.2

 
 

50

 
 

提示“请输入1~100间的整数”

 
 

Test 14

 
 

50

 
 

0.2

 
 

提示“请输入1~100间的整数”

 
 

Test 15

 
 

A

 
 

50

 
 

提示“请输入1~100间的整数”

 
 

Test 16

 
 

50

 
 

A

 
 

提示“请输入1~100间的整数”

 
 

Test 17

 
 

@

 
 

50

 
 

提示“请输入1~100间的整数”

 
 

Test 18

 
 

50

 
 

@

 
 

提示“请输入1~100间的整数”

 
 

Test 19

 
 

空格

 
 

50

 
 

提示“请输入1~100间的整数”

 
 

Test 20

 
 

50

 
 

空格

 
 

提示“请输入1~100间的整数”

 
 

Test 21

 

 

50

 
 

提示“请输入1~100间的整数”

 
 

Test 22

 
 

50

 

 

提示“请输入1~100间的整数”