资源描述
第二章软件测试方法第二章软件测试方法2.0软件系统的主要测试内容及技术2.1软件测试方法概述2.2 静态测试与动态测试2.3 黑盒测试2.4 白盒测试习题2.0软件系统的主要测试内容及技术1)接口与路径测试2)功能测试3)健壮性测试4)性能测试5)用户界面测试6)信息安全测试7)压力测试8)可靠性测试9)安装/反安装测试1)接口与路径测试(白盒测试)2)功能测试(黑盒测试)3)健壮性测试健壮性是指在异常情况下,软件还能正常运行的能力。健壮性有两层含义:一是容错能力,二是恢复能力。容错性测试通常构造一些不合理的输入来引诱软件出错,例如:(1)输入错误的数据类型。如“猴”年“马”月。(2)输入定义域之外的数值。如上海人常说的“十三点”粗暴一些方式俗称“大猩猩”测试法。除了不能拳打脚踢嘴咬外,什么招术都可以使出来。例如在测试客户机服务器模式的软件时,把网络线拔掉,造成通信异常中断。恢复测试重点考察一下几项:(1)系统能否重新运行;(2)有无重要的数据丢失;(3)是否毁坏了其它相关的软件硬件。2.0软件系统的主要测试内容及技术4)性能测试性能测试即测试软件处理事务的速度,一是为了检验性能是否符合需求,二是为了得到某些性能数据供人们参考有时人们关心测试的“绝对值”,如数据送输速率是每秒多少比特。有时人们关心测试的“相对值”,如某个软件比另一个软件快多少倍。在获取测试的“绝对值”时,我们要充分考虑并记录运行环境对测试的影响。例如网络环境、计算机主频,总线结构和外部设备都可能影响软件的运行速度。性能测试的一些注意事项:不要试图让人拿着钟表去测时间,应当编写一段程序用于计算时间以及相关数据。应当测试软件在标准配置和最低配置下的性能。为了排除干扰,应当关闭那些消耗内存、占用CPU的其它应用软件(如杀毒软件)。不同的输入情况会得到不同的性能数据,应当分档记录。例如传输文件的容量从100K到1M可以分成若干等级。由于环境的波动,同一种输入情况在不同的时间可能得到不同的性能数据,可以取其平均值。2.0软件系统的主要测试内容及技术5)用户界面测试绝大多数软件拥有图形用户界面。图形用户界面的测试重点是正确性、易用性和视觉效果。在评价易用性和视觉效果时,主观性非常强,应当考虑多个人的观点。2.0软件系统的主要测试内容及技术6)信息安全测试信息安全性(security)是指防止系统被非法入侵的能力,既属于技术问题又属于管理问题。信息安全性测试有如下步骤:(1)为非法入侵设立目标,例如“盗窃某个文件”或“更改数据库记录”等。(2)邀请(或悬赏)一些人扮演黑客,让他们想尽办法入侵系统,实现“目标”。(3)如果有人成功了,请他详述入侵的过程。别忘了给予奖励。2.0软件系统的主要测试内容及技术7)压力测试压力测试也叫负荷测试,即获取系统能正常运行的极限状态。了解“极限”是很有价值的,例如潜艇下潜极限深度。压力测试的主要任务是:构造正确的输入,使劲折腾系统却让它刚好不瘫痪。压力测试的一个变种是敏感测试。在某种情况下,微小的输入变动会导致系统的表现(如性能)发生急剧的变化。敏感测试目的是发现什么样的输入可能会引发不稳定现象。8)可靠性测试可靠性是指在一定的环境下、在给定的时间内、系统不发生故障的概率。由于软件不像硬件那样可以“加速老化”,按此定义,软件可靠性测试可能会花费很长时间。比较实用的办法是,让用户使用该系统,记录每一次发生故障的时刻。计算出相邻故障的时间间隔,注意要去掉非工作时间。这样我们可以方便地统计出不发生故障的“最小时间间隔”、“最大时间间隔”和“平均时间间隔”。其中“平均时间间隔”会让人们大体了解到系统“可靠”的程度。2.0软件系统的主要测试内容及技术9)安装/反安装测试安装/反安装测试的目的:避免“大风浪都挺过来了,却在阴沟里翻了船”目前市面上有非常流行的、专门制作安装/反安装程序的一些工具,如Install Shelled。制作安装/反安装程序不再是件难事,关键是不要麻痹大意。主要测试工作:(1)至少在标准配置和最低配置两种环境下测试;(2)如果有安装界面,应当尝试各种选项,如选择“全部”、“部分”、“升级”等。2.0软件系统的主要测试内容及技术2.1 软件测试方法概述第二章软件测试方法软件测试的方法多种多样,可以从不同角度加以分类:从是否需要执行被测软件的角度,分为静态测试和动态测试;从是针对系统的外部功能还是针对系统的内部结构的角度,分为黑盒测试和白盒测试;从软件测试的策略和过程的角度,分为单元测试、集成测试、确认测试、系统测试和验收测试等。2.1 软件测试方法概述第二章软件测试方法1从是否需要执行被测软件的角度分类从是否需要执行被测软件的角度,软件测试可分为静态测试(Static Testing)和动态测试(Dynamic Testing)。顾名思义,静态测试就是通过对被测程序的静态审查,发现代码中潜在的错误。它一般用人工方式脱机完成,故亦称人工测试或代码评审(Code Review);动态测试是通常意义上的测试,即使用和运行被测软件。动态测试的对象必须是能够由计算机真正运行的被测试的程序,它包含黑盒测试和白盒测试。2.1 软件测试方法概述第二章软件测试方法2从软件测试用例设计方法的角度分类从软件测试用例设计方法的角度,可分为黑盒测试(Black-Box Testing)和白盒测试(White-Box Testing)。黑盒测试是一种从用户角度出发的测试,又称为功能测试。使用这种方法进行测试时,把被测试程序当作一个黑盒,忽略程序内部的结构的特性,测试者在只知道该程序输入和输出之间的关系或程序功能的情况下,依靠能够反映这一关系和程序功能需求规格的说明书,来确定测试用例和推断测试结果的正确性。简单地说,若测试用例的设计是基于产品的功能,目的是检查程序各个功能是否实现,并检查其中的功能错误,则这种测试方法称为黑盒。白盒测试基于产品的内部结构来进行测试,检查内部操作是否按规定执行,软件各个部分功能是否得到充分利用。白盒测试又称为结构测试,逻辑驱动测试或基于程序的测试。即根据被测程序的内部结构设计测试用例,测试者需要预先了解被测试程序的结构。2.1 软件测试方法概述第二章软件测试方法3从软件测试的策略和过程的角度分类。按照软件测试的策略和过程分类,软件测试可分为单元测试(Unit Testing),集成测试(Integration Testing),确认测试(Validation Testing),系统测试(System Testing)和验收测试(Verification Testing)。单元测试是针对每个单元的测试,是软件测试的最小单位。它确保每个模块能正常工作。单元测试主要采用白盒测试方法,用以发现内部错误。集成测试是对已测试过的模块进行组装,进行集成测试的目的主要在于检验与软件设计相关的程序结构问题。在集成测试过程中,测试人员采用黑盒测试和白盒测试两种方法,来验证多个单元模块集成到一起后是否能够协调工作。确认测试是检验所开发的软件能否满足所有功能和性能需求的最后手段,通常采用黑盒测试方法。系统测试的主要任务是检测被测软件与系统的其他部分的协调性,通常采用黑盒测试方法。验收测试是软件产品质量的最后一关。这一环节,测试主要从用户的角度着手,其参与者主要是用户和少量的程序开发人员,通常采用黑盒测试方法。2.2 静态测试与动态测试第二章软件测试方法根据程序是否运行可以把软件测试方法分为静态测试(Static Testing)和动态测试(Dynamic Testing)两大类。图2-1是静态测试与动态测试的比喻图。图2-1 静态测试与动态测试的比喻图2.2.1 静态测试第二章软件测试方法 静态方法的主要特征是在用计算机测试源程序时,计算机并不真正运行被测试的程序,只对被测程序进行特性分析。因此,静态方法常称为“分析”,静态分析是对被测程序进行特性分析的一些方法的总称。所谓静态分析,就是不需要执行所测试的程序,而只是通过扫描程序正文,对程序的数据流和控制流等信息进行分析,找出系统的缺陷,得出测试报告。静态测试包括评审(reviews),走查(walk-through),和审查(inspection),可以统称为复审。它可以由人工进行,充分发挥人的逻辑思维优势,也可以借助软件工具自动进行。走查走查(WALK THROUGH)定定义:采用:采用讲解、解、讨论和模和模拟运行的方式运行的方式进行的行的查找找错误的的活活动。注意:注意:引引导小小组成成员在走在走查前通前通读设计和和编码。限限时,避免跑,避免跑题。发现问题适当适当记录,避免,避免现场修改。修改。检查要点是代要点是代码是否符合是否符合标准和准和规范,是否有范,是否有逻辑错误。审查审查(INSPECTION)定定义:采用:采用讲解、提解、提问方式方式进行,一般有正式的行,一般有正式的计划、流程和划、流程和结果。主要方法采用缺陷果。主要方法采用缺陷检查表。表。注意:注意:以会以会议形式,制定会形式,制定会议目目标、流程和、流程和规则,结束束后要后要编写写报告。告。按缺陷按缺陷检查表逐表逐项检查。发现问题适当适当记录,避免,避免现场修改。修改。发现重大缺陷,改正后会重大缺陷,改正后会议需要重开。需要重开。检查要点是缺陷要点是缺陷检查表,所以表,所以该表要根据表要根据项目不目不同不断同不断积累完善。累完善。走查与审查的比较走查与审查的比较 走 查审 查准备通读设计和编码应准备好需求描述文档、程序设计文档、程序的源代码清单、代码编码标准和代码缺陷检查表形式非正式会议正式会议参加人员开发人员为主项目组成员包括测试人员主要技术方法无缺陷检查表注意事项限时、不要现场修改代码限时、不要现场修改代码生成文档会议记录静态分析错误报告目标代码标准规范,无逻辑错误代码标准规范,无逻辑错误评审评审(REVIEW)定定义:通常在:通常在审查会后会后进行,行,审查小小组根根据据记录和和报告告进行行评估。估。注意:注意:充分充分审查了所了所规定的代定的代码,并且全部,并且全部编码准准则被遵守。被遵守。审查中中发现的的错误已全部修改。已全部修改。复审的意义1)为验证和确认而复审2)将复审作为一种改进的过程、改进系统、节约开销的手段。3)复审作为一种取得共识和理解的手段4)复审的交付品,可以在需求、设计、代码、测试用例、缺陷报告和其他的项目中找到缺陷。2.2.2 动态测试第二章软件测试方法动态测试是真正运行被测程序,在执行过程中,通过输入有效的测试用例,对其输入与输出的对应关系进行分析,以达到检测的目的。在动态测试中,又可有基于程序结构的白盒测试(或称为覆盖测试)和基于功能的黑盒测试。2.3 黑盒测试方法第二章软件测试方法 黑盒测试(Black-box Testing)又称为功能测试、数据驱动测试和基于规格说明的测试。是一种从用户观点出发的测试,主要以软件规格说明书为依据,对程序功能和程序接口进行的测试。黑盒测试的基本观点是:任何程序都可以看作是从输入定义域映射到输出值域的函数过程,被测程序被认为是一个打不开的黑盒子,黑盒中的内容(实现过程)完全不知道,只明确要做到什么。黑盒测试作为软件功能的测试手段,是重要的测试方法。它主要根据规格说明设计测试用例,并不涉及程序内部结构和内部特性,只依靠被测程序输入和输出之间的关系或程序的功能设计测试用例。黑盒测试黑盒测试软件不深入代码细节的测不深入代码细节的测试方法称为动态黑盒试方法称为动态黑盒测试。测试。软件测试员充当客户软件测试员充当客户来使用。来使用。这种方法是把这种方法是把这种方法是把这种方法是把测试对象测试对象测试对象测试对象看做看做看做看做一个黑盒子一个黑盒子一个黑盒子一个黑盒子,测试人员完全不考虑程,测试人员完全不考虑程,测试人员完全不考虑程,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明。检查程序的功能是否符合它的功能说明。检查程序的功能是否符合它的功能说明。检查程序的功能是否符合它的功能说明。黑盒黑盒黑盒黑盒测试测试方法是在程序接口上方法是在程序接口上方法是在程序接口上方法是在程序接口上进进行行行行测试测试,主要是,主要是,主要是,主要是为为了了了了发现发现以下以下以下以下错误错误:是否有不正确或是否有不正确或是否有不正确或是否有不正确或遗遗漏了的功能漏了的功能漏了的功能漏了的功能?在接口上,在接口上,在接口上,在接口上,输输入能否正确地接受入能否正确地接受入能否正确地接受入能否正确地接受?能否能否能否能否输输出正出正出正出正确的确的确的确的结结果果果果?是否有数据是否有数据是否有数据是否有数据结结构构构构错误错误或外部信息或外部信息或外部信息或外部信息(例如数据文件例如数据文件例如数据文件例如数据文件)访问错误访问错误?性能上是否能性能上是否能性能上是否能性能上是否能够满够满足要求足要求足要求足要求?是否有初始化或是否有初始化或是否有初始化或是否有初始化或终终止性止性止性止性错误错误?用黑盒测试发现程序中的错误,必须在用黑盒测试发现程序中的错误,必须在用黑盒测试发现程序中的错误,必须在用黑盒测试发现程序中的错误,必须在所有可能的输入条件和输出条件所有可能的输入条件和输出条件所有可能的输入条件和输出条件所有可能的输入条件和输出条件中确中确中确中确定测试数据,来检查程序是否都能产生正确的输出。但这是定测试数据,来检查程序是否都能产生正确的输出。但这是定测试数据,来检查程序是否都能产生正确的输出。但这是定测试数据,来检查程序是否都能产生正确的输出。但这是不可能不可能不可能不可能的。的。的。的。例:假例:假例:假例:假设设一个一个一个一个程序程序程序程序P P P P有有有有输输入量入量入量入量X X X X和和和和Y Y Y Y及及及及输输出量出量出量出量Z Z Z Z。在字。在字。在字。在字长为长为32323232位的位的位的位的计计算机上运行。若算机上运行。若算机上运行。若算机上运行。若X X X X、Y Y Y Y取整数,按黑取整数,按黑取整数,按黑取整数,按黑盒方法盒方法盒方法盒方法进进行行行行穷举测试穷举测试:可能采用的可能采用的可能采用的可能采用的 测试测试数据数据数据数据组组:2 2 2 2323232322 2 2 232323232 2 2 2 264646464 如果如果如果如果测试测试一一一一组组数据需要数据需要数据需要数据需要1 1 1 1毫秒,一年工作毫秒,一年工作毫秒,一年工作毫秒,一年工作365365365365 24 24 24 24小小小小时时,完成所有,完成所有,完成所有,完成所有测试测试需需需需5 5 5 5亿亿年。年。年。年。黑盒测试的具体技术方法主要包括边界值分析法、等价类划分法、因果图法、决策表法等。这些方法是比较实用的,在项目中采用什么方法,在设计具体的测试方案时自然要针对开发项目的特点对设计方法进行适当的选择。2.3.2 等价类划分法第二章软件测试方法1.等价类划分法概述(Equivalence Partitioning)把所有可能的输入数据把所有可能的输入数据(有效的和无效的有效的和无效的)划分成若干个等价划分成若干个等价的子集的子集(称为等价类称为等价类),使得每个子集中的一个典型值在测试中,使得每个子集中的一个典型值在测试中的作用与这一子集中所有其它值的作用相同的作用与这一子集中所有其它值的作用相同,可从每个子集中选可从每个子集中选取一组数据来测试程序。取一组数据来测试程序。2 划分等价类的规则划分等价类的规则(1)如果如果输入条件入条件规定了取定了取值范范围,可定,可定义一个有效等价一个有效等价 类和两个无效等价和两个无效等价类。例如,在程序的规格说明中,对输入条件有一句话:例如,在程序的规格说明中,对输入条件有一句话:例如,在程序的规格说明中,对输入条件有一句话:例如,在程序的规格说明中,对输入条件有一句话:“项数可以从项数可以从项数可以从项数可以从1 1到到到到999”999”则有效等价类是则有效等价类是则有效等价类是则有效等价类是“11项数项数项数项数 999999”两个无效等价类是两个无效等价类是两个无效等价类是两个无效等价类是“项数项数项数项数1 1”或或或或“项项项项数数数数999999”。在数轴上表示成。在数轴上表示成。在数轴上表示成。在数轴上表示成:(2)(2)如果输入条件规定了输入值的集合,或者是规定了如果输入条件规定了输入值的集合,或者是规定了如果输入条件规定了输入值的集合,或者是规定了如果输入条件规定了输入值的集合,或者是规定了“必须如何必须如何必须如何必须如何”的条件,这时可确立一个有效等价类和一个无效等价类。的条件,这时可确立一个有效等价类和一个无效等价类。的条件,这时可确立一个有效等价类和一个无效等价类。的条件,这时可确立一个有效等价类和一个无效等价类。(3)(3)如果输入条件是一个布尔量,则可以确定一个有效等价类和一如果输入条件是一个布尔量,则可以确定一个有效等价类和一如果输入条件是一个布尔量,则可以确定一个有效等价类和一如果输入条件是一个布尔量,则可以确定一个有效等价类和一个无效等价类。个无效等价类。个无效等价类。个无效等价类。(4)(4)如果规定了输入数据的一组值,而且程序要对每个输入值分别如果规定了输入数据的一组值,而且程序要对每个输入值分别如果规定了输入数据的一组值,而且程序要对每个输入值分别如果规定了输入数据的一组值,而且程序要对每个输入值分别进行处理。这时可为进行处理。这时可为进行处理。这时可为进行处理。这时可为 每一个输入值确立一个有效等价类,此外针每一个输入值确立一个有效等价类,此外针每一个输入值确立一个有效等价类,此外针每一个输入值确立一个有效等价类,此外针对这组值确立一个无效等价类,它是所有不允许的输入值的集合。对这组值确立一个无效等价类,它是所有不允许的输入值的集合。对这组值确立一个无效等价类,它是所有不允许的输入值的集合。对这组值确立一个无效等价类,它是所有不允许的输入值的集合。例如,在教师上岗方案中规定对教授、副教授、讲师和助教分别例如,在教师上岗方案中规定对教授、副教授、讲师和助教分别例如,在教师上岗方案中规定对教授、副教授、讲师和助教分别例如,在教师上岗方案中规定对教授、副教授、讲师和助教分别计算分数,做相应的处理。因此可以确定计算分数,做相应的处理。因此可以确定计算分数,做相应的处理。因此可以确定计算分数,做相应的处理。因此可以确定4 4个有效等价类为教授、个有效等价类为教授、个有效等价类为教授、个有效等价类为教授、副教授、讲师和助教,一个无效等价类,它是所有不符合以上身副教授、讲师和助教,一个无效等价类,它是所有不符合以上身副教授、讲师和助教,一个无效等价类,它是所有不符合以上身副教授、讲师和助教,一个无效等价类,它是所有不符合以上身分的人员的输入值的集合。分的人员的输入值的集合。分的人员的输入值的集合。分的人员的输入值的集合。(5)(5)如果规定了输入数据必须遵守的规则,则可以确立一个有效等如果规定了输入数据必须遵守的规则,则可以确立一个有效等如果规定了输入数据必须遵守的规则,则可以确立一个有效等如果规定了输入数据必须遵守的规则,则可以确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)。价类(符合规则)和若干个无效等价类(从不同角度违反规则)。价类(符合规则)和若干个无效等价类(从不同角度违反规则)。价类(符合规则)和若干个无效等价类(从不同角度违反规则)。3 3 3 3 从划分出的等价从划分出的等价从划分出的等价从划分出的等价类类中按以下原中按以下原中按以下原中按以下原则设计测试则设计测试用例:用例:用例:用例:(1)(1)(1)(1)为为每一个等价每一个等价每一个等价每一个等价类规类规定一个唯一定一个唯一定一个唯一定一个唯一编编号;号;号;号;(2)(2)(2)(2)设计设计一个新的一个新的一个新的一个新的测试测试用例,使其尽可能多地覆用例,使其尽可能多地覆用例,使其尽可能多地覆用例,使其尽可能多地覆盖尚未被覆盖的有效等价盖尚未被覆盖的有效等价盖尚未被覆盖的有效等价盖尚未被覆盖的有效等价类类,重复,重复,重复,重复这这一步,直到一步,直到一步,直到一步,直到所有的有效等价所有的有效等价所有的有效等价所有的有效等价类类都被覆盖都被覆盖都被覆盖都被覆盖为为止;止;止;止;(3)(3)(3)(3)设计设计一个新的一个新的一个新的一个新的测试测试用例,使其用例,使其用例,使其用例,使其仅仅覆盖一个尚覆盖一个尚覆盖一个尚覆盖一个尚未被覆盖的无效等价未被覆盖的无效等价未被覆盖的无效等价未被覆盖的无效等价类类,重复,重复,重复,重复这这一步,直到所有一步,直到所有一步,直到所有一步,直到所有的无效等价的无效等价的无效等价的无效等价类类都被覆盖都被覆盖都被覆盖都被覆盖为为止。止。止。止。例例1:对招干考招干考试系系统“输入学生成入学生成绩”子模子模块设计测试用例用例 招干考招干考试分三个分三个专业,准考,准考证号第一位号第一位 为专业代号,如:代号,如:1-行政行政专业,2-法律法律专业,3-财经专业。行政行政专业准考准考证号号码为:110001111215 法律法律专业准考准考证号号码为:210001212006 财经专业准考准考证号号码为:310001314015准考准考证号号码的等价的等价类划分划分 有效等价有效等价类:(1)110001 111215(2)210001 212006(3)310001 314015 无效等价无效等价类:(4)-110000(5)111216 210000(6)212007 31000(7)314016 +例例2:某:某报表表处理系理系统要求用要求用户输入入处理理报表的日期,日表的日期,日期限制在期限制在2001年年1月至月至2005年年12月月,即系即系统只能只能对该段期段期间内的内的报表表进行行处理,如日期不在此范理,如日期不在此范围内内,则显示示输入入错误信息。系信息。系统日日规定由年、月的定由年、月的6位数字字符位数字字符组成,前四成,前四位代表年位代表年,后两位代表月。后两位代表月。如何用等价如何用等价类划分法划分法设计测试用用例例,来来测试程序的日期程序的日期检查功能?功能?第一步:等价类划分第一步:等价类划分“报表日期报表日期”输入条件的等价类表输入条件的等价类表输入等价类有效等价类无效等价类报表日期的类型及长度6位数字字符(1)有非数字字符 (4)少于6个数字字符(5)多于6个数字字符(6)年份范围在20012005之间(2)小于2001(7)大于2005(8)月份范围在112之间(3)小于1(9)大于12(10)第二步:为有效等价类设计测试用例对表中编号第二步:为有效等价类设计测试用例对表中编号为为1,2,3的的3个有效等价类用一个测试用例覆个有效等价类用一个测试用例覆盖:盖:测试数据 期望结果 覆盖范围200105 输入有效等价类(1)(2)(3)第三步:为每一个无效等价类设至少第三步:为每一个无效等价类设至少 设计一个测试用例设计一个测试用例测试数据 期望结果 覆盖范围001MAY输入无效等价类(4)20015输入无效等价类(5)2001005输入无效等价类(6)200005输入无效等价类(7)200805输入无效等价类(8)200100输入无效等价类(9)200113输入无效等价类(10)不能出现相同不能出现相同的测试用例的测试用例本例的本例的10个等价类至个等价类至少需要少需要8个测试用例个测试用例例3:以三角形问题为例,输入条件是:三个数,分别作为三角形的三条边都是整数取值范围在1100之间认真分析上述的输入条件,可以得出相关的等价类表(包括有效等价类和无效等价类),如表2-2所示。2.3.2 等价类划分法第二章软件测试方法2.3.2 等价类划分法第二章软件测试方法输入条件等价类编号有效等价类等价类编号无效等价类三个数1三个数4只有一条边5只有两条边6多于三条边整数2整数7一边为非整数8两边为非整数9三边为非整数取值范围在110031a1001b1001c10010一边为011两边为012三边为013一边小于014两边小于015三边小于016一边大于10017两边大于10018三边大于100表2-2 三角形问题的等价类1 边界界值分析法分析法*(Boundary Value Analysis,BVA)边边界界界界值值分析法是分析法是分析法是分析法是对对等价等价等价等价类类划分方法的划分方法的划分方法的划分方法的补补充。充。充。充。人人人人们们从从从从长长期的期的期的期的测试测试工作工作工作工作经验经验得知,得知,得知,得知,大量的大量的大量的大量的错误错误是是是是发发生在生在生在生在输输入或入或入或入或输输出范出范出范出范围围的的的的边边界上,而不是在界上,而不是在界上,而不是在界上,而不是在输输入范入范入范入范围围的内部的内部的内部的内部。因此因此因此因此针对针对各种各种各种各种边边界情况界情况界情况界情况设计测试设计测试用例,用例,用例,用例,可以可以可以可以查查出更多的出更多的出更多的出更多的错误错误。边边界界界界值值分析分析分析分析所所所所谓边谓边界界界界值值分析,就是把分析,就是把分析,就是把分析,就是把测试测试的重点放在各个等的重点放在各个等的重点放在各个等的重点放在各个等价价价价类类的的的的边边界上,界上,界上,界上,选选取正好等于,取正好等于,取正好等于,取正好等于,刚刚刚刚大于,或大于,或大于,或大于,或刚刚刚刚小于小于小于小于边边界的界的界的界的值值做做做做为测试为测试数据,并据此数据,并据此数据,并据此数据,并据此设计设计出相出相出相出相应应的的的的测试测试用例。用例。用例。用例。2.3.3 边界值分析法第二章软件测试方法2 在应用边界值分析法设计测试用例时,应遵循以下几条原则:在应用边界值分析法设计测试用例时,应遵循以下几条原则:如果输入条件规定了值的范围范围,则应该选取刚达到这个范围的边界值,以及刚刚超过这个范围边界的值作为测试输入数据。如果输入条件规定了值的个数个数,则用最大个数、最小个数、比最小个数少1、比最大个数多1的数作为测试数据。根据规格说明的每一个输出条件输出条件,分别使用以上两个原则。如果程序的规格说明给出的输入域或者输出域是有序集合有序集合(如有序表、顺序文件等),则应选取集合的第一个元素和最后一个元素作为测试用例。如果程序中使用了一个内部数据结构,则应当选择这个内部数据结构的边界值作为测试用例。分析规格说明,找出其他可能的边界条件。第二章软件测试方法2.3.3 边界值分析法3.边界值分析法测试用例例1:以三角形问题为例,要求输入三个整数a、b、c,分别作为三角形的三条边,取值范围在1100之间,判断由三条边构成的三角形类型为等边三角形、等腰三角形、一般三角形(包括直角三角形)以及非三角形。如表2-9所示给出了边界值分析测试用例。第二章软件测试方法2.3.3 边界值分析法测试用例abc预期输出Test Case 115050等腰三角形Test Case 225050等腰三角形Test Case 3505050等边三角形Test Case 4995050等腰三角形Test Case 51005050非三角形Test Case 650150等腰三角形Test Case 750250等腰三角形Test Case 8509950等腰三角形Test Case 95010050非三角形Test Case 1050501等腰三角形Test Case 1150502等腰三角形Test Case 12505099等腰三角形Test Case 135050100非三角形表2-9边界值分析测试用例4 4 边界界值分析法与等价分析法与等价类划分法区划分法区别 (1)(1)等价分等价分类法的法的测试数据是在各个等价数据是在各个等价类允允许的的值域内任域内任意意选取的,而取的,而边界界值分析的分析的测试数据必数据必须在在边界界值附近附近选取。取。(2)(2)一般地一般地说,用,用边界界值分析法分析法设计的的测试用例比等价分用例比等价分类法的代表性更广,法的代表性更广,发现错误的能力也更的能力也更强。但是。但是对边界的界的分析与确定比分析与确定比较复复杂,要求,要求测试人人员具有更多的具有更多的经验和和创造性。造性。(3)(3)还需指出,我需指出,我们不不仅需要需要输入等价入等价类。在有些情况下,。在有些情况下,除了考察除了考察输入之入之边界外,界外,还需要考察需要考察输出出值和其他可能存和其他可能存在的在的边界。界。
展开阅读全文