文档介绍:项目六软件项目测试软件工程案例教程清华大学出版社目录上一页下一页结束软件工程项目六软件项目测试任务一测试的目的任务二软件测试方法和步骤任务三调试任务四测试报告小结实验实训目录上一页下一页结束软件工程任务一测试的目的? 软件测试什么是测试?它的目标是什么?G·MyerS给出了关于测试的一些规则,这些规则也可以看作是测试的目标或定义:;;。从上述规则可以看出,测试的正确定义是“为了发现程序中的错误而执行程序的过程”。这和某些人通常想象的“测试是为了表明程序是正确的”,“成功的测试是没有发现错误的测试”等等是完全相反的。正确认识测试的目标是十分重要的,测试目标决定了测试方案的设计。如果为了表明程序是正确的而进行测试,就会设计一些不易暴露错误的测试方案;相反,如果测试是为了发现程序中的错误,就会力求设计出最能暴露错误的测试方案。目录上一页下一页结束软件工程任务二软件测试方法和步骤?,完全不考虑程序的内部结构和处理过程。也就是说,黑盒测试是在程序接口进行的测试,它只检查程序功能是否能按照规格说明书的规定正常使用,程序是否能适当地接收输入数据产生正确的输出信息,并且保持外部信息(如,数据库或文件)的完整性,黑盒测试又称为功能测试。目录上一页下一页结束软件工程任务二软件测试方法和步骤(1)等价类划分等价划分是用黑盒法设计测试方案的一种技术。穷尽的黑盒测试需要使用所有有效的和无效的输人数据来测试程序,通常这是不现实的。因此,只能选取少量最有代表性的输入数据,以期用较小的代价暴露出较多的程序错误。如果把所有可能的输入数据(有效的和无效的)划分成若干个等价类,则可以合理地做出下述假定:每类中的一个典型值在测试中的作用与这一类中所有其他值的作用相同。因此,可以从每个等价类中只取一组数据作为测试数据。这样选取的测试数据最有代表性,最可能发现程序中的错误。目录上一页下一页结束软件工程任务二软件测试方法和步骤使用等价划分法设计测试方案首先需要划分输入数据的等价类,为此需要研究程序的功能说明,从而确定输入数据的有效等价类和无效等价类。在确定输入数据的等价类时常常还需要分析输出数据的等价类,以便根据输出数据的等价类导出对应的输入数据等价类。目录上一页下一页结束软件工程任务二软件测试方法和步骤划分等价类需要经验,下述几条启发式规则可能有助于等价类的划分;·如果规定了输入值的范围,则可划分出一个有效的等价类(输入值在此范围内),两个无效的等价类(输入值小于最小值或大于最大值);·如果规定了输入数据的个数,则类似地也可以划分出一个有效的等价类和两个无效的等价类;·如果规定了输入数据的一组值,而且程序对不同输入值做不同处理,则每个允许的输入值是一个有效的等价类,此外还有一个无效的等价类(任一个不允许的输入值);目录上一页下一页结束软件工程任务二软件测试方法和步骤·如果规定了输入数据必须遵循的规则,则可以划分出一个有效的等价类(符合规则)和若干个无效的等价类(从各种不同角度违反规则);·如果规定了输入数据为整型,则可以划分出正整数、零和负整数等三个有效类;·如果程序的处理对象是表格,则应该使用空表,以及含一项或多项的表。以上列出的启发式规则只是测试时可能遇到的情况中的很小一部分,实际情况千变万化,根本无法一一列出。为了正确划分等价类,一是要注意积累经验,二是要正确分析被测程序的功能。此外,在划分无效的等价类时还必须考虑编译程序的检错功能,一般说来,不需要设计测试数据用来暴露编译程序肯定能发现的错误目录上一页下一页结束软件工程任务二软件测试方法和步骤划分出等价类以后,根据等价类设计测试方案时主要使用下面两个步骤:①设计一个新的测试方案以尽可能多地覆盖尚未被覆盖的有效等价类,复重这一步骤直到所有有效等价类都被覆盖为止;②设计一个新的测试方案,使它覆盖一个而且只覆盖一个尚未被覆盖的无效等价类,重复这一步骤直到所有无效等价类都被覆盖为止。注意,通常程序发现一类错误后就不再检查是否还有其他错误,因此,应该使每个测试方案只覆盖一个无效的等价类。目录上一页下一页结束软件工程任务二软件测试方法和步骤(2)边界值分析边界值是对等价划分方法的补充。经验表明,处理边界情况时程序最容易发生错误。例如,许多程序错误出现在下标、纯量、数据结构和循环等等的边界附近。因此,设计使程序运行在边界情况附近的测试方案,暴露出程序错误的可能性更大一些。