南方科技展览模型  首页 > 资讯中心 > 新闻阅读

功能性测试软件的6种常见故障模型_化工模型


概述:功能性测试软件的6种常见故障模型_化工模型,功能性测试软件的6种常见故障模型_化工模型

功能性测试软件的6种常见故障模型

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

  1.1缺陷产生原因

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

  1.2如何发现这类问题

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

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

  1.3测试方法小结

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

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

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

  2 输出属性修改后的结果

  2.1缺陷产生原因

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

  2.2如何发现这类问题

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

  2.3测试方法小结

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

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

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

  3 屏幕刷新显示

  3.1缺陷产生原因

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

  3.2如何发现这类问题

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

  从起始位置移动对象。先移动一点,然后增加移动幅度;先移动一次或两次,然后多次移动,确保覆盖了所有区域。

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

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

  3.3测试方法小结

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

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

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

  4 数据结构溢出

  4.1缺陷产生原因

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

  4.2如何发现这类问题

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

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

  4.3测试方法小结

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

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

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

  5 数据结构不符合约束

  5.1缺陷产生原因

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

  5.2如何发现这类问题

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

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

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

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

  5.3测试方法小结

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

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

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

        6 操纵数与操纵符不符

  6.1缺陷产生原因

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

  6.2如何发现这类问题

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

  6.3测试方法小结

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

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

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

  7 递回调用自身

  7.1缺陷产生原因

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

  7.2如何发现问题

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

  7.3测试方法小结

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

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

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