黑盒测试基本方法状态迁移法
- 格式:doc
- 大小:45.00 KB
- 文档页数:6
黑盒测试的7种测试方法黑盒测试也称功能测试,它是通过测试来检测每个功能是否都能正常使用。
在测试中,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息。
黑盒测试着眼于程序外部结构,不考虑内部逻辑结构,主要针对软件界面和软件功能进行测试。
黑盒测试是以用户的角度,从输入数据与输出数据的对应关系出发进行测试的。
很明显,如果外部特性本身设计有问题或规格说明的规定有误,用黑盒测试方法是发现不了的。
黑盒测试有7种测试方法分别是等价类划分法、边界值分析法、错误推测法、因果图法、判定表驱动法、功能图法、正交实验法。
下面将一一介绍。
等价类划分法等价类划分是把所有可能的输入数据,即程序的输入域划分成若干部分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例。
该方法是一种重要的,常用的黑盒测试用例设计方法。
1、划分等价类:等价类是指某个输入域的子集合。
在该子集合中,各个输入数据对于揭露程序中的错误都是等效的。
并合理地假定:测试某等价类的代表值就等于对这一类其它值的测试。
因此,可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件,就可以用少量代表性的测试数据。
取得较好的测试结果。
等价类划分可有两种不同的情况:有效等价类和无效等价类。
有效等价类:是指对于程序的规格说明来说是合理的,有意义的输入数据构成的集合。
利用有效等价类可检验程序是否实现了规格说明中所规定的功能和性能。
无效等价类:与有效等价类的定义恰巧相反。
设计测试用例时,要同时考虑这两种等价类。
因为,软件不仅要能接收合理的数据,也要能经受意外的考验。
这样的测试才能确保软件具有更高的可靠性。
2、划分等价类的方法:下面给出六条确定等价类的原则。
①在输入条件规定了取值范围或值的个数的情况下,则可以确立一个有效等价类和两个无效等价类。
黑盒测试是什么
黑盒测试是一种软件测试方法,测试人员关注的是软件系统的功能,而不考虑内部逻辑结构。
黑盒测试类似于将软件系统看作一个黑盒子,只关心输入、输出和系统对输入的反应,而不关心内部实现细节。
主要测试方法
1.等价类划分法
等价类划分法是一种常用的黑盒测试方法。
测试人员将输入数据划分为不同的等价类,选择一个代表性的值进行测试,以确保每个等价类的数据都能得到适当的处理。
2.边界值分析法
边界值分析法是一种关注软件系统边界条件的测试方法。
测试人员会测试输入数据的边界情况,包括边界处和边界附近的数值,这样可以检查系统在边界条件下的正确性。
3.因果图法
因果图法是一种图形化的测试方法,通过绘制因果图来描述系统的输入和输出关系。
测试人员可以根据因果图识别出潜在的测试用例,从而对系统进行有效的测试。
4.决策表测试法
决策表测试法是一种用表格方式描述系统决策逻辑的测试方法。
通过编写决策表,测试人员可以识别出系统不同条件和操作之间的关系,从而有效地进行测试。
5.状态转换测试法
状态转换测试法适用于有状态的系统测试。
测试人员根据系统状态之间的转换关系设计测试用例,确保系统在不同状态切换时能够正确地响应。
通过上述方法,测试人员可以全面地覆盖软件系统的功能,并保证系统在各种情况下都能正确运行。
黑盒测试是软件测试中不可或缺的一部分,通过有效的黑盒测试方法,可以提高软件质量,降低系统出错的风险。
黑盒测试方法有哪些黑盒测试是一种软件测试方法,它是在不考虑内部结构和代码的情况下对软件进行测试。
黑盒测试方法主要是通过输入数据和对应的输出结果来验证软件系统的功能是否符合需求。
在实际的软件开发过程中,黑盒测试方法是非常重要的,它可以帮助开发人员发现软件系统中的功能性问题,提高软件的质量和稳定性。
下面我们将介绍一些常用的黑盒测试方法。
1. 等价类划分测试方法。
等价类划分是一种常用的黑盒测试方法,它将输入数据划分成若干个等价类,然后从每个等价类中选择一个代表性的数据进行测试。
这种方法可以有效地减少测试用例的数量,同时保证对输入数据的全面覆盖。
例如,对于一个要求输入1到100之间的数字的软件系统,可以将输入数据划分为小于1、1到100、大于100这三个等价类,然后分别选择一个代表性的数据进行测试。
2. 边界值测试方法。
边界值测试是一种基于等价类划分的测试方法,它主要是针对输入数据的边界值进行测试。
由于边界值往往是容易出错的地方,因此通过对边界值进行测试可以有效地发现潜在的问题。
例如,对于一个要求输入1到100之间的数字的软件系统,可以分别测试1、100以及2和99这两个边界值。
3. 因果图测试方法。
因果图是一种用于描述软件系统功能与输入数据之间关系的图形工具,因果图测试方法主要是通过分析因果图来设计测试用例。
通过因果图测试方法,可以发现输入数据之间的关联性,从而设计出更加全面的测试用例。
4. 判定表测试方法。
判定表是一种用于描述软件系统功能与输入条件之间关系的表格工具,判定表测试方法主要是通过分析判定表来设计测试用例。
判定表测试方法可以帮助测试人员更好地理解软件系统的功能需求,从而设计出更加全面的测试用例。
5. 状态迁移测试方法。
状态迁移测试是一种专门针对有状态的软件系统进行测试的方法,它主要是通过对系统状态的变化进行测试。
通过状态迁移测试方法,可以发现系统状态转换时可能出现的问题,从而保证系统的稳定性和可靠性。
黑盒测试主要有哪几种方法呢
黑盒测试是一种软件测试方法,它不考虑程序内部逻辑结构,而是根据需求和
规格来检查程序的功能。
黑盒测试主要有几种方法,包括但不限于以下几种:
等价类划分
等价类划分是一种常用的黑盒测试方法,将输入数据划分为若干个等价类,然
后从每个等价类中选择一个典型值进行测试。
这样可以有效地减少测试用例的数量,同时覆盖了各种类型的输入。
边界值分析
边界值分析是通过测试输入数据的边界值来检查程序的正确性。
通常情况下,
程序在处理边界值时容易出错,因此通过针对边界值设计测试用例,可以有效地发现潜在的问题。
因果图测试
因果图测试是一种通过绘制程序中各个模块之间的关系图来辅助测试的方法。
测试人员可以根据因果图设计测试用例,检查程序的所有可能路径和条件组合,确保程序能够正确处理各种情况。
决策表测试
决策表测试是一种基于决策表的黑盒测试方法,通过分析程序的各种条件和输出,设计出完备的决策表,并针对决策表的各种组合设计测试用例,以确保程序在不同条件下能够正确地做出决策。
状态迁移测试
状态迁移测试针对有状态的系统进行测试,通过设计不同状态之间的转换序列,来测试系统在不同状态下的行为是否符合规格要求。
状态机图通常用来描述系统的状态及状态之间的转换关系,帮助测试人员设计测试用例。
总结来说,黑盒测试主要有等价类划分、边界值分析、因果图测试、决策表测
试和状态迁移测试等几种方法,每种方法都有其适用的场景和优势,可以根据具体项目的需求和特点来选择合适的测试方法。
通过综合运用这些黑盒测试方法,可以提高测试的全面性和有效性,发现潜在问题,确保软件质量。
黑盒测试是什么,有哪些方法黑盒测试是一种软件测试方法,它是在不了解软件内部结构的情况下对其功能进行测试的一种测试手段。
黑盒测试关注软件的输入和输出之间的关系,而不关注软件内部的实现细节。
在进行黑盒测试时,测试人员只需要通过输入一些数据,观察软件的响应并验证其是否符合预期的行为,从而判断软件是否能够按照要求正常运行。
黑盒测试的方法1. 等价类划分等价类划分是黑盒测试中常用的一种方法。
在等价类划分中,测试用例被划分为若干等价类,每一个等价类代表了一组相似的输入数据,该组数据具有相同的测试结果。
通过选取每个等价类的典型值作为测试数据,可以有效地减少测试用例的数量,提高测试效率。
2. 边界值分析边界值分析是一种针对边界条件的黑盒测试方法。
在边界值分析中,测试人员会针对输入值的边界情况设计测试用例,以验证软件在边界条件下的正确性。
通过对输入值的最大值、最小值以及临界值进行测试,可以发现潜在的软件缺陷,提高软件的稳定性和健壮性。
3. 因果图法因果图法是一种用于识别软件功能之间关系的黑盒测试方法。
在因果图法中,通过绘制因果图来描述软件功能之间的依赖关系,帮助测试人员理解系统的功能结构和交互逻辑,从而设计有效的测试用例。
因果图法能够帮助测试人员快速准确地捕捉系统的关键功能点,提高测试的全面性和覆盖率。
4. 决策表测试决策表测试是一种黑盒测试方法,它通过设计决策表来确定软件在不同条件下的响应行为。
在决策表中,列出了软件可能的输入条件和相应的输出行为,测试人员可以根据决策表设计测试用例,验证软件在不同条件下的逻辑正确性。
决策表测试能够帮助测试人员全面地覆盖软件的各种情况,有效地发现潜在的错误和漏洞。
5. 状态迁移测试状态迁移测试是一种针对有状态系统的黑盒测试方法。
在状态迁移测试中,测试人员会设计测试用例,覆盖软件在不同状态之间的转换过程,以验证软件在状态切换时的正确性。
通过状态迁移测试,可以有效地发现软件在状态转换时出现的错误,确保软件在不同状态下的行为符合预期。
黑盒测试是一种基于证明功能需求和用户最终需求的测试方法,设计黑盒测试用例的方法有如下8种:等价类划分法。
边界值分析法。
因果图法。
判定表驱动测试。
场景法。
功能图法。
错误推测法。
正交试验设计法。
在实际测试工作中,往往是综合使用各种方法才能有效地提高测试效率和测试覆盖率,这就需要认真掌握这些方法的原理,积累更多的测试经历,以有效地提高测试水平和测试效率。
下面就将主要介绍这8种设计黑盒测试用例的方法。
等价类划分等价类划分法是一种典型的、重要的黑盒测试方法,它将程序所有可能的输入数据〔有效的和无效的〕划分成假设干个等价类。
然后从每个局部中选取具有代表性的数据当做测试用例进展合理的分类,测试用例由有效等价类和无效等价类的代表组成,从而保证测试用例具有完整性和代表性。
利用这一方法设计测试用例可以不考虑程序的部构造,以需求规格说明书为依据,选择适当的典型子集,认真分析和推敲说明书的各项需求,特别是功能需求,尽可能多地发现错误。
由于等价类是在需求规格说明书的根底上进展划分的,并且等价类划分不仅可以用来确定测试用例中的数据的输入输出的准确取值围,也可以用来准备中间值、状态和与时间相关的数据以及接口参数等,所以等价类可以用在系统测试、集成测试和组件测试中,在有明确的条件和限制的情况下,利用等价类划分技术可以设计出完备的测试用例。
这种方法可以减少设计一些不必要的测试用例,因为这种测试用例一般使用一样的等价类数据,从而使测试对象得到同样的反映行为。
对于等价类我们从以下几个方面讨论它的划分方法。
1、等价类划分等价类可以划分为有效等价类和无效等价类。
〔1〕有效等价类有效等价类指对于程序规格说明来说,是合理的、有意义的输入数据构成的集合。
利用有效等价类可以检验程序是否实现了规格说明预先规定的功能和性能。
有效等价类可以是一个,也可以是多个,根据系统的输入域划分假设干局部,然后从每个局部中选取少数有代表性数据当做数据测试的测试用例,等价类是输入域的集合。
状态迁移法 许多需求⽤状态机的⽅式来描述,状态机的测试主要关注在测试状态转移的正确性上⾯。
对于⼀个有限状态机,通过测试验证其在给定的条件内是否能够产⽣需要的状态变化,有没有不可达的状态和⾮法的状态。
可能不可能产⽣⾮法的状态转移等。
对于被测系统,若我们可以抽象出它的若⼲个状态,以及这些状态之间的切换条件和切换路径,那么就可以从状态迁移路径覆盖的⾓度来设计⽤例对该系统进⾏测试。
状态迁移法的⽬标是设计⾜够的⽤例达到对系统状态的覆盖、状态-条件组合的覆盖以及状态迁移路径的覆盖。
状态迁移法的思想是提供将多个状态的转换串联起来进⾏测试的思路。
该⽅法适合测试各种状态的转换,⽽且这些状态转换的测试在实践中是易遗漏的。
例如像⼿机、MP3等,都可以使⽤状态迁移法对使⽤状态的迁移(即⽤户使⽤场景的转换)进⾏测试。
状态迁移法的使⽤:步骤⼀:根据需求提取全部状态;步骤⼆:绘制状态迁移图;步骤三:根据状态迁移图推导测试路径(状态迁移树);步骤四:选取测试数据,构造测试⽤例。
例⼦:⼀、需求:路⼈甲打电话预订飞机票,要去某地。
⼆、分析:1、测试需求分析:a).客户向航空公司打电话预订机票。
此时,机票信息处于“完成预订”状态;b).顾客⽀付了机票款项后,机票信息变为“已⽀付”状态;c).客户当天到达机场并使⽤⾝份证换领登机牌后,机票信息变为“已出票”状态;d).检票登机后,机票信息变为“已使⽤”状态;e).在登机前,可以取消⾃⼰的订票信息,若已⽀付机票费⽤,则可以退回票款。
取消后,订票信息处于“已取消”状态;由以上分析得出客户预订机票时订单的全部状态:完成预定、已⽀付、已出票、已使⽤、已取消;2、测试设计⽅法分析(状态迁移法):a).状态迁移图:b).测试路径(状态迁移树):由状态迁移图得出的测试路径:(1).A->B->E;(2).A->B->C->E;(3).A->B->C->D。
黑盒测试的类型黑盒测试是软件测试中的一种重要方法,它关注于测试软件应用程序的功能而不需要了解其内部结构。
黑盒测试是通过检查程序的输出结果,验证功能是否按照需求规格书的描述来进行测试的。
根据不同的测试目的,黑盒测试可以分为以下几种类型:1. 等价类测试等价类测试是一种黑盒测试方法,将输入数据划分为若干等价类,然后从每个等价类中选择一个有效的和一个无效的测试用例进行测试。
这样可以有效地减少测试用例的数量,同时确保覆盖了不同情况下的输入。
2. 边界值测试边界值测试是一种黑盒测试方法,重点测试程序的边界条件。
通过在输入的边界值上进行测试,以检查程序是否在边界值处能够正确处理数据。
这种测试方法通常能够发现一些常见的程序错误,如数组越界等。
3. 因果图测试因果图测试是一种基于因果图的黑盒测试方法,通过识别系统的输入、输出、条件和操作之间的关系,构建因果图,然后根据因果图设计测试用例。
因果图测试能够帮助测试人员深入理解系统的功能和逻辑,有效地发现潜在的问题。
4. 决策表测试决策表测试是一种用来测试软件系统的决策规则是否正确的黑盒测试方法。
测试人员将系统的决策规则转换成决策表,根据决策表设计测试用例,以验证系统是否按照规则正确地进行决策。
5. 状态迁移测试状态迁移测试是一种黑盒测试方法,用于测试带有状态的系统。
测试人员将系统的状态和状态转移关系建模成状态迁移图,然后设计测试用例覆盖不同的状态转移路径,以确保系统在不同状态下的行为正确。
6. 随机测试随机测试是一种黑盒测试方法,通过随机生成输入数据进行测试。
随机测试可以帮助测试人员发现一些未被预料到的问题,但由于测试用例的生成是随机的,可能无法保证测试的全面性和准确性。
以上是几种常见的黑盒测试类型,每种测试方法都有其适用的场景和优势。
在进行软件测试时,测试人员可以根据具体的需求和目标选择合适的黑盒测试方法来保证软件质量。
常用的黑盒测试方法
黑盒测试是软件测试中常用的一种测试方法。
它是一种功能性测试,不需要了解软件的内部实现细节。
黑盒测试主要是通过输入输出值来测试软件的正确性和完整性。
下面是一些常用的黑盒测试方法: 1. 等价类划分法:将所有可能的输入值划分成一些等价类,每个等价类只需要测试一个代表值即可。
例如,对于一个输入值要求在1到100之间,可以将它分为小于1,1-100之间,大于100三个等价类。
2. 边界值分析法:在等价类划分的基础上,测试每个等价类的边界值,因为很多软件错误都发生在边界处理不当时。
3. 错误推测法:通过推断软件可能出现的错误类型,设计测试用例并进行测试。
4. 因果图法:通过对软件功能的因果关系进行分析,设计测试用例进行测试。
5. 状态迁移法:对于软件的状态转换进行分析,设计测试用例进行测试。
6. 数据流分析法:通过对软件的数据流进行分析,设计测试用例进行测试。
以上是一些常用的黑盒测试方法,根据不同的软件特性和测试需求,还可以结合使用多种方法进行测试。
- 1 -。
黑盒测试包括哪些技术
在软件开发过程中,黑盒测试是一种常见的测试方法,它是一种测试软件功能
而无需了解内部代码结构的方法。
黑盒测试技术主要包括以下几种:
等价类划分
等价类划分是一种将数据分为不同的等价类,并选择一个代表性数据进行测试
的方法。
通过等价类划分,可以有效地减少测试用例的数量,同时确保覆盖了不同的输入情况。
边界值分析
边界值分析是一种测试方法,通过测试接近、超过或刚好处于边界值的输入数
据进行测试。
通过这种方法可以有效地发现潜在的错误,提高测试覆盖率。
因果图技术
因果图技术是一种用于描述系统特性、功能、进程和资源之间相互作用的方法。
通过因果图技术,可以帮助测试人员理清系统内部的逻辑关系,有助于制定更有效的测试方案。
决策表测试
决策表测试是一种根据不同的输入条件和结果条件制定决策表,通过对决策表
中的各种条件组合进行测试,以验证系统的正确性。
状态迁移测试
状态迁移测试是一种测试方法,用于测试系统在不同状态下的转换和相互作用。
通过状态迁移测试,可以检查系统在不同状态下的表现,发现潜在的错误。
功能分析测试
功能分析测试是一种测试方法,通过对系统功能进行具体分析和测试,检查系
统是否按照需求规格书的要求运行。
这种方法可以帮助测试人员充分理解系统功能,确保系统的正确性。
总的来说,黑盒测试技术包括等价类划分、边界值分析、因果图技术、决策表
测试、状态迁移测试和功能分析测试等多种方法。
通过这些技术的结合使用,可以有效地对系统进行全面的测试,发现潜在的问题,确保软件的质量和稳定性。
状态迁移法
一、概念
1.什么是状态迁移法
在定义状态迁移法之前,先介绍一下程序的功能说明。
一个程序的功能说明通常由动态说明和静态说明组成。
动态说明描述了输入数据的次序或转移的次序。
静态说明描述了输入条件与输出条件之间的对应关系。
对于较复杂的程序,由于存在大量的组合情况,因此,仅用静态说明组成的规格说明对于测试来说往往是不够的,必须用动态说明来补充功能说明。
功能图方法是用功能图形式化地表示程序的功能说明,并机械地生成功能图的测试用例。
功能图模型由状态迁移图和逻辑功能模型构成:
(1)状态迁移图用于表示输入数据序列以及相应的输出数据。
用状态和
迁移来描述一个状态指出数据输入的位置(或时间),而迁移则指明状态
的改变,同时要依靠判定表或因果图表示的逻辑功能。
在状态迁移图中,由输入数据和当前状态决定输出数据和后续状态。
(2)逻辑功能模型用于表示在状态中输入条件和输出条件之间的对应关
系。
逻辑功能模型只适合于描述静态说明,输出数据仅由输入数据决定。
(3)测试用例则是由测试中经过的一系列状态和在每个状态中必须依靠
输入/输出数据满足的一对条件组成。
如何从状态迁移图中选取用例我们采用节点代替状态,弧线代替迁移,那么状态迁移图就转换成为一个程序的控制流程图,问题也就随之转换为路径测试的问题了。
所以,功能图方法其实是是一种黑盒/白盒混合使用的用例设计方法。
比如在功能图方法中,用到的逻辑覆盖与路径测试的概念和方法,就是属于白盒测试方法中的内容。
(逻辑覆盖是以程序内部的逻辑结构为基础的测试用例设计方法,该方法要求测试人员对程序的逻辑结构有清楚的了解。
由于覆盖测试的目标不同,逻辑覆盖可分为:语句覆盖,判定覆盖,判定-条件覆盖,条件组合覆盖及路径覆盖。
)
注意:测试人员应当注意区分黑盒测试中系统功能或者系统水平上的逻辑覆
盖与路径,和白盒测试中所指的程序内部的逻辑覆盖的区别。
状态迁移法的目标是设计足够的用例达到对系统状态的覆盖、状态——条件组合的覆盖以及状态迁移路径的覆盖。
测试用例的生成规则:为了把状态迁移(测试路径)的测试用例与逻辑模型(局部测试用例)的测试用例组合起来,从功能图生成实用的测试用例,须在一个结构化的状态迁移(SST)中,定义三种形式的循环——顺序、选择和重复。
然后按照以下四个过程从功能图中生成测试用例。
1. 生成局部测试用例。
在每个状态中,从因果图生成局部测试用例。
局部测试用例由原因值(输入数据)组合与对应的结果值(输出数据或状态)构成。
2. 测试路径生成。
利用上面的规则(顺序、选择、重复)生成从初始状态到最后状态的测试路径。
3. 测试用例合成。
合成测试路径与功能图中每个状态中的局部测试用例,结果是初始状态到最后状态的一个状态序列,以及每个状态中输入数据与对应输出数据的组合。
4. 测试用例的合成算法。
采用条件构造树。
二、操作步骤及实例分析
借鉴实例()——手机中MP3的播放功能。
在手机中使用MP3,R键功能为倒退,P键功能为播放,F键功能为快进,RC 键功能为录音,S键功能为暂停;其中没有选择MP3曲目时不能按任何键,并且当MP3曲目在起点时不能按R键,当MP3曲目在末端时不能按P、F键;MP3只有在暂停状态下才可以录音。
本工程方法具体的实施步骤如下:
步骤1:绘制状态迁移图
图:手机中MP3的播放功能——状态迁移图
步骤2:定义状态——条件表
步骤3:根据状态迁移图推到测试路径
- a 从初始状态节点(可以有多个)出发,依据广度优先原则遍历状态迁移图,遍历到结束状态节点或已经遍历过的节点为一次遍历结束,得到一条测试路径。
- b 选取需要测试的路径,达到规定的路径覆盖率。
这里每条路经对应一个或几个测试用例规格。
其中“覆盖路径”指该用例覆盖的路径的分支序列;“覆盖状态——条件组合”指该分支序列上各状态点和条件的组合。
为了更好地进行遍历,可以借助于状态转换树,使用状态转换树首先要确定一个根节点,比如状态迁移图中的“起点停止”状态,然后从该状态往后延伸,有三个方向,可以分别转换到播放状态、快进状态,录音状态。
然后再分别从这三个状态往后延伸,直到所有的状态转换都包含到该状态转换树中。
从根节点到最后的叶子节点就是需要测试的路径。
图:手机中MP3的播放功能——状态转换树
步骤4:选取测试数据,构造测试用例
对选定的每条需要测试的路径,结合等价类、边界值分析,确定每个状态节点的输入,沿着该路经通过表格将各种测试数据的输入输出对应起来,这样就完成了测试用例的设计。
如果有足够的时间,就应该测试软件的每一个分支——不仅是连接两个状态的每一条线,而是每一种线路组合。
但是覆盖所有分支是不可能的,正如对数据等价分配一样,大量的可能性也需要减少可操作的测试用例数目。
我们可以通过以下5种方法减少测试用例:
1.每种状态至少访问一次。
无论用什么方法,必须测试每一种状态。
2.测试看起来最常见最普遍的状态转换。
我们可以根据审查产品说明书时
分析收集到的信息确定某些用户情况可能比其他更常见。
3.测试状态之间最不常用的分支。
这些分支是最容易被产品设计者和程序
员忽视的。
4.测试所有错误状态及其返回值。
错误没有得到正确处理、错误提示信息
不正确、修复错误时未正确恢复软件等情况是常有的。
5.利用工具自动执行状态转换测试。
步骤5:其他考虑
运用其他测试方法,如错误推测法等增加异常测试等非正常性测试用例。
三、实际应用
状态迁移图法的核心在于通过状态转换树将不同状态之间的转换串起来进行测试,而这里所说的转换也可以看成是修改、改变,因此凡是被涉及到改变的地方都可以考虑使用状态迁移图法。
状态迁移图法主要适用于以下几种类似情况:
1.播放器、手机等存在工作状态不断改变的系统;
2.编辑功能,如修改字体颜色、大小、格式等等。
四、总结
到目前为止,我们测试的是数据,包括数字、文字、软件输入和输出。
软件测试的另一方面是通过不同的状态验证程序的逻辑流程。
软件状态是指软件当前所处的情况或者模式,例如启动Windows画图程序,程序处于铅笔绘画状态,我们可以通过选中喷枪工具改变软件的状态,使它处于喷涂状态,也可以通过选择其他工具、菜单项、颜色等使软件的代码进入某一个流程分支,触发一些数据位。
设置某些变量,读取某些数据,转入一个新的状态。
软件测试人员必须测试程序的这些状态及其转换。
如同穷举数据测试是不可能的一样。
除了极其简单的程序之外,基本上不可能覆盖所有程序分支,达到所有状态。
目前软件越来越复杂,特别是为了迎合日益丰富的用户界面,提供了太多选择和选项,致使程序分支爆炸式增长:与著名的流动推销员问题类似:给定城市数目,以及任何两个城市之间的距离,设法找出访问到每一个城市并返回起点的最短路线。
如果只有5个城市,则可以快速计算出共有120条不同的路线。
走遍所有路线,从中找到最短的路线并不是太难,花费不了太长时间。
如果城市数目增加到成百上千(或者在测试用例中增加成百上千种状态),就形成一个难以解决的问题。
要减少测试的风险,尽量全面测试程序的状态及其转换流程,可以首先根据产品说明书建立一个状态转换图,用来描述系统设计和指导我们进行测试,然后运用等价分配技术选择要测试的状态和分支,这将是十分有效的方法。
所以,状态迁移图法实际上是测试了各种状态的转换,这些状态转换的测试在实际工作中是容易遗漏的。
只要能将这些状态的转换测试覆盖到,是否采用了状态迁移图法其实并不重要,因为状态迁移图法仅仅是给出了一种将多个状态的转换串起来进行测试的思路而已。
综上所述,状态转换图应包括以下条目:
1.软件可能进入的每一种独立状态。
如果不能断定是否为独立状态,先把
它设置为是。
如果以后发现不是,可以随时将其剔除。
2.从一种状态转入另一种状态所需的输入和条件。
比如,可能是按键、菜
单选择、传感器信号或者电话振铃等、进入或退出某种状态时的设置条
件及输出结果,包括显示的菜单和按钮、设置的标志位、产生的打印输
出、执行的运算等。
这些是状态转换时发生的部分或全部现象。