《软件测试用例》PPT课件.ppt
王雯佳软件测试用例本节内容1.1.了解了解用例的粒度用例的粒度2.2.不同不同类型测试的用例要怎么写?类型测试的用例要怎么写?3.3.什么是测试用例及为什么要做用例什么是测试用例及为什么要做用例4.4.优质测试用例应具备的特性优质测试用例应具备的特性5.5.测试用例设计方法测试用例设计方法因果图因果图因果图因果图判定表驱动分析方法判定表驱动分析方法判定表驱动分析方法判定表驱动分析方法错误推测法错误推测法错误推测法错误推测法场景法场景法场景法场景法6.6.测试用例数据选取方法测试用例数据选取方法等价类划分(设计用例和数据共用)等价类划分(设计用例和数据共用)等价类划分(设计用例和数据共用)等价类划分(设计用例和数据共用)边界值分析边界值分析边界值分析边界值分析 (设计用例和数据共用)(设计用例和数据共用)(设计用例和数据共用)(设计用例和数据共用)7.7.测试用例书写标准测试用例书写标准8.8.一些测试用例的例子一些测试用例的例子测试需求的粒度一个样例一个样例及其简单需要正确输入需要正确输入QQ号码和口令号码和口令简单检查检查QQ号的各种情况号的各种情况检查口令的各种情况检查口令的各种情况详细1、检查检查QQ号码号码大于允许最大长度大于允许最大长度包含特殊字符包含特殊字符全部为数字全部为数字为空为空空格空格错误的错误的QQ号号正确的正确的QQ号号详细(续)2、检查口令检查口令大于允许最大长度大于允许最大长度包含特殊字符包含特殊字符全部为数字全部为数字 各种字符的组合各种字符的组合为空为空空格空格错误的口令错误的口令正确的口令正确的口令系统功能需求根据系统架构,从高到低逐级细分关注具体的系统功能及功能的不同处理情形粒度以到不同的处理情形为宜正常与异常处理情形都要考虑问题:测试需求的粒度跟哪些因素相关?界面需求界面功能根据界面划分考虑控件对各种输入的响应界面元素考虑元素各种属性(位置、大小、颜色、显示等)先整体后局部局部按界面划分考虑内容正确性安装需求缺省安装配置优先按照安装配置结构划分考虑所有安装配置考虑安装过程中的异常行为业务需求根据业务结构和分类,从上至下逐级细分关注具体业务粒度以到不同业务场景为宜考虑正常与异常业务场景 性能/压力需求先结构后类型先列举后细分细述指标和要求安全性需求先列举后细分详述各项内容兼容性需求先硬件后软件先系统后应用详述环境组合测试范围在测试项目中,我们需要进行开发生命周期中哪些阶段测试单元测试集成测试系统测试验收测试例如:在为A公司(某软件开发公司)提供的一个测试服务项目中,测试的范围包括集成测试和系统测试。在为B公司(某行业用户企业)提供的一个测试服务项目中,测试的范围只包括验收测试。项目的测试目标系统的哪些特性需要被测试以保证这些特性的质量。系统特性包括:功能、性能、易用性、安全性、兼容性测试目标要根据系统的特点进行分解细化,分解到一个可测试的粒度,即单项具体的特性。未经分解细化,笼统的、整体或者概括性的特性不利于测试工作的开展。测试需求注意事项作为测试项目的基础,测试需求有5个需 要依据的准则:完整性无歧义性一致性可跟踪性可测试性18测试用例概述 测试用例是测试工作的指导,是软件测试必须遵守的准则。更是软件测试质量稳定的根本保障。测试用例的内容是一系列情景和步骤的描述,并对每个步骤中必须列出依靠输入的数据,预计输出结果。将这一过程整理成测试文档,称为测试用例。测试用例就是将软件测试的行为活动,做一个科学化的组织归纳。是思想活动的集合。19为什么需要测试用例根据测试用例的多少和执行难度,估算测试工作量,便于测试项目的时间和资源管理与跟踪;减少回归测试的复杂程度在软件版本更新后只需修正少量的测试用例便可展开测试工作,降低工作强度、缩短项目周期;根据测试用例的操作步骤和执行结果,可以方便地书写软件测试缺陷报告;可以根据测试用例的执行等级,实施不同级别的测试;总结:软件测试是有组织性、步骤性和计划性的,为了能将软件测试的行为转换为可管理的、具体量化的模式,20优质测试用例应具备的特性.1 有效性:有效性:有效性:有效性:测试测试用例是用例是用例是用例是测试过测试过程中的重要参考依据。程中的重要参考依据。程中的重要参考依据。程中的重要参考依据。不同不同不同不同测试测试人人人人员员根据相同的根据相同的根据相同的根据相同的测试测试用例,得到的用例,得到的用例,得到的用例,得到的输输出出出出应该应该是一致的。是一致的。是一致的。是一致的。对对于于于于准确的准确的准确的准确的测试测试用例的用例的用例的用例的计计划、划、划、划、执执行和跟踪行和跟踪行和跟踪行和跟踪是是是是测试测试有效性的有力有效性的有力有效性的有力有效性的有力证证 明。明。明。明。可复用性:可复用性:可复用性:可复用性:良好的良好的良好的良好的测试测试用例具有重复使用的功能,使得用例具有重复使用的功能,使得用例具有重复使用的功能,使得用例具有重复使用的功能,使得测试过测试过程事半功倍。程事半功倍。程事半功倍。程事半功倍。设计设计良好的良好的良好的良好的测试测试用例将大大用例将大大用例将大大用例将大大节约项节约项目目目目执执行行行行时间时间,提高,提高,提高,提高测试测试效率。效率。效率。效率。易易易易组织组织性:性:性:性:小小小小项项目可能也会有成千上万的目可能也会有成千上万的目可能也会有成千上万的目可能也会有成千上万的测试测试用例用例用例用例 测试测试用例在使用中被反复的更新、修改或者新增,所以能有效地用例在使用中被反复的更新、修改或者新增,所以能有效地用例在使用中被反复的更新、修改或者新增,所以能有效地用例在使用中被反复的更新、修改或者新增,所以能有效地组织组织这这些些些些测试测试用例是非常重要的。用例是非常重要的。用例是非常重要的。用例是非常重要的。21优质测试用例应具备的特性.2 可可可可评评估性:估性:估性:估性:从从从从测试测试的的的的项项目管理角度来目管理角度来目管理角度来目管理角度来说说,测试测试用例的通用例的通用例的通用例的通过过率是率是率是率是检验检验 代代代代码质码质量的保量的保量的保量的保证证。软软件件件件质质量好坏的量化量好坏的量化量好坏的量化量好坏的量化标标准:准:准:准:测试测试用例的通用例的通用例的通用例的通过过率和率和率和率和软软件件件件BUGBUGBUGBUG的数量。的数量。的数量。的数量。可管理性:可管理性:可管理性:可管理性:测试测试用例也可以作用例也可以作用例也可以作用例也可以作为检验测试为检验测试人人人人员员工作工作工作工作进进度、度、度、度、执执行工作行工作行工作行工作 量以及跟踪、管理量以及跟踪、管理量以及跟踪、管理量以及跟踪、管理测试测试人人人人员员工作效率的因素工作效率的因素工作效率的因素工作效率的因素 尤其是比尤其是比尤其是比尤其是比较较适用于新的适用于新的适用于新的适用于新的测试测试人人人人员员的的的的检验检验,从而更加合理,从而更加合理,从而更加合理,从而更加合理 的做出的做出的做出的做出测试计测试计划。划。划。划。22测试用例设计思路测试用例的设计是一种思路,可以从如下角度分析:(1)根据被测软件的功能和特性设计测试用例 -根据被测试功能点设计测试用例 -根据软件性能指标设计测试用例 -根据软件的兼容性要求设计测试用例 -根据软件的国际化用户要求设计国际化测试用例(2)根据软件的组成元素设计测试用例 -根据模块设计用例 -设计联机帮助和文档手册的设计用例 -设计软件的模版等数据文件的测试用例(3)根据软件的开发阶段(里程碑)设计测试用例 -单元测试设计用例 -集成测试设计用例 -系统测试设计用例 -验收测试设计用例23测试用例设计思路(续)(5)根据被测的最小目标,确定测试用例的测试目标(6)根据用户使用环境确定测试环境(7)根据以下因素确定测试用例的步骤 用户使用软件的步骤或者特定场景,确定测试执行步 骤地具体内容 执行者对产品的熟悉程度确定步骤的详细或粗略程度 被测特性的复杂性也决定步骤的详细或粗略程度 测试用例的执行方法(手工测试或自动化测试)确定 步骤地内容表示 自动测试用例要编写和调试测试脚本,手工测试给出 执行步骤 根据设计规格说明书确定期望的测试用例执行结果24测试用例设计方法等价等价类划分划分边界界值分析分析因果因果图判定表判定表驱动分析方法分析方法错误推推测法法场景法景法25等价类划分.1等等等等价价价价类类划划划划分分分分方方方方法法法法把把把把所所所所有有有有可可可可能能能能的的的的输输入入入入数数数数据据据据,即即即即程程程程序序序序的的的的输输入入入入划划划划分分分分成成成成若若若若干干干干类类,然然然然后后后后从从从从每每每每一一一一类类中中中中选选取取取取少少少少数数数数有有有有代代代代表性的数据做表性的数据做表性的数据做表性的数据做为测试为测试用例用例用例用例/数据。数据。数据。数据。等价等价等价等价类类是某个是某个是某个是某个输输入的子集合。入的子集合。入的子集合。入的子集合。在在在在该该子集合中,各个子集合中,各个子集合中,各个子集合中,各个输输入数据入数据入数据入数据对对于揭露程序中的于揭露程序中的于揭露程序中的于揭露程序中的BUGBUGBUGBUG都是等效的。都是等效的。都是等效的。都是等效的。测试测试某等价某等价某等价某等价类类的代表的代表的代表的代表值值就等价于就等价于就等价于就等价于对这对这一一一一类类其它其它其它其它值值的的的的测试测试。26等价类划分.2 等价等价等价等价类类的划分有两种不同的情况:的划分有两种不同的情况:的划分有两种不同的情况:的划分有两种不同的情况:有效等价有效等价有效等价有效等价类类:代表:代表:代表:代表对对程序的有效程序的有效程序的有效程序的有效输输入。入。入。入。无效等价无效等价无效等价无效等价类类:代表的:代表的:代表的:代表的则则是其他任何可能的是其他任何可能的是其他任何可能的是其他任何可能的输输入入入入(即不合理的,无意(即不合理的,无意(即不合理的,无意(即不合理的,无意义义的的的的输输入入入入值值)。)。)。)。使用等价使用等价使用等价使用等价类设计测试类设计测试用例要用例要用例要用例要经历经历划分等价划分等价划分等价划分等价类类(列出等价(列出等价(列出等价(列出等价类类表)和表)和表)和表)和选选取取取取测试测试用例用例用例用例/数数数数据两步。据两步。据两步。据两步。27划分等价类的原则.1(1)(1)如果如果输入条件入条件规定了取定了取值范范围,或,或值的的个数,个数,则可以确立一个有效等价可以确立一个有效等价类和两个无和两个无效等价效等价类。例如:在例如:在例如:在例如:在ATMATMATMATM机取款机取款机取款机取款时时,只供,只供,只供,只供应应100100100100元面元面元面元面值值的的的的纸纸钞钞,最少取,最少取,最少取,最少取100100100100元,一次最多取元,一次最多取元,一次最多取元,一次最多取2000200020002000元元元元.有效等价有效等价有效等价有效等价类类是是是是“100=100=100=100=取款取款取款取款额额=2000=2000=2000=2000”无效等价无效等价无效等价无效等价类类是是是是“取款取款取款取款额额100100100100”无效等价无效等价无效等价无效等价类类是是是是“取款取款取款取款额额2000200020002000”。28划分等价类的原则.2(2)(2)如果如果如果如果输输入条件入条件入条件入条件规规定了定了定了定了输输入入入入值值的集合或者的集合或者的集合或者的集合或者规规定了定了定了定了“必必必必须须如何如何如何如何”的条件的情况下的条件的情况下的条件的情况下的条件的情况下,可以确立一个有效等价可以确立一个有效等价可以确立一个有效等价可以确立一个有效等价类类和和和和一个无效等价一个无效等价一个无效等价一个无效等价类类。例如:在提款机主界面,系例如:在提款机主界面,系例如:在提款机主界面,系例如:在提款机主界面,系统统只接受只接受只接受只接受 查询查询、取款取款取款取款 和和和和 取消取消取消取消 按按按按钮钮,并分,并分,并分,并分别进别进入入入入对应对应的功能。的功能。的功能。的功能。则则可以划分可以划分可以划分可以划分为为 三个有效等价三个有效等价三个有效等价三个有效等价类类:查询查询、取款取款取款取款、取消取消取消取消 。一个无效等价一个无效等价一个无效等价一个无效等价类类:其它按:其它按:其它按:其它按钮钮。29划分等价类的原则.3(3)(3)如果如果如果如果输输入条件是一个布入条件是一个布入条件是一个布入条件是一个布尔尔量,量,量,量,则则可以确定一个有效等价可以确定一个有效等价可以确定一个有效等价可以确定一个有效等价类类和一个无效等价和一个无效等价和一个无效等价和一个无效等价类类。例如:安装程序例如:安装程序例如:安装程序例如:安装程序时时,询问询问客客客客户户是否接受是否接受是否接受是否接受“软软件件件件许许可可可可协议协议”。一个有效等价一个有效等价类是是一个无效等价一个无效等价类否否30划分等价类的原则.4(4)(4)(4)(4)在在在在规规定了定了定了定了输输入数据的一入数据的一入数据的一入数据的一组值组值(假定(假定(假定(假定n n n n个),个),个),个),并且程序要并且程序要并且程序要并且程序要对对每一个每一个每一个每一个输输入入入入值值分分分分别处别处理的情况下,理的情况下,理的情况下,理的情况下,可确立可确立可确立可确立n n n n个有效等价个有效等价个有效等价个有效等价类类和一个无效等价和一个无效等价和一个无效等价和一个无效等价类类。例如:在注册信息界面,要求登例如:在注册信息界面,要求登例如:在注册信息界面,要求登例如:在注册信息界面,要求登录录名必名必名必名必须须是是是是“汉汉字,字母,数字,不能包含特殊符号字,字母,数字,不能包含特殊符号字,字母,数字,不能包含特殊符号字,字母,数字,不能包含特殊符号”n n n n个有效等价个有效等价个有效等价个有效等价类类:汉汉字字字字、字母字母字母字母、数字数字数字数字 或者三者或者三者或者三者或者三者组组合合合合 。一个无效等价一个无效等价一个无效等价一个无效等价类类:特殊符号。:特殊符号。:特殊符号。:特殊符号。31划分等价类的原则.5(5)(5)在在规定了定了输入数据必入数据必须遵守的遵守的规则情况下,情况下,可确立一个有效等价可确立一个有效等价类(符合符合规则)和若干个无效和若干个无效等价等价类(从不同角度从不同角度违反反规则)。例如,用例如,用例如,用例如,用户户名由字符和数字名由字符和数字名由字符和数字名由字符和数字组组成,必成,必成,必成,必须须以字符开以字符开以字符开以字符开头头,不能包括特殊字符或空格,不能,不能包括特殊字符或空格,不能,不能包括特殊字符或空格,不能,不能包括特殊字符或空格,不能为为空,空,空,空,长长度度度度介于位之介于位之介于位之介于位之间间。则则可以确立一个有效等价可以确立一个有效等价可以确立一个有效等价可以确立一个有效等价类类(符合(符合(符合(符合规则规则)若干个无效等价若干个无效等价若干个无效等价若干个无效等价类类:以数字开:以数字开:以数字开:以数字开头头;包括空格;包括特殊字符;包括空格;包括特殊字符;包括空格;包括特殊字符;包括空格;包括特殊字符;为为空;小于位空;小于位空;小于位空;小于位32根据等价类划分选取用例/数据1.根据上述原根据上述原根据上述原根据上述原则则,列出所有的,列出所有的,列出所有的,列出所有的有效等价有效等价有效等价有效等价类类和和和和无效无效无效无效等价等价等价等价类类2.设计设计一个新的一个新的一个新的一个新的测试测试用例,使其尽可能多地覆盖用例,使其尽可能多地覆盖用例,使其尽可能多地覆盖用例,使其尽可能多地覆盖那些尚未被涵盖的有效等价那些尚未被涵盖的有效等价那些尚未被涵盖的有效等价那些尚未被涵盖的有效等价类类,重复,重复,重复,重复这这一步,一步,一步,一步,直到所列出的所有有效等价直到所列出的所有有效等价直到所列出的所有有效等价直到所列出的所有有效等价类类都被覆盖都被覆盖都被覆盖都被覆盖为为止止止止3.设计设计一个新的一个新的一个新的一个新的测试测试用例,使其覆盖一个且用例,使其覆盖一个且用例,使其覆盖一个且用例,使其覆盖一个且仅仅一一一一个尚未被涵盖的无效等价个尚未被涵盖的无效等价个尚未被涵盖的无效等价个尚未被涵盖的无效等价类类,重复,重复,重复,重复这这一步,直一步,直一步,直一步,直到所列出的所有无效等价到所列出的所有无效等价到所列出的所有无效等价到所列出的所有无效等价类类都被覆盖都被覆盖都被覆盖都被覆盖为为止。止。止。止。33划分等价类的实例.1 在在在在证证券柜台系券柜台系券柜台系券柜台系统统中中中中规规定:定:定:定:“用用用用户户密密密密码码是由字母开是由字母开是由字母开是由字母开头头,后跟字,后跟字,后跟字,后跟字母或数字的任意母或数字的任意母或数字的任意母或数字的任意组组合构成。最少字符数合构成。最少字符数合构成。最少字符数合构成。最少字符数为为4 4 4 4个,最大字符数个,最大字符数个,最大字符数个,最大字符数为为12121212个。个。个。个。”并且并且并且并且规规定:定:定:定:“用用用用户户密密密密码码不能与用不能与用不能与用不能与用户户注册号相同,且不能全注册号相同,且不能全注册号相同,且不能全注册号相同,且不能全为为字母。字母。字母。字母。”用等价用等价用等价用等价类类划分方法,建立划分方法,建立划分方法,建立划分方法,建立输输入等价入等价入等价入等价类类表表表表:34划分等价类的实例.2某工厂公开招工,在某工厂公开招工,在报名系名系统年年龄输入框中入框中规定定报名者年名者年龄应在在1967年年02月月1986年年03月之月之间。即出生年月不在上述范即出生年月不在上述范围内,将拒内,将拒绝接受,并接受,并显示示“年年龄不合格不合格”等等出出错信息。信息。35输入数据有效等价类无效等价类出生年月6位数字字符 有非数字字符 少于6个数字符 多于6个数字符对应数值 在196702198603之间198603月份对应数值在112之间等于“0”12划分等价类的实例.336一个很重要的例子.1根据下面根据下面给出的出的规格格说明,利用等价明,利用等价类划分的方法,划分的方法,给出足出足够的的测试用例。用例。“一个程序一个程序读入入3个整数,把个整数,把这三个数三个数值看作一个三角形的看作一个三角形的3条条边的的长度度值。这个程个程序要打印出信息,序要打印出信息,说明明这个三角形是不等个三角形是不等边的、是等腰的、的、是等腰的、还是等是等边的。的。”37一个很重要的例子.2我我们可以可以设三角形的三角形的3条条边分分别为A,B,C。如果它。如果它们能能够构成三角形的构成三角形的3条条边,必,必须满足:足:A0,B0,C0且且A+BC,B+CA,A+CB。如果是等腰的,如果是等腰的,还要判断要判断A=B,或,或B=C,或,或A=C。如果是等如果是等边的,的,则需判断是否需判断是否A=B,且,且B=C,且,且A=C。38一个很重要的例子.339一个很重要的例子.440因果图使用前提:使用前提:使用前提:使用前提:如果在如果在如果在如果在测试时测试时必必必必须须考考考考虑输虑输入条件的各种入条件的各种入条件的各种入条件的各种组组合合合合,就,就,就,就可使用因果可使用因果可使用因果可使用因果图图来来来来设计测试设计测试用例。用例。用例。用例。它适合于描述它适合于描述它适合于描述它适合于描述“对对于多种条件的于多种条件的于多种条件的于多种条件的组组合,会相合,会相合,会相合,会相应产应产生多个生多个生多个生多个动动作作作作”的的的的情况。情况。情况。情况。因果因果因果因果图图方法方法方法方法最最最最终终生成的就是判定表生成的就是判定表生成的就是判定表生成的就是判定表。它适合于。它适合于。它适合于。它适合于检检查查程序程序程序程序输输入条件的各种入条件的各种入条件的各种入条件的各种组组合情况。合情况。合情况。合情况。因果图42因果图生成基本步骤.1生成基本步生成基本步生成基本步生成基本步骤骤:(1)(1)(1)(1)将将将将软软件件件件规规格格格格说说明(用例)分解成可明(用例)分解成可明(用例)分解成可明(用例)分解成可执执行行行行 的片断。的片断。的片断。的片断。(2)(2)(2)(2)确定确定确定确定软软件件件件规规格格格格说说明(用例)中的因果关系。明(用例)中的因果关系。明(用例)中的因果关系。明(用例)中的因果关系。(3)(3)(3)(3)分析分析分析分析软软件件件件规规格格格格说说明(用例)的明(用例)的明(用例)的明(用例)的语义语义内容,并将其内容,并将其内容,并将其内容,并将其转换为连转换为连接接接接因果因果因果因果图图关系的布关系的布关系的布关系的布尔图尔图。43因果图生成基本步骤.2生成基本步生成基本步生成基本步生成基本步骤骤:(4)(4)(4)(4)给图给图加上注解符号,加上注解符号,加上注解符号,加上注解符号,说说明由于明由于明由于明由于语语法或者法或者法或者法或者环环境的限制而不能境的限制而不能境的限制而不能境的限制而不能联联系起来的系起来的系起来的系起来的“因因因因”和和和和“果果果果”。(5)(5)(5)(5)通通通通过过仔仔仔仔细细的跟踪的跟踪的跟踪的跟踪图图中的状中的状中的状中的状态变态变化情况,将因果化情况,将因果化情况,将因果化情况,将因果图转换为图转换为一个一个一个一个有限有限有限有限项项的判定式。的判定式。的判定式。的判定式。(6)(6)(6)(6)将判定式表中的列将判定式表中的列将判定式表中的列将判定式表中的列转换为测试转换为测试用例用例用例用例44因果图-基本符号.1若a1则b1若a1则b045因果图-基本符号.2若a或b或c1则d1 若ab1则c146因果图-约束条件.1 为为了表示原因与原因之了表示原因与原因之了表示原因与原因之了表示原因与原因之间间,结结果与果与果与果与结结果之果之果之果之间间可能存在的可能存在的可能存在的可能存在的约约束条件,束条件,束条件,束条件,在因果在因果在因果在因果图图中可以附加一些表示中可以附加一些表示中可以附加一些表示中可以附加一些表示约约束条件的符号。束条件的符号。束条件的符号。束条件的符号。互斥:表示不同时为互斥:表示不同时为1 1,即,即a,ba,b中至多只有一个中至多只有一个1 1。47因果图-约束条件.2包含:包含:a a、b b、c c中至少有一个应为中至少有一个应为1 1a a、b b、c c不能同时为不能同时为0 048因果图-约束条件.3唯一:表示唯一:表示a a、b b中必须有一个且中必须有一个且仅有一个为仅有一个为1 149因果图-约束条件.4要求:如果要求:如果a=1a=1,b b也必须为也必须为1 1即不可能即不可能a=1a=1且且b=0.b=0.50因果图-约束条件.5对于输出条件的约束只有对于输出条件的约束只有M M约束。约束。屏蔽:如果结果屏蔽:如果结果a a为为1 1,则,则b b强制强制为为0 051因果图示例.1例如,有一个例如,有一个例如,有一个例如,有一个处处理理理理单单价价价价为为5 5 5 5角角角角钱钱的的的的饮饮料的自料的自料的自料的自动动售售售售货货机机机机软软件件件件测试测试用例的用例的用例的用例的设计设计。其。其。其。其规规格格格格说说明如下:明如下:明如下:明如下:若投入若投入若投入若投入5 5 5 5角角角角钱钱的硬的硬的硬的硬币币,按下橙汁或啤酒的按,按下橙汁或啤酒的按,按下橙汁或啤酒的按,按下橙汁或啤酒的按钮钮,则则相相相相应应的的的的饮饮料就送出来若投入元料就送出来若投入元料就送出来若投入元料就送出来若投入元钱钱的硬的硬的硬的硬币币,同,同,同,同样样也是按下橙汁也是按下橙汁也是按下橙汁也是按下橙汁或者啤酒的按或者啤酒的按或者啤酒的按或者啤酒的按钮钮,则则自自自自动动售售售售货货机在送出相机在送出相机在送出相机在送出相应饮应饮料的同料的同料的同料的同时时退退退退还还5 5 5 5角硬角硬角硬角硬币币52(1)(1)(1)(1)分析分析分析分析这这一段一段一段一段说说明,列出原因和明,列出原因和明,列出原因和明,列出原因和结结果果果果:1.1.1.1.投入投入投入投入1 1 1 1元硬元硬元硬元硬币币 2.2.2.2.投入投入投入投入5 5 5 5角硬角硬角硬角硬币币 3.3.3.3.押下橙汁按押下橙汁按押下橙汁按押下橙汁按钮钮 4.4.4.4.押下啤酒按押下啤酒按押下啤酒按押下啤酒按钮钮因果图示例.253(3)(3)(3)(3)结结果:果:果:果:21.21.21.21.退退退退还还5 5 5 5角硬角硬角硬角硬币币 22.22.22.22.送出橙汁送出橙汁送出橙汁送出橙汁饮饮料料料料 23.23.23.23.送出啤酒送出啤酒送出啤酒送出啤酒饮饮料料料料(4)(4)(4)(4)画出因果画出因果画出因果画出因果图图。所有原因。所有原因。所有原因。所有原因结结点列在左点列在左点列在左点列在左边边,所有,所有,所有,所有结结果果果果结结点列在右点列在右点列在右点列在右边边。(5)(5)(5)(5)由于由于由于由于 1 1 1 1 与与与与 2 2 2 2,3 3 3 3 与与与与 4 4 4 4 不能同不能同不能同不能同时发时发生,分生,分生,分生,分别别加上加上加上加上约约束条件束条件束条件束条件E E E E。(6)(6)(6)(6)转换转换成因果成因果成因果成因果图图判定表。判定表。判定表。判定表。因果图示例.354因果图示例.4已投币已按钮55因果图示例.5因果图法测试举例u奖金计算软件员工分为普通员工和管理人员员工表现分为普通,优秀和特出贡献(普通和优秀员工都可能有特殊贡献,普通员工表现为普通、优秀和管理人员表现为普通、优秀的奖金是不同的,特殊贡献的奖金是一样的)奖金分为1类,2类解题步骤:(1)分析程序的规格说明,列出原因和结果。(2)找出原因与结果之间的因果关系、原因与原因之间的约束关系,画出因果图。(3)将因果图转换成决策表。(4)根据(3)中的决策表,设计测试用例的输入数据和预期输出。因果图法测试举例(续)(1)分析程序规格说明中的原因和结果:因果图法测试举例(续)(2)画出因果图(编号为10的中间结点是导出结果的进一步原因):c1c2c3e1e2e3Ec4c5e4e5e6CI表示原因,EI表示结果。E11v因果图法测试举例(续)(3)将因果图转换成如下所示的决策表:因果图法测试举例(续)(4)根据决策表中的每一列设计测试用例:61判定表驱动分析方法.1 判定表又称判定表又称为决策表。决策表。当模当模块中包含中包含复复杂的条件的条件组合合,并要根据,并要根据这些条件些条件选择动作作时,使用判定表能清,使用判定表能清晰地表示出复晰地表示出复杂的条件的条件组合与各种合与各种动作之作之间的的对应关系。关系。判定表举例条件桩动作桩条件项动作项63判定表驱动分析方法.2一张判定表的田字型结构:条件桩、条件项、动作项、一张判定表的田字型结构:条件桩、条件项、动作项、动作桩规则。动作桩规则。决策表的读表方法:顺时针方向。决策表的读表方法:顺时针方向。64判定表驱动分析方法.3条件桩:列出了问题的所有条件。通常认为列出的条件的次序无关紧要。动作桩:列出了问题规定可能采取的操作。这些操作的排列顺序没有约束。条件项:列出针对它所列条件的取值,在所有可能情况下的真假值。动作项:列出在条件项的各种取值情况下应该采取的动作。65判定表驱动分析方法.4判定表的判定表的绘制步制步骤:判定表中列出多少判定表中列出多少组条件取条件取值,也就有多少条,也就有多少条规则,条件,条件项和和动作作项就有多就有多少列。少列。确确定定规则的的个个数数。假假如如有有n n个个条条件件,每每个个条条件有两面个取件有两面个取值(0,1)(0,1),故有,故有2n2n种种规则。列出所有的条件列出所有的条件桩和和动作作桩填入条件填入条件项填入填入动作作项。制定判定表。制定判定表简化。合并相似化。合并相似规则或者相同或者相同动作。作。66判定表驱动分析方法.2举例例 问题说明:明:“某某货运站收运站收费标准如下:如果收件地点在本准如下:如果收件地点在本省,省,则快件每公斤快件每公斤5 5元,慢件每公斤元,慢件每公斤3 3元;如果收件地点在元;如果收件地点在外省,外省,则在在2020公斤以内(含公斤以内(含2020公斤)快件每公斤公斤)快件每公斤7 7元,慢元,慢件每公斤件每公斤5 5元,而超元,而超过2020公斤公斤时,快件每公斤,快件每公斤9 9元,慢件每元,慢件每公斤公斤7 7元。元。”67判定表驱动分析方法.5条件取条件取值分析表分析表 条件取值含义收件地址在本省?Y是N否邮件重量20公斤?Y是N否快慢件?Y快件N慢件68判定表驱动分析方法.6判定表判定表12345678条件桩收件地址在本省?YYYYNNNN条件项邮件重量20公斤?YYNNYYNN快慢件?YNYNYNYN动作桩3元/公斤XX动作项5元/公斤XXX7元/公斤XX9元/公斤X69判定表驱动分析方法.7 简化判定表简化判定表70判定表驱动分析方法.8化化简后的判定表后的判定表 123456条件桩收件地址在本省?YYNNNN条件项邮件重量20公斤?_YYNN快慢件?YNYNYN动作桩3元/公斤X动作项5元/公斤XX7元/公斤XX9元/公斤X举例订购单的检查。如果金额超过500元,又未过期,则发出批准单和提货单;如果金额超过500元,但过期了,则不发批准单;如果金额低于500元,则不论是否过期都发出批准单和提货单,在过期的情况下还需要发出通知单。条件取值分析表 v判定表v简化判定表v设计测试用例v以上判定表里,右部的每一列(条件项和对应的动作项)都是一条规则。每一条规则都可以转化为测试用例。77错误推测法.1 人人人人们们也可以靠也可以靠也可以靠也可以靠经验经验和直和直和直和直觉觉推推推推测测程序中可能存在的各种程序中可能存在的各种程序中可能存在的各种程序中可能存在的各种错错误误,从而有,从而有,从而有,从而有针对针对性地性地性地性地编编写写写写检查这检查这些些些些错误错误的例子。的例子。的例子。的例子。这这就是就是就是就是错误错误推推推推测测法。法。法。法。错误错误推推推推测测法的基本想法是:法的基本想法是:法的基本想法是:法的基本想法是:列列列列举举出程序中所有可能有的出程序中所有可能有的出程序中所有可能有的出程序中所有可能有的错误错误和容易和容易和容易和容易发发生生生生错误错误的特殊情况,根据它的特殊情况,根据它的特殊情况,根据它的特殊情况,根据它们选择测试们选择测试用用用用例。例。例。例。78错误推测法.2单元测试中发现的模块错误;单元测试中发现的模块错误;产品的以前版本曾经发现的错误;产品的以前版本曾经发现的错误;输入数据为输入数据为0 0或字符为空;或字符为空;当软件要求输入时当软件要求输入时(比如在文本框中比如在文本框中),),不是没有输不是没有输入正确的信息,而是根本没有输入任何内容,单单入正确的信息,而是根本没有输入任何内容,单单按了按了EnterEnter键;键;这种情况在产品说明书中常常忽视,程序员也可能这种情况在产品说明书中常常忽视,程序员也可能经常遗忘,但是在实际使用中却时有发生。程序员经常遗忘,但是在实际使用中却时有发生。程序员总会习惯性的认为用户要么输入信息,不管是看起总会习惯性的认为用户要么输入信息,不管是看起来合法的或非法的信息,要不就会选择来合法的或非法的信息,要不就会选择CancelCancel键放键放弃输入弃输入79错误推测法.3Sql注入式攻注入式攻击是指利用设计上的漏洞,在服务器上运行Sql 命令以达到的攻击目的Select*from 用户表 where 姓名=name and 密码=passwordSelect*from 用户表 where 姓名=111 or 1=1 and 密码=aaaa80用例数据选取-边界值分析.1 边边界界界界值值分析也是一种黑盒分析也是一种黑盒分析也是一种黑盒分析也是一种黑盒测试测试方法,是方法,是方法,是方法,是对对等价等价等价等价类类划分方划分方划分方划分方法的法的法的法的补补充。充。充。充。所所所所谓边谓边界界界界值值,是指是指是指是指输输入和入和入和入和输输出等价出等价出等价出等价类类中那些恰好中那些恰好中那些恰好中那些恰好处处于于于于边边界、或超界、或超界、或超界、或超过边过边界、或在界、或在界、或在界、或在边边界以下的状界以下的状界以下的状界以下的状态态。81边界值分析.2 边边界界界界值值分析方法和等价分析方法和等价分析方法和等价分析方法和等价类类划分方法不同的两个方面:划分方法不同的两个方面:划分方法不同的两个方面:划分方法不同的两个方面:1.1.1.1.与从等价与从等价与从等价与从等价类类中挑中挑中挑中挑选选任意一个元素作任意一个元素作任意一个元素作任意一个元素作为为代表不同,代表不同,代表不同,代表不同,边边界界界界值值分析需要分析需要分析需要分析需要选择选择一个或多个元素,以便等价一个或多个元素,以便等价一个或多个元素,以便等价一个或多个元素,以便等价类类的每个的每个的每个的每个边边界都界都界都界都经过经过一次一次一次一次测试测试。1:依据依据边界界值分析法确定分析法确定测试用例用例Id 110个字母地址 010个汉字邮编 6个数字82边界值分析.3 如果如果如果如果输输入条件入条件入条件入条件规规定了一个定了一个定了一个定了一个输输入入入入值值范范范范围围,那么,那么,那么,那么应针对应针对范范范范围围的的的的边边界界界界值设计测试值设计测试用例。用例。用例。用例。假如假如输入入值的有效范的有效范围是是-1.0至至+1.0,那,那么么应针对-1.0、1.0、-1.001和和1.001的情况的情况设计测试用例,不要忘了用例,不要忘了0这个数个数值。83边界值分析.4如果如果如果如果输输入条件入条件入条件入条件规规定了定了定了定了输输入入入入值值的数量的数量的数量的数量,那么,那么,那么,那么应针对应针对最小数量最小数量最小数量最小数量输输入入入入值值、最大数量、最大数量、最大数量、最大数量输输入入入入值值,以及比最小,以及比最小,以及比最小,以及比最小数量少一个、比最大数量多一个的情况数量少一个、比最大数量多一个的情况数量少一个、比最大数量多一个的情况数量少一个、比最大数量多一个的情况设计测试设计测试用例。用例。用例。用例。例如某个例如某个例如某个例如某个输输入文件可容入文件可容入文件可容入文件可容纳纳1-2551-2551-2551-255条条条条记录记录,那么,那么,那么,那么应应根据根据根据根据0 0 0 0,1 1 1 1,255255255255和和和和256256256256条条条条记录记录的情况的情况的情况的情况设计测试设计测试用例。用例。用例。用例。84测试用例书写标准.1标示符标示符 用来说明这个文档的编号、名称或者用途等用来说明这个文档的编号、名称或者用途等测试项测试项 本测试文档测试的对象本测试文档测试的对象文档拥有者、版本编号、创建日期文档拥有者、版本编号、创建日期 谁写的?版本号?创建日期?修改日期?谁写的?版本号?创建日期?修改日期?测试环境要求测试环境要求 软件运行的环境(软环境和硬环境)软件运行的环境(软环境和硬环境)测试动作描述测试动作描述 测试一步一步执行的详细步骤描述测试一步一步执行的详细步骤描述85测试用例书写标准.2预期值软件的设计要求的数据测试数据为本测试用例执行准备的验证数据测试用例间关联这份测试用例可能会跟谁相关联,组合测试86一个简单的例子快速的风险分析:快速的风险分析:文件文件/新建(新建(00010001)对于客户非常