软件测试功能测试方法-黑盒测试
- 格式:docx
- 大小:24.13 KB
- 文档页数:11
黑盒测试是什么,有哪些方法可以测试的黑盒测试是一种软件测试方法,又称为功能测试或数据驱动测试。
它基于对软件系统外部行为进行评估的原理,而不需要了解内部代码逻辑。
黑盒测试旨在验证软件系统是否符合规格说明要求,并识别任何功能错误。
下面将介绍黑盒测试的定义及常用方法。
定义黑盒测试是一种软件测试方法,旨在检查软件系统的功能是否按照规格说明要求工作。
测试人员在进行黑盒测试时,仅关注软件系统的输入和输出,而不了解软件系统内部的实现细节。
黑盒测试将软件系统视为一个封闭的黑盒子,通过输入指定的数据,检查输出是否符合预期,以此来评估软件系统的质量和正确性。
方法等价类划分等价类划分是一种常用的黑盒测试方法,旨在有效地减少测试用例的数量。
该方法假设软件系统对于每个等价类的输入数据具有相同的行为。
测试人员将输入数据划分为若干个等价类,然后选择代表每个等价类的数据作为测试用例进行测试。
边界值分析边界值分析是一种黑盒测试方法,用于测试软件系统在边界条件下的行为。
该方法通过在输入数据的边界值处进行测试,以检查软件系统是否能正确处理边界情况。
测试人员通常会选择边界值、边界值-1和边界值+1作为测试用例,以验证软件系统对于边界条件的处理是否正确。
因果图因果图是一种黑盒测试方法,用于描述软件系统中的因果关系。
测试人员根据功能规格说明绘制因果图,标识出不同功能之间的关系,然后选择代表性的测试用例进行测试。
因果图方法可以帮助测试人员更好地理解软件系统的功能结构,从而提高测试效率和覆盖率。
结论黑盒测试是一种重要的软件测试方法,能够有效地评估软件系统的功能是否符合规格说明要求。
常见的黑盒测试方法包括等价类划分、边界值分析和因果图。
通过合理选择测试用例和进行全面测试,可以帮助测试人员发现潜在的功能错误,提高软件系统的质量和可靠性。
在日常软件开发中,黑盒测试应得到充分重视,以确保软件系统能够满足用户的需求和期望。
黑盒测试是什么测试方法什么是黑盒测试黑盒测试是一种软件测试方法,其测试过程不考虑内部代码结构和实现细节,而是根据软件系统的需求规格说明进行测试。
黑盒测试也被称为功能测试或规格驱动测试,它旨在验证软件系统的功能是否按照规格要求正常工作。
黑盒测试的原理在黑盒测试中,测试人员只关注软件系统的输入和输出,以及系统对特定输入的响应。
测试人员不需要了解程序的内部逻辑或代码细节,而是根据系统的功能规格进行测试设计和执行。
黑盒测试的优点•无需了解代码细节:测试人员只需要根据需求规格进行测试,无需深入了解程序代码,因此可以由非开发人员执行;•独立性高:由于不需要了解代码实现,黑盒测试的执行与开发人员的开发进度和实现方式无关,独立性高;•充分覆盖功能:黑盒测试着眼于系统功能的实现,能够充分覆盖系统功能,确保系统按照规格要求工作。
黑盒测试的缺点•测试盲目性:在黑盒测试中,测试人员无法直接了解系统内部实现和逻辑,可能会忽略一些潜在的问题;•可能无法发现一些程序错误:由于黑盒测试只关注系统的功能实现,可能无法发现一些与内部实现相关的问题;•测试用例设计较为困难:由于无法直接了解系统内部逻辑,黑盒测试的测试用例设计可能较为困难。
黑盒测试的应用场景•对外提供服务的系统:黑盒测试适合对外提供服务的系统,测试人员可以根据外部需求进行测试,验证系统对外部输入的响应是否符合规格;•需求规格确定的软件系统:当软件系统的需求规格已经确定时,黑盒测试可帮助验证系统是否按照规格要求正常工作;•增量开发的系统:在增量开发过程中,黑盒测试可以帮助验证每个增量的功能是否符合规格要求,确保系统整体功能完整。
总结黑盒测试是一种注重系统功能的测试方法,不考虑内部实现和代码细节,主要根据系统的需求规格进行测试。
虽然黑盒测试有一些局限性,但在特定场景下仍然是一种有效的测试方法,可帮助确保软件系统的功能符合规格要求,提高系统的质量和稳定性。
黑盒测试是什么
黑盒测试是一种软件测试方法,测试人员关注的是软件系统的功能,而不考虑内部逻辑结构。
黑盒测试类似于将软件系统看作一个黑盒子,只关心输入、输出和系统对输入的反应,而不关心内部实现细节。
主要测试方法
1.等价类划分法
等价类划分法是一种常用的黑盒测试方法。
测试人员将输入数据划分为不同的等价类,选择一个代表性的值进行测试,以确保每个等价类的数据都能得到适当的处理。
2.边界值分析法
边界值分析法是一种关注软件系统边界条件的测试方法。
测试人员会测试输入数据的边界情况,包括边界处和边界附近的数值,这样可以检查系统在边界条件下的正确性。
3.因果图法
因果图法是一种图形化的测试方法,通过绘制因果图来描述系统的输入和输出关系。
测试人员可以根据因果图识别出潜在的测试用例,从而对系统进行有效的测试。
4.决策表测试法
决策表测试法是一种用表格方式描述系统决策逻辑的测试方法。
通过编写决策表,测试人员可以识别出系统不同条件和操作之间的关系,从而有效地进行测试。
5.状态转换测试法
状态转换测试法适用于有状态的系统测试。
测试人员根据系统状态之间的转换关系设计测试用例,确保系统在不同状态切换时能够正确地响应。
通过上述方法,测试人员可以全面地覆盖软件系统的功能,并保证系统在各种情况下都能正确运行。
黑盒测试是软件测试中不可或缺的一部分,通过有效的黑盒测试方法,可以提高软件质量,降低系统出错的风险。
黑盒测试方法黑盒测试(Black Box Testing)是一种软件测试方法,它基于对被测试软件的功能需求进行测试,而不关心其内部的工作原理。
黑盒测试主要验证软件的功能是否符合需求,并检查软件是否能够正确地处理各种输入。
下面将介绍一些常见的黑盒测试方法。
1. 等价类划分测试(Equivalence Partitioning Testing):将输入数据划分为等价类,并选择代表性的测试用例进行测试。
等价类划分测试的目的是减少测试用例的数量,节省测试时间和成本,同时保证测试覆盖度。
例如,对于一个要求输入年龄的软件,可以将年龄分为小于18岁、18-60岁和大于60岁三类,然后从每个类别中选择测试用例进行测试。
2. 边界值测试(Boundary Value Testing):在等价类划分测试的基础上,选择特定的边界值进行测试。
因为边界值往往容易引起错误,所以边界值测试是一种重要的黑盒测试方法。
例如,对于一个要求输入0-100的分数的软件,选择0、1、99和100作为测试用例进行测试。
3. 错误推测测试(Error Guessing Testing):基于经验和直觉,猜测可能存在的错误,并选择相应的测试用例进行测试。
这种方法常常依赖于测试人员的经验和专业知识,可以发现一些其他方法无法发现的错误。
例如,在一个购物网站中,测试人员可能猜测用户可能输入错误的邮政编码、信用卡号码等信息,并选择相应的测试用例进行测试。
4. 因果图测试(Cause-Effect Graph Testing):根据输入和输出之间的因果关系,构建因果图,并选择代表性的测试用例进行测试。
这种方法能够帮助测试人员理清输入和输出之间的关系,从而提高测试覆盖度。
例如,对于一个需要输入用户名和密码的登录界面,可以构建因果图,其中考虑到用户名和密码为空时的情况、用户名和密码不匹配的情况等,然后选择相应的测试用例进行验证。
5. 边界值测试(GUI Testing):验证图形用户界面(Graphical User Interface)的正确性和易用性。
软件测试中的黑盒测试方法介绍黑盒测试作为软件测试的重要方法之一,主要针对软件系统的功能需求进行验证。
与白盒测试相对应的是,黑盒测试不关注内部代码和实现细节,而是从系统外部的用户角度出发,以严格按照需求规格说明书进行测试,以确保软件系统在不同输入情况下能够正确响应并产生期望的输出。
在黑盒测试中,有多种不同的方法可以应用于测试过程中。
下面将介绍一些常见的黑盒测试方法。
1. 等价类划分等价类划分是一种常用且高效的黑盒测试方法。
该方法将所有可能输入划分为多个等价类,使得每个等价类中的输入对软件系统的行为具有相同的影响。
然后,从每个等价类中选择代表性的输入作为测试用例进行测试。
这样可以有效地减少测试用例的数量,减少测试工作量,同时又能覆盖大部分可能的输入情况。
2. 边界值分析在软件系统的输入域中,边界值通常是出错的源头。
边界值分析方法就是针对系统输入值的边界情况设计测试用例。
例如,如果一个软件系统要求用户输入1到100的整数,那么测试用例可以包括输入1、输入100、输入0、输入101等情况。
这样可以更全面地验证软件系统在边界情况下的正确性,提高软件系统的稳定性。
3. 因果图因果图也是一种常用的黑盒测试方法,主要用于复杂系统的功能测试。
该方法通过绘制因果图来分析不同输入条件之间的因果关系,并设计测试用例来验证这些因果关系。
通过因果图可以帮助测试人员更好地理解系统功能的逻辑关系,确保每个可能的因果关系都被测试用例覆盖到,提高测试的全面性和有效性。
4. 决策表决策表是一种以表格形式表示系统的输入与输出的关系的方法。
它将各种输入情况列在一起,根据不同的条件和规则,确定应对每种输入情况应该产生的输出。
测试人员可以通过设计测试用例,覆盖不同的条件组合和规则,验证系统是否能够正确地处理各种输入情况。
决策表方法可以帮助测试人员全面而高效地测试系统的各种输入组合情况。
5. 用户场景测试用户场景测试是一种以用户实际操作为基础的黑盒测试方法,主要模拟用户在使用软件系统时的真实场景,验证系统在这些场景下的功能正确性和易用性。
软件功能测试方法软件功能测试是软件开发过程中必不可少的一环。
通过对软件功能的测试,可以保证软件的稳定性和可靠性,提高软件的质量和用户体验。
本文将介绍一些常用的软件功能测试方法。
一、黑盒测试方法黑盒测试方法是一种功能导向的测试方法,测试人员只需关注软件的输入和输出,而不需要了解其内部结构和代码。
常用的黑盒测试方法有等价类划分法、边界值分析法和因果图等。
1. 等价类划分法等价类划分法是将软件的输入划分为若干等价类,其中每个等价类具有相同的功能和处理方式。
在测试时,只需选择一个代表性的输入来进行测试,以验证软件对该等价类的处理是否正确。
例如,某个软件的注册功能需要输入用户名和密码,其中用户名需满足长度为6-12位的要求,密码需满足长度为8-16位的要求。
则可以将输入用户名等价类划分为长度小于6位、长度为6-12位和长度大于12位三个等价类,将输入密码等价类划分为长度小于8位、长度为8-16位和长度大于16位三个等价类。
2. 边界值分析法边界值分析法是通过选择输入的边界值进行测试,以验证软件在边界值情况下的处理是否正确。
通常,输入的边界值是最小值、最大值和临界值。
继续以上述注册功能为例,选择用户名长度为6和12作为边界值进行测试,分别验证软件对最小值、最大值和临界值的处理是否正确。
3. 因果图因果图是一种图形化的测试方法,通过绘制因果图来理清软件功能之间的关系,并根据因果关系选择测试用例。
因果图主要包括条件、事件和结果三个要素,在测试时可以根据不同的组合来选择测试用例。
例如,某个软件的登录功能需要输入用户名和密码,并根据输入的信息判断登录是否成功。
可以绘制一个因果图,将用户名、密码和登录结果之间的因果关系表示出来,根据不同的组合选择测试用例,以验证软件的登录功能是否正确。
二、白盒测试方法白盒测试方法是一种结构导向的测试方法,测试人员需要了解软件的内部结构和代码来进行测试。
常用的白盒测试方法有语句覆盖、分支覆盖和路径覆盖等。
黑盒测试的主要测试方法黑盒测试是软件测试中常见的一种测试方法,它是基于对软件系统功能和业务逻辑的理解,而不考虑内部代码结构的测试过程。
通过黑盒测试,可以验证软件系统在用户角度下的功能是否按照需求规格说明书的要求正确地执行。
黑盒测试的主要测试方法包括以下几种:等价类划分法等价类划分法是一种将输入数据划分成不同等价类的测试方法。
在黑盒测试中,这种方法可以有效地减少测试用例的数量,提高测试效率。
例如,对一个需要输入1到100之间数字的软件系统进行测试时,可以选择一个小于1的数字、一个在1到100范围内的数字和一个大于100的数字作为等价类的代表进行测试。
边界值分析法边界值分析法是基于输入变量的边界值来设计测试用例的方法。
通过测试边界值,可以发现很多软件系统设计上的缺陷。
例如,在一个要求输入1到100之间数字的软件系统中,便可以测试1和100作为边界值的情况。
因果图法因果图法是一种用于分析系统逻辑关系的测试方法。
通过构建因果图,展示系统中各项功能之间的因果关系,从而指导测试用例的设计和执行。
决策表测试决策表测试是一种测试方法,用于测试软件系统在不同条件下的不同处理方式。
通过制定决策表,可以清晰地展现软件系统的逻辑关系,帮助测试人员设计全面的测试用例。
状态转换测试状态转换测试是一种测试方法,主要用于测试软件系统在不同状态下的处理逻辑。
通过确定系统的各种状态以及状态之间的转换条件,可以设计出全面的测试用例,覆盖软件系统的所有状态变化情况。
综上所述,黑盒测试的主要测试方法包括等价类划分法、边界值分析法、因果图法、决策表测试和状态转换测试等。
在实际测试过程中,结合多种方法进行综合测试是保证软件质量的重要手段。
软件黑盒测试方法
软件黑盒测试是一种基于功能需求和规格说明的测试方法,它只关注软件应该如何工作,而不考虑软件的内部实现细节。
下面是一些常见的软件黑盒测试方法:
1. 等价类划分:将测试输入数据划分为不同的等价类,选择代表性的测试用例进行测试。
例如,对于一个要求输入正整数的功能,可以将输入数据划分为负数、零和正整数三个等价类,选择一个负数、一个零和一个正整数作为测试用例。
2. 边界值分析:测试输入数据的边界值情况,通常边界值是发生错误的概率较高的地方。
例如,对于要求输入1到100的整数的功能,测试用例可以选择1、100以及1和100之间的边界值进行测试。
3. 错误推测:根据软件的规格说明、功能需求和用户行为推测可能存在的错误场景,并设计测试用例进行测试。
例如,根据规格说明可以推测用户可能会输入非法字符,测试用例可以选择包含非法字符的输入数据进行测试。
4. 因果图法:根据软件的规格说明和功能需求,绘制因果图,并从中选取测试用例进行测试。
因果图是一种图形化的测试设计技术,它帮助测试人员发现可能存在的功能缺陷。
5. 决策表法:根据软件的规格说明和功能需求,绘制决策表,并从中选取测试用例进行测试。
决策表是一种表格化的测试设计技术,它帮助测试人员识别出不同输入条件下的不同决策结果,从而设计测试用例。
总的来说,软件黑盒测试方法主要是从功能需求和规格说明出发,针对软件的功能进行测试,以验证软件是否符合规格要求,并发现潜在的错误和缺陷。
黑盒测试的三种方法
黑盒测试是软件测试中的一种常见测试方法,它是在不了解内部实现细节的情况下对软件系统进行测试。
黑盒测试的目的是验证软件系统的功能是否符合需求,并检查系统对输入的响应是否符合预期。
在软件开发过程中,黑盒测试起着至关重要的作用,可以有效地发现系统中的缺陷和bug。
在本文中,我们将介绍黑盒测试的三种常见方法。
等价类划分法
等价类划分法是一种基于输入值的黑盒测试方法。
在等价类划分法中,将输入值划分为不同的等价类,然后选择代表每个等价类的输入值进行测试。
这种方法的优点是能够降低测试用例的数量,节省测试时间和成本。
举个例子,如果一个系统要求用户输入一个1到100之间的数字作为输入,那么等价类划分法将输入值划分为三个等价类:小于1的数字、1到100之间的数字和大于100的数字。
然后选择代表每个等价类的值进行测试,比如0、50和101。
边界值分析法
边界值分析法是一种基于输入值的黑盒测试方法,它关注输入值的边界情况。
在边界值分析法中,选择接近边界的输入值进行测试,以检查系统对这些边界值的处理情况。
继续上面的例子,如果系统要求输入一个1到100之间的数字,边界值分析法将选择1和100作为测试输入值。
通过测试系统对这些边界值的处理情况,可以有效地发现系统可能存在的问题。
错误推测法
错误推测法是一种基于经验的黑盒测试方法,它通过对系统进行猜测和推测来设计测试用例。
在错误推测法中,测试人员尝试猜测系统可能存在的错误,然后设计测试用例来验证这些错误。
例如,如果系统要求用户输入一个日期,错误推测法可能会猜测用户可能输入不合法的日期格式,比如输入。
黑盒测试是怎么测试的黑盒测试,又称功能测试,是软件测试中的一种测试方法。
在黑盒测试中,测试人员并不需要了解软件程序的内部工作原理和实现细节,而是只关注软件的输入和输出。
黑盒测试主要验证软件系统是否按照预期功能规格说明书的要求正常工作。
测试流程黑盒测试的测试流程一般包括以下几个步骤:1.需求分析:测试人员首先需要详细了解软件的需求规格说明书,确保清楚了解软件的功能和功能要求。
2.测试用例设计:根据需求规格说明书编写测试用例,测试用例是描述软件功能、输入以及预期输出的文档。
3.测试环境搭建:搭建测试环境,包括测试工具、测试数据的准备等。
4.测试执行:执行测试用例,输入测试数据,观察输出结果,比对实际结果和预期结果。
5.结果分析:将测试结果进行统计和分析,记录测试的缺陷和问题。
6.缺陷修复:将测试出的缺陷和问题反馈给开发人员,等待开发人员修复。
7.回归测试:在缺陷修复后重新执行测试,确保修复的缺陷没有引入新的问题。
8.测试报告:根据测试执行情况编写测试报告,详细记录测试过程、测试结果等信息。
测试技术在黑盒测试中,常用的测试技术包括等价类划分、边界值分析、因果图等。
•等价类划分:将输入数据分为不同的等价类,对每个等价类选择一个代表性数据进行测试。
•边界值分析:针对输入的边界值进行测试,包括最大值、最小值以及临界值。
•因果图:使用因果图描述系统中的事件之间的关系,帮助测试人员制定测试用例。
注意事项在进行黑盒测试时,测试人员需要注意以下事项:•充分准备:确保充分了解软件的需求规格说明书,准备充分的测试用例和测试数据。
•覆盖率:尽可能覆盖所有可能的输入情况,保证测试的全面性。
•反复测试:进行多次测试,确保软件的稳定性和可靠性。
•及时反馈:发现问题及时和开发人员沟通,确保问题能够及时修复。
通过以上流程和技术,黑盒测试可以有效地检测软件系统的功能是否符合要求,保证软件质量和稳定性。
黑盒测试在软件开发过程中扮演着重要的角色,帮助开发人员和项目组保证软件的可靠性和稳定性。
软件测试功能测试方法-黑盒测试
软件测试功能测试方法
软件测试功能测试方法功能测试方法
黑盒测试(Black-box Testing ,又称为功能测试或数据驱动测试)是把测试对象看作一个黑盒子。
利用黑盒测试法进行动态测试时,需要测试软件产品的功能,不需测试软件产品的内部结构和处理过程。
采用黑盒技术设计测试用例的方法有:等价类划分、边界值分析、错误推测、因果图和综合策略。
黑盒测试注重于测试软件的功能性需求,也即黑盒测试使软件工程师派生出执行程序所有功能需求的输入条件。
黑盒测试并不是白盒测试的替代品,
而是用于辅助白盒测试发现其他类型的错误。
黑盒测试试图发现以下类型的错误:
1)功能错误或遗漏;
2)界面错误;
3)数据结构或外部数据库访问错误;
4)性能错误;
5)初始化和终止错误。
一、黑盒测试的测试用例设计方法
等价类划分方法
边界值分析方法
错误推测方法
因果图方法
判定表驱动分析方法
正交实验设计方法
功能图分析方法
等价类划分:
是把所有可能的输入数据,即程序的输入域
划分成若干部分(子集),然后从每一个子集中选
取少数具有代表性的数据作为测试用例•该方法
是一种重要的,常用的黑盒测试用例设计方法•
1)划分等价类:等价类是指某个输入域的子集合.在该子集合中,各个输入数据对于揭露程序
中的错误都是等效的•并合理地假定:测试某等
价类的代表值就等于对这一类其它值的测试•因此,可以把全部输入数据合理划分为若干等价类, 在每一个等价类中取一个数据作为测试的输入条件,就可以用少量代表性的测试数据•取得较好的测试
结果•等价类划分可有两种不同的情况:有效等价
类和无效等价类•
有效等价类:是指对于程序的规格说明来说是合理的,有意义的输入数据构成的集合•利用有效等
价类可检验程序是否实现了规格说明中所规定的功
能和性能•
无效等价类:与有效等价类的定义恰巧相反• 设计测试用例时,要同时考虑这两种等价类•因为,软件不仅要能接收合理的数据,也要能经受意
外的考验•这样的测试才能确保软件具有更高的可
靠性•
2)划分等价类的方法:下面给出六条确定等价类的原则•
①在输入条件规定了取值范围或值的个数的情况下,则可以确立一个有效等价类和两个无效等价类•
②在输入条件规定了输入值的集合或者规定
了必须如何”的条件的情况下,可确立一个有
效等价类和一个无效等价类•
③在输入条件是一个布尔量的情况下,可确定一个有效等价类和一个无效等价类•
④在规定了输入数据的一组值(假定n个), 并且程序要对每一个输入值分别处理的情况下, 可确立n个有效等价类和一个无效等价类.
⑤在规定了输入数据必须遵守的规则的情况下,可确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则).
⑥在确知已划分的等价类中各元素在程序处理中的方式不同的情况下,则应再将该等价类进一步的划分为更小的等价类.
3)设计测试用例:在确立了等价类后,可建立等价类表,列出所有划分出的等价类:
输入条件有效等价类无效等价类
然后从划分出的等价类中按以下三个原则设计测试用例:
①为每一个等价类规定一个唯一的编号.
②设计一个新的测试用例,使其尽可能多地覆盖尚未被覆盖地有效等价类,重复这一步•直到所有的有效等价类都被覆盖为止•
③设计一个新的测试用例,使其仅覆盖一个尚未被覆盖的无效等价类,重复这一步•直到所有的无效等价类都被覆盖为止•
边界值分析法
边界值分析方法是对等价类划分方法的补充•
(1) 边界值分析方法的考虑:
长期的测试工作经验告诉我们,大量的错误是发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部.因此针对各种边界情况设计测试用例,可以查出更多的错误•
使用边界值分析方法设计测试用例,首先应确定边界情况.通常输入和输出等价类的边界,就是应着重测试的边界情况.应当选取正好等于,刚刚
大于或刚刚小于边界的值作为测试数据,而不是选取等价类中的典型值或任意值作为测试数据•
(2) 基于边界值分析方法选择测试用例的原则:
1)如果输入条件规定了值的范围,则应取刚达到这个范围的边界的值,以及刚刚超越这个范围边界的值作为测试输入数据•
2)如果输入条件规定了值的个数,则用最大个数,最小个数,比最小个数少一,比最大个数多一的数作为测试数据•
3)根据规格说明的每个输出条件,使用前面的原则1).
4)根据规格说明的每个输出条件,应用前面的原则2).
5)如果程序的规格说明给出的输入域或输出域是有序集合,则应选取集合的第一个元素和最后一个元素作为测试用例.
6)如
果程序中使用了一个内部数据结构,则应当选择这个内部数据结构的边界上的值作为
测试用例•
7)分析规格说明,找出其它可能的边界条件.
错误推测法
错误推测法:基于经验和直觉推测程序中
所有可能存在的各种错误,从而有针对性的设计测试用例的方法•
错误推测方法的基本思想:列举出程序中所
有可能有的错误和容易发生错误的特殊情况根据他们选择测试用例.例如,在单元测试时曾列出的许
多在模块中常见的错误•以前产品测
试中曾经发现的错误等,这些就是经验的总结还有,输入数据和输出数据为0的情况•输入表格为空格
或输入表格只有一行•这些都是容易
发生错误的情况•可选择这些情况下的例子作为测
试用例•
因果图方法
前面介绍的等价类划分方法和边界值分析方法,都是着重考虑输入条件,但未考虑输入条件之间的联系,相互组合等•考虑输入条件之间的相互
组合,可能会产生一些新的情况•但要检查输入条件的组合不是一件容易的事情,即使把所有输入条件
划分成等价类,他们之间的组合情况也相当多•因此必须考虑采用一种适合于描述对于多种条件的组合,相应产生多个动作的形式来考虑设计测试用例•这就需要利用因果图
(逻辑模型).
因果图方法最终生成的就是判定表•它适
合于检查程序输入条件的各种组合情况•
利用因果图生成测试用例的基本步骤:
(1) 分析软件规格说明描述中,那些是原因(即输入条件或输入条件的等价类),那些是结果(即输出条件),并给每个原因和结果赋予一个标识符•
(2) 分析软件规格说明描述中的语义.找出原因与结果之间,原因与原因之间对应的关系根据这些关系,画出因果图.
(3) 由于语法或环境限制,有些原因与原因之间,原因与结果之间的组合情况不不可能出现为表明这些特殊情况,在因果图上用一些记号表明约束或限制条件.
(4) 把因果图转换为判定表.
(5) 把判定表的每一列拿出来作为依据,设计测试用例.
从因果图生成的测试用例(局部,组合关系下的)包括了所有输入数据的取TRUE与取FALSE 的情况,构成的测试用例数目达到最少,且测试用例数目随输入数据数目的增加而线性地增加•
前面因果图方法中已经用到了判定表•判定表(Decision Table)是分析和表达多逻辑条件下执行不同操作的情况下的工具•在程序设计发展的初期,判定表就已被当作编写程序的辅助工具了.由于它可以把复杂的逻辑关系和多种条件组合的情况表达得既具体又明确•
判定表通常由四个部分组成•
条件桩(Condition Stub):列出了问题得所有条件•通常认为列出得条件的次序无关紧要•
动作桩(Action Stub):列出了问题规定可能采取的操作.这些操作的排列顺序没有约束•
条件项(Condition Entry):列出针对它左列条件的取值.在所有可能情况下的真假值•
动作项(Action Entry):列出在条件项的各种取值情况下应该采取的动作•
规则:任何一个条件组合的特定取值及其相应要执行的操作•在判定表中贯穿条件项和动作项的一列就是一条规则.显然,判定表中列出多少组条件取值,也就有多少条规则,既条件项和动作项有多少列.
判定表的建立步骤:(根据软件规格说明)
①确定规则的个数.假如有n个条件.每个条件有两个取值(0,1),故有种规则.
②列出所有的条件桩和动作桩.
③填入条件项.
④填入动作项.等到初始判定表.
⑤简化.合并相似规则(相同动作).
B. Beizer指出了适合使用判定表设计测试用例的条件:
①规格说明以判定表形式给出,或很容易转换成判定表.
②条件的排列顺序不会也不影响执行哪些操作.
③规则的排列顺序不会也不影响执行哪些操作.
④每当某一规则的条件已经满足,并确定要执行的操作后,不必检验别的规则.
⑤如果某一规则得到满足要执行多个操作,这些操作的执行顺序无关紧要•
黑盒测试的优点
1. 基本上不用人管着,如果程序停止运行了一般就是被测试程序crash 了
2. 设计完测试例之后,下来的工作就是爽了,当然更苦闷的是确定 crash原因
黑盒测试的缺点
1. 结果取决于测试例的设计,测试例的设计部分来势来源于经验,OUSPG的东西很值得借鉴
2. 没有状态转换的概念,目前一些成功的例子基本上都是针对PDU来做的,还做不到针对被测试程序的状态转换来作
3. 就没有状态概念的测试来说,寻找和确定造成程序crash的测试例是个麻烦事情,必须把周围可能的测试例单独确认一遍。
而就有状态的测试来说,就更麻烦了,尤其不是一个单独的testcase 造成的问题。
这些在堆的问题中表现的更为突出。