文档库 最新最全的文档下载
当前位置:文档库 › 软件功能性测试的21种故障模型

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

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

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

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

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

1、输入非法数据

1.1 缺陷产生原因

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

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

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

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

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

1.2 如何发现这类问题

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

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

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

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

1.3 测试方法小结

◆应用场合:GUI的输入。

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

◆测试信息检查:

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

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

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

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

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

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

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

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

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

5.3 测试方法小结

◆应用场合:输入值之间存在依赖关系。

◆测试方法:输入可能是存在问题的组合值。

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

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

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

6.1 缺陷产生原因

单个输入产生多种输出的情况与先前的输入和被测系统的状态都有关系。例如,在文字处理程序中单击“关闭”按钮,如果文件被编辑且未被保存,程序将提示是否保存文件。如果文件已被保存过,则文件直接关闭。

6.2 如何发现这类问题

测试人员必须具有关于被测系统软件的业务方面的知识,具备各种程序文

档,明确一个输入可以产生何种输出。我们可以据此列出关于程序输入与输出的一个列表,然后进行测试。

6.3 测试方法小结

◆应用场合:同一输入对应多个输出的情况。

◆测试方法:测试输入对应的每一个输出。

◆测试知识储备:全面理解需求规格说明书中的内容,找出输入与输出之间的关系。

7、输出不符合业务规则的无效输出

7.1 缺陷产生原因

有时开发人员也可能对业务了解不深刻,对有些问题也是一知半解,因此编写出的软件就会产生不符合业务逻辑的问题。另外在绝大多数情况下开发人员会忽略处理没有遵循一般规则的输入,如果不对这些特殊情况进行编程处理,软件就会产生错误的结果。

7.2 如何发现这类问题

◆测试人员应该尽可能地学习的涉及问题的领域。

◆有时在列举出无效输出后,也很难知道哪些输入组合能强制这些输出产生。这时测试人员必须先要确定哪些输入与输出有关,然后用产生意外结果的输入组合进行测试,测试过程中要注意输入执行顺序,用不同的顺序执行可能得到不同的结果。如果不能强制无效的输出产生,就说明软件没有这方面的缺陷。

7.3 测试方法小结

◆应用场合:强制产生不符合业务背景的知识。

◆测试方法:列举出所有的无效输出,然后逐一测试。

◆测试知识储备:全面理解需求规格说明书中的内容,熟悉行业背景知识。---------------------------------------------------------------------------------------------------

8、输出属性修改后的结果

8.1 缺陷产生原因

输出常常具有可修改的属性,如颜色、形状、维数及大小等,用户可以修改这些属性。在这种情况下,开发人员必须编码、设立初始或默认属性值,然后编码允许用户编辑这些属性。当用户改变了这些属性后,内部的相应变量值也随着变化,再次进行处理时,这些值没有被重新恢复为默认值,输出的属性就被强制改变了。

8.2 如何发现这类问题

该测试方法可以使用在那些输出具有可编辑性、可修改性的功能中。测试人员首先要仔细了解能够产生的输出,特别要注意具有可编辑属性的输出。测试人员的任务就是强制每个输出产生,并编辑其属性,然后再次强制输出产生。

8.3 测试方法小结

◆应用场合:输出的结果,可以由用户修改属性得出。

◆测试方法:强制每个输出产生,并编辑其属性,然后再次强制产生输出。

◆测试知识储备:全面理解需求规格说明书中的内容,了解能够产生的输出。

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

9、屏幕刷新显示

9.1 缺陷产生原因

通常GUI软件会产生刷新问题,因为GUI在对窗口进行覆盖、移动和调整大小时,必须刷新屏幕才能使对象重新显示。但是如果经常刷新,容易减慢应用程序的运行速度;如果不刷新,又会影响用户对程序的使用,使用户必须停止工作,去寻找刷新的方法才可以继续工作。所以开发人员有时候不能很好地确定什么时候需要刷新,需要刷新多大范围的区域,这就发生了令人烦恼的刷新问题。

9.2 如何发现这类问题

测试刷新问题的方法是增加、删除称移动屏幕上的对象,这样会使某些对象重新显示。如果不能正确、及时地进行重新显示,就产生了软件缺陷。我们可以通过以下几个方法来检查刷新:

◆从起始位置移动对象。先移动一点,然后增加移动幅度;先移动一次或

两次,然后多次移动,确保覆盖了所有区域。

◆从覆盖对象的边界开始一点点覆盖,使其中一个对象遮住别一个对象。

◆使用不同类型的对象。如果应用程序支持多种类型的对象,如文本对象、图形对象等,就把这些不同对象混在一起使用。

9.3 测试方法小结

◆应用场合:一个对象包含在另一个对象中,拖动被包含对象时,可能出现刷新问题。

◆测试方法:增加、删除和移动屏幕上的对象。

◆测试知识储备:全面理解需求规格说明书中的内容,了解程序中对象之间的关系。

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

10、数据结构溢出

10.1 缺陷产生原因

所有数据结构的大小都有上限。一些数据结构会逐步增加长度以充满机器内存容量或磁盘空间,而其它数据结构具有固定的上限。开发人员经常对有关数据结构的内容进行编码,忘记结构本身的物理局限。

10.2 如何发现这类问题

◆确定数据结构的界限,尝试将过多的值输入数据结构。应该特别注意界限为数据类型的边界256、1024、32768等上溢的测试。

◆对于下溢的测试,可以尝试多删除一个数据,例如当结构为空时,尝试再删除,或者添加一个数据,尝试删除两个数据时的情况。

10.3 测试方法小结

◆应用场合:程序中存在数组。

◆测试方法:尝试将过多的值输入数据结构,测试上溢;对于下溢的测试,可以尝试多删除一个数据。

◆测试知识准备:全面理解需求规格说明书中的内容,确定数据结构的界限。

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

11、数据结构不符合约束

11.1 缺陷产生原因

在编程过程中对内部数据结构都有所约束,包括大小、维数、类型、形状、屏幕上的位置等。我们测试的重点就是用户能够设置的属性,这些属性使用了一组参数来约束。在建立数据项和随后对数据项进行修改的任何时刻都要对数据属性的约束进行检查。初始化代码中修改后的代码有错误,在修改错误的时候只修改了初始化部分,而忽略了对其他部分的修改,使得其修改不完全,不彻底。

11.2 如何发现这类问题

◆确认候选数据,并列出其可修改的属性。对每个属性列出有效值的允许范围、约束的条件等。

◆确定所有可修改属性的功能位置。

◆对数据进行初始化,改变每个属性以确定是否正确进行了约束。

如果数据约束遭到破坏,可能导致系统崩溃,或者表现为响应时间延迟,错误信息不正确以及使用错误数据产生的无效输出。

11.3 测试方法小结

◆应用场合:应用程序内部的数据结构存在约束。

◆测试方法:破坏内部数据结构的约束。

◆测试知识储备:全面理解需求规格说明书中的内容,确定内部数据结构的所有约束。

12、操作数与操作符不符

12.1 缺陷产生原因

几乎每个运算符都有它无效的操作数,对于具体的操作符,开发人员在使用它们时,必须编写错误检查代码。例如:除以零的问题。

12.2 如何发现这类问题

找到程序中包含的数据或输入(即操作数)的计算(即操作符)、数学表达

式(即操作符和操作数的组合)及对图形的操作。另外,对多个操作数进行组合也更容易发生错误。例如,字符和数字都可以使用“+”操作符。对字符通过“+”把它们连成一串;对数字通过“+”来进行加法运算。如果系统尝试把字符和数字相加,即进行相互矛盾的操作,就会引起软件失效。

12.3 测试方法小结

◆应用场合:需要进行数值计算的程序或图形操作的程序。

◆测试方法:对于数值计算考虑操作数和操作符之间的限定关系,对于图形计算还要考虑各种输入数据之间的组合关系。

◆测试知识储备:全面掌握被测软件中操作符对操作数的要求。掌握不同的操作符和操作数具有的不同的有效和无效的取值范围。

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

13、递归调用自身

13.1 缺陷产生原因

函数有时会递归调用自身,如果不限制执行次数,递归就会出现问题,它不断地调用自身,很快地占用机器资源,最终产生溢出,使程序崩溃或挂起。产生这类问题的主要原因是开发人员没有编码来保证循环和递归调用的终止,通常是在循环的开始或结束时缺少检查条件。

13.2 如何发现问题

在软件中寻找可以使用递归调用的功能。这时可以制作一个列表,标明软件中可能嵌入递归的功能的列表,然后自己引用自己来检查程序是否能正确处理。

13.3 测试方法小结

◆应用场合:需要和其它对象进行交互的地方。

◆测试方法:考虑对象的自我交互或复制。

◆测试知识储备:全面掌握被测软件的需求。

14、计算结果溢出

14.1 缺陷产生原因

当所有的输入和数据都有效时,计算的最终结果也可以是无效的。所有变量都有值域范围,有时开发人员在执行计算时会忘记检查这些上限。

14.2 如何发现这类问题

一次又一次地执行计算或使用很大或很小的输入和数据进行计算,重点测试数据类型的初始值或边界值附近的值。

14.3 测试方法小结

◆应用场合:应用程序执行能够导出待产生结果并进行内部存储的计算。

◆测试方法:强制数据产生上溢或下溢。

◆测试知识储备:全面掌握被测软件的需求,了解计算变量的上下限。

15、数据共享或关联功能计算错误

15.1 缺陷产生原因

通常对孤立的功能进行测试时不会发生很多缺陷,而当把单独的功能和同一软件中的其它功能结合时,就可能出现很多软件缺陷。这种缺陷的产生往往是在两个或更多的功能使用了共享数据集,而每个功能允许使用的数据范围不同引起的。例如,一个功能可能会将某数据项设置为特定大小,然而另一个功能却允许该数据项的大小可以超过第一个功能的处理能力。开发人员根本没考虑到该数据项在其它功能处也可以修改,他们只是编码保证在该功能中数据的合法性,而当使用该数据时,没有再编码来检查可以使用的范围;而此时,另一个功能修改了共享数据,当再使用这些数据时就产生了缺陷。

15.2 如何发现这类问题

当应用程序在同一时间完成一个以上的功能或当一个以上的功能在同一时间处于运行状态时,就可以使用该方法进行测试。利用一个功能影响输入、输入数据或另一个功能的计算。在测试前要确定哪些功能是相互依赖或共享数据的:

◆能应用同样输入的每个功能。如果这些功能有相互重叠的输入域,就可能存在交互问题。

◆有类似的输出产生功能。如果某些功能结合起来产生单个输出,就说明这些部件之间存在关系,应该被一起测试。

◆一个功能被包含在另一个功能的计算中。例如要测试鼠标选取对象的功

能,不仅要测度鼠标选取屏幕上的文本的功能,还可以把包含超链接文本、粗体、斜体、符号及图形元素放在一起,测试鼠标选取这些元素的功能。

15.3 测试方法小结

◆应用场合:一个以上的功能在同一时间处于运行状态。

◆测试方法:以点代面,重点测试某一功能,对可能与这个功能相连的其它功能附带测试。

◆测试知识储备:全面掌握被测软件的需求,在测试之前对被测功能之间的依赖关联有所掌握,另外还需要对共享数据有所掌握。

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

16、文件系统超载

16.1 缺陷产生原因

开发人员可能会忘记编写代码处理满状态的文件系统,忽略了诸如CreateFile,WriteFile等操作系统API的错误检查代码,没有这样的代码,当显示满状态的文件系统时,API调用就会失败,软件就会在没有任何警告的情况下崩溃。

16.2 如何发现这类问题

创建满容量或近乎满容量的文件系统,然后强制执行各种通过输入或输出访问文件系统的操作;或者打开足够多的文件,打开文件时会强制备份创建的副本,从而占用双倍的存储空间,这种操作达到一定程度时,会达到该系统的容量,于是就能测试应用程序处理超载状态的文件系统的能力。(通常通过磁盘配额实现)

16.3 测试方法小结

◆应用场合:系统较大,运行时需要较大的空间。

◆测试方法:强制磁盘系统满容量或容量小于等于被测软件运行时所需容量后,运行被测软件或利用测试工具模拟磁盘状况。

◆测试知识储备:全面掌握被测软件的需求,了解被测软件处理超载状态的文件系统的能力。

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

17、介质忙或不可用

17.1 缺陷产生原因

当多个应用程序同时访问硬盘(或其它存储器),操作系统为提供多请求服务会慢下来,并且必须对应用程序进行编程以处理这些延迟,当延迟变得很长时,没有对这些错误进行响应的应用程序就会出现错误。

17.2 如何发现这类问题

通过启动大量应用程序,强制它们都打开并保存文件使文件系统处理繁忙状态;或者同时下载大量文件也可以使后台拥挤;检查被测软件能否正确处理这种情况,应用程序应该给出错误信息或等待批示,提示用户正在处理。

17.3测试方法小结

◆应用场合:应用程序的运行需要消耗大量内存或运行时需要其它相关软件同时运行。

◆测试方法:启动大量程序或利用测试工具模拟磁盘状况。

◆测试知识储备:全面掌握被测软件的需求,了解被测软件运行时对系统的要求。

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

18、介质损坏

18.1 缺陷产生原因

◆损坏的介质可能会使操作系统传回错误代码,这些错误代码没有在应用程序中编程处理。

◆操作系统不能检测出所有这样的错误,操作系统自己也有错误或者损坏的介质损坏了部分操作系统。

18.2 如何发现这类问题

使用损坏了的介质,例如,刮伤、灰尘、磁干扰等。检查应用程序对错误的处理能力,应用程序可以对错误进行处理或者将问题告诉用户,并要确保用户数

据文件不丢失、为损坏。

18.3 测试方法小结

◆应用场合:应用程序对安全的要求较高,对灾难恢复的要求较高。

◆测试方法:用实际损坏介质的方法测试应用程序。

◆测试知识储备:全面掌握被测软件的需求,了解被测软件运行时对系统的要求。

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

19、文件名不合法

19.1 缺陷产生原因

操作系统本身具有自己的文件命名规范,例如,Dos的8.3格式。在Windows 中,文件名不能超过255个字符,并且文件名不可以含有/ \ : < > ? * |这8个字符,以及AUX、COM1、COM2、COM3、COM4、CON、LPT1、LPT2、LPT3、LPT4、NUL及PRN这些操作系统保留字。

开发人员在应用程序中使用不相同的规则管理文件名,当应用程序和操作系统使用的文件名命名规则不一致的时候,就会发生问题。

19.2 如何发现这类问题

◆保存文件为操作系统不允许的文件名,例如,文件名中含有/ \ : < > ? * |这8个字符,测试应用程序是否不允许输入包含这些字符的文件名。

◆输入一些应用程序不允许使用的文件名,例如,使用过长的、含有特殊字符的、可能相互作用的字符作为文件名,检查应用程序能否识别该文件。

19.3 测试方法小结

◆应用场合:几乎所有涉及需要输入文件名功能的应用程序。

◆测试方法:输入操作系统不允许的文件名和应用程序不允许使用的文件名。

◆测试知识储备:全面掌握被测软件的需求,了解操作系统和应用程序对文件名的要求。

20、更改文件访问权限

20.1 缺陷产生原因

在操作系统中,可以设置不同用户对不同的文件具有不同的访问权限(如读写、只读等)。程序员必须在访问文件的函数中考虑文件的访问权限,例如在每个文件写入之前检查文件的访问权限。如果没有进行检查,就会导致程序出错。另外,如果文件访问失败,程序员必须要有正确的错误的代码,以保证程序可以正确捕获所产生的错误。

20.2 如何发现这类问题

◆打开两个应用程序,关闭同一个文件。例如,把同一个应用程序的不同版本安装在同一机器上,在不同版本的应用程序中打开和关闭同一文件,或试着在某个应用程序中打开在另一个程序中已打开的文件,这可能导致文件访问权限的冲突。

◆打开一个文件,在操作系统中修改文件的访问权限。有些操作系统允许权限高的用户控制一般用户已经打开的文件。

20.3 测试方法小结

◆应用场合:需要对文件进行读写操作的应用程序。

◆测试方法:修改文件访问权限或使用低权限的用户访问文件。

◆测试知识储备:全面掌握被测软件的需求,了解读写文件所需的权限。---------------------------------------------------------------------------------------------------

21、文件内容受损

21.1 缺陷产生原因

开发人员编写代码来读取和写入文件,他们也编写代码来调用系统API得到文件指针,并打开和关闭文件。由于某些原因,这些系统API会失败或传回异常返回值。如果开发人员没有编写代码来验证传回的预期返回值,则应用程序会由于无法处理异常而失败。

21.2 如何发现这类问题

◆手工损坏文件。从应用程序已创建的某个完整文件开始对其进行编辑,改变文件格式和内容。

◆使用测试工具。模拟CRC(循环冗余校验)错误,或强制文件API返回无效的返回码。

21.3 测试方法小结

◆应用场合:需要对文件格式和内容进行校验的应用程序。

◆测试方法:手工损坏文件或利用测试工具模拟CRC错误。

◆测试知识储备:全面掌握被测软件的需求,了解文件读写需要的权限。

基于模型的测试综述报告

基于模型的测试综述 2016年1月

摘要 面向对象软件开发应用越来越广泛,自动化测试也随之被程序员认可和接受,随之而来的就是基于UML的软件开发技术的大范围普及和基于模型的软件测试技术的普遍应用。基于模型的测试是软件编码阶段的主要测试方法之一,具有测试效率高、排除逻辑复杂故障测试效果好等特点。本文描述了基于模型的测试的模型以及建模标准,并介绍基于模型的测试的基本过程以及支持工具,同时通过七个维度对基于模型的测试方法进行描述。最后分析基于模型的测试的优缺点并列举了应用案例。 关键词:软件测试,基于模型的测试,软件模型,测试工具

目录 摘要................................................ I 1 引言 (2) 2 基于模型的测试、模型以及建模标准 (2) 2.1基于模型的测试 (2) 2.2基于模型的测试的模型 (3) 2.3建模标准 (4) 3 基于模型的测试的基本过程及支持工具 (5) 3.1基于模型的测试的基本过程 (5) 3.2支持工具 (6) 4 分类 (7) 4.1 模型主体 (7) 4.2 模型冗余程度 (7) 4.3 模型特征 (7) 4.4 模型表示法 (7) 4.5 测试用例选择标准 (8) 4.6 测试用例生成技术 (8) 4.7 联机、脱机测试用例生成 (9) 5 基于模型的测试的工具Spec Explorer (9) 5.1 Spec Explorer (9) 5.2 连接测试用例和待测系统 (9) 5.3 静态模型和实例模型 (11) 6 基于模型的测试的优缺点 (11) 参考文献 (13)

软件测试基础期末试卷及参考答案

1、判定覆盖设计足够多的测试用例,使得被测试程序中的每个判断的“真”、“假”分支_至少被执行一次。 2、黑盒测试的具体技术方法 ____________、 __________、 __________、____________。 等价类划分法,边界值分析法,决策表法,因果图法 3、黑盒测试又称之为___________测试。 功能 4、等价类划分有两种不同的情况:____________和____________。 有效等价类,无效等价类 5、根据覆盖目标的不同,逻辑覆盖又可分为:________________,_____________,_______________,__________________,条件组合覆盖,判断/条件覆盖。 语句覆盖,判定覆盖,条件覆盖,路径覆盖 6、根据软件生命周期中的定义,可以把自动化测试工具划分3大类____________,____________和 ____________。 白盒测试工具、黑盒测试工具、测试管理工具 7、软件测试是为发现程序中的______________而执行程序的______________。 错误,过程 8、测试用例是由______________和预期的______________两部分组成。 测试输入数据,输出数据 9、白盒测试又称为______________,可以分为______________和______________两大类。 结构测试,静态测试,动态测试 10、软件是包括____________﹑____________﹑____________的完整集合。 程序,数据,相关文档 11、边界值分析法属于____________。 黑盒测试 12、单元测试是以____________说明书为指导,测试源程序代码。 详细设计 13、集成测试以____________说明书指导,测试软件结构。 概要设计 14、确认测试以____________说明书为指导。 需求分析 15、软件开发的基本过程____________,_____________,_______________,_____________, _____________,______________。 需求分析、概要设计、详细设计,编码,测试、维护 16、代码复审属于____________,不实际运行程序。 静态测试 17、集成测试把模块组成成系统的测试方式:_____________和______________。 一次性集成测试,增量式集成测试 18、黑盒测试有两种基本方法,即:_____________和______________。 通过测试,失败测试 二、选择题(每题3分,共10题,分数为30分) 1. 下列哪一项不是白盒测试(C) A.单元测试 B.集成测试 C.系统测试 D.回归测试 2. 属于黑盒测试的方法(C) A.基于基本路径 B.控制流 C.基于用户需求测试 D.逻辑覆盖 3.在Assert类中断言对象为NULL是_____。(C) 4.___________的目的是对最终软件系统进行全面的测试确保最终软件系统产品满足需求。(A)

软件故障的21种模型(DOC)

软件功能性测试的21种故障模型 测试的目标是要发现错误,因此在编写测试用例的时候也要遵循这个目标,尽量在软件的最薄弱环节多编写测试用例。虽然测试时有很多单个输入变量、多个输入变量的组合,但优秀的软件测试人员不会依靠运气,他们有着丰富的经验和直觉,可以从中找到哪些是需要进行测试的,哪些不需要测试,哪些操作可能会引起软件失效。把这些测试人员的经验和直觉尽量归纳和固化,就形成了一些故障模型。故障模型指明了故障是如何以及为什么会在软件执行时引起软件失效。在测试过程中,我们可以按照这些故障模型所提供的缺陷类型和寻找该类缺陷的方法找到尽量多的缺陷。 1 输入非法数据 1.1缺陷产生原因 开发人员通常用以下3种技术来处理非法输入: ? 防止不正确的输入进入被测软件。过滤掉不正确的输入,只允许合法输入通过界面。? 输入了不正确的数据后,软件提示错误信息,拒绝不正确的输入。 ? 允许不正确的输入进入系统并进行处理,软件失效时调用异常处理程序,显示一些错误信息。 可见开发人员除了编写主要的功能代码外,还必须编写对非法输入的检查代码,这些代码经常被遗忘,或者编写完这部分代码后,开发人员很少认真检查,导致处理非法输入经常出错。 1.2如何发现这类问题 进行测试时从输入值的属性出发,一般考虑以下三点: ? 输入类型:键入无效的类型常会产生错误信息。 ? 输入长度:对于字符型,键入太多的字符常会引出错误信息。边界值:输入边界值或超过边界值的数据。 1.3测试方法小结 ? 应用场合:GUI的输入。 ? 测试方法:分别从输入数据的类型、长度、边界值等方面进行考虑。 ? 测试信息检查: l 错误信息和错误要一致。 l 错误信息的内容为空,用户不知道为什么出错。 l 显示的错误信息是给开发人员调试使用的,例如“Error 5-unknown data”,开发人员可以通过该信息很容易找到错误类型,但是用户根本不明白,不知道做错了什么。 ? 测试知识储备:牢记各基本数据类型的边界值。

软件测试报告总结归纳

G9供应链系统测试报告 目录 1.1 项目背景 1.2测试目的 本次测试的目的是G9总部系统基线版本系统发布前的整体测试,按既定的测试计划对整个系统进行如下测试 1.功能测试(包含界面测试):保证系统主要功能工作正常,满足功能需求; 2.兼容性测试:保证系统在主流浏览器、数据库和操作系统中可以正常工作; 3.故障恢复测试:保证系统异常环境下系统数据完整; 4.性能测试:保证系统在资源有限、数据量多的情况下仍能正常响应; 5.安全性测试:保证系统的权限分配安全有效; 5.文档测试:保证操作文档内容正确无误; 本次测试的系统模块主要有: 1.总部设置系统; 2.总部查询报表系统; 3.数据传输服务端、客户端程序; 4.系统升级程序 5.多服务器数据同步设置 1.3测试环境与配置 测试环境及其配置: 1.操作系统:客户端:windows xp sp3 ;服务端:windows server 2008 2.数据库:Sql Server 2008 R2 3.浏览器:IE7+ 4.网络环境:局域网 5.组件环境:.net framework4.0 1.4测试用例 功能、模块名称用例数已通过用例数未通过用例数备注 1.5缺陷的统计与分析

1.5.1缺陷汇总 系统模块总部设置、总部查询系统 按严重程度已修复bug数未修复/暂缓bug明细各级bug总数 严重、高16个1.总部查询系统——套餐销 售统计表,应计金额和实收 金额和门店统计不一致! (#284) 2.总部查询系统——营业分 析报表-外送服务员业绩统 计表,查询不到数据! (#272) 3.会员卡系统——离线模式 下,门店卡升级信息,总部 查询不到!(#342) 4.总部设置系统——客户管 理系统,维护人员设置,无 法下载到门店!(#283) 5.总部设置系统——雅座卡 客户信息导入功能,按照生 成的模版,将客户信息导入 成功后,在客户资料里看不 到导入的客户信息!(#320) 6.总部设置系统——数据服 务,其他——按门店分发和 按项目分发里,每单消费区 间段没有下发项目!(#264) 22 一般0个 0 0 低0个 0 0 汇总 16 6 22 系统模块会员卡系统 按严重程度 已验证bug 数 未修复/暂缓bug明细 各级bug总数 严重、高24个1.会员卡连锁实时在线方式, 门店制卡提示失败,验证卡 密码出错,但是在总部却可 以查询到此卡号已制卡! (#192) 2.会员卡系统——卡优惠-充 值返券、返积分、消费折扣、 26

软件测试知识点总结

软件测试知识点总结 第一次课10.7软件测试概述 一软件测试定义:使用人工或者自动的手段来运行或测定它是否满足规定的需求,或弄预期结果与实际结果之间的差别。 二软件测试的分类 1.按照开发阶段划分 a)单元测试:模块测试,检查每个程序单元嫩否正确实现详细设计 说明中的模块功能等。 b)集成测试:组装测试,将所有的程序模块进行有序、递增的测试, 检验程序单元或部件的接口关系 c)系统测试:检查完整的程序系统能否和系统(包括硬件、外设和 网络、系统软件、支持平台等)正确配置、连接,并满足用户需 求。 d)确认测试:证实软件是否满足特定于其用途的需求,是否满足软 件需求说明书的规定。 e)验收测试:按项目任务或合同,供需双方签订的验收依据文档进 行的对整个系统的测试与评审,决定是否接受或拒收系统。 2.按照测试技术划分 白盒测试:通过对程序内部结构的分析、检测来寻找问题。检查是否所有的结构及逻辑都是正确的,检查软件内部动作是否按照设计说明的规定正常进行。--结构测试 黑盒测试:通过软件的外部表现来发现错误,是在程序界面处进行

测试,只是检查是否按照需求规格说明书的规定正常实现。 灰盒测试:介于白盒测试与黑盒测试之间的测试。 3 按照测试实施组织划分:开发方测用户测试第三方测试 4 是否使备测软件运行:静态测试动态测试。 课后作业:1.软件测试与调试的区别? (1)测试是为了发现软件中存在的错误;调试是为证明软件开发的正确性。 (2)测试以已知条件开始,使用预先定义的程序,且有预知的结果,不可预见的仅是程序是否通过测试;调试一般是以不可知的内部条件开始,除统计性调试外,结果是不可预见的。 (3)测试是有计划的,需要进行测试设计;调试是不受时间约束的。(4)测试经历发现错误、改正错误、重新测试的过程;调试是一个推理过程。 (5)测试的执行是有规程的;调试的执行往往要求开发人员进行必要推理以至知觉的"飞跃"。 (6)测试经常是由独立的测试组在不了解软件设计的条件下完成的;调试必须由了解详细设计的开发人员完成。 (7)大多数测试的执行和设计可以由工具支持;调式时,开发人员能利用的工具主要是调试器。 2.对软件测试的理解? 软件测试就是说要去根据客户的要求完善它.即要把这个软件还

软件测试过程模型

软件测试过程模型 发布时间: 2010-7-27 11:02 作者: 未知来源: 51Testing软件测试网采编 字体: 小中大| 上一篇下一篇| 打印| 我要投稿| 每周一问,答贴有奖 目前主流的开发模型主要有:瀑布模型、原型模型、螺旋模型、增量模型、渐进模型、快速软件开发(RAD)以及Rational统一过程(RUP)等,这些模型对于软件开发过程具有很好的指导作用,但是,非常遗憾的是,在这些过程方法中,并没有充分强调测试的价值,也没有给测试以足够的重视,利用这些模型无法更好地指导测试实践。软件测试是与软件开发紧密相关的一系列有计划的系统性的活动,显然软件测试也需要测试模型去指导实践。下面对主要的模型做一些简单的介绍。 V模型 V模型是最具有代表意义的测试模型。在传统的开发模型中,比如瀑布模型,人们通常把测试过程作为在需求分析、概要设计、详细设计和编码全部完成后的一个阶段,尽管有时测试工作会占用整个项目周期的一半的时间,但是有人仍然认为测试只是一个收尾工作,而不是主要过程。V模型的推出就是对此种认识的改进。V模型是软件开发瀑布模型的变种,它反映了测试活动与分析与分析和设计的关系,从左到右,描述了基本的开发过程和测试行为,非常明确地标明了测试过程中存在的不同级别,并且清楚地描述了这些测试阶段和开发过程期间各阶段的对应关系,如模型图中所示,图中的箭头代表了时间方向,左边下降的是开发过程各阶段,与此相对应的是右边上升的部分,即各测试过程的各个阶段。 V模型的软件测试策略既包括低层测试又包括了高层测试,低层测试是为了源代码的正确性,高层测试是为了使整个系统满足用户的需求。 V模型指出,单元和集成测试是验证程序设计,开发人员和测试组应检测程序的执行是否满足软件设计的要求;系统测试应当验证系统设计,检测系统功能、性能的质量特性是否达到系统设计的指标;由测试人员和用户进行软件的确认测试和验收测试,追溯软件需求说明书进行测试,以确定软件的实现是否满

《软件测试基础》期末试卷及参考答案

期末试卷先锋学院2011-2012学年第二学期 《软件测试技术》试题库答案 一、填空题(每空2分,共15空,分数为30分) 1、判定覆盖设计足够多的测试用例,使得被测试程序中的每个判断的“真”、“假”分支至少被执行一次。 2、黑盒测试的具体技术方法等价类划分法、边界值分析法、决策表法、因果图法。 3、黑盒测试又称之为功能测试。 4、等价类划分有两种不同的情况:有效等价类和无效等价类。 5、根据覆盖目标的不同,逻辑覆盖又可分为:语句覆盖,判定覆盖,条件覆盖,路径覆盖条件组合覆盖,判断/条件覆盖。 6、根据软件生命周期中的定义,可以把自动化测试工具划分3大类白盒 测试工具、黑盒测试工具和测试管理工具。 7、软件测试是为发现程序中的错误而执行程序的过程。 8、测试用例是由测试输入数据和预期的输出数据两部分组成。 9、白盒测试又称为结构测试,可以分为静态测试和动态测试两大类。 10、软件是包括程序、数据、相关文档的完整集合。 11、边界值分析法属于黑盒测试。 12、单元测试是以详细设计说明书为指导,测试源程序代码。 13、集成测试以概要设计说明书指导,测试软件结构。 14、确认测试以需求分析说明书为指导。 15、软件开发的基本过程需求分析、概要设计、详细设计、编码、测试、 维护。

16、代码复审属于静态测试,不实际运行程序。 17、集成测试把模块组成成系统的测试方式:一次性集成测试和。 18、黑盒测试有两种基本方法,即:通过测试和失败测试。增量式集成测试 20、Junit是一个开放源代码的 java 测试框架,用于编写和运行可重复的测试。 21、在Junit中3.8中testXXX()测试方法必须满足几个条件:public , void 和无方法参数。 二、选择题(每题3分,共10题,分数为30分) 1. 下列哪一项不是白盒测试?(C) A.单元测试 B.集成测试 C.系统测试 D.回归测试 2. 属于黑盒测试的方法?(C) A.基于基本路径 B.控制流 C.基于用户需求测试 D.逻辑覆盖3.在Assert类中断言对象为NULL是_____。(C) A.assertEquals B.assertTrue C.assertNull D.fail 4.___________的目的是对最终软件系统进行全面的测试确保最终软件系统产品满足需求。(A) A.系统测试B.集成测试 C.单元测试D.功能测试 5.在Assert类中断言两个对象相等是_____。(A) A.assertEquals B.assertTrue C.assertSame D.fail 6.有一组测试用例使得每一个被测试用例的分支覆盖至少被执行一次,它满足的覆盖标准___________。(B)

软件测试综合题目(附答案)-上

一、选择题: 1.模块的耦合度描述了___D___。 A.模块内各种元素结合的程度B.模块内多个功能之间的接口 C.模块之间公共数据的数量D.模块之间相互关联的程度 2.内聚是一种指标,表示一个模块_B_____。 A.代码优化的程度B.代码功能的集中程度 C.完成任务时及时程度D.为了与其他模块连接所要完成的工作量3.在UNIX操作系统中,把输入/输出设备看作是__D____。 A.普通文件B.目录文件C.索引文件D.特殊文件4.“science”是一个XML 元素的定义,其 中元素标记的属性值是__C____。 A.title B.style C.italic D.science 5. ___C___描述数据的局部逻辑视图,是数据库用户的数据视图,它是与某一 应用有关的数据逻辑表示。 A.模式B.逻辑模式C.外模式D.内模式解析:三级模式结构:外模式、模式和内模式 一、模式(Schema) 定义:也称逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。 理解: ①一个数据库只有一个模式; ②是数据库数据在逻辑级上的视图; ③数据库模式以某一种数据模型为基础; ④定义模式时不仅要定义数据的逻辑结构(如数据记录由哪些数据项构成,数据项的名字、类型、取值范围等),而且要定义与数据有关的安全性、完整性要求,定义这些数据之间的联系。 二、外模式(External Schema) 定义:也称子模式(Subschema)或用户模式,是数据库用户(包括应用程序员和最终用户)能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。 理解: ①一个数据库可以有多个外模式; ②外模式就是用户视图; ③外模式是保证数据安全性的一个有力措施。 三、内模式(Internal Schema) 定义:也称存储模式(Storage Schema),它是数据物理结构和存储方式的描述,是数据在数据库内部的表示方式(例如,记录的存储方式是顺序存储、按照

软件测试模拟题及答案

一、选择题 1、下列软件属性中,软件产品首要满足的应该是【A 】 A.功能需求B.性能需求 C.可扩展性和灵活性D.容错纠错能力 2、软件缺陷产生的原因是【 D 】。 A.交流不充分及沟通不畅;软件需求的变更;软件开发工具的缺陷 B.软件的复杂性;软件项目的时间压力 C.程序开发人员的错误;软件项目文档的缺乏 D.以上都是 3、导致软件缺陷的最大原因是【 A 】 A.规格说明书 B.设计 C.编码 D.测试 4、修复软件缺陷费用最高的是【 D 】阶段 A.编制说明书 B.设计 C.编写代码 D.发布 5、下列【 A 】不属于软件缺陷。 A.测试人员主观认为不合理的地方 B.软件未达到产品说明书标明的功能 C.软件出现了产品说明书指明不会出现的错误 D.软件功能超出产品说明书指明范围 6、软件测试的目的是【 B 】 A.避免软件开发中出现的错误 B.发现软件开发中出现的错误 C.尽可能发现并排除软件中潜藏的错误,提高软件的可靠性 D.修改软件中出现的错误 7、软件测试技术可以分为静态测试和动态测试,下列说法中错误的是【 D 】。 A.静态测试是指不运行实际程序,通过检查和阅读等手段来发现程序中的错误。 B.动态测试是指实际运行程序,通过运行的结果来发现程序中的错误。 C.动态测试包括黑盒测试和白盒测试。 D.白盒测试是静态测试,黑盒测试是动态测试。

8、白盒测试是根据程序的【 C 】来设计测试用例。 A.功能B.性能C.内部逻辑D.内部数据9、黑盒测试是根据软件的【 B 】来设计测试用例。 A.功能B.规格说明C.内部逻辑D.内部数据10、用黑盒技术设计测试用例的方法之一为【 A 】 A.因果图 B.逻辑覆盖 C.循环覆盖 D.基本路径测试11、坚持在软件的各个阶段实施下列哪种质量保障措施,才能在开发过程中尽早发现和预防错误,把出现的错误克服在早期【 A 】。 A.技术评审B.程序测试 C.改正程序错误 D.管理评审12、为了提高测试的效率,正确的做法是【 A 】。 A.选择发现错误可能性大的数据作为测试用例 B.在完成程序的编码之后再制定软件的测试计划 C.随机选取测试用例 D.使用测试用例测试是为了检查程序是否做了应该做的事 13、对程序的测试最好由【 B 】来做。 A.程序员 B.第三方测试机构 C.程序开发组 D.用户14、在边界值分析中,下列数据通常不用来做数据测试的是【 B 】。 A.正好等于边界的值 B.等价类中的等价值 C.刚刚大于边界的值D.刚刚小于边界的值 15、单元测试中设计测试用例的依据是【 D 】。 A.概要设计规格说明书B.用户需求规格说明书 C.项目计划说明书D.详细设计规格说明书 16、如果一个判定中的复合条件表达式为(A > 1)or(B <= 3),则为了达到100%的条件覆盖率,至少需要设计多少个测试用例【 B 】。 A.1 B.2 C.3 D.4 17、在某大学学籍管理信息系统中,假设学生年龄的输入范围为16—40,则根据黑盒测试中的等价类划分技术,下面划分正确的是【 B 】。 A.可划分为2个有效等价类,2个无效等价类 B.可划分为1个有效等价类,2个无效等价类

软件功能测试报告

软件功能测试报告1.概述 软件名称: 软件版本: (同时注明软件软本和测试包的cvs版本) 开发经理:申请单号: 测试人员: 测试日期: 测试内容: 备注: 2.测试环境 用途硬件环境软件环境 表2 测试环境 3.问题统计 (说明:该报告为阶段性测试的统计报告,该报表统计的bug数量为:本发布阶段内第一份申请单提交日期为起,直至填写报告这天为止的BUG数量,如果以前版本中有问题延期至本发布阶段来修正,那么该缺陷也需要统计进来;如果是功能测试报告则只统计当轮的即可,如果是功能+验证则需要统计本发布阶段的) 3.1按BUG状态统计(表格后面可以附上柱形图,以示更直观) BUG状态BUG数量备注 未分配(new) 不是缺陷(Not Bug)

未修改(open) 已修改(fixed) 不予修改(Won’t Fix)延期(Deffered) 被拒绝(Declined)无法重现信息不足重复的 已关闭(Closed) 重开启(Reopen) 合计 表3 按bug状态统计 3.2按BUG类型统计(表格后面可以附上柱形图,以示更直观) BUG 类型 BUG数量 备注未 分 配 未 修 改 不 是 缺 陷 已 修 改 不 予 修 改 延 期 被拒绝 已 关 闭 重 新 开 启 合 计 无 法 重 现 信 息 不 足 重 复 的 功能 界面 交互 3.3按BUG严重级别统计(表格后面可以附上柱形图,以示更直观) BUG 严 BUG数量 备注未未不已不延被拒绝已重合

重级别分 配 修 改 是 缺 陷 修 改 予 修 改 期无 法 重 现 信 息 不 足 重 复 的 关 闭 新 开 启 计 紧 急 严 重 中 等 轻 微 建 议 表5 按bug严重级别统计 3.4按功能模块统计(表格后面可以附上柱形图,以示更直观) 模块名称 BUG数量 备注未 分 配 未 修 改 不 是 缺 陷 已 修 改 不 予 修 改 延 期 被拒绝 已 关 闭 重 新 开 启 合 计 无 法 重 现 信 息 不 足 重 复 的 模块1 模块2 … …

软件测试中遇到的常见问题及沟通方

软件测试中遇到的常见问题及沟通方法 从一开始,测试就要关注需求。往往在讨论设计时,开发和需求很容易忽略了测试成员,他们潜意识里觉得这不关测试什么事。可是,测试也要熟悉业务,熟悉功能,熟悉各种设计,而且测试需要站在用户的角度来去考量他 们的设计是否有不合理的地方,并提出自己的建议。这些工作,测试成员需要主动,积极参加,多提建设性意见,这样可能会让开发慢慢发现测试成员的重要性。 其次,沟通最频繁应该还是关于bug的讨论。下面列出几个遇到的沟通问题,及我的解决办法。 1、这个bug我这边重现不了 解决办法 Bug应该简明扼要,重点突出。如果描述存在歧义,一定要总结并尽快改进。有时会遇到概率性的bug,要告诉开发概率是多少,尽可能多的提供重现的条件。 在复现问题时,希望能大致判断几个问题点,然后和测试人员沟通下,需要如何捕获信息,捕获那类信息?是不是提供debug版本进行复现,或者根据预判的点增加打印信息版本进行复现? 2、这个不是代码问题,需求这么定义的 解决办法 需求也是人定的,如果觉得有异议,可以找需求人员询问清楚,为什么这样定义,把自己的想法告诉他们,看他们怎么决定。如果被需求说服了当然是最好的,如果自己还是不同意需求的看法,需求又不同意我的提议,那只能听他的,毕竟权力在他那里。但是我们可以保留交流的记录,证明曾经在这里发生过歧义。 3、这块是别人负责的,我负责的部分没有问题 解决办法 如果bug是由开发的项目经理来分发到程序员,那就是项目经理来面对这样的问题,而不是测试。当然,项目经理当然有项目经理的处理办法。可是,测试遇到这样的问题怎么办呢,把负责相关内容的开发都邀请到一个讨论组里,让他们自己讨论,这样更清楚,不必在测试这里中转。如果他们都觉得代码没问题,而我也有强有力的截图和真相,那就只有上交给上级领导,让他们来决定怎么解决。

《软件测试基础》期末A卷及参考答案

一、单项选择题:共20小题,每小题1 分,满分20分;请将答案填入题后括号中。 1.在软件生命周期的哪一个阶段,软件缺陷修复费用最低() (A)需求分析(编制产品说明书)(B)设计 (C) 编码(D)产品发布 2.单元测试中用来模拟被测模块调用者的模块是() (A) 父模块(B)子模块 (C)驱动模块(D)桩模块 3.为了提高测试的效率,应该() (A)随机地选取测试数据; (B)取一切可能的输入数据作为测试数据; (C)在完成编码以后制定软件的测试计划; (D)选择发现错误可能性大的数据作为测试数据。 4.侧重于观察资源耗尽情况下的软件表现的系统测试被称为() (A)强度测试(B)压力测试 (C) 容量测试(D)性能测试 5.必须要求用户参与的测试阶段是() (A)单元测试(B)集成测试 (C) 确认测试(D)验收测试 6.软件测试员究竟做些什么。() (A)软件测试员的目的是发现软件缺陷 (B)软件测试员的目的是发现软件缺陷,尽可能早一些 (C)软件测试员的目的是发现软件缺陷,尽可能早一些,并确保其得以修复 (D)软件测试员的目的是发现软件缺陷,尽可能早一些,并将其得以修复 7.下面四种说法中正确的是() (A)因果图法是建立在决策表法基础上的一种白盒测试方法; (B)等价类划分法是边界值分析法的基础; (C)健壮性等价类测试的测试用例要求在有效等价类中取值; (D)在任何情况下做黑盒测试皆应首先考虑使用错误推断法。 8.不属于单元测试内容的是() (A)模块接口测试(B)局部数据结构测试 (C) 路径测试(D)用户界面测试 9.划分软件测试属于白盒测试还是黑盒测试的依据是() (A)是否执行程序代码 (B)是否能看到软件设计文档 (C)是否能看到被测源程序 (D)运行结果是否确定

软件测试总结报告

1 引言 1.1编写目的 编写该测试总结报告主要有以下几个目的 1.通过对测试结果的分析,得到对软件质量的评价 2.分析测试的过程,产品,资源,信息,为以后制定测试计划提供参考 3.评估测试测试执行和测试计划是否符合 4. 分析系统存在的缺陷,为修复和预防 bug 提供建议 1.2背景 1.3用户群 主要读者:***项目管理人员 其他读者:*** 项目相关人员。 1.4定义 基本功能点测试:等价类划分法、边界值法、错误推测法、场景法 业务流程测试:根据业务逻辑,构建测试数据,执行业务流程,查看执行结果与预期是否一致 界面易用性测试:根据界面测试规范及日常使用习惯,提出软件的非功能实现问题 回归测试:对已修复的问题,根据测试出该错误的用例,重新执行该用例,验证问题是否真正被修复,以及是否又引起了其它错误 1.5 测试对象 对综合管理系统进行全新测试,主要进行功能测试、系统测试 1.6测试阶段 第一阶段:对主业务逻辑及功能进行测试 第二阶段:对所有业务逻辑及功能进行深入测试 第三阶段:回归测试 1.7测试工具 BugFree缺陷管理工具 1.8参考资料 《***功能描述》 《***数据字典》

《***测试计划》 《***测试用例》 《***项目计划》 2 测试概要 ***系统测试从 2012年7月25日到2012年10月12日基本结束,历时近70个工作日。后续还有一些扫尾的工作,又增加一些工作时日。是一项花费大量人力物力的项目。 ***通过BugFree缺陷管理工具进行缺陷跟踪管理,在bugfree中有详细的测试用例以及用例执行情况记录 2.1 进度回顾 2.2 测试执行 此次测试严格按照项目计划和测试计划执行,按时完成了测试计划规定的测试对象的测试。针对测试计划规定的测试策略,在测试执行中都有体现,在测试执行过程中,依据测试计划和测试用例,对系统进行了完整的测试、 2.3 测试用例

软件测试流程常见问题

软件测试流程常见问题 1、测试人员要需要何时参加需求分析? 原则上,测试人员对需求了解得越深入对测试工作越有利,所以最好一开始就应该参加需求分析工作。这样可以带来如下得好处: ■测试人员全程参与需求分析,对需求了解很深刻,减少了很多与开发人员的交互,节省了时间。测试人员参与前期开发讨论,直接掌握了不清晰的需求点; ■早期确定测试用例的编写思路,为测试打好了基础; ■可以获取一些测试数据,为测试用力设计提供帮助; ■可以发现需求不合理的地方,降低了测试成本。 测试人员主要的工作之一就是确认系统是否正确实现了需求。测试人员不参与前期的工作,就只能依赖最后形成的需求文档,甚至由开发人员来讲解需求,而这些缺求可能发生了“问题”,因为这个需求是已经经过分析的需求,很多的内容可能与用户的真正要求发生了偏差。同时如果只看最后形成的需求文档,对需求也会有理解上的偏差。因此作为测试人员要尽可能的获取到“第一线”的需求资料,才能真正地了解用户的业务,从而更好的对系统进行测试。 当然,如果测试人员不能参与需求环节,一定要通过其他途径保证需求的精确性,例如和开发人员进行集中讨论需求疑问的项目会议,并且一定要加强测试案例评审,甚至于是测试需求的评审。 2、系统测试阶段低级缺陷较多怎么办? 在系统测试阶段,如果仍有很多低级缺陷,说明测试对象是不合格的,没有达到测试标准。如果系统阶段发现的简单缺陷(也就是不应该有的缺陷)较多,最好停止测试,转由开发人员进行测试,发现问题立刻修改,因为这种由测试人员进行的成本较高,反复交互还会耽误进度。 建议建立预测试制度:系统测试前对核心模块进行抽查测试,如果问题较多(例如平均每个核心模块发现10个以上缺陷),就可以停止本次测试,直到抽测后发现问题较少才可以启动系统测试。 3、缺陷流落到客户那里有什么后果? 如果软件缺陷被遗落并流落到客户那里,结果就是代价高昂的电话或者现场支持费用,还可能需要修复、重新测试和发布新的产品,更糟糕的情况是产品要被召回甚至被客户起诉。这种成本付出非常高,几乎是在内部修改缺陷的几何级数倍。 质量之父PhilipCrosby把质量的费用分为整合费用和非整合费用两类,整合费用是指与一次性计划和执行测试相关的全部费用,用于保证软件按照预期方式进行。如果发现缺陷,经过一系列的缺陷处理流程而解决缺陷,这种费用就是非整合费用。PhilipCrosby在自己的作品中详细论述了内部的整合费用和内部的非整合费用之和远远小于外部也就是客户引起的非整合费用。 总之,软件缺陷一定要尽可能的在内部解决,这对节约成本、提高产品知名度都大有裨益。 4、什么是冒烟测试? 冒烟测试从操作上是一个随机的测试,操作对象通常是核心业务模块。测试员任意操作,要是发现多数功能走不下去(大概20%),那么这个冒烟测试就算是结束了。冒烟测试一般不用参照测试用例。 执行冒烟测试的目的是对要测试的产品进行一个大概的度量。如果冒烟测试不能通过,通常不会启动测试计划。因为软件缺陷较多的情况下,启动测试计划会浪费更多的人力和物

软件测试流程方案

软件测试流程方案 Company Document number:WUUT-WUUY-WBBGB-BWYTT-1982GT

软件测试流程实施方案1.流程的意义 从一个软件企业的长远发展来看,如果要提高产品的质量首先应当从流程抓起,规范软件产品的开发过程。这是一个软件企业从小作坊的生产方式向集成化规范化的大公司迈进的必经之路,也是从根本上解决质量问题,提高工作效率的一个关键手段。 软件产品的开发同其它产品(如汽车)的生产有着共同特性,即需要按一定的过程来进行生产。在工业界,流水线生产方式被证明是一种高效的,且能够比较稳定的保证产品质量的一种方式。通过这种方式,不同的人员被安排在流程的不同位置,最终为着一个目标共同努力,这样可以防止人员工作间的内耗,极大的提供工作效率。并且由于其过程来源于成功的实例,因此其最终的产品质量能够满足过程所设定的范围。软件工程在软件的发展过程中吸取了这个经验并把它应用到了软件开发中,这就形成了软件工程过程,简单的说就是开发流程。 不管我们做哪件事情,都有一个循序渐进的过程,从计划到策略到实现。软件流程就是按照这种思维来定义我们的开发过程,它根据不同的产品特点和以往的成功经验,定义了从需求到最终产品交付的一整套流程。流程告诉我们该怎么一步一步去实现产品,可能会有那些风险,如何去避免风险等等。由于流程来源于成功的经验,因此,按照流程进行开发可以使得我们少走弯路,并有效的提高产品质量,提高用户的满意度。 目前流行的流程方法有很多种,如瀑布模型、螺旋模型、RUP模型、IPD流程等,不同的过程模型适合于不同类型的项目。 2.测试工作流程图 测试工作总体流程图

软件测试基础_期末A卷及参考答案

成都东软信息技术学院 期末试题——软件测试基础(A卷) 题号一二三四五六总分 分数 说明:本试卷共六大题,试卷满分100分,考试时间120分钟。 一、单项选择题:共20小题,每小题1 分,满分20分;请将答案填入题后括号中。 (说明:每题有且仅有一个正确答案) 1.在软件生命周期的哪一个阶段,软件缺陷修复费用最低() (A)需求分析(编制产品说明书)(B)设计 (C) 编码(D)产品发布 2.单元测试中用来模拟被测模块调用者的模块是() (A) 父模块(B)子模块 (C)驱动模块(D)桩模块 3.为了提高测试的效率,应该() (A)随机地选取测试数据; (B)取一切可能的输入数据作为测试数据; (C)在完成编码以后制定软件的测试计划; (D)选择发现错误可能性大的数据作为测试数据。 4.侧重于观察资源耗尽情况下的软件表现的系统测试被称为() (A)强度测试(B)压力测试 (C) 容量测试(D)性能测试 5.必须要求用户参与的测试阶段是() (A)单元测试(B)集成测试 (C) 确认测试(D)验收测试 6.软件测试员究竟做些什么。()

(A)软件测试员的目的是发现软件缺陷 (B)软件测试员的目的是发现软件缺陷,尽可能早一些 (C)软件测试员的目的是发现软件缺陷,尽可能早一些,并确保其得以修复 (D)软件测试员的目的是发现软件缺陷,尽可能早一些,并将其得以修复 7.下面四种说法中正确的是() (A)因果图法是建立在决策表法基础上的一种白盒测试方法; (B)等价类划分法是边界值分析法的基础; (C)健壮性等价类测试的测试用例要求在有效等价类中取值; (D)在任何情况下做黑盒测试皆应首先考虑使用错误推断法。 8.不属于单元测试内容的是() (A)模块接口测试(B)局部数据结构测试 (C) 路径测试(D)用户界面测试 9.划分软件测试属于白盒测试还是黑盒测试的依据是() (A)是否执行程序代码 (B)是否能看到软件设计文档 (C)是否能看到被测源程序 (D)运行结果是否确定 10.下列项目中不属于测试文档的是() (A)测试计划(B)测试用例 (C) 程序流程图(D)测试报告 11.几乎没有产品计划、进度安排和正规的开发过程的软件开发模式是() (A)大棒模式(B)边写边改模式 (C) 瀑布模式(D)快速原型开发模式 12.如果某测试用例集实现了某软件的路径覆盖,那么它一定同时实现了该软件的() (A)判定覆盖(B)条件覆盖 (C) 判定/条件覆盖(D)组合覆盖 13.下列说法不正确的是() (A)测试不能证明软件的正确性; (B)测试员需要良好的沟通技巧;

功能测试中故障模型的建立

功能测试中故障模型的建立 1. 概述 故障模型是软件测试的基础,也是一个判断测试方法是否成熟的重要标志。在测试的过程中,要确保每一个目标状态都被测试,那么测试必须是系统的;为了最终定位软件缺陷,所以测试必须是集中的;测试需要使用大量的测试用例和重复性测试,因此测试必须是自动的。若要满足上述三个测试条件,我们必须建立故障模型。 故障模型是将测试人员的经验和直觉尽量归纳和固化,使得可以重复使用。领测国际通过理解软件在做什么,来猜测可能出错的地方,并应用故障模型有目的地使它暴露缺陷。它具有一定的形式和足够的信息对错误进行预测,因此对测试人员来说,构造一个准确的故障模型,是选择测试策略、设计测试用例和测试执行的基础。在建立故障模型时,希望故障模型在框架上是通用的,但是建立具体的故障模型时一定要针对具体的软件类型、应用环境、甚至开发工具才有意义。一个成熟的故障模型必须具备下列条件: 1)该模型是符合实际的:大多数系统中存在的故障都可以用该模型来表示; 2)模型下的故障个数是可容忍的:模型下的故障个数一般和系统的规模是成线性关系; 3)模型下的故障是可以测试的:存在一个算法,利用该算法可以检测模型中的每一个故障。 本文将从软件的功能和技术特点出发,如软件的输入、输出、数据以及处理等,分析在软件功能测试过程中,我们通常应建立的故障模型及按照故障模型所提供的缺陷类型寻找尽量多的缺陷。

2. 输入型故障模型 主要是对用户的各种输入进行建模,因为用户的输入是无法预期的,可能的组合状态也是千变万化。软件功能除了能让正确的输入得到正确的输出之外,还必须对非法和不合逻辑的输入进行处理,防止因数据异常造成不可挽回的错误。典型的建模方法有: 1)使用非法数据:从输入数据的类型、长度、边界值等方面考虑,测试软件是否允许不正确的输入进入系统并进行处理,是否有错误处理代码,代码是否正确。 2)使用默认值输入:检测软件中所使用的变量是否初始化,是否将非法数据默认为合法边界内的某个合理值。 3)使用特殊字:检测软件是否正确处理了特殊字符和数据类型。 4)使用使缓冲区溢出的合法输入:输入超过允许的最大长度的数据,检测软件是否检查字符串/缓冲区的边界。 5)使用可能产生错误的合法输入组合:测试多个输入值的组合,确认这些值的组合是否会互相影响而引起软件失效。 6)重复输入相同的合法输入序列:检测软件是否考虑了循环处理的边界。 3. 输出型故障模型 软件的输出通常是最直观也是用户最关注的,输出型故障模型就是从软件输出角度出发,分析造成故障的可能原因。例如通过一个正确的输入在不同情况下产生不同输出的情况可以对输入和输出的关系进行进一步验证;可采用列举等方法,强制软件产生不符合业务背景知识的无效的输出,从而进行处理,规避不必要的错误;强制修改输出的属性、

软件功能测试报告模板

魔方宝系统 软件功能测试报告2017年10月

1.测试环境 2.问题统计 (说明:该报告为阶段性测试的统计报告,该报表统计的bug数量为:本发布阶段内第一份申请单 提交日期为起,直至填写报告这天为止的BUG数量,如果以前版本中有问题延期至本发布阶段来修正, 那么该缺陷也需要统计进来;如果是功能测试报告则只统计当轮的即可,如果是功能+验证则需要统计本发布阶段的) 2.1按BUG犬态统计(表格后面可以附上柱形图,以示更直观) 表按状态统计 3.测试综述 本轮测试持续将近 周,到目前为止(如果是功能测试则是指本轮次,如果是功能+验证测试 则是指本发布阶段)发现的BU(数据量________个,其中,重新开启:________ 个,未解决:_____ 个,已解决:____ 。(如果是功能+验证测试,则还需说明本轮次新发现的bug情况,如:本轮测试新发现的问题 有多少个?其中严重的有多少个?)从测试的角度给出该轮测试是否通过,是否需要做回归测试,或验证测试。 4.问题与建议

主要是在本发布阶段针对开发经理要求不测试且最终确实未测试,但是测试人员从质量的角度认为 需要测试的功能点做简要说明 总结项目测试过程,以及和开发人员交互过程中存在的问题,经验,也可以提出自己的一些改进建 议等 5.其他 (如果对应的测试申请单中既有功能测试类型,又有验证测试类型,那么只出功能测试报告即可, 同时该项 必填,需要在此附上本发布阶段的遗留问题清单以及本发布阶段新发现的重大 bug 清单;遗留 问题清单中如果不属本发布阶段测试范围的须在备注中说明) 5.1 5.2 5.3 质量风险[可选] 遗留问题列表(本发布阶段发现的,以及前发布阶段延期至本阶段来修正的缺陷 ) 表10遗留冋题列表 重大bug 列表(指本阶段新发现的重大BUG 青单) 表11重大bug 列表

软件测试中常见问题分类说明

软件测试中常见问题分类说明 一、规范化问题 包括软件规范和业务规范两大类,软件规范问题主要指操作过程中显而易见的错误或缺陷,非人性化设计、友好度较差等;业务规范问题主要指使用非标准或非惯例的业务术语、以及概念错位等。 ㈠软件规范问题 1、操作指示不明确 提示存在二意性、提示操作项“忽略”、“取消”、“退出”等含义不明确。(一般) 2、简单界面规范问题 ①按钮图片丢失、按钮图片不配套、按钮大小排列不美观;(一般) ②在引用数据窗口的下拉框中,没有根据实际数据来调整下拉框显示的%的大 小和垂直滚动条,导致文本只显示了一部分;(严重) ③界面中存在色块;(一般) ④菜单排列顺序有误;(一般) ⑤窗体最小化以后在屏幕上找不到了,无法恢复原窗体;(一般) 3、操作过程缺乏人性化考虑 ①选项过于烦琐且不必要、设置不合适导致使用者遗漏、常规按钮排列顺序 不一致(一般) ②常用功能不支持键盘操作。(严重) ③单据处理中当由于存在空行时,提示用户输完其余内容,而没有自动删除 空行。(严重) 4、帮助文件规范问题 ①联机帮助字体、背景风格不统一;(较小) ②点击“?”按钮打开帮助文件,没有直接定位到内容;(较小) ③内容定位错误;(一般) ④帮助文件内部链接没有做全;(较小) ⑤文档内容排版错误;(严重) ⑥其他帮助错误。(一般) 5、软件风格规范问题 ①控件的切换顺序有误、DataWindow的切换顺序有误; (视控件使用频繁程度设为(严重)和(一般)) ②DataWindow内容的对齐方式不正确(数值右对齐、日期中对齐、文字左对 齐);(较小) ③数值的EditMask(掩膜)设置有误、日期的EditMask(掩膜)设置有误、 日期的默认格式非YYYY.MM.DD、默认日期存在1900.00.00现象或其他不合 理的值(一般) ④弹出窗口不在屏幕中间位置、退出系统缺少提示;(较小) ⑤重大操作(月结、恢复、修复等)缺少提示、重大操作没有自动弹出备份 提示;(一般) ⑥快捷按钮定义不准确、快捷字母或数字重复、工具栏快捷键定义错误(一 般),工具栏常用快捷键缺少(较小);

相关文档