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

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

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

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

测试的目标是要发现错误,因此在编写测试用例的时候也要遵循这个目标,尽量在软件的最薄弱环节多编写测试用例。固然测试时有很多单个输进变量、多个输进变量的组合,但优秀的软件测试职员不会依靠运气,他们有着丰富的经验和直觉,可以从中找到哪些是需要进行测试的,哪些不需要测试,哪些操纵可能会引起软件失效。把这些测试职员的经验和直觉尽量回纳和固化,就形成了一些故障模型。故障模型指明了故障是如何以及为什么会在软件执行时引起软件失效。在测试过程中,我们可以按照这些故障模型所提供的缺陷类型和寻找该类缺陷的方法找到尽量多的缺陷。

-------------------------------------------------- --------------------------------------------------- ------------------------------------教学模型

1 输进非法数据

1.1缺陷产生原因

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

? 防止不正确的输进进进被测软件。过滤掉不正确的输进,只答应正当输进通过界面。

? 输进了不正确的数据后,软件提示错误信息,拒尽不正确的输进。

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

可见开发职员除了编写主要的功能代码外,还必须编写对非法输进的检查代码,这些代码经常被遗忘,或者编写完这部分代码后,开发职员很少认真检查,导致处理非法输进经常出错。

1.2如何发现这类题目

进行测试时从输进值的属性出发,一般考虑以下三点:

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

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

? 边界值:输进边界值或超过边界值的数据。

1.3测试方法小结

? 应用场合:GUI的输进。

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

? 测试信息检查:

l 错误信息和错误要一致。

l 错误信息的内容为空,用户不知道为什么出错。

l 显示的错误信息是给开发职员调试使用的,例如“Error 5-unknown data”,开发职员可以通过该信息很轻易找到错误类型,但是用户根本不明白,不知道做错了什么。

? 测试知识储备:牢记各基本数据类型的边界值。

-------------------------------------------------- --------------------------------------------------- ------------------------------------ 2 输进默认值

2.1缺陷产生原因

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

? 给变量赋值这一步经常会被开发职员不经意地途经。

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

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

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

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

? 确定了要测试的数据,可以通过以下操纵来强制使用或不使用默认的值: l 接受软件显示的默认值。有时软件需要用户输进一个值,假如没有输进任何值,软件就可能失效。这时可以只是简单的单击“确定”按钮来接受默认值,完成这个功能测试。

l 键进空值。删掉默认值,使输进域变成空值。

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

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

一个好的软件会这样处理以上情况,将输进的不正当内容默以为正当边界内的某个公道值,或者返回错误提电力模型示信息。

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如何发现这类题目

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

? 描述的是有关单个内部数据结构的属性和内容。例如,输进面板需要用户输进列表的“行”和“列”,这时测试职员要输进单个内部数据结构“列表”的属性“行和列”。

? 一起用在了一个计算中,也就是将多个输进用做一个内部计算的操纵数,因此这些输进变量具有了相互“关系”。

5.3测试方法小结

? 应用场合:输进值之间存在依靠关系。

? 测试方法:输进可能是存在题目的组合值。

? 测试知识储备:尽可能多的内部数据结构的属性和内容,并与开发职员探讨,以确定输进的数据值。

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

6 产生同一个输进的各种可能输出

6.1缺陷产生原因

单个输进产生多种输出的情况与先前的输进和被测系统的状态都有关系。例如,在文字处理程序中单击“封闭”按钮,假如文件被编辑且未被保存,程序将提示是否保****募<偃缥募驯槐4婀蛭募苯臃獗铡

相关主题
相关文档
最新文档