2023拉

21种故障模型(很经典)

上一篇 / 下一篇  2013-07-02 11:38:53 / 个人分类:软件测试理论

 

软件功能性测试21种故障模型

把这些测试人员的经验和直觉尽量归纳和固化,就形成了一些故障模型。故障模型指明了故障是如何以及为什么会在软件执行时引起软件失效。在测试过程中,我们可以按照这些故障模型所提供的缺陷类型和寻找该类缺陷的方法找到尽量多的缺陷。

  ---------------------------------------------------------------------------------------------------

  1、输入非法数据

  1.1 缺陷产生原因

  开发人员通常用以下3种技术来处理非法输入:

  ◆ 防止不正确的输入进入被测软件。过滤掉不正确的输入,只允许合法输入通过界面。

  ◆ 输入了不正确的数据后,软件提示错误信息,拒绝不正确的输入。

  ◆ 允许不正确的输入进入系统并进行处理,软件失效时调用异常处理程序,显示一些错误信息

    1.2 如何发现这类问题

   输入类型:键入无效的类型常会产生错误信息。

  ◆ 输入长度:对于字符型,键入太多的字符常会引出错误信息。

  ◆ 边界值:输入边界值或超过边界值的数据。

  1.3 测试方法小结

  ◆ 应用场合:GUI的输入

  ◆ 测试方法:分别从输入数据的类型、长度、边界值等方面进行考虑。

   ---------------------------------------------------------------------------------------------------

  2输入默认值

  2.1 缺陷产生原因

  一旦软件中使用了变量,就必须赋给初始值,如果在赋值之前就使用了这些变量,软件就会失效,正确地使用变量的顺序是:声明变量-给变量赋值-使用变量。通常会由于以下两个原因使变量的默认值不正确:

  ◆ 给变量赋值

  ◆ 开发人员有时不确定到底要赋什么初始值,就随便给了一个值,但用户并不认可该值,这种情况下,软件并不一定会失效,但对用户的使用会带来很多不便。例如某程序把打印默认输出份数设置为2份,会给用户造成很大麻烦。

2.2 如何发现这类问题

  确定应用软件中所使用的数据有以下一些基本原则:

  ◆ 查找选项按钮、配置面板、安装屏幕等。这种屏幕上显示的数据常常在应用程序的许多地方用到。

  ◆ 查阅源代码的数据声明部分(如果可以得到)。

  ◆ 确定了要测试的数据,可以通过以下操作来强制使用或不使用默认的值:

    ● 接受软件显示的默认值。有时软件需要用户输入一个值,如果没有输入任何值,软件就可能失效。这时可以只是简单的单击确定按钮来接受默认值,完成这个功能测试

    ● 键入空值。删掉默认值,使输入域变成空值。

    ● 将默认值改为另一个值,这样会使应用程序以不同的值来运行。

    ● 将输入值改为另一个值,然后再变以空值。

  一个好的软件会这样处理以上情况,将输入的不合法内容默认为合法边界内的某个合理值,或者返回错误提示信息。

  2.3 测试方法小结

  ◆ 应用场合:需要有默认值的地方

  ◆ 测试方法:分别从选项按钮、配置面板、安装配置、开始界面等方面进行考虑,强制使用或不使用默认值等。

  ---------------------------------------------------------------------------------------------------

  3、输入特殊字符集

  3.1 缺陷产生原因

  应用程序接受字符串输入,如果程序没有针对特殊输入进行特殊编程,那么就有可能导致程序

  挂起,主要包括以下3种情况:

  ◆ 字符集包括普通字符和特殊字符。例如,ASCII字符集包括普通字符和特殊字符。应用程序有时只能处理普通字符,当输入特殊字符时就会出现错误

  ◆ 实现应用程序的程序设计语言有特定的处理一些字符和字符串的方法。例如,C语言把\n++&这样的字符用于特殊目的。如果将这些字符串键入到对话框中,程序必须进行错误处理,否则容易产生错误。

  ◆ 应用程序有时也使用设置名称、系统对象和程序的保留字符串集合。只要在程序中使用了这些字符串,就可能导致失效。

  3.2 如何发现这类问题

  ◆ 根据被测软件所处的操作系统、使用的程序设计语言、字符集等信息列出表格,通过测试小组的讨论,标明应用表格中的哪些字符和数据类型作为输入来测试。

  ◆ 根据经验,软件很少会因为这种操作而崩溃,通常它会挂起没有响应。

  3.3 测试方法小结

  ◆ 应用场合:需要接受字符输入的地方

  ◆ 测试方法:根据被测软件的具体情况输入非法字符。

  ◆ 测试知识储备:尽可能多地了多地了解字符集、程序设计语言和操作系统中的保留字符串及其特定含义,可以使我们更好地分辨这类缺陷。

4、输入使缓冲区溢出的数据

  4.1 缺陷产生原因

  开发人员没有考虑传送给内存缓冲区的字符串的大小。如果缓冲区只能保留固定长度的字符串,输入更长的字符串就会改写其他的内存存储单元,引起操作系统强制性地终止应用程序。

  4.2 如何发现这类问题

  当应用程序允许输入字母、数字时,通过GUI控件(如文本框),或者通过API调用的参数来进行这种测试。

  ◆ 首先弄清楚要测试的输入域的长度,输入最大字符串测试。

  ◆ 输入一个比最大字符串长的字符串,应用程序可能出现错误提示信息,提示不允许输入;或者输入了更长的字符串使应用程序崩溃。

  4.3 测试方法小结

  ◆ 应用场合:需要接受字符输入的地方。

  ◆ 测试方法:根据被测软件的具体情况输入最大字符串或输入一个比最大字符串更长的字符串

  ---------------------------------------------------------------------------------------------------

  5、输入产生错误的合法数据组合

  5.1 缺陷产生原因

  测试多个输入值的组合,每个输入值已被单独测试过,但是这些值的组合可能会互相影响而引起软件失效。

  5.2 如何发现这类问题

  首先要确定测试哪些输入组合,并弄清楚它们之间的关系。如果具备以下任一特性,就可以认为这些变量是有关系的。

  ◆ 描述的是有关单个

TAG:

 

评分:0

我来说两句

Open Toolbar