**第29页,共80页,星期日,2025年,2月5日循环测试(续)对于最多为n次的简单循环,应作下列测试:1)完全跳过循环;2)仅循环一次;3)循环两次;4)循环m次,m<n;5)分别循环(n-1)次,n次,n+1次。**第30页,共80页,星期日,2025年,2月5日循环测试(续)对于嵌套循环若生搬硬套简单循环的测试策略。可能使测试次数成几何级数增长,减少测试次数的具体措施包括:1)从最内层循环开始测试,此时所有外层循环都取最小值,内层循环按简单循环的测试策略测试;2)由里向外,回退到上一层循环测试,这层循环的所有外层循环仍取最小值,由该层循环嵌套的那些循环取一些典型值。3)继续向外扩展,直至所有循环测试完毕。对于并置循环分两种情况,若两个循环完全独立,采用简单循环的测试策略,反之,若第一循环的计数器用作第二循环的初值,即两循环不独立,需用嵌套循环测试策略测试。非结构化的循环需按结构化程序设计的思想首先将程序结构化然后再进行测试。**第31页,共80页,星期日,2025年,2月5日黑盒测试黑盒测试旨在测试软件是否满足功能要求,它主要诊断下列几类错误:(1)不正确或遗漏的功能;(2)界面错误;(3)数据结构或外部数据库访问错误;(4)性能错误;(5)初始化和终止条件错误。值得指出的是,黑盒测试法与白盒测试法不能互相替代,相反两者应互为补充,在测试的不同阶段为发现不同类型的错误而灵活选用。**第32页,共80页,星期日,2025年,2月5日1.等价分类法等价分类法的主要思想是把程序的输入数据集合按输入条件划分为若干个等价类,每一等价类相对于输入条件表示为一组有效或无效的输入,然后为每一等价类设计一个测试用例,这样即可大大减小测试的次数又不丢失发现错误的机会。因此等价分类法的关键是根据输入数据的类型和程序的功能说明划分等价类。**第33页,共80页,星期日,2025年,2月5日等价分类法常用的一些规则:(1)如果能为输入条件指定一个范围,则可划分出一个有效的等价类(输入值落在此范围内)和两个无效的等价类(大于最大值的输入和小于最小值的输入);(2)如果能为输入条件指定一个特定值,则可类似地划分出一个有效等价类和两个无效等价类;(3)如果能为输入条件指定一个集合,则可划分出一个有效等价类(此集合)和一个无效等价类(此集合的补集);(4)如果能为输入条件指定一个布尔量,则可划分出一个有效等价类(此布尔量)和一个无效布尔量(此布尔量之非)。**第34页,共80页,星期日,2025年,2月5日2.边界值分析法经验表明,大多数错误都发生在输入的边界值上。为此,专门引入边界值分析(BoundaryValueAnalysis)技术,旨在选择测试用例,强迫程序在边界值上执行。BVA技术是对等价分类技术的补充,即在一个等价类中不是任选一个元素作为此等价类的代表进行测试,而是选择此等价类边界上的值。此外,采用BVA技术导出测试用例时,不仅要考虑输入条件,还要考虑输出的状态。**第35页,共80页,星期日,2025年,2月5日边界值分析法采用BVA技术设计测试用例与等价分类法有许多相似之处:1)如果输入条件指定了由值a,b括起来的一个范围,那么值a、值b和紧挨a、b左右的值应分别作为测试用例;2)如果输入条件指定为一组数,那么这组数中最大者、最小者和次大、次小者应作为测试用例;3)应用规则1)、2)于输出条件。例如,假设某程序输出为一张温度压力对照表,此时应设计测试用例正好产生表项所允许的最大和最小值。4)如果内部数据结构是有界的(例如,某数组有100个元素),那么应设计测试数据,使之能检查该数据结构的边界。**第36页,共80页,星期日,2025年,2月5日3.对比测试法在一些可靠性要求很高的系统中,经常使用冗余的软、硬件,以减少错误发生的可能性。这时,不同的软件版本由不同的开发小组根据同一需求说明书开发,并用相同的测试数据对它们进行测试,保持结果一致。此后各版本并行执行并实时地比较结果,确保系统的正确性。受此思想起发,许多关键软件,即使最后交付时只要求一个版本,开发时也另外产生一个独立版本供测试使用。这种黑盒测试方法称为对比测试或背靠背测试**第37页,共80页,星期日,2025年,2月5日软件测试策略软件测试策略主要考虑,如何把设计测试用例的技术组织成一个系统的、有计划的测试步骤。测试策略应包含测试规划、测试用例设计、测试实施和测试结果收集评估等。其中测试规划包括:测试的步骤、工作量、进度和资源等本节重点讨论测试步骤,测