软件工程-齐志昌版(14)课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《软件工程-齐志昌版(14)课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 齐志昌版 14 课件
- 资源描述:
-
1、2022-12-17国防科技大学计算机学院1 软件工程软件工程 Software Engineering国防科技大学计算机学院国防科技大学计算机学院 2004.072022-12-17国防科技大学计算机学院2第十四章第十四章 软件测试软件测试o尽管软件质量保证是贯穿软件开发全过程的活动尽管软件质量保证是贯穿软件开发全过程的活动,但最关键的步骤是软件测试但最关键的步骤是软件测试,软件测试是对软件规软件测试是对软件规格说明、软件设计和编码的最后复审格说明、软件设计和编码的最后复审,目的是在软目的是在软件产品交付之前尽可能发现软件中潜伏的错误。件产品交付之前尽可能发现软件中潜伏的错误。o大量统计表明
2、大量统计表明,软件测试工作量往往占软件开发总软件测试工作量往往占软件开发总工作量的工作量的40%以上以上,在极端情况下在极端情况下,甚至可能高达甚至可能高达软件工程其他步骤成本总和的三到五倍。软件工程其他步骤成本总和的三到五倍。o本章重点讨论软件测试的基本概念、关键技术和实本章重点讨论软件测试的基本概念、关键技术和实施策略施策略,指出软件测试的主要目标、如何设计测试指出软件测试的主要目标、如何设计测试用例用例(test cases)以及如何组织实施测试活动。以及如何组织实施测试活动。2022-12-17国防科技大学计算机学院314.1 基本概念基本概念o在测试之前的所有软件开发活动中在测试之前
3、的所有软件开发活动中,软件工程师们软件工程师们致力于具体实现致力于具体实现,即从事所谓即从事所谓“建设性建设性”的活动。的活动。o软件测试人员却在努力寻求程序中的错误。软件测试人员却在努力寻求程序中的错误。o发现错误是为了改正错误。测试阶段发现的错误越发现错误是为了改正错误。测试阶段发现的错误越多多,交付的软件质量越高交付的软件质量越高,后期的改正性维护工作越后期的改正性维护工作越少。少。o因此,测试亦是一项因此,测试亦是一项“建设性建设性”活动活动第十四章第十四章 软件测试软件测试2022-12-17国防科技大学计算机学院414.1.1 软件测试的目标软件测试的目标o软件测试是为了发现程序中
4、的错误。软件测试是为了发现程序中的错误。o软件测试的过程亦是程序运行的过程。软件测试的过程亦是程序运行的过程。o程序运行需要数据程序运行需要数据,为测试设计的数据称测试用例。为测试设计的数据称测试用例。o设计测试用例的原则自然是尽可能暴露错误。设计测试用例的原则自然是尽可能暴露错误。o软件测试是一个找错过程。软件测试是一个找错过程。14.1基本概念基本概念2022-12-17国防科技大学计算机学院5软件测试的目标(续)软件测试的目标(续)o大型软件系统的测试分为单元大型软件系统的测试分为单元(模块模块)测试和综合测测试和综合测试两个阶段。试两个阶段。o多数场合,设计者与测试者共同完成单元测试任
5、务;多数场合,设计者与测试者共同完成单元测试任务;专门机构负责软件产品的综合测试。有时设计人员专门机构负责软件产品的综合测试。有时设计人员也加入这个机构。也加入这个机构。o值得指出的是值得指出的是,不能保证通过测试的程序一定正确不能保证通过测试的程序一定正确,测试只能找出程序中的错误测试只能找出程序中的错误,而不能证明程序无错。而不能证明程序无错。o人们认为人们认为,软件运行期间测试活动从未间断软件运行期间测试活动从未间断,只是在只是在软件交付用户之后软件交付用户之后,o将由用户继续扮演测试角色而已。将由用户继续扮演测试角色而已。14.1基本概念基本概念2022-12-17国防科技大学计算机学
6、院614.1.2 测试阶段的信息流程测试阶段的信息流程14.1基本概念基本概念2022-12-17国防科技大学计算机学院7测试阶段的信息流程测试阶段的信息流程o输入流分软件配置和测试配置两项输入流分软件配置和测试配置两项,软件配置由需软件配置由需求说明书、设计说明书和源代码组成求说明书、设计说明书和源代码组成;测试配置中测试配置中包含测试计划、测试工具、测试用例和期望结果包含测试计划、测试工具、测试用例和期望结果,有时测试配置亦作为软件配置的一个组成部分。有时测试配置亦作为软件配置的一个组成部分。o测试人员根据上述输入信息测试程序并评价测试结测试人员根据上述输入信息测试程序并评价测试结果果,当
7、测试结果与期望结果存在差异时当测试结果与期望结果存在差异时,往往程序有往往程序有错。此时可采用排错技术定位错误并改正之。错。此时可采用排错技术定位错误并改正之。o通过对测试结果的收集和评价通过对测试结果的收集和评价,软件质量和软件可软件质量和软件可靠性的一些定性指标即能逐步确定下来。靠性的一些定性指标即能逐步确定下来。14.1基本概念基本概念2022-12-17国防科技大学计算机学院814.1.3 测试用例和场景的设计测试用例和场景的设计o任何工程化的产品都有两种测试方法任何工程化的产品都有两种测试方法:n一种方法是已知产品应该具有的功能一种方法是已知产品应该具有的功能,通过测试通过测试检验每
8、个功能是否都能正常使用检验每个功能是否都能正常使用;n另一种方法是已知产品内部工作过程另一种方法是已知产品内部工作过程,通过测试通过测试检验产品内部动作是否按照产品规格说明的规检验产品内部动作是否按照产品规格说明的规定正常进行。定正常进行。o前者称为黑盒测试前者称为黑盒测试,后者称为白盒测试。后者称为白盒测试。o测试用例和测试场景将根据这两种测试方法的特性测试用例和测试场景将根据这两种测试方法的特性制定。制定。14.1基本概念基本概念2022-12-17国防科技大学计算机学院9黑盒测试黑盒测试o黑盒测试完全不考虑程序的内部结构和处理过程。黑盒测试完全不考虑程序的内部结构和处理过程。测试仅在程序
9、界面上进行。测试仅在程序界面上进行。o设计测试用例旨在说明设计测试用例旨在说明:软件的功能是否可操作软件的功能是否可操作;程序能否适当地接收输入数据并产生正确的输出程序能否适当地接收输入数据并产生正确的输出结果或在可能的场景中事件驱动的效果是否尽结果或在可能的场景中事件驱动的效果是否尽如人意如人意;能否保持外部信息能否保持外部信息(如数据文件如数据文件)的完整性。的完整性。14.1基本概念基本概念2022-12-17国防科技大学计算机学院10白盒测试白盒测试o白盒测试法密切关注处理细节白盒测试法密切关注处理细节,针对程序的每一条针对程序的每一条逻辑路径都要分别设计测试用例逻辑路径都要分别设计测
10、试用例,检查分枝和循环检查分枝和循环的情况。的情况。o穷举测试不可取穷举测试不可取,一般选用少量一般选用少量“最有效最有效”,即最有即最有可能暴露错误的路径进行测试。可能暴露错误的路径进行测试。o测试的目的是为了找出错误测试的目的是为了找出错误,所以无论采用黑盒法所以无论采用黑盒法还是白盒法还是白盒法,设计测试用例时总是期望用尽可能少设计测试用例时总是期望用尽可能少的时间和代价发现尽可能多的错误。的时间和代价发现尽可能多的错误。14.1基本概念基本概念2022-12-17国防科技大学计算机学院11例:例:o最多有最多有1014个逻辑路径个逻辑路径,假设每运行一个测试用例平均花费假设每运行一个测
11、试用例平均花费1毫秒毫秒,总共需总共需3170年才能穷尽所有测试。年才能穷尽所有测试。14.1基本概念基本概念2022-12-17国防科技大学计算机学院1214.1.4 软件测试的步骤软件测试的步骤o软件工程的开发过程和测试过程应该是对应的。第软件工程的开发过程和测试过程应该是对应的。第一章图一章图1.3采用采用V型图表示开发型图表示开发测试的对应关系,测试的对应关系,也可以采用图也可以采用图14.3所示的螺旋型图表示。所示的螺旋型图表示。o每旋转一圈每旋转一圈,测试的范围加大一次测试的范围加大一次:n螺旋中心对应单元测试螺旋中心对应单元测试,它测试源程序的每一模块它测试源程序的每一模块;n下
12、一步是综合测试下一步是综合测试,它测试软件总体结构它测试软件总体结构;n再下一步是确认再下一步是确认(验收验收)测试测试,测试软件是否满足需求测试软件是否满足需求;n最后一步是系统测试最后一步是系统测试,检查软件与系统中其他元素是否协检查软件与系统中其他元素是否协调。调。14.1基本概念基本概念2022-12-17国防科技大学计算机学院1314.2 软件测试技术软件测试技术o本节主要讨论当用白盒或黑盒测试法测试软件时本节主要讨论当用白盒或黑盒测试法测试软件时,如何设计测试用例才能达到测试的目的。如何设计测试用例才能达到测试的目的。o此外此外,对自动测试工具也作一些简单介绍。对自动测试工具也作一
13、些简单介绍。第十四章第十四章 软件测试软件测试2022-12-17国防科技大学计算机学院1414.2.1 白盒测试白盒测试o白盒测试应该根据程序的控制结构设计测试用例白盒测试应该根据程序的控制结构设计测试用例,原则是原则是:保证模块中每一独立的路径至少执行一次保证模块中每一独立的路径至少执行一次;保证所有判断的每一分枝至少执行一次保证所有判断的每一分枝至少执行一次;保证每一循环都在边界条件和一般条件下至少各保证每一循环都在边界条件和一般条件下至少各执行一次执行一次;验证所有内部数据结构的有效性。验证所有内部数据结构的有效性。14.2软件测试技术软件测试技术2022-12-17国防科技大学计算机
14、学院151.基本路径测试基本路径测试o基本路径测试的主要思想是,根据软件过程性描述基本路径测试的主要思想是,根据软件过程性描述(详细设计或代码详细设计或代码)中的控制流程确定复杂性度量中的控制流程确定复杂性度量,然后用此度量定义基本路径集合然后用此度量定义基本路径集合,由此导出一组测由此导出一组测试用例,它们能保证每个语句至少执行一次。试用例,它们能保证每个语句至少执行一次。o为了使用图论的知识和术语为了使用图论的知识和术语,引入流图引入流图(亦称程序图亦称程序图)的概念的概念,流图即把流程图中结构化构件改用一般有流图即把流程图中结构化构件改用一般有向图的表示形式。向图的表示形式。o代表条件判
15、断的结点称为谓词结点。代表条件判断的结点称为谓词结点。14.2软件测试技术软件测试技术2022-12-17国防科技大学计算机学院16结构化构件在流图中的表示结构化构件在流图中的表示14.2软件测试技术软件测试技术2022-12-17国防科技大学计算机学院17例:流程图例:流程图14.2软件测试技术软件测试技术2022-12-17国防科技大学计算机学院18例:对应的流图例:对应的流图14.2软件测试技术软件测试技术2022-12-17国防科技大学计算机学院19条件处理条件处理o若判断中含复合条件若判断中含复合条件,则需增加谓词结点。如则需增加谓词结点。如OR运运算的处理。算的处理。a b Y X
16、 X If a o r b T h en X E lse Y E n d If 14.2软件测试技术软件测试技术2022-12-17国防科技大学计算机学院2014.2软件测试技术软件测试技术2022-12-17国防科技大学计算机学院21Step1 14.2软件测试技术软件测试技术2022-12-17国防科技大学计算机学院22Step1 1 2 3 6 7 8 4 5 11 9 10 模块流程图模块流程图 14.2软件测试技术软件测试技术2022-12-17国防科技大学计算机学院23Step2 2,3 6 7 8 9 10 4,5 11 程程序序流流图图 1 2 3 6 7 8 4 5 11 9
17、 10 模模块块流流程程图图 14.2软件测试技术软件测试技术2022-12-17国防科技大学计算机学院24Step3 pV(G)=E N+2 V(G)=11-9+2=4 2,3 6 7 8 9 10 4,5 11 程程序序流流图图 14.2软件测试技术软件测试技术2022-12-17国防科技大学计算机学院25Step3 14.2软件测试技术软件测试技术2022-12-17国防科技大学计算机学院26Step4 14.2软件测试技术软件测试技术2022-12-17国防科技大学计算机学院272.控制结构测试控制结构测试o基本路径测试是控制结构测试技术的一种基本路径测试是控制结构测试技术的一种,下面
18、介下面介绍其他形式的控制结构测试绍其他形式的控制结构测试,它们比基本路径测试它们比基本路径测试法覆盖程度更大法覆盖程度更大,进一步提高了白盒测试的质量。进一步提高了白盒测试的质量。14.2软件测试技术软件测试技术2022-12-17国防科技大学计算机学院28条件测试法条件测试法o条件测试主要考虑程序中的条件判断条件测试主要考虑程序中的条件判断,以期发现条以期发现条件判断内部的错误和程序中其他一些错误。件判断内部的错误和程序中其他一些错误。o程序中程序中“条件条件”分为简单条件和复合条件。简单条分为简单条件和复合条件。简单条件为一个布尔变量或一个关系表达式件为一个布尔变量或一个关系表达式(可能前
19、缀逻可能前缀逻辑非辑非),复合条件由简单条件通过逻辑运算符复合条件由简单条件通过逻辑运算符(OR、AND、NOT)和括号连接而成。和括号连接而成。o因此条件中可能出现的错误类型包括因此条件中可能出现的错误类型包括:布尔运算符布尔运算符错、布尔变量错、括号错、关系运算符错和算术表错、布尔变量错、括号错、关系运算符错和算术表达式错。达式错。o最简单的条件测试是分支测试。最简单的条件测试是分支测试。14.2软件测试技术软件测试技术2022-12-17国防科技大学计算机学院29分支和关系运算测试法分支和关系运算测试法BROo能用少于能用少于2n次测试发现条件中大多数错误次测试发现条件中大多数错误,采用
20、该采用该方法的前提是条件中每个布尔变量和关系运算符至方法的前提是条件中每个布尔变量和关系运算符至多出现一次并无公共变量。多出现一次并无公共变量。oBRO方法引入条件约束的概念方法引入条件约束的概念,含含n个简单条件的个简单条件的复合条件复合条件C之约束之约束D表示为表示为(D1,D2,Dn),Di(0in)一般为某种符号一般为某种符号,它指明简单条件它指明简单条件Ci在在C中出中出现的约束。现的约束。C的一次执行覆盖约束条件的一次执行覆盖约束条件D指,指,C中中出现的每个简单条件出现的每个简单条件Ci在这次执行中都满足在这次执行中都满足D中对中对应的约束应的约束Di。对于一个布尔表达式对于一个
21、布尔表达式,出现约束或为出现约束或为真真(t)或为假或为假(f);对于一个关系表达式对于一个关系表达式,出现约束用出现约束用符号、或表示。符号、或表示。14.2软件测试技术软件测试技术2022-12-17国防科技大学计算机学院30数据流测试法数据流测试法o数据流测试法是根据程序中变量定义和引用的位置数据流测试法是根据程序中变量定义和引用的位置选择测试路径。选择测试路径。o为说明数据流测试法为说明数据流测试法,假设程序中每个语句都被赋假设程序中每个语句都被赋与一个唯一的标号与一个唯一的标号,并且每个函数都不修改其参数并且每个函数都不修改其参数和全局变量和全局变量,对以对以S为标号的语句定义下面两
22、个集合为标号的语句定义下面两个集合:nDEF(S)=X|语句语句S中含中含X的定义的定义nUSE(S)=X|语句语句S中含对中含对X的引用的引用o当当S为分支或循环语句时为分支或循环语句时,DEF集合为空集合为空,USE集合集合由由S所含条件确定。如果从语句所含条件确定。如果从语句S到语句到语句S存在一存在一条路径并且在条路径并且在S中不存在中不存在X的再定义的再定义,则称在则称在S中定中定义的义的X在在S处活跃。处活跃。14.2软件测试技术软件测试技术2022-12-17国防科技大学计算机学院31数据流测试法(续)数据流测试法(续)o定义变量定义变量X的定义的定义引用链引用链(DU链链)为为
23、X,S,S,其中其中S,S为标号为标号,XDEF(S)USE(S)且且S中定中定义的义的X在在S处活跃。处活跃。o一种简单的数据流测试策略即对每条一种简单的数据流测试策略即对每条DU链至少覆链至少覆盖一次盖一次,称为称为DU测试策略测试策略,它对于测试含嵌套它对于测试含嵌套IF语语句和多重循环语句的程序特别有效。句和多重循环语句的程序特别有效。14.2软件测试技术软件测试技术2022-12-17国防科技大学计算机学院32循环测试循环测试o循环是大多数算法的基础循环是大多数算法的基础,循环测试的目的是检查循环测试的目的是检查循环结构的有效性。循环结构的有效性。o循环分为简单循环、并列循环、嵌套循
24、环和非结构循环分为简单循环、并列循环、嵌套循环和非结构循环四类:循环四类:14.2软件测试技术软件测试技术2022-12-17国防科技大学计算机学院3314.2软件测试技术软件测试技术2022-12-17国防科技大学计算机学院34循环测试(续)循环测试(续)o对于最多为对于最多为n次的简单循环次的简单循环,应作下列测试应作下列测试:1)完全跳过循环完全跳过循环;2)仅循环一次仅循环一次;3)循环两次循环两次;4)循环循环m次次,mn;5)分别循环分别循环(n-1)次次,n次次,n+1次。次。14.2软件测试技术软件测试技术2022-12-17国防科技大学计算机学院35循环测试(续)循环测试(续
25、)o对于嵌套循环若生搬硬套简单循环的测试策略。可能使测对于嵌套循环若生搬硬套简单循环的测试策略。可能使测试次数成几何级数增长试次数成几何级数增长,减少测试次数的具体措施包括减少测试次数的具体措施包括:1)从最内层循环开始测试从最内层循环开始测试,此时所有外层循环都取最小值此时所有外层循环都取最小值,内层循环按简单循环的测试策略测试内层循环按简单循环的测试策略测试;2)由里向外由里向外,回退到上一层循环测试回退到上一层循环测试,这层循环的所有外层这层循环的所有外层循环仍取最小值循环仍取最小值,由该层循环嵌套的那些循环取一些典型由该层循环嵌套的那些循环取一些典型值。值。3)继续向外扩展继续向外扩展
展开阅读全文