黑盒测试及测试用例设计方法
- 格式:docx
- 大小:324.04 KB
- 文档页数:17
黑盒测试是功能测试,用黑盒技术设计测试用例有4种方法在软件开发过程中,测试是一个非常重要的环节,可以有效地确保软件的质量和稳定性。
黑盒测试是一种测试方法,它是通过观察输入和输出之间的关系,而不关心内部的实现细节来进行的。
在黑盒测试中,测试人员并不需要了解软件的内部结构,只需要通过接口和功能来验证软件是否按照要求工作。
本文将介绍黑盒测试是功能测试的概念,并讨论用黑盒技术设计测试用例的四种方法。
1. 等价类划分法等价类划分法是一种常用的黑盒测试设计方法,它将输入数据划分为若干个等价类,选择代表数据进行测试。
通过等价类划分法,可以有效地减少测试用例的数量,同时覆盖了各个等价类的情况,提高了测试效率。
2. 边界值分析法边界值分析法是一种针对边界条件进行测试的方法。
在软件开发过程中,很多错误都是发生在边界条件上的,因此通过边界值分析法设计的测试用例可以有效地发现这些问题。
通过测试边界值,可以验证软件在边界条件下是否能正常工作。
3. 因果图法因果图法是一种将功能需求转换为因果关系的方法。
通过绘制因果图,可以清晰地了解功能之间的依赖关系,进而设计相应的测试用例。
因果图法可以帮助测试人员更好地理解软件的功能,并设计出全面有效的测试用例。
4. 决策表法决策表法是一种通过决策表来描述软件功能和相应条件关系的方法。
在决策表中,列出了所有可能的输入条件和相应的处理流程,通过对决策表的分析,可以设计出全面的测试用例,覆盖了各种情况下的数据组合。
综上所述,黑盒测试是功能测试的重要方法之一,通过黑盒技术设计测试用例可以帮助测试人员有效地验证软件的功能和性能,确保软件的质量和稳定性。
在设计测试用例时,可以结合等价类划分法、边界值分析法、因果图法和决策表法等四种方法,从不同角度全面地进行测试,提高测试的覆盖率和效率。
黑盒测试设计测试用例的方法多种多样,在实际测试过程中,测试人员可以根据具体的情况选择适合的方法,确保测试工作的顺利进行。
黑盒测试中测试用例设计主要有哪些方法在软件测试领域中,黑盒测试(也称为功能测试)是一种测试方法,旨在验证软件系统的功能是否符合规格说明书或需求文档的要求。
在进行黑盒测试时,测试人员不需要了解软件系统的内部实现细节,只需关注输入和输出之间的关系。
测试用例设计是黑盒测试过程中的重要一环,下面将介绍一些常用的测试用例设计方法。
等价类划分法等价类划分法是一种常用的黑盒测试用例设计方法。
它将输入数据划分为若干个等价类,从每个等价类中选择一个代表性的值作为测试用例。
通过这种方式,可以有效地减少测试用例的数量,同时覆盖了各个等价类。
举例来说,假设某个系统接收用户的年龄作为输入,年龄在0到120之间有效。
按照等价类划分法,可以划分为三个等价类:小于0、0到120之间、大于120。
分别选择-1、25和121作为代表性值进行测试。
边界值分析法边界值分析法是一种基于输入数据的边界情况进行测试的方法。
在该方法中,测试用例的设计依据是输入的边界值。
通常情况下,在边界值处会发生最多的错误。
以某系统要求输入一个1到100之间的数字为例,边界值为1和100,测试用例可以选择1、2、99和100进行测试。
因果图法因果图法是一种将输入和输出之间的因果关系可视化的测试用例设计方法。
通过绘制因果图,可以发现潜在的输入和输出之间的关系,从而设计有效的测试用例。
例如,某系统的输入为A和B,输出为C,通过因果图法可以绘制出A和B对C的影响图,进而选择合适的测试用例。
决策表测试决策表测试是一种描述业务规则下的所有可能情况的测试设计方法。
通过构建决策表,可以涵盖各种条件组合下的测试场景,确保覆盖全面。
举例来说,假设某系统中有一个业务决策表,包含了不同条件下的结果,测试人员可以根据决策表构建全面的测试用例。
状态转换测试状态转换测试方法适用于测试具有状态转换的系统。
通过分析系统在不同状态下的行为,设计相应的测试用例,确保系统能够正确地处理状态之间的转换。
黑盒测试用例测试方法黑盒测试是一种软件测试方法,它主要关注系统的功能、接口和外部行为,而不考虑内部的实现细节。
在黑盒测试过程中,测试人员不需要了解系统的内部结构和逻辑,而只需通过输入和输出来验证系统的正确性和完整性。
下面将介绍一些常用的黑盒测试用例设计方法。
1. 等价类划分法等价类划分法是一种有效的测试用例设计方法,它通过将输入和输出的可能值进行划分,使得每个等价类中的测试用例具有相同的功能和行为。
这样可以减少测试用例的数量,提高测试效率。
例如,对于一个要求输入年龄的系统,可以将输入值划分为以下等价类:- 小于0的年龄:如-1、-10等;- 0到150之间的合法年龄:如0、18、100等;- 大于150的非法年龄:如151、1000等。
然后从每个等价类中选择一个值作为测试用例进行测试。
2. 边界值分析法边界值分析法是指在每个等价类的边界值处设计测试用例,因为边界值常常是引发错误的关键点。
边界值通常是最小值、最大值以及最小值与最大值之间的值。
继续以上述年龄系统为例,可以针对每个等价类的边界值设计测试用例:- 小于0的年龄的边界值:如-1;- 0到150之间的合法年龄的边界值:如0、1、149、150;- 大于150的非法年龄的边界值:如151、1000。
通过测试这些边界值,可以确保系统在边界条件下的稳定性和正确性。
3. 因果图法因果图法也是一种常用的黑盒测试用例设计方法,它通过对系统的输入和输出之间的因果关系进行分析,找出可能引发错误的因素,然后设计测试用例进行验证。
因果图法可以帮助测试人员发现系统中隐藏的逻辑错误。
以一个银行系统为例,假设用户在转账时需要输入金额和对方账户。
因果图可以将输入因素(如金额范围、账户类型等)和输出因素(如转账成功与否、账户余额变化等)联系起来,从而设计出具有代表性的测试用例。
4. 边界对称法边界对称法是利用对称性设计测试用例的一种方法。
它假设系统在边界值的两侧具有相同的行为,因此只需测试其中一侧的边界值即可。
黑盒测试的测试用例设计方法黑盒测试是指在不考虑程序内部逻辑的情况下,测试程序的输入和输出。
在进行黑盒测试时,测试人员只关注程序的功能,而不需要知道程序的内部结构。
为了确保黑盒测试的有效性,设计好的测试用例是至关重要的。
本文将介绍一些常用的黑盒测试的测试用例设计方法。
1. 等价类划分等价类划分是一种常用的测试用例设计方法,在这种方法中,将输入域划分为不同的等价类,然后从每个等价类中选择一个有效的和一个无效的输入,作为测试用例。
这样可以大大减少测试用例的数量,同时保证测试的全面性。
例如,对于一个要求输入1到100之间的数字的程序,可以将输入域划分为三个等价类:小于1的数字、1到100的有效数字、大于100的数字。
然后分别选择一个有效的输入和一个无效的输入作为测试用例。
2. 边界值分析边界值分析是一种常用的黑盒测试用例设计方法,通过选择接近边界的输入值来测试程序的健壮性。
在进行边界值分析时,通常选择各个等价类的边界值作为测试用例。
例如,对于一个接受1到100之间的输入的程序,边界值可以选择1和100作为测试用例。
这样可以测试程序对边界值的处理能力,从而提高测试的覆盖率。
3. 因果图法因果图法是一种将功能需求转化为图形表示的测试用例设计方法。
通过构建因果图,可以清晰地表示输入和输出之间的关系,然后根据因果图来设计测试用例。
例如,对于一个需要输入用户名和密码进行登录的程序,可以通过因果图表示输入用户名和密码的关系,然后设计相应的测试用例来测试程序的登录功能。
4. 判定表驱动判定表驱动是一种将多个条件组合成判定表的测试用例设计方法。
通过列出所有可能的条件组合和相应的动作,可以快速设计出全面的测试用例。
例如,对于一个需要根据不同角色显示不同权限的程序,可以通过判定表来设计测试用例,列出各种角色和相应的权限,以确保程序在不同情况下的正确性。
结论通过以上介绍,我们了解了几种常用的黑盒测试的测试用例设计方法,包括等价类划分、边界值分析、因果图法和判定表驱动。
黑盒测试用例测试方法黑盒测试是一种软件测试方法,测试人员仅关注软件的输入和输出,而不考虑内部逻辑结构。
黑盒测试用例测试方法是针对黑盒测试过程中编写和执行测试用例的方法。
在进行黑盒测试时,为了有效地检测和发现软件中的缺陷,需要遵循一定的测试方法。
本文将介绍黑盒测试用例测试方法的一般步骤和注意事项。
1. 制定测试计划在进行黑盒测试时,首先需要制定测试计划。
测试计划包括确定测试的范围、目标、测试环境、测试资源、测试进度等内容。
在制定测试计划时,需要明确测试的目的,以便更有针对性地编写测试用例。
2. 确定测试目标在编写黑盒测试用例之前,需要明确测试的目标。
测试目标包括对软件功能、性能、易用性等方面的要求。
根据测试目标,确定需要覆盖的功能点和测试重点,以便更好地编写测试用例。
3. 识别测试场景识别测试场景是编写黑盒测试用例的重要步骤。
通过分析软件功能和用户需求,确定需要测试的各种情况和场景。
测试场景应覆盖软件的所有功能,并包括正常情况和异常情况。
4. 编写测试用例根据测试场景,编写黑盒测试用例。
测试用例应包括输入数据、预期输出、测试步骤等内容。
测试用例应覆盖所有功能点,尽可能地考虑各种情况和边界条件,以提高测试的覆盖率和有效性。
5. 执行测试用例在执行测试用例时,需要按照测试计划和测试目标进行。
测试人员应严格按照测试步骤和预期输出进行测试,记录测试结果并及时反馈给开发人员。
在执行测试用例过程中,需要注意记录测试过程中遇到的问题和挑战,以便后续优化测试用例。
6. 分析测试结果在执行完所有测试用例后,需要对测试结果进行分析。
分析测试结果时,需要对测试用例的覆盖率、缺陷数量、缺陷严重程度等指标进行评估。
根据测试结果,及时修复软件中的缺陷,并对测试用例进行优化和补充。
通过以上步骤,可以有效地编写和执行黑盒测试用例,提高软件的质量和稳定性。
在进行黑盒测试时,需要充分理解软件的功能和用户需求,注重测试用例的覆盖率和有效性,确保测试结果的准确性和可靠性。
黑盒测试常用的测试用例设计方法有在软件测试中,黑盒测试是一种测试方法,它通过分析软件的功能来设计测试用例,而不关心软件的内部结构。
黑盒测试的测试用例设计方法多种多样,下面介绍几种常用的方法:等价类划分等价类划分是一种常用的测试用例设计方法。
在等价类划分中,将输入值划分为几个等价类,然后从每个等价类中选择一个值作为测试用例。
这样可以减少重复的测试用例,同时覆盖所有可能的情况。
边界值分析边界值分析是一种基于输入边界的测试用例设计方法。
在这种方法中,选择输入值的边界以及边界附近的值作为测试用例。
这样可以检测输入边界条件下的软件行为,提高测试的全面性。
因果图因果图是一种用于分析系统功能和交互关系的图形工具。
通过构建因果图,可以帮助识别系统中的所有因果关系,并基于此设计测试用例。
因果图可以帮助测试人员更好地理解系统,从而设计更有效的测试用例。
决策表决策表是一种用于描述系统行为与输入条件之间关系的表格工具。
通过分析决策表,可以确定需要测试的各种情况,并据此设计测试用例。
决策表可以帮助测试人员全面考虑各种可能性,提高测试的覆盖率。
正交试验正交试验是一种用于设计实验的方法,也可以应用于测试用例设计。
在正交试验中,通过设计合理的因素水平组合来减少测试用例的数量,同时保证对各个因素的测试覆盖。
这种方法可以提高测试效率,同时保证测试的全面性。
以上是黑盒测试常用的测试用例设计方法,每种方法都有其特点和适用场景。
在实际测试工作中,测试人员可以根据具体情况选择合适的方法进行测试用例设计,以确保软件质量和功能的完整性。
黑盒测试的测试用例常见设计方法在软件测试中,黑盒测试是一种重要的测试方法,它主要关注系统的功能和用户界面。
在进行黑盒测试过程中,设计有效的测试用例是至关重要的。
下面介绍几种常见的黑盒测试用例设计方法:等价类划分法等价类划分法是一种常见的测试用例设计方法。
通过将输入数据划分为有效等价类和无效等价类,然后从每个等价类中选择一个代表性的测试用例进行测试。
这样可以降低测试用例的数量,同时覆盖所有不同的输入情况。
示例:假设一个登录界面,需要输入用户名和密码。
有效的用户名等价类可以包括长度为6-10个字符的用户名,无效的用户名等价类可以包括长度小于6或大于10的用户名。
根据等价类划分法,可以选择一个长度为8的有效用户名和一个长度为3的无效用户名进行测试。
边界值分析法边界值分析法是针对输入数据的边界条件进行测试的方法。
通过选取输入数据的边界值和边界值附近的值作为测试用例,可以有效地发现潜在的错误。
示例:如果一个系统要求输入年龄在18-60之间,那么可以选择17、18、19、59、60、61等边界值进行测试。
因果图法因果图法是一种将需求按功能分解,然后根据功能之间的因果关系设计测试用例的方法。
通过绘制因果图,可以清晰地了解系统功能之间的依赖关系,从而设计出全面的测试用例。
示例:如果一个在线购物系统要求用户在购物车中添加商品后才能结算,可以通过因果图找出所有可能的功能依赖关系,并设计相应的测试用例。
判定表驱动法判定表驱动法是一种将输入条件和对应的输出结果列成表格,然后根据表格中的组合设计测试用例的方法。
这种方法可以帮助测试人员全面地覆盖各种输入情况,并简化测试用例设计过程。
示例:假设一个系统的输入条件包括性别、年龄和地区,输出结果包括推荐商品和优惠信息,可以将不同的输入条件列成表格,然后设计对应的测试用例。
以上是黑盒测试的几种常见测试用例设计方法,每种方法都有其独特的优势和适用场景。
在实际测试过程中,根据系统的特点和需求选择合适的测试用例设计方法至关重要。
黑盒测试用例的设计方法
黑盒测试用例的设计方法有以下几种常见的方法:
1. 等价类划分法:将输入数据划分成不同等价类,然后选择代表性的测试用例进行测试。
例如,如果输入要求为0-100之间的数字,可以选择一个小于0的数、一个在0-100范围内的数和一个大于100的数来进行测试。
2. 边界值分析法:选择测试用例使得能够覆盖输入的边界值情况。
例如,如果输入要求为1-100之间的数字,可以选择1、100以及2个边界值之间的数作为测试用例。
3. 错误推测法:基于经验或猜测,推测可能存在的错误,并选择测试用例进行验证。
例如,对于一个登录功能,可能存在的错误包括密码错误、用户名不存在等,可以选择相应的测试用例进行验证。
4. 因果图法:根据功能的输入和输出之间的因果关系,绘制因果图,然后选择测试用例进行测试。
因果图可以帮助发现功能之间的因果关系和潜在的缺陷。
5. 决策表法:对于有多种条件和多个可能的结果的功能,使用决策表来帮助设计测试用例。
将各种条件和结果列成表格,然后选择组合测试用例进行测试。
以上是常用的黑盒测试用例设计方法,根据具体的需求和情况选择适合的方法进
行测试用例设计。
黑盒测试设计测试用例的方法黑盒测试是一种软件测试方法,它关注于测试系统的功能而不考虑内部的实现细节。
在黑盒测试中,我们只关注输入和输出之间的关系,而不考虑程序内部的逻辑。
设计测试用例是黑盒测试中非常重要的一步,它决定了我们如何测试系统的功能是否符合需求。
在设计测试用例时,我们需要考虑以下几个步骤:1. 理解功能需求:首先,我们需要仔细阅读和理解系统的功能需求。
这包括系统应该做什么、输入的格式和范围、输出的格式和预期结果等。
只有对功能需求有清楚的理解,我们才能确保设计出有效的测试用例。
2. 确定输入条件:根据功能需求,我们需要确定输入的各种条件。
这包括输入的边界条件、特殊字符或格式、不同的输入组合等。
我们需要确保测试用例能够覆盖到各种可能的输入条件,以验证系统对不同输入的处理是否正确。
3. 确定预期输出:根据功能需求,我们需要明确系统在不同输入条件下的预期输出。
这包括系统应该返回的结果、输出的格式和内容等。
我们需要确保测试用例能够验证系统输出是否符合预期,以检查系统功能是否正确实现。
4. 设计正常流程测试用例:正常流程测试用例是验证系统按照功能需求正常运行的测试用例。
我们需要设计一组测试用例,覆盖到系统的各个功能点,并确保测试用例能够验证系统的正确性。
5. 设计边界测试用例:边界测试用例是验证系统在输入边界条件下的行为的测试用例。
我们需要设计一组测试用例,覆盖到输入的边界条件,并确保测试用例能够验证系统的鲁棒性和容错性。
6. 设计异常测试用例:异常测试用例是验证系统在异常情况下的行为的测试用例。
我们需要设计一组测试用例,覆盖到各种异常情况,如错误的输入、无效的操作等,并确保测试用例能够验证系统的健壮性和安全性。
7. 设计组合测试用例:组合测试用例是验证系统在不同输入组合下的行为的测试用例。
我们需要设计一组测试用例,覆盖到不同的输入组合,并确保测试用例能够验证系统的正确性和一致性。
8. 设计性能测试用例:性能测试用例是验证系统在负载和压力下的行为的测试用例。
黑盒测试及测试用例设计方法黑盒测试定义什么是黑盒测试?黑盒测试就是测试人员把软件产品(可阶段性产品)看做是一个黑盒。
在测试过程中测试人员只需关心对这个软件黑盒操作会得到什么样的结果,而不必深入地去了解它的内部实现机制所进行的测试活动。
例如:在Windows的命令行中输入字符串dir就可以得到当前目录下的子目录及文件的列表。
而输入tasklist后就得到一张正在系统中运行的任务的列表。
在以上操作中不必去考虑命令行解析器会如何解析输入的字符串,也不必考虑系统如何获取我们想要的信息并如何把他显示在屏幕上,这就是黑盒处理机制。
我们只关心输入(input)的和想要得到的输出(output)。
如果在初始条件确定的情况下的一组确定的输入经过软件产品这个黑盒进行处理后并没有得到期望的结果(expected result)时,则说明此时就发现了一个软件的缺陷(defect)。
为什么要做黑盒测试?验证(verity):软件产品是否符合需求文档的设计(IEEE 1983 of IEEE Standard 729)证实(validate):软件产品符合最终用户的需求(IEEE 1983 of IEEE Standard 729)把dir输入到其它软件(如计算器)可能毫无意义,但在Windows命令行中被解析为获取当前目录下的子目录及文件的列表,并且在初始条件确定的情况下将得到可预测的输出。
这样的输出在软件测试阶段通常被定义下来以保证开发人员编写的程序有章可循。
这下是软件测试的目的之一:验证(verity)软件产品是否符合需求文档的设计。
黑盒测试中,测试人员只按业务逻辑测试而不需要考虑内部实现。
这就很好地模拟了终端用户的行为。
然而终端用户的行为并不会都在软件需求文档中定义(例如黑客攻击)。
我们可以尽量模拟终端用户对产品网站进行攻击。
这样的测试既可以是预先定义好的,也可以是随机的(adhoc test)。
像这样的模拟终端用户操作对产品进行的测试活动就是在履行软件测试的另一个目的:证实(validate)软件产品符合最终用户的需求。
软件生命周期中的哪些测试阶段用到过黑盒测试?软件生命周期包括:单元测试(unit test)。
组件测试(component test)。
集成测试(integration test)。
系统测试(system test)。
用户验收测试(user acceptance test)。
在各个测试阶段通常会设置通过条件(pass criteria)和准入条件(entry criteria)。
其实一般说来黑盒测试适用于所有阶段。
单元测试中,把函数看成一个黑盒,小尺度的黑盒,叫做函数黑盒。
一个组件或应用软件正是由一个个函数黑盒组成的大黑盒。
函数体就是黑盒,而形参和返回值就是这个函数黑盒的输入和输入。
利用黑盒测试用例的设计方法对其输入值域和输出值域进行分析可以极大也保证函数的质量。
说明:一个函数除了输出返回值外还可能有其它的输出:●函数体有可能处理了函数域以外的全局变量,这里全局变量也成为了这个函数的输入和输出的一部分。
●函数的参数可以是引用型参数(C语言中可以用指针作为引用型形参,C++中可以用指针可引用作为引用型形参,在C#/Java中引用类型的引用或值类型的引用作为引用型形参)。
这里被引用的对象实例有可能在函数中被修改如下图引申:若想要占用最少的代码空间和运行时间,占用最少的运行时间,就应该深入了解编程语言,熟悉数据结构和算法方面的书籍。
专业性的软件企业如微软、Google等就很着重这些,即便是招收测试人员也如此,有志于去这些公司的朋友有必要在此多花时间精力。
关于函数是否做了正确的事,通过学习测试知识会有不少的帮助。
正如前面所说的组件或程序是通过层层调用函数来处理用户需求的,所以当多个函数能够封装成一个组件时,也就是把一个个小的函数黑盒组装成了一个大黑盒,此时就可以对它行一定的组件测试了。
这时的组件即使还能完成一个完整的功能,也能通过编写驱动函数或桩函数的方法去测试它。
什么叫打桩,什么叫驱动?驱动函数:在测试被测函数时,一般需要在一个函数中构造一些实验数据作为传入被测函数的实参,然后再在该函数中调用被测函数,之后检验测试结果。
这样的函数被称为驱动函数(一般为main函数)桩函数:在测试被测函数时,被测函数可能要调用一个未被实现功能的函数(或一连串函数的调用)。
这时测试人员可以写一个临时的简单的函数以模拟被调函数的部分行为。
这样的函数称为桩函数。
(如图)我们通过组件暴露的公共接口分析它的输入值域,然后根据其输入值域编写测试数据。
之后在驱动程序中调用组件的公共接口,并把测试数据作为参数(全局变量)传给被测组件。
最终获得该组测试经处理后所产生的输出。
此后就要分析这些输出是否是期望结果以确定该组件是否有缺陷。
之后被多个测试过的组件将被集成,成为更大的组件直到成为功能齐全的应用程序。
这里系统测试就开始了。
从黑盒测试的角度看,这里的软件产品就是一个更大规模的黑盒,而且因为功能齐全,我们就可以直接通过图形用户界面、命令行或该软件产品所提供的其他方式直接对其进行黑盒测试了。
进入用户验收测试阶段,黑盒测试也是最主要的测试方法,只不过此时所做的测试大都是从用户的角度出发,而且生产企业大都会邀请用户直接加入到用户体验中来,以使软件产品更符合用户的习惯。
黑盒测试方法输入值域和输出值域输入值域:当测试人员对软件产品进行黑盒测试时,需要对软件黑盒进行输入用户产生相应的测试结果。
这样的输入值的组合就构成了我们对某个软件产品进行黑盒测试时所用的测试用例。
所有输入值组合的集合就构成了输入值域。
有效输入值域:输入值域的有效范围称为有效输入值域。
无效输入值域:输入值域的无效输入范围称为无效输入值域。
输入值域=有效输入值域+无效输入值域同理,输出值域=有效输出值域+无效输出值域软件测试工作中,要有一定的方法来减少工作量:首先,把输入(出)值域划分为有效输入(出)值域和无效输入(出)值域。
其次,把有效输入(出)值域和无效输入(出)值域划分为更小的集合,而且每个集合中的输入(出)组合对于这个程序来说完全是等效的。
——等价类划分法然后,在每个集合中挑选一个或几个输入(出)组合作为测试用例。
——边界分析值法等价类划分(Equivalence Partitioning)等价类划分:运用的是对组件的输入值域和输出值域进行划分的模式来设计测试用例。
通过对需求文档的分析来得到这些输入值域和输出值域。
这是需求文档的深度、详细程度及精确程度等将对输入值域和输出值域都产生巨大的影响。
所以测试人员要在需求文档编写期间积极参与文档的审查工作。
该设计模式应该包括对输入值域和输出值域的划分。
(1)每个划分出来的等价类应该包含一组值的集合或一个范围内的值。
(2)每个等价类中,所有的值对于这个组件来说在某种程度上都是等效(价)的。
(3)此外有效值域和无效值域都应当按照这种方式划分。
在这种模式下测试用例将执行(覆盖)各个等价类。
这样的等价类包括对有效输入值域进行划分所得等价类和对无效输入值域进行划分所得的等价类。
测试用例还可以被设计为用来测试那些无法被推导出的无效输出值。
一个测试用例可以执行(覆盖)任意数量的等价类。
每一个测试用例应当包括:●对于该组件的输入。
●该用例所执行(覆盖)的等价类。
●该用例的期望输出。
等价类设计模式的覆盖率为:等价类划分覆盖率=(已覆盖的等价类数量/总的等价类数)×100%已覆盖的等价类数量是指我们在测试用例设计过程中使用等价类划分所设计的测试用例集(test case suite)总共覆盖的等价类数量。
总的等价类数量是指一个组件的输入值域和输出值域的所有可能的等价类的总和。
例子:假设有一个组件,为学生的成绩定级,它在其设计文档中被描述为以下内容:该组件将接收两个有符号整型参数——考试成绩(80分)和平实表现(20分),该组件将把这两个参数枷。
之后根据这个和对其进行定级,经过该组件的运算和判断将输出4个值:总分大于等于80 - ‘A’(优秀)总分大于等于60并小于80 - ‘B’(良好)总分大于等于50并小于60 - ‘C’(补考)总分小于50 - ‘D’(重修)在此,所有输入的考试成绩如果超出出其有效值范围,则该将返回一个错误信息(error message)的提示信息。
思路:先划分等价类,再设计测试用例来执行(覆盖)每个等价类。
等价类将按照该组件的输入和输出域来进行划分。
输入域和输出域中所有的有效值域和无效值域都将被考虑。
1、分析该组件的输入域。
先对其两个参数的有效值域进行划分。
●0≤考试成绩≤80 。
●0≤平时成绩≤20 。
然后对这两个参数的其无效值域进行划分。
●考试成绩<0 。
●考试成绩>80 。
●平时表现<0 。
●平时表现>20 。
(当然可能碰到误输入小数点或一些字母、符号等非数字的字符组合。
于是在这两个参数的输入域中还划分出以下无效值域。
)●考试成绩=带小数的浮点数。
●考试成绩=非数字的字符组合。
●平时表现=带小数的浮点数。
●考试成绩=非数字的字符组合。
2、下面来分析一下该组件的输出域。
先对其输出域的有效值域进行划分。
●80≤总分≤100 将输出‘A’(优秀)●60≤总分<80 将输出‘B’(良好)●50≤总分<60 将输出‘C’(补考)●0≤总分<50 将输出‘D’(重修)●100<总分将输出‘error message’(错误信息)●总分<0 将输出‘error message’(错误信息)在此,总分=考试成绩+平时表现。
(“error message”(错误信息)也在输出域的有效值域之列。
这是因为组件的设计文档中已经指明输入的考试成绩与平时表现如果超出其有效值范围,则该将返回一个错误信息(error message)的提示信息。
)以上6种情况之外的输出就是无效输出了。
一般来说未在组件设计文档中描述的无效输出比较难被界定出来的。
但是一旦测试人员在使用该组件时遇到或界定出某一无效输出时就应当要求开发人员将其加入设计文档,并在新的版本中将其实现。
本例中输出域的无效值域划分为以下等价类。
●output=“null”等效于输入的两个参数皆为null 。
●output=“float input”等效于输入参数至少有一个是浮点数。
●output=“non-numberic input”等效于输入参数至少有一个是非数字。
3、总结一下所有的等价类划分。
●0≤考试成绩≤80 。
●0≤平时成绩≤20 。
●考试成绩<0 。
●考试成绩>80 。
●平时表现<0 。
●平时表现>20 。
●考试成绩=带小数的浮点数。
●考试成绩=非数字的字符组合。