版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、信息系统实施 模块设计模块设计 模块详细设计程序设计。 主要依据系统设计阶段的HIPO图、系统结构 图等,把系统设计的结果翻译成计算机能执行的 形式,让计算机按照人的意志工作。 模块设计过程: 选择程序设计语言选择程序设计语言 描述程序描述程序 用选定的语言按程序描述编程用选定的语言按程序描述编程 详细设计详细设计 编码实施编码实施 程序复杂度的度量 vMcCabe方法方法-环形复杂度度量环形复杂度度量 vHalstead方法方法-文本复杂度文本复杂度 vHenry与与Kafura方法方法-耦合度度量耦合度度量 vBowles方法方法 vTroy与与Zweben方法方法 McCabe方法 v环
2、形复杂度方法(圈复杂度方法)环形复杂度方法(圈复杂度方法) v基本复杂度方法基本复杂度方法 v模块设计复杂度方法模块设计复杂度方法 v集成复杂度方法集成复杂度方法 环形复杂度度量方法 v依据程序控制流图计算。依据程序控制流图计算。 v程序流图中的每个处理和判断节点都收缩程序流图中的每个处理和判断节点都收缩 成一个点成一个点程序控制流图程序控制流图 v复杂度:复杂度: V(G)=m-n+2或或(G)=p+1 V代表圈,代表圈,G代表程序控制流图代表程序控制流图 其中:其中:m为有向边的条数(弧数),为有向边的条数(弧数),n为结为结 点数,点数,p为图中判定结点数。为图中判定结点数。 程序复杂度
3、计算实例 A BCDEFG H I K J end start 预测程序中包含的错误个数预测程序中包含的错误个数 v公式:公式: B=N*log(n1+n2)/3000 其中,其中,n1为运算符个数,为运算符个数,n2为操作数个数为操作数个数 。 N为为Halstead实际长度,实际长度,N=N1+N2 N1为运算符出现的总次数,为运算符出现的总次数,N2为操作数出为操作数出 现的总次数。现的总次数。 表明:程序计算量与错误出现成正比。表明:程序计算量与错误出现成正比。 预测实例 村领导需要估计该村某池塘中鱼的大致数量。技村领导需要估计该村某池塘中鱼的大致数量。技 术人员想出了一个办法:先从池
4、塘中捕出术人员想出了一个办法:先从池塘中捕出100条鱼,条鱼, 在每条鱼身上做一记号,又放回池塘。几天后,再从在每条鱼身上做一记号,又放回池塘。几天后,再从 该池塘中捕出该池塘中捕出50条鱼,发现其中有条鱼,发现其中有5条是有记号的。条是有记号的。 因此,他估计该池塘有多条鱼?(假设这几天内鱼的因此,他估计该池塘有多条鱼?(假设这几天内鱼的 数量没有变化)数量没有变化) 设有设有X条鱼条鱼 抓到带记号鱼与抓鱼总数成正比抓到带记号鱼与抓鱼总数成正比 50-5 X-100 有有X=1000条条 系统测试系统测试 检验软件有三种手段:检验软件有三种手段:动态检查、静态检查和正动态检查、静态检查和正
5、确性证明。确性证明。 程序正确性证明程序正确性证明技术目前还处于初级阶段,技术目前还处于初级阶段, 静态检查静态检查指人工评审软件文档或程序,发现其指人工评审软件文档或程序,发现其 中的错误(代码审查、代码走查、同行评审)。中的错误(代码审查、代码走查、同行评审)。 动态检查动态检查就是测试。就是测试。测试是为了发现错误而执测试是为了发现错误而执 行程序的过程。行程序的过程。测试只能证明程序有错误,而不测试只能证明程序有错误,而不 可能证明程序没有错误。可能证明程序没有错误。 系统测试 在软件投入运行前,对软件需求分析、 设计规格说明和编码实现的最终审查。 定义1: 为发现错误而执行程序的过程
6、。 定义2: 根据软件开发各阶段规格说明和程序的 内部结构而设计的一批测试用例测试用例,并利用这 些用例运行程序及发现错误的过程发现错误的过程。 软件测试定义 测试用例 为特定目的而设计的一组输入、执为特定目的而设计的一组输入、执 行条件和预期结果。行条件和预期结果。 执行测试的最小实体。执行测试的最小实体。 保证质量保证质量 (1) 发现错误发现错误 (2) 检查系统是否满足需求检查系统是否满足需求 测试的关键测试的关键 设计测试用例设计测试用例设计一批测试设计一批测试 数据,通过有限的测试用例,在有数据,通过有限的测试用例,在有 限时间内,尽可能多地发现程序中限时间内,尽可能多地发现程序中
7、 的错误。的错误。 测试的目的 测试内容 不仅是对程序的测试,而是软件不仅是对程序的测试,而是软件 定义和开发的全过程测试。定义和开发的全过程测试。 单元测试单元测试每个模块完成后每个模块完成后 综合测试综合测试集成测试、系统测试集成测试、系统测试 、验收测试等、验收测试等 测试类型 单元测试单元测试 也称也称模块测试模块测试,根据模块的功能说明检验每个单独的模块是,根据模块的功能说明检验每个单独的模块是 否存在错误。否存在错误。 集成测试集成测试 也称也称联合测试联合测试,检验模块及系统结构。,检验模块及系统结构。 确认测试确认测试 对照软件需求规格说明,对软件进行评价,以确定是否满足对照软
8、件需求规格说明,对软件进行评价,以确定是否满足 软件需求过程。软件需求过程。 系统测试系统测试 将硬件、软件、操作人员看作一个整体进行的一系列测试,将硬件、软件、操作人员看作一个整体进行的一系列测试, 确保系统各部分协调工作。确保系统各部分协调工作。 验收测试验收测试 最后一次需求比较过程。最后一次需求比较过程。 单元测试 v对软件设计的最小单位对软件设计的最小单位程序模程序模 块,进行正确性检验。块,进行正确性检验。 v目的在于发现各模块内部可能存在目的在于发现各模块内部可能存在 的各种差错。的各种差错。 v需要从程序的内部结构出发设计测需要从程序的内部结构出发设计测 试用例,多个模块可以平
9、行地独立试用例,多个模块可以平行地独立 进行单元测试。进行单元测试。 集成测试 v将所有模块集成在一起所进行的系将所有模块集成在一起所进行的系 统功能测试统功能测试 v测试的策略:测试的策略: 一次性组装一次性组装 自顶向下的组装自顶向下的组装 自底向上的组装自底向上的组装 一次性组装测试 (Big-bang Integration) 先对每个模块分别进行模块测试,先对每个模块分别进行模块测试, 再把所有模块组装在一起进行测试,最再把所有模块组装在一起进行测试,最 终得到要求的软件系统。终得到要求的软件系统。 自顶向下的集成测试 ( Top-down Integration ) 按系统程序结构
10、,沿控制层次自顶向按系统程序结构,沿控制层次自顶向 下进行组装。下进行组装。 方法:方法: 通过设置下层模块为桩,检查控制流通过设置下层模块为桩,检查控制流 ,较早地验证了主要的控制和判断点。,较早地验证了主要的控制和判断点。 问题:问题: 需要制作较多的桩模块,并且桩模块需要制作较多的桩模块,并且桩模块 不能返回真实的数据。不能返回真实的数据。 自底向上的集成测试 ( Bottom-up Integration ) 从程序模块结构的最底层的模块开从程序模块结构的最底层的模块开 始组装和测试。始组装和测试。 对于一个给定层次的模块,它的子对于一个给定层次的模块,它的子 模块及其下属模块已经组装
11、并测试完成模块及其下属模块已经组装并测试完成 ,所以不再需要桩模块。要到最后才窥,所以不再需要桩模块。要到最后才窥 得全貌,重大结构问题不能及早发现。得全貌,重大结构问题不能及早发现。 确认测试 v进行功能的有效性测试。进行功能的有效性测试。 v运用黑盒测试的技术,验证被测软件是运用黑盒测试的技术,验证被测软件是 否满足需求规格说明书列出的需求。否满足需求规格说明书列出的需求。 v为验收作准备。为验收作准备。 测试和测试 v测试是由一个用户在开发环境下进行测试是由一个用户在开发环境下进行 的测试,也可以是公司内部的用户在的测试,也可以是公司内部的用户在 模拟实际操作环境下进行的测试。模拟实际操
12、作环境下进行的测试。 v测试是由软件的多个用户在实际使用测试是由软件的多个用户在实际使用 环境下进行的测试。这些用户返回有环境下进行的测试。这些用户返回有 关错误信息给开发者。关错误信息给开发者。 回归测试 v软件发生变化时软件发生变化时例:增加模块、修改模块例:增加模块、修改模块 ,原来通过测试的功能可能不能正常运行,原来通过测试的功能可能不能正常运行, 回归测试就是通过重新执行已经执行过的测回归测试就是通过重新执行已经执行过的测 试来保证改动过的程序的正确性。试来保证改动过的程序的正确性。 v回归测试可以用人工来执行所有测试用例的回归测试可以用人工来执行所有测试用例的 一个子集,或者采用捕
13、捉回放工具来进行(一个子集,或者采用捕捉回放工具来进行( 自动测试工具)。自动测试工具)。 系统测试 v将通过确认测试的软件,作为整个基于将通过确认测试的软件,作为整个基于 计算机系统的一个元素,与计算机硬件计算机系统的一个元素,与计算机硬件 、外设、某些支持软件、数据和人员等、外设、某些支持软件、数据和人员等 其他系统元素结合在一起,在实际运行其他系统元素结合在一起,在实际运行 环境下,对系统进行一系列的集成测试环境下,对系统进行一系列的集成测试 和确认测试。和确认测试。 v系统测试为系统的正式运行做准备,也系统测试为系统的正式运行做准备,也 可称为可称为试运行试运行。 系统测试 v功能测试
14、功能测试 在规定的一段时间内运行软件系统的所有功能,以验证在规定的一段时间内运行软件系统的所有功能,以验证 这个软件系统有无严重错误。这个软件系统有无严重错误。 v可靠性测试可靠性测试 平均失效间隔时间平均失效间隔时间 MTBF(Mean Time Between Failures) 因故障而停机的时间因故障而停机的时间MTTR(Mean Time To Repairs) v强度测试(压力测试)强度测试(压力测试) 检查在系统运行环境非正常乃至发生故障的情况下,系检查在系统运行环境非正常乃至发生故障的情况下,系 统可以运行到何种程度统可以运行到何种程度 v性能测试性能测试 检查系统是否满足在需
15、求说明书中规定的性能。特别是检查系统是否满足在需求说明书中规定的性能。特别是 对于实时系统或嵌入式系统。对于实时系统或嵌入式系统。 系统测试 v恢复测试恢复测试 证实在克服硬件故障证实在克服硬件故障(包括掉电、硬件或网络出错包括掉电、硬件或网络出错 等等)后,系统能否正常地继续进行工作,并不对系后,系统能否正常地继续进行工作,并不对系 统造成任何损害。统造成任何损害。 采用人工模拟硬件故障,故意造成软件出错。采用人工模拟硬件故障,故意造成软件出错。 v启动停止测试启动停止测试 验证在机器启动及关机阶段,软件系统正确处理的验证在机器启动及关机阶段,软件系统正确处理的 能力。能力。 反复启动软件系
16、统反复启动软件系统 ,例如操作系统自举、网络的,例如操作系统自举、网络的 启动、应用程序的调用等。启动、应用程序的调用等。 在尽可能多的情况下关机。在尽可能多的情况下关机。 系统测试 v配置测试配置测试 检查计算机系统内各个设备或各种资源之间的相检查计算机系统内各个设备或各种资源之间的相 互联结和功能分配中的错误。互联结和功能分配中的错误。 包括配置命令测试、循环配置测试、修复测试。包括配置命令测试、循环配置测试、修复测试。 v安全性测试安全性测试 检验在系统中已经存在的系统安全性、保密性措检验在系统中已经存在的系统安全性、保密性措 施是否发挥作用,有无漏洞。施是否发挥作用,有无漏洞。 v可使
17、用性测试可使用性测试 从使用的合理性和方便性等角度对软件系统进行从使用的合理性和方便性等角度对软件系统进行 检查,发现人为因素或使用上的问题。检查,发现人为因素或使用上的问题。 系统测试 v可支持性测试可支持性测试 验证系统的支持策略对于公司与用户方面是否切实验证系统的支持策略对于公司与用户方面是否切实 可行。可行。 v安装测试安装测试 对系统安装进行测试,找出在安装过程中出现的错对系统安装进行测试,找出在安装过程中出现的错 误。误。 系统的每一部分是否都齐全;系统的每一部分是否都齐全; 所有文件是否都已产生并确有所需要的内容;所有文件是否都已产生并确有所需要的内容; 硬件的配置是否合理,等等
18、硬件的配置是否合理,等等 系统测试 v兼容性测试兼容性测试 验证软件产品在不同版本之间的兼容性。验证软件产品在不同版本之间的兼容性。 有两类基本的兼容性测试:向下兼容、交错兼容有两类基本的兼容性测试:向下兼容、交错兼容 v容量测试容量测试 检验系统的能力最高能达到什么程度。检验系统的能力最高能达到什么程度。 对于信息检索系统,让它使用频率达到最大。对于信息检索系统,让它使用频率达到最大。 在使系统的全部资源达到在使系统的全部资源达到“满负荷满负荷”的情形下,测的情形下,测 试系统的承受能力,也称压力测试。试系统的承受能力,也称压力测试。 v文档测试文档测试 检查用户文档检查用户文档(如用户手册
19、如用户手册)的清晰性和精确性。的清晰性和精确性。 软件开发与软件测试关系 概要设计概要设计 说明书说明书 详细设计详细设计 说明书说明书 源程序源程序 代码代码 单元单元 测试测试 集成集成 测试测试 需求分析需求分析 说明书说明书 确认确认 测试测试 测试技术 v黑箱测试黑箱测试/黑盒测试黑盒测试 v白箱测试白箱测试/白盒测试白盒测试 黑盒测试 v把测试对象看做一个黑盒子,测试人员完全把测试对象看做一个黑盒子,测试人员完全 不考虑程序内部的逻辑结构和内部特性,只不考虑程序内部的逻辑结构和内部特性,只 依据程序模块的详细说明,检查程序的功能依据程序模块的详细说明,检查程序的功能 是否符合它的功
20、能说明。是否符合它的功能说明。 v黑盒测试又叫做黑盒测试又叫做功能测试功能测试或或数据驱动测试数据驱动测试或或 基于规格说明的测试基于规格说明的测试。 黑箱的穷举测试 用黑盒测试发现程序中的错误,必须用黑盒测试发现程序中的错误,必须 在在所有可能的输入条件和输出条件所有可能的输入条件和输出条件中确定中确定 测试数据,来检查程序是否都能产生正确测试数据,来检查程序是否都能产生正确 的输出。的输出。 黑箱的穷举测试 举例:举例: 假设一个程序假设一个程序P有输入量有输入量X和和Y及输出量及输出量Z。在字长为。在字长为 32位的计算机上运行。若位的计算机上运行。若X、Y取整数,按黑盒方法进行取整数,
21、按黑盒方法进行 穷举测试:穷举测试: 可能采用的测试数据组:可能采用的测试数据组: 232232 264 如果测试一组数据需要如果测试一组数据需要1毫秒,一年工作毫秒,一年工作365 24小时小时 ,完成所有测试需,完成所有测试需5亿年。亿年。 穷举是不可能的!穷举是不可能的! 模块模块 输入输入x,y输出输出z 黑盒测试示例黑盒测试示例 白盒测试 v把测试对象看做一个透明的盒子把测试对象看做一个透明的盒子,允许测试,允许测试 人员利用程序内部的逻辑结构及有关信息,人员利用程序内部的逻辑结构及有关信息, 设计或选择测试用例,对程序所有逻辑结构设计或选择测试用例,对程序所有逻辑结构 进行测试。进
22、行测试。 v通过在不同点检查程序的状态,确定实际的通过在不同点检查程序的状态,确定实际的 状态是否与预期的状态一致。白盒测试又称状态是否与预期的状态一致。白盒测试又称 为为结构测试结构测试或或逻辑驱动测试逻辑驱动测试或或基于程序的测基于程序的测 试试。 白箱的穷举测试 v对一个具有多重选择和对一个具有多重选择和 循环嵌套的程序,不同循环嵌套的程序,不同 的路径数目可能也是天的路径数目可能也是天 文数字。文数字。 给出一个小程序的流给出一个小程序的流 程图,它包括了一个程图,它包括了一个 执行执行20次的循环。次的循环。 包含的不同执行路径包含的不同执行路径 数达数达520条,对每一条条,对每一
23、条 路径进行测试需要路径进行测试需要1毫毫 秒秒 一年工作一年工作36524小时小时 测试完需测试完需3170年。年。 入口入口 循环循环 20次次 白盒测试示例白盒测试示例 测试用例 v以尽可能少的数据发现尽可能多的错误以尽可能少的数据发现尽可能多的错误 v一个测试用例就是为了测试某个目标(模块、一个测试用例就是为了测试某个目标(模块、 功能、性能)而准备的一份输入数据及其预期功能、性能)而准备的一份输入数据及其预期 结果结果 测试用例的设计 v逻辑覆盖法(白盒)逻辑覆盖法(白盒) v等价类划分法(黑盒)等价类划分法(黑盒) v边界值分析法(黑盒)边界值分析法(黑盒) 逻辑覆盖 以程序内部的
24、逻辑结构为基础设计测以程序内部的逻辑结构为基础设计测 试用例的技术,属于白盒测试。试用例的技术,属于白盒测试。 根据覆盖测试的目的不同,分为:根据覆盖测试的目的不同,分为: 语句覆盖语句覆盖 判定覆盖判定覆盖 条件覆盖条件覆盖 条件组合覆盖条件组合覆盖 路径覆盖路径覆盖 逻辑覆盖举例 (A1) and (B=0) (A=2) or (X1) X=X/A X=X+1 L1:ace L3:abe L2:abd L4:acd 语句覆盖 v语句覆盖就是设计若干个测试用例,运行被测程序语句覆盖就是设计若干个测试用例,运行被测程序 ,使得每一,使得每一可执行语句可执行语句至少执行一次。至少执行一次。 在图
25、例中,正好所有的可执行语句都在路径在图例中,正好所有的可执行语句都在路径L1 上,所以选择路径上,所以选择路径 L1设计测试用例,就可以覆设计测试用例,就可以覆 盖所有的可执行语句。盖所有的可执行语句。 v测试用例的设计格式如下测试用例的设计格式如下 【输入的输入的(A, B, X),输出的,输出的(A, B, X)】 v为图例设计满足语句覆盖的测试用例是为图例设计满足语句覆盖的测试用例是: 【(2, 0, 4),(2, 0, 3)】 覆盖覆盖 ace【L1】 L1=12345 v语句覆盖是最弱的逻辑覆盖准则语句覆盖是最弱的逻辑覆盖准则 1 3 2 4 5 判断覆盖 v判定覆盖就是设计若干个测
26、试用例,运行被测程判定覆盖就是设计若干个测试用例,运行被测程 序,使得程序中每个序,使得程序中每个IF判断语句的取真分支和取判断语句的取真分支和取 假分支至少一次。假分支至少一次。 v判定覆盖又称为判定覆盖又称为分支覆盖分支覆盖。 v对于图例,如果选择路径对于图例,如果选择路径L1和和L2,就可得满足要,就可得满足要 求的测试用例求的测试用例: 【(2, 0, 4),(2, 0, 3)】覆盖覆盖 ace【L1】 【(1, 1, 1),(1, 1, 1)】覆盖覆盖 abd【L2】 L2=135 1 3 2 4 5 条件覆盖 v条件覆盖就是设计若干个测试用例,运行被测程序,使得条件覆盖就是设计若干
27、个测试用例,运行被测程序,使得 程序中所有判断的程序中所有判断的每个子条件每个子条件的的可能取值至少执行一次可能取值至少执行一次。 v在图例中,我们事先可对所有条件取值加以标记。例如:在图例中,我们事先可对所有条件取值加以标记。例如: 对于第一个判断:对于第一个判断: v条件条件 A1 取真为取真为 ,取假为,取假为 条件条件 B0 取真为取真为 ,取假为,取假为 对于第二个判断:对于第二个判断: v条件条件A2 取真为取真为 ,取假为,取假为 条件条件X1 取真为取真为 ,取假为,取假为 T1 T1 T2 T2 3TT3 T4 T4 条件覆盖 测试用例 覆盖分支 条件取值 v【(2, 0,
28、4),(2, 0, 3)】 L1(c, e) v【(1, 0, 1),(1, 0, 1)】 L2(b, d) v【(2, 1, 1),(2, 1, 2)】 L3(b, e) v或或 v【(1, 0, 3),(1, 0, 4)】 L3(b, e) v【(2, 1, 1),(2, 1, 2)】 L3(b, e) T T T T1234 4321TTTT T T T T1234 T T T T1234 T T T T1234 条件组合覆盖 v条件组合覆盖就是设计足够的测试用例,运行被测程序,使得每个条件组合覆盖就是设计足够的测试用例,运行被测程序,使得每个 判断的所有可能的条件取值组合至少执行一次。
29、判断的所有可能的条件取值组合至少执行一次。 v 记记 A1, B0 作作 A1, B0 作作 A 1, B0 作作 v A 1, B0 作作 v A2, X1 作作 A2, X 1 作作 A2, X1 作作 A2, X 1 作作 T T12 T T12 T T12 T T12 T T34 T T34 T T34 T T34 条件组合覆盖 v 测测 试试 用用 例例 覆盖条件覆盖条件 覆盖组合覆盖组合 v【(2, 0, 4), (2, 0, 3)】(L1) , v【(2, 1, 1), (2, 1, 2)】(L3) , v【(1, 0, 3), (1, 0, 4)】(L3) , v【(1, 1,
30、 1), (1, 1, 1)】(L2) , T T T T1234 T T T T1234 T T T T1234 T T T T1234 路径覆盖 v路径覆盖路径覆盖就是设计足够的测试用例,覆盖程序中所有可能就是设计足够的测试用例,覆盖程序中所有可能 的路径。的路径。程序复杂度是程序独立路径的上界。程序复杂度是程序独立路径的上界。 v 测试用例测试用例 通过路径通过路径 覆盖条件覆盖条件 v 【(2, 0, 4), (2, 0, 3)】 ace (L1) v 【(1, 1, 1), (1, 1, 1)】 abd (L2) v 【(1, 1, 2), (1, 1, 3)】 abe (L3) v
31、 【(3, 0, 3), (3, 0, 1)】 acd (L4) T T T T1234 T T T T1234 T T T T1234 T T T T3412 测试用例路径的导出 V(G)=10-8+2=4 或或V(G)=3+1=4 因此,基本路径应有因此,基本路径应有4条。条。 路径路径1:414 路径路径2:46714 路径路径3:4691013414 路径路径4: 4691213414 4 6 12 9 10 13 7 14 测试用例设计等价类划分 v典型的黑盒测试。典型的黑盒测试。 v把所有可能的输入数据,即程序的输入域把所有可能的输入数据,即程序的输入域 划分成若干部分,然后从每一
32、部分中选取划分成若干部分,然后从每一部分中选取 少数有代表性的数据做为测试用例。少数有代表性的数据做为测试用例。 v设计测试用例要经历划分等价类(列出等设计测试用例要经历划分等价类(列出等 价类表)和选取测试用例两步。价类表)和选取测试用例两步。 等价类划分 v等价类是指某个输入域的子集合。在该子集合中,各等价类是指某个输入域的子集合。在该子集合中,各 个输入数据对于揭露程序中的错误都是等效的。测试个输入数据对于揭露程序中的错误都是等效的。测试 某等价类的代表值就等价于对这一类其他值的测试。某等价类的代表值就等价于对这一类其他值的测试。 v等价类的划分有两种不同的情况:等价类的划分有两种不同的
33、情况: 有效等价类有效等价类:是指对于程序的规格说明来说,是合:是指对于程序的规格说明来说,是合 理的,有意义的输入数据构成的集合。理的,有意义的输入数据构成的集合。 无效等价类无效等价类:是指对于程序的规格说明来说,是不:是指对于程序的规格说明来说,是不 合理的,无意义的输入数据构成的集合。合理的,无意义的输入数据构成的集合。 v设计测试用例时,要同时考虑有效等价类和无效等价设计测试用例时,要同时考虑有效等价类和无效等价 类的设计。类的设计。 v不同类型的数据,划分等价类不同不同类型的数据,划分等价类不同 如何划分等价类 v(1)如果输入条件规定了取值范围,或值的个数,则可)如果输入条件规定
34、了取值范围,或值的个数,则可 以确立一个有效等价类和两个无效等价类。以确立一个有效等价类和两个无效等价类。 例如,在程序的规格说明中,对输入条件有一句话:例如,在程序的规格说明中,对输入条件有一句话: “数量可以从数量可以从1到到999” 则有效等价类是则有效等价类是“1数量数量999” 两个无效等价类是两个无效等价类是“数量数量1”或或“数量数量999”。 v在数轴上表示成在数轴上表示成: 如何划分等价类 v(2)如果输入条件规定了输入值的集合,或者是规定)如果输入条件规定了输入值的集合,或者是规定 了了“必须如何必须如何”的条件,这时可确立一个有效等价类的条件,这时可确立一个有效等价类 和
35、一个无效等价类。和一个无效等价类。 例如,在例如,在C语言中对变量标识符规定为语言中对变量标识符规定为“以字母打以字母打 头的头的串串”。那么所有以字母打头的构成有效等。那么所有以字母打头的构成有效等 价类,而不在此集合内(不以字母打头)的归于无价类,而不在此集合内(不以字母打头)的归于无 效等价类。效等价类。 v(3)如果输入条件是一个布尔量,则可以确定一个有)如果输入条件是一个布尔量,则可以确定一个有 效等价类和一个无效等价类。效等价类和一个无效等价类。 如何划分等价类 v(4)如果规定了输入数据的一组值,而且程序要)如果规定了输入数据的一组值,而且程序要 对每个输入值分别进行处理。这时可
36、为每一个输入对每个输入值分别进行处理。这时可为每一个输入 值确立一个有效等价类,此外针对这组值确立一个值确立一个有效等价类,此外针对这组值确立一个 无效等价类,它是所有不允许的输入值的集合。无效等价类,它是所有不允许的输入值的集合。 例如:在教师上岗方案中规定对教授、副教授例如:在教师上岗方案中规定对教授、副教授 、讲师和助教分别计算分数,做相应的处理。、讲师和助教分别计算分数,做相应的处理。 因此可以确定因此可以确定4个有效等价类为教授、副教授、个有效等价类为教授、副教授、 讲师和助教,一个无效等价类,它是所有不符讲师和助教,一个无效等价类,它是所有不符 合以上身分的人员的输入值的集合。合以
37、上身分的人员的输入值的集合。 如何划分等价类 v(5)如果规定了输入数据必须遵守的规则,则可以确立)如果规定了输入数据必须遵守的规则,则可以确立 一个有效等价类(符合规则)和若干个无效等价类(从不一个有效等价类(符合规则)和若干个无效等价类(从不 同角度违反规则)。同角度违反规则)。 例如,变量名例如,变量名“所有以字母或数字打头的,不包含所有以字母或数字打头的,不包含 等字符的非保留字等字符的非保留字”等。等。 v在明确规则的几个条件后,确立每个条件的有效等价类和在明确规则的几个条件后,确立每个条件的有效等价类和 无效等价类,建立等价类表。最后,确定测试用例。无效等价类,建立等价类表。最后,
38、确定测试用例。 如何划分等价类 在某一种语言版本中规定:在某一种语言版本中规定:“标识符是由字母开头标识符是由字母开头 ,后跟字母或数字的任意组合构成。有效字符数为,后跟字母或数字的任意组合构成。有效字符数为 8个,最大字符数为个,最大字符数为80个。个。” 并且规定:并且规定:“标识符必须先说明,再使用。标识符必须先说明,再使用。” “在同一说明语句中,标识符至少必须有一个。在同一说明语句中,标识符至少必须有一个。” 测试用例设计边界值分析 v黑盒测试方法,是对等价类划分方法的补充。黑盒测试方法,是对等价类划分方法的补充。 v从长期的测试工作经验得知,大量的错误是发生从长期的测试工作经验得知
39、,大量的错误是发生 在输入或输出范围的边界上,而不是在输入范围在输入或输出范围的边界上,而不是在输入范围 的内部。因此针对各种边界情况设计测试用例,的内部。因此针对各种边界情况设计测试用例, 可以查出更多的错误。可以查出更多的错误。 v如我们在操作链表指针时,出现错误的往往是在如我们在操作链表指针时,出现错误的往往是在 边界值的情况下(如在表头或表尾进行插入或删边界值的情况下(如在表头或表尾进行插入或删 除),判定条件、循环条件等也常常是在正常值除),判定条件、循环条件等也常常是在正常值 左右出现问题。左右出现问题。 边界值分析 v边界:相当于输入等价类和输出等价类而言,等于其边界:相当于输入
40、等价类和输出等价类而言,等于其 边界值及稍高边界值及稍高/低于其边界值的一些特定情况。低于其边界值的一些特定情况。 v使用边界值分析方法设计测试用例,首先应确定边界使用边界值分析方法设计测试用例,首先应确定边界 情况。应当选取正好等于,刚刚大于,或刚刚小于边情况。应当选取正好等于,刚刚大于,或刚刚小于边 界的值做为测试数据,而不是选取等价类中的典型值界的值做为测试数据,而不是选取等价类中的典型值 或任意值做为测试数据。或任意值做为测试数据。 比如,在计算个人所得税时,全月应纳税所得额超比如,在计算个人所得税时,全月应纳税所得额超 过过1000元至元至2000元的部分税率为元的部分税率为5%。那
41、么在测试。那么在测试 时,可以选择的测试用例是:时,可以选择的测试用例是: x=999 x=1000 x=1001 x=2000 x=2001 边界值分析 v对于数据库应用系统,很多的功能是与记录处理有对于数据库应用系统,很多的功能是与记录处理有 关,我们可以扩大边界值的概念,根据以下提示选关,我们可以扩大边界值的概念,根据以下提示选 择测试用例:择测试用例: 新记录(第一条记录前,最后,记录的项目不新记录(第一条记录前,最后,记录的项目不 全)全) 处理业务(第一条、最后一条、相邻、超常规处理业务(第一条、最后一条、相邻、超常规 、错误范围、记录不存在)、错误范围、记录不存在) 记录删除(第
42、一条、最后一条、指定范围、当记录删除(第一条、最后一条、指定范围、当 前记录等)前记录等) 查看(第一页查看(第一页/条、指定页条、指定页/条、最后一页条、最后一页/条)条) 测试原则 v应当把应当把“尽早地和不断地进行软件测试尽早地和不断地进行软件测试”作为软件开发作为软件开发 者的座右铭。者的座右铭。 v测试用例应由测试用例应由测试输入数据测试输入数据和对应的和对应的预期输出结果预期输出结果这两这两 部分组成。程序员应避免检查自己的程序。(结对编程部分组成。程序员应避免检查自己的程序。(结对编程 ) v在设计测试用例时,应包括在设计测试用例时,应包括合理的输入条件合理的输入条件和和不合理的不合理的 输入条件输入条件。 v充分注意测试中的群集现象。经验表明:充分注意测试中的群集现象。经验表明:测试后程序中测试后程序中 残存的错误数目与该程序中已发现的错误数目成正比残存的错误数目与该程序中已发现的错误数目成正比 v严格执行测试计划,排除测试的随意性。严格执行测试计划,排除测试的随意性。 v应当对每一个测试结果做全面检查和分析。应当对每一个测试结果做全面检查和分析。 v妥善保存测试计划、测试用例、出错统计和最终分析
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 社交网络行业发展规模预测
- 护士为病人进行高压氧治疗
- 混合痔的孕期患者护理建议
- 朱红版护理美学:领导力培养
- 新人教版七年级生物下册第一章《被子植物的一生》简案
- 护理查房:患者跌倒预防与护理
- 护理健康教育与健康促进策略
- 2026年乡镇街道应急预案编制导则GB T 46793.2实施指南
- 2026年有机封装基板可接受性判定准则符合性自检报告
- 2026年生态伙伴分级分类管理:供应商 渠道商 产品商协同机制
- 2026年安徽工业职业技术学院单招综合素质考试题库及答案详解(全优)
- 2026年安徽新闻出版职业技术学院单招综合素质考试题库及一套答案详解
- 考古发掘与保护技术规范
- 《虚拟商业社会环境》-项目一
- 深度解析(2026)《HGT 3738-2004溶剂型多用途氯丁橡胶胶粘剂》(2026年)深度解析
- 月结正式合同模板(3篇)
- 锂电池设备安装施工方案
- 2026年滁州职业技术学院单招职业适应性测试题库参考答案详解
- 国铁集团安全穿透式管理培训课件
- 第5章护际关系伦理第6章课件讲义
- 特种设备安全培训课件
评论
0/150
提交评论