跳至内容

系统解决问题的方法:测试

来自维基教科书,开放书籍,开放世界

试卷 1 - ⇑ 系统解决问题的方法 ⇑

← 实现 测试 评估 →


创建完解决方案后,我们需要测试整个系统是否有效。这个过程应该很简单,因为我们只需要将最终产品与我们在分析阶段设定的目标进行比较。有几种方法可以测试系统,你需要了解所有方法以及可能使用的各种数据类型。

测试计划

[编辑 | 编辑源代码]

在项目早期阶段,你应该考虑如何测试系统以确保其正常运行。你需要了解并能够区分三种主要的测试方法。

黑盒测试

[编辑 | 编辑源代码]
黑盒测试模型

将程序源代码视为一个黑盒子,你无法访问它,也不必了解它的工作原理。你只需输入数据,并测试输出是否符合预期。内部工作机制是未知的,它们在一个黑盒子里。黑盒测试的例子是,如果你为一款新的游戏主机游戏担任游戏测试员。你不会参与系统的设计或编码,你所要做的只是输入命令,查看是否能输出想要的结果。

白盒测试

[编辑 | 编辑源代码]
白盒测试模型,展示了对代码中各种路径进行测试

在白盒测试中,你了解构成程序的编码结构。你进行的所有测试都将运行程序中的不同路径,检查是否输出了正确的结果。

干运行测试

[编辑 | 编辑源代码]

干运行是在计算机程序员脑中进行的计算机程序运行,程序员逐行检查源代码,并确定运行时程序会做什么。在理论计算机科学中,干运行是在脑中对算法(有时用伪代码表示)进行运行,计算机科学家逐行检查算法的步骤。在这两种情况下,干运行通常借助于跟踪表。既然我们在这里,不妨多练习一下

练习:干运行测试

完成以下代码的跟踪表

var a <- 5
var b <- 4
var count <- 0
while count < b
  a <- a + a
  count <- count + 1
end while
a b count
5 4

答案

a b count
5 4 0
10 4 1
20 4 2
40 4 3
80 4 4


完成以下代码的跟踪表

array nums() <- {4,2,5,2,1}
var z <- 4
var high <- nums(0)
while z > 0
  if high < nums(z)
    high <- nums(z)
  end if
  z <- z - 1
end while
z high
4 4

答案

z high
4 4
3 4
2 4
1 5
0 5


方法 源代码可用性 标题文本
黑盒 示例
白盒 可能(需要理解) 示例
干运行 示例
练习:测试方法

为以下每个场景命名合适的测试方法

  • 你无法访问源代码,需要检查一些输入是否能产生预期的输出

答案

黑盒测试,因为你无法访问程序的内部工作机制

  • 代码中某个地方存在错误,导致给定输入产生错误的输出,而你能够访问代码

答案

干运行测试,因为你能够访问源代码,这将帮助你找到有问题的编程行

对以下算法进行干运行测试

典型、错误、极端

[编辑 | 编辑源代码]

我们可以使用三种类型的测试数据。它们是什么?答案主要在于它们的名称,让我们看一下这个例子,有人创建了一个中学注册系统,允许学生自行注册。我们不想让年龄过小的学生入学,也不想让年龄过大的学生入学。事实上,我们希望招收 11-16 岁的学生。

  • 一个典型的学生将是 12、13、14 或 15 岁。
  • 一个错误(或错误)年龄的学生将是 45 岁、6 岁或任何不在允许范围内的年龄。
  • 一个极端(或边界)年龄的学生刚入学或即将毕业,他们将是 11 岁或 16 岁。

如果你正在测试包含典型、错误和极端数据的数据,请展示这三种数据的测试。有些测试可能只包含典型和错误数据,例如,输入正确密码可能只包含典型值和错误值。有些事情可能只包含典型测试,例如,一个指向下一页的按钮是否起作用,或一个计算是否正确。

示例:电子工艺测试数据

想象以下目标被设定

一名球员在一场比赛中获得的黄牌数量不能超过 2 张
典型:0、1、2(最有可能列出 1)
错误:3、-6
极端:0、2

比赛的加时时间不能超过 15 分钟
典型:0、1 分 45 秒、9 分 23 秒
错误:-6、15 分 01 秒
极端:0、15 分 00 秒

球队的名称不能超过 20 个字符
典型:Monster United
错误:Monster and Dagrington League of Gentlefolk
极端:Moincicestier United(20 个字符!)

练习:测试数据

列出以下内容的典型、错误和极端数据

  • 一盒 20 支香烟中当前剩余的香烟数量

答案

Typical : 5,16,18 

错误:21、-7
极端:0 或 20

  • 大学老师的年龄

答案

Typical : 28,56,32

错误:16、86
极端:21、68

  • 一个必须采用 <字母><字母><数字><数字> 格式的系统用户名

答案

Typical : GH24

错误:G678
极端:AA00、ZZ99

  • 某人生日的日期

答案

Typical : 12/07/1987

错误:1987 年 9 月 31 日、1987 年 2 月 31 日
极端:1999 年 12 月 31 日、2001 年 1 月 1 日(这更难指定,可能取决于你允许的年龄范围)

  • 某人的头发颜色

答案

典型:棕色、红色、黑色
错误:自行车
极端:n/a(我们不是来评判人的!)

  • 以下计算是否有效:14 * 2

答案

Typical : 28

错误:n/a
极端:n/a

  • 一本书的页数

答案

典型:24、500
错误:-9
极端:1(注意没有上限,假设没有页面就没有书!)

  • 命名 2 月份中的一个日期

答案

典型:23 日、16 日
错误:30 日(你也可以在这里提到闰年)
极端:1 日、28 日或 29 日(取决于闰年)

华夏公益教科书