




已阅读5页,还剩26页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
A Free sample background from Slide 1 第第2 2章章 软件测试策略与过程软件测试策略与过程 2.1 2.1 软件测试的复杂性分析软件测试的复杂性分析 2.2 2.2 软件测试方法与策略软件测试方法与策略 2.3 2.3 单元测试单元测试 2.4 2.4 集成测试集成测试 2.5 2.5 确认测试确认测试 2.6 2.6 系统测试系统测试 2.7 2.7 验收测试验收测试 2.8 2.8 测试后的调试测试后的调试 2.9 2.9 面向对象的软件测试面向对象的软件测试 A Free sample background from Slide 2 本章教学目标本章教学目标 n n 理解软件测试的复杂性理解软件测试的复杂性 n n 理解软件测试的方法与策略理解软件测试的方法与策略 n n 明确单元测试的主要任务和过程明确单元测试的主要任务和过程 n n 明确集成测试的方法和确认测试的准则明确集成测试的方法和确认测试的准则 n n 明确系统测试的八个领域测试要点明确系统测试的八个领域测试要点 n n 明确验收测试的主要内容和相关配置明确验收测试的主要内容和相关配置 A Free sample background from Slide 3 2.1 2.1 软件测试的复杂性分析软件测试的复杂性分析 1 1、无法对程序进行完全测试、无法对程序进行完全测试 (1 1)测试所需要的输入量太大)测试所需要的输入量太大 (2 2)测试的输出结果太多)测试的输出结果太多 (3 3)软件实现的途径太多)软件实现的途径太多 (4 4)软件规格说明没有一个客观标准)软件规格说明没有一个客观标准 2 2、测试无法显示潜在的软件缺陷和故障、测试无法显示潜在的软件缺陷和故障 通过软件测试只能报告软件已被发现的缺陷和故障,通过软件测试只能报告软件已被发现的缺陷和故障, 无法报告隐藏的软件故障。无法报告隐藏的软件故障。 3 3、存在的故障现象与发现的故障数量成正比、存在的故障现象与发现的故障数量成正比 结论:应当对故障集中的程序段进行重点测试结论:应当对故障集中的程序段进行重点测试 A Free sample background from Slide 4 软件测试的复杂性分析软件测试的复杂性分析(续)(续) 4 4、不能修复所有的软件故障、不能修复所有的软件故障 原因:原因: 没有足够的时间进行修复;没有足够的时间进行修复; 修复的风险较大;修复的风险较大; 不值得修复;不值得修复; 可不算做故障的一些缺陷;可不算做故障的一些缺陷; “ “杀虫剂现象杀虫剂现象” ”。 结论:关键是要进行正确的判断、合理的取舍,根据风险结论:关键是要进行正确的判断、合理的取舍,根据风险 分析决定哪些故障必须修复,哪些故障可以不修复。分析决定哪些故障必须修复,哪些故障可以不修复。 A Free sample background from Slide 5 软件测试的复杂性分析软件测试的复杂性分析(续)(续) 5 5、软件测试的代价、软件测试的代价 工作原则:针对软件风险做出恰当选择,去工作原则:针对软件风险做出恰当选择,去 粗存精,找到最佳的测试量,既能达到测试的目粗存精,找到最佳的测试量,既能达到测试的目 的,又能较为经济。的,又能较为经济。 A Free sample background from Slide 6 2.2 2.2 软件测试方法与策略软件测试方法与策略 2.2.1 2.2.1 静态测试与动态测试静态测试与动态测试 2.2.2 2.2.2 黑盒测试与白盒测试黑盒测试与白盒测试 2.2.3 2.2.3 软件测试过程软件测试过程 ReturnReturn A Free sample background from Slide 7 软件测试策略软件测试策略 n n 什么是软件测试策略?什么是软件测试策略? 是为软件工程过程定义的一个软件测试的模板,也就是是为软件工程过程定义的一个软件测试的模板,也就是 把特定的测试用例方法放置进去的一系列步骤。把特定的测试用例方法放置进去的一系列步骤。 n n 软件测试策略的特征:软件测试策略的特征: (1 1)测试从模块层开始,然后扩大延伸到整个基于计算机的)测试从模块层开始,然后扩大延伸到整个基于计算机的 系统集合中。系统集合中。 (2 2)不同的测试技术适用于不同的时间点。)不同的测试技术适用于不同的时间点。 (3 3)测试是由软件的开发人员和(对于大型系统而言)独立)测试是由软件的开发人员和(对于大型系统而言)独立 的测试组来管理的。的测试组来管理的。 (4 4)测试和调试是不同的活动,但是调试必须能够适应任何)测试和调试是不同的活动,但是调试必须能够适应任何 的测试策略。的测试策略。 A Free sample background from Slide 8 软件测试充分性准则软件测试充分性准则 P40P40 n n 对任何软件都存在有限的充分测试集合。对任何软件都存在有限的充分测试集合。 n n 如果一个软件系统在一个测试数据集合上的测试是充分的,那如果一个软件系统在一个测试数据集合上的测试是充分的,那 么再多测试一些数据也应该是充分的。这一特性称为么再多测试一些数据也应该是充分的。这一特性称为单调性单调性。 n n 即使对软件所有成分都进行了充分的测试,也并不表明整个软即使对软件所有成分都进行了充分的测试,也并不表明整个软 件的测试已经充分了。这一特性称为件的测试已经充分了。这一特性称为非复合性非复合性。 n n 即使对软件系统整体的测试是充分的,也并不意味软件系统中即使对软件系统整体的测试是充分的,也并不意味软件系统中 各个成分都已经充分地得到了测试。这个特性称为各个成分都已经充分地得到了测试。这个特性称为非分解性非分解性。 n n 软件测试的充分性应该与软件的需求和软件的实现都相关。软件测试的充分性应该与软件的需求和软件的实现都相关。 n n 软件越复杂,需要的测试数据就越多。这一特性称为软件越复杂,需要的测试数据就越多。这一特性称为复杂性复杂性。 n n 测试得越多,进一步测试所能得到的充分性增长就越少。这一测试得越多,进一步测试所能得到的充分性增长就越少。这一 特性称为特性称为回报递减率回报递减率。 请同学们自己慢慢体会以下定义:请同学们自己慢慢体会以下定义: A Free sample background from Slide 9 2.2.1 2.2.1 静态测试与动态测试静态测试与动态测试 根据程序是否运行,测试分为静态测试与动态测试。根据程序是否运行,测试分为静态测试与动态测试。 1.1.静态测试:静态测试:指不实际运行被测软件,只是静态地检查程序代指不实际运行被测软件,只是静态地检查程序代 码、界面或文档中可能存在的错误的过程,主要是对软件的编码、界面或文档中可能存在的错误的过程,主要是对软件的编 程格式、结构等方面进行评估。程格式、结构等方面进行评估。 包括三个方面:包括三个方面: 对于代码测试:主要测试代码是否符合相应的标准和规范。对于代码测试:主要测试代码是否符合相应的标准和规范。 对于界面测试:主要测试软件的实际界面与需求中的说明是否符合。对于界面测试:主要测试软件的实际界面与需求中的说明是否符合。 对于文档测试:主要测试用户手册和需求说明是否真正符合用户的实对于文档测试:主要测试用户手册和需求说明是否真正符合用户的实 际需求。际需求。 A Free sample background from Slide 10 案例案例1 1:C C语言程序的静态分析和动态测试语言程序的静态分析和动态测试 # #include max(floatmax(float x,floatx,float y) y) float z; float z; z=x z=xy?x:yy?x:y return(zreturn(z);); main()main() float float a,ba,b; ; intint c; c; scanf(“%f,%f”, ); c=c=max(a,bmax(a,b); ); printf(“Maxprintf(“Max is % is %dn”,cdn”,c);); A Free sample background from Slide 11 案例案例1 1修改后,如下修改后,如下 # #include max(floatmax(float x,floatx,float y) / y) /返回两个单精度数中的大数返回两个单精度数中的大数 float z; float z; z=x z=xy?x:yy?x:y return(zreturn(z); ); main()main() float float a,b,ca,b,c; ; scanf(“%f,%f”, ); c=c=max(a,bmax(a,b); ); printf(“Maxprintf(“Max is % is %dn”,cdn”,c);); 可参考可参考C C语言编码规范语言编码规范 A Free sample background from Slide 12 2.2.1 2.2.1 静态测试与动态测试静态测试与动态测试 静态测试:静态测试: n n 静态测试包括代码检查、静态结构分析、代码质量度量静态测试包括代码检查、静态结构分析、代码质量度量 等。它可以由人工进行,也可以借助软件工具自动进行。等。它可以由人工进行,也可以借助软件工具自动进行。 n n 静态测试方法也可称为静态测试方法也可称为“ “静态分析静态分析” ” 。 A Free sample background from Slide 13 静态测试与动态测试静态测试与动态测试(续)(续) 代码检查代码检查 n n 代码检查包括代码走查、桌面检查、代码审查等,主要检查代码检查包括代码走查、桌面检查、代码审查等,主要检查 代码和设计的一致性,代码对标准的遵循、可读性,代码的代码和设计的一致性,代码对标准的遵循、可读性,代码的 逻辑表达的正确性,代码结构的合理性等方面。逻辑表达的正确性,代码结构的合理性等方面。 n n 具体内容:变量检查、命名和类型审查、程序逻辑审查、程具体内容:变量检查、命名和类型审查、程序逻辑审查、程 序语法检查和程序结构检查等。序语法检查和程序结构检查等。 n n 优点:实际使用中,能快速找到缺陷,发现优点:实际使用中,能快速找到缺陷,发现30%30%70%70%的逻的逻 辑设计和编码缺陷;。辑设计和编码缺陷;。 n n 缺点:耗费时间,需要知识和经验的积累。缺点:耗费时间,需要知识和经验的积累。 A Free sample background from Slide 14 静态测试与动态测试静态测试与动态测试(续)(续) 静态结构分析静态结构分析 n n 静态结构分析主要是以图形的方式表现程序的内部结构。静态结构分析主要是以图形的方式表现程序的内部结构。 例如函数调用关系图、函数内部控制流图。例如函数调用关系图、函数内部控制流图。 函数调用关系图以直观的图形方式描述一个应用程序中函数调用关系图以直观的图形方式描述一个应用程序中 各个函数的调用和被调用关系;各个函数的调用和被调用关系; 控制流图显示一个函数的逻辑结构,由许多节点组成,控制流图显示一个函数的逻辑结构,由许多节点组成, 一个节点代表一条语句或数条语句,连接结点的叫边,边表一个节点代表一条语句或数条语句,连接结点的叫边,边表 示节点间的控制流向。示节点间的控制流向。 A Free sample background from Slide 15 静态测试与动态测试静态测试与动态测试(续)(续) 代码质量度量代码质量度量 n n 软件质量包括六个方面:功能性、可靠性、易用性、效率、软件质量包括六个方面:功能性、可靠性、易用性、效率、 可维护性和可移植性。软件的质量是软件属性的各种标准度可维护性和可移植性。软件的质量是软件属性的各种标准度 量的组合。量的组合。 n n 针对软件的可维护性,目前业界主要存在三种度量参数:针对软件的可维护性,目前业界主要存在三种度量参数: LineLine复杂度复杂度、HalsteadHalstead复杂度复杂度和和McCabeMcCabe复杂度复杂度。其中。其中LineLine复复 杂度以代码的行数作为计算的基准。杂度以代码的行数作为计算的基准。HalsteadHalstead以程序中使用以程序中使用 到的运算符与运算元数量作为计数目标(直接测量指标),到的运算符与运算元数量作为计数目标(直接测量指标), 然后可以据以计算出程序容量、工作量等。然后可以据以计算出程序容量、工作量等。McCabeMcCabe复杂度复杂度 一般称为圈复杂度,它将软件的流程图转化为有向图,然后一般称为圈复杂度,它将软件的流程图转化为有向图,然后 以图论来衡量软件的质量。以图论来衡量软件的质量。 A Free sample background from Slide 16 静态测试与动态测试静态测试与动态测试(续)(续) n n 静态测试阶段的任务:静态测试阶段的任务:P41P41 (1 1)检查算法的逻辑正确性。)检查算法的逻辑正确性。 (2 2)检查模块接口的正确性。)检查模块接口的正确性。 (3 3)检查输入参数是否有合法性检查。)检查输入参数是否有合法性检查。 (4 4)检查调用其他模块的接口是否正确。)检查调用其他模块的接口是否正确。 (5 5)检查是否设置了适当的出错处理。)检查是否设置了适当的出错处理。 (6 6)检查表达式、语句是否正确,是否含有二义性。)检查表达式、语句是否正确,是否含有二义性。 (7 7)检查常量或全局变量使用是否正确。)检查常量或全局变量使用是否正确。 (8 8)检查标识符的使用是否规范、一致。)检查标识符的使用是否规范、一致。 (9 9)检查程序风格的一致性、规范性。)检查程序风格的一致性、规范性。 (1010)检查代码是否可以优化,算法效率是否最高。)检查代码是否可以优化,算法效率是否最高。 (1111)检查代码注释是否完整,是否正确反映了代码的功能。)检查代码注释是否完整,是否正确反映了代码的功能。 A Free sample background from Slide 17 静态测试与动态测试静态测试与动态测试(续)(续) n n 静态测试可以完成以下工作:静态测试可以完成以下工作: (1 1)发现下列错误:错用局部变量和全局变量;未定义的发现下列错误:错用局部变量和全局变量;未定义的 变量、不匹配的参数;不适当的循环嵌套或分支嵌套、死变量、不匹配的参数;不适当的循环嵌套或分支嵌套、死 循环、不允许的递归;调用不存在的子程序,遗漏标号或循环、不允许的递归;调用不存在的子程序,遗漏标号或 代码。代码。 (2 2)找出以下问题的根源:从未使用过的变量;不会执行)找出以下问题的根源:从未使用过的变量;不会执行 到的代码、从未使用过的标号;潜在的死循环。到的代码、从未使用过的标号;潜在的死循环。 (3 3)提供程序缺陷的间接信息:所用变量和常量的交叉应)提供程序缺陷的间接信息:所用变量和常量的交叉应 用表;是否违背编码规则;标识符的使用方法和过程的调用表;是否违背编码规则;标识符的使用方法和过程的调 用层次。用层次。 (4 4)为进一步查找做好准备。)为进一步查找做好准备。 (5 5)选择测试用例。)选择测试用例。 (6 6)进行符号测试。)进行符号测试。 A Free sample background from Slide 18 静态测试与动态测试静态测试与动态测试(续)(续) 2 2、动态测试、动态测试 指实际运行被测程序,输入相应的测试数据,检 指实际运行被测程序,输入相应的测试数据,检 查实际输出结果与预期结果是否相符的过程。查实际输出结果与预期结果是否相符的过程。 例如,前面的案例例如,前面的案例1 1, 输入数据输入数据1.2 , 3.51.2 , 3.5 则输出为:则输出为:1.2000001.200000 与预期的相符与预期的相符 A Free sample background from Slide 19 静态测试与动态测试静态测试与动态测试(续)(续) n动态测试包括: (1)功能确认与接口测试: 测试各单元功能正确性、单元间的接口等。 (2)覆盖率分析: 对代码的执行路径覆盖范围进行评估。 (3)性能分析: 查找性能瓶颈 (4)内存分析: 测量内存使用情况,了解内存分配情况,找出发 生错误的原由。 A Free sample background from Slide 20 2.2.2 2.2.2 黑盒测试和白盒测试黑盒测试和白盒测试(续)(续) 1 1、黑盒测试、黑盒测试(Black-box Testing)(Black-box Testing): 指把被测软件看作是一个黑盒子,不关心里面的指把被测软件看作是一个黑盒子,不关心里面的 结构,只关心输入数据和输出结果。结构,只关心输入数据和输出结果。 例如,只关心输入例如,只关心输入x=2x=2时,输出结果是否为时,输出结果是否为y=4y=4 。测试规划是基于产品的功能。测试规划是基于产品的功能。 也称为功能测试、数据驱动测试和基于规格也称为功能测试、数据驱动测试和基于规格 说明的测试,实际上还包括性能测试。说明的测试,实际上还包括性能测试。 A Free sample background from Slide 21 输入输入 输出输出 黑盒测试是在程序接口进行测试,它只是检查程黑盒测试是在程序接口进行测试,它只是检查程 序功能是否按照规格说明书的规定正常使用。序功能是否按照规格说明书的规定正常使用。也也 被称为用户测试被称为用户测试。 A Free sample background from Slide 22 n n 黑盒测试黑盒测试主要根据主要根据规格说明书设计规格说明书设计测试用例,并不涉及测试用例,并不涉及 程序内部构造和内部特性,只依靠被测程序输入和输出程序内部构造和内部特性,只依靠被测程序输入和输出 之间的关系或程序的功能设计测试用例。之间的关系或程序的功能设计测试用例。 n n 黑盒测试的特点:黑盒测试的特点: (1 1)黑盒测试与软件的具体实现过程无关,在软件实现)黑盒测试与软件的具体实现过程无关,在软件实现 的过程发生变化时,测试用例仍然可以使用。的过程发生变化时,测试用例仍然可以使用。 (2 2)黑盒测试用例的设计可以和软件实现同时进行,这)黑盒测试用例的设计可以和软件实现同时进行,这 样能够压缩总的开发时间。样能够压缩总的开发时间。 A Free sample background from Slide 23 n n 黑盒测试主要用于发现以下几类错误:黑盒测试主要用于发现以下几类错误: 是否有不正确或遗漏了的功能?是否有不正确或遗漏了的功能? 在接口上,输入能否正确地接受?能否输出正确的结果?在接口上,输入能否正确地接受?能否输出正确的结果? 是否有数据结构错误或外部信息访问错误?是否有数据结构错误或外部信息访问错误? 性能上是否满足用户需求?性能上是否满足用户需求? 是否有初始化或终止性错误?是否有初始化或终止性错误? 黑盒测试的具体技术方法黑盒测试的具体技术方法 : 边界值分析法边界值分析法 等价类划分法等价类划分法 因果图法因果图法 决策表法决策表法 A Free sample background from Slide 24 2 2、白盒测试( (White-box TestingWhite-box Testing) ): 指将被测软件看作一个打开的盒子,研究盒子研究盒子 里面的代码和程序结构。测试规划基于产品的里面的代码和程序结构。测试规划基于产品的 内部结构。内部结构。 又称为结构测试,一般用来分析程序的内又称为结构测试,一般用来分析程序的内 部结构。部结构。 A Free sample background from Slide 25 白盒测试需要白盒测试需要完全了解程序结构和处理过程,完全了解程序结构和处理过程, 它按照程序内部逻辑测试程序,检验程序中它按照程序内部逻辑测试程序,检验程序中 每条通路是否按预定要求正确工作。每条通路是否按预定要求正确工作。也被称也被称 为程序员测试。为程序员测试。 应用程序应用程序 A Free sample background from Slide 26 n白盒测试要求是对某些程序的结构特性做到一 定程度的覆盖,或者说这种测试是“基于覆盖率 的测试”。 n通常的程序结构覆盖有: 语句覆盖 判定覆盖 条件覆盖 判定/条件覆盖 路径覆盖 A Free sample background from Slide 27 ? X=2 y
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 咨询灭蚊方案
- 义务植树活动策划及方案
- 寒假声乐课程活动策划方案
- 来电咨询推广方案
- 保险咨询保险规划方案
- 大陆公司岗位绩效工资制运行管理办法
- 散装卫生巾营销方案策划
- 大学生吉他招生营销方案
- 动物保护活动策划方案
- 人工智能在教育领域应用前景
- 拆迁人员考试题目及答案
- 拆除工程安全监理细则(3篇)
- 2025合作伙伴商品配送合同
- 券商廉洁从业培训课件
- 数字产品服务使用协议书
- 重庆市南开中学高2025-2026学年高三上学期开学第一次检测语文试卷
- (人教版2017课标)高中物理必修第三册 第十章综合测试及答案03
- 脑血管超声课件
- 机械检验考试试题及答案
- 汉语水平考试HSK四级真题4-真题-无答案
- 大疆:2024-2025农业无人机行业白皮书
评论
0/150
提交评论