欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    软件工程第12章34187.pptx

    • 资源ID:77554437       资源大小:378.98KB        全文页数:125页
    • 资源格式: PPTX        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    软件工程第12章34187.pptx

    第第12章章软件测试软件测试软件测试是对软件规格说明、软件设计软件测试是对软件规格说明、软件设计和编码的最全面也是最后的审查。和编码的最全面也是最后的审查。通过软件测试,可以发现软件中绝大部通过软件测试,可以发现软件中绝大部分潜伏的错误,从而可以大大提高软件分潜伏的错误,从而可以大大提高软件产品的正确性、可靠性,进而可显著提产品的正确性、可靠性,进而可显著提高产品质量。高产品质量。统计表明,软件测试工作往往占软件开统计表明,软件测试工作往往占软件开发总工作量的发总工作量的40%以上。甚至以上。甚至35倍以上。倍以上。第第12章章软件测试软件测试本章将介绍:本章将介绍:软件测试的基本知识;软件测试的基本知识;软件测试的常用方法和技术;软件测试的常用方法和技术;软件测试的过程;软件测试的过程;软件的调试与排错技术;软件的调试与排错技术;软件测试的工具。软件测试的工具。第第12章章软件测试软件测试12.1 软件测试的基本知识软件测试的基本知识12.2 软件测试技术软件测试技术12.3 软件测试过程软件测试过程12.4 调试调试12.5 测试工具测试工具12.1 软件测试的基本知识软件测试的基本知识软件测试是执行程序发现并排除软件测试是执行程序发现并排除程序中潜伏的错误的过程。程序中潜伏的错误的过程。软件测试是软件投入运行前,对软件测试是软件投入运行前,对软件需求分析、设计、实现的强软件需求分析、设计、实现的强有力的最终审查。有力的最终审查。12.1.1 软件测试的目标与原则软件测试的目标与原则测试用例测试用例为了进行有效的测试而设计的输为了进行有效的测试而设计的输入数据和预期的输出结果数据。入数据和预期的输出结果数据。Myers在其软件测试著作中对软件测试的目标在其软件测试著作中对软件测试的目标提出以下观点:提出以下观点:软件测试是为了发现错误而运行程序的过程;软件测试是为了发现错误而运行程序的过程;一个好的测试用例能够发现至今尚未发现的一个好的测试用例能够发现至今尚未发现的 错误;错误;一个成功的测试是发现了至今尚未发现的错一个成功的测试是发现了至今尚未发现的错 误的测试。误的测试。测试原则测试原则应尽早和不断地进行软件应尽早和不断地进行软件“测试测试”,即将这种,即将这种“测试测试”贯穿于软件开发的各个阶段,坚持各贯穿于软件开发的各个阶段,坚持各个阶段的技术评审,以便尽早地发现和预防错个阶段的技术评审,以便尽早地发现和预防错误。误。测试用例中,不仅要选择合理的输入数据,还测试用例中,不仅要选择合理的输入数据,还要选择不合理的输入数据。要选择不合理的输入数据。在开发各阶段应事先分别制定出相应的测试计在开发各阶段应事先分别制定出相应的测试计划,在测试开始后应严格执行,防止随意性。划,在测试开始后应严格执行,防止随意性。对发现错误较多的程序模块,应进行重点测试。对发现错误较多的程序模块,应进行重点测试。Pareto指出,测试发现错误的指出,测试发现错误的80%集中在集中在20%的模块中。发现错误较多的模块质量较差,需的模块中。发现错误较多的模块质量较差,需重点测试,并要测试是否引入了新的错误。重点测试,并要测试是否引入了新的错误。测试原则测试原则避免程序员测试自己的程序。避免程序员测试自己的程序。测试用例的设计应有第三方参与。对于大型软测试用例的设计应有第三方参与。对于大型软件的测试,一般的做法是:设计者与测试者共件的测试,一般的做法是:设计者与测试者共同完成单元测试任务,而综合测试由专门的测同完成单元测试任务,而综合测试由专门的测试机构负责,有时其中也可以有设计者参加试机构负责,有时其中也可以有设计者参加用穷举测试是不现实的,一般通过设计测试用用穷举测试是不现实的,一般通过设计测试用例,充分覆盖所有条件或所有语句即可。例,充分覆盖所有条件或所有语句即可。长期妥善保存测试计划、测试用例、出错统计长期妥善保存测试计划、测试用例、出错统计和有关的分析报告。和有关的分析报告。12.1.2 软件测试的步骤软件测试的步骤图图14-1-1 测试步骤测试步骤部件部件代码代码部件部件代码代码单元测试单元测试单元测试单元测试单元测试单元测试部件部件代码代码集成测试集成测试功能测试功能测试性能测试性能测试验收测试验收测试安装测试安装测试设计设计规格说明规格说明系统系统功能需求功能需求其他其他软件需求软件需求用户需求用户需求规格说明规格说明用户用户环境环境集成后集成后的模块的模块功能功能系统系统验证,验证,生效的生效的软件软件被接受被接受的系统的系统在使用中的系统在使用中的系统测试后测试后的模块的模块12.1.2 软件测试的步骤软件测试的步骤q在本书中,从软件工程的角度:在本书中,从软件工程的角度:将单元测试与详细设计对应起来,即在详细设计阶段将单元测试与详细设计对应起来,即在详细设计阶段就应制定出单元测试计划;就应制定出单元测试计划;而集成测试又称为综合测试,可以把概要设计和集成而集成测试又称为综合测试,可以把概要设计和集成测试对应起来,在概要设计阶段就可以制定集成测试测试对应起来,在概要设计阶段就可以制定集成测试计划;计划;将功能测试、性能(行为)测试、验收测试统称为验将功能测试、性能(行为)测试、验收测试统称为验收测试(也称确认测试),与软件系统需求分析阶段收测试(也称确认测试),与软件系统需求分析阶段对应起来,在需求分析阶段就应制定出验收准则和验对应起来,在需求分析阶段就应制定出验收准则和验收测试计划,验收测试应提交经用户确认的软件产品;收测试计划,验收测试应提交经用户确认的软件产品;最后,将软件、硬件等要素构成一个完整的基于计算最后,将软件、硬件等要素构成一个完整的基于计算机的系统,再进行系统测试,使系统测试与系统定义机的系统,再进行系统测试,使系统测试与系统定义相对应,即在系统定义阶段就应制定系统测试计划。相对应,即在系统定义阶段就应制定系统测试计划。12.1.2 软件测试的步骤软件测试的步骤图图14-1-2 软件工程的开发与测试的关系软件工程的开发与测试的关系系统工程系统工程需求分析需求分析概要设计概要设计设计、编码设计、编码单元测试单元测试集成测试集成测试验收测试验收测试系统测试系统测试12.1.3 测试阶段的信息流测试阶段的信息流图图14-1-3 测试阶段的信息流测试阶段的信息流测试测试评价评价排错排错可靠性可靠性模型模型软件配置软件配置测试配置测试配置测试结果测试结果错误错误错误统计错误统计预期结果预期结果正确的程序正确的程序可靠性预测可靠性预测12.1.3 测试阶段的信息流测试阶段的信息流q测试的输入流有软件配置和测试配置。测试的输入流有软件配置和测试配置。软件配置由需求规格说明、设计说明、软件配置由需求规格说明、设计说明、源代码等组成;源代码等组成;测试配置包括测试计划、测试用例(其测试配置包括测试计划、测试用例(其中包括预期的结果)、测试工具等组成。中包括预期的结果)、测试工具等组成。测试结果评价测试结果评价经常发现严重的错误并需要修改软件,经常发现严重的错误并需要修改软件,则软件的质量和可靠性一定不高,需要则软件的质量和可靠性一定不高,需要进一步测试;进一步测试;如果测试所发现的错误不多且易于改正,如果测试所发现的错误不多且易于改正,软件功能看起来也较完善,则需考虑两软件功能看起来也较完善,则需考虑两种可能:种可能:1)软件质量和可靠性确实令人满意;)软件质量和可靠性确实令人满意;2)测试不全面,很可能还潜伏着严重错)测试不全面,很可能还潜伏着严重错误;误;如果测试过程没有发现任何错误,则很如果测试过程没有发现任何错误,则很有可能是测试配置不合理。有可能是测试配置不合理。12.1.4 软件测试的常用方法软件测试的常用方法1静态测试静态测试l静静态态测测试试是是采采用用人人工工检检测测和和计计算算机机辅辅助助静静态态分分析的方法对程序进行检测。析的方法对程序进行检测。人人工工检检测测是是指指靠靠人人工工走走查查程程序序或或评评审审软软件件。这这种种走走查查与与评评审审主主要要针针对对编编码码的的质质量量和和软软件件开开发发各各个个阶阶段段的的文文档档,特特别别是是总总体体设设计计和和详详细细设设计计阶阶段段的的错错误误。能能发发现现30%70%的的逻逻辑辑设设计计和和编码错误。编码错误。计计算算机机辅辅助助静静态态分分析析是是指指利利用用静静态态分分析析软软件件工工具具对对程程序序进进行行静静态态分分析析,主主要要检检测测变变量量是是否否用用错错、参参数数是是否否匹匹配配、循循环环嵌嵌套套是是否否有有错错、是是否否有有死死循循环环和和永永远远执执行行不不到到的的死死代代码码等等等等。同同时时,它还可对程序的特性进行分析。它还可对程序的特性进行分析。12.1.4 软件测试的常用方法软件测试的常用方法2动态测试动态测试 动态测试是指事先设计好一组测试用例,动态测试是指事先设计好一组测试用例,然后通过运行程序来发现错误。然后通过运行程序来发现错误。动态测试有两种测试方法:动态测试有两种测试方法:黑盒测试;黑盒测试;白盒测试。白盒测试。12.1.4 软件测试的常用方法软件测试的常用方法黑盒测试,又称为功能测试黑盒测试,又称为功能测试把被测把被测的程序模块看成一个黑匣子,即完全不的程序模块看成一个黑匣子,即完全不考虑程序的内部结构和处理过程,测试考虑程序的内部结构和处理过程,测试仅在程序的接口上进行。仅在程序的接口上进行。白盒测试白盒测试把被测的程序看成一个透把被测的程序看成一个透明的白匣子,即完全了解程序的内部结明的白匣子,即完全了解程序的内部结构和详细的处理过程,测试是在程序的构和详细的处理过程,测试是在程序的内部结构上进行。即要求针对每一条逻内部结构上进行。即要求针对每一条逻辑路径都要设计测试用例,检查每一个辑路径都要设计测试用例,检查每一个分支和每一次循环的情况。分支和每一次循环的情况。穷举测试是不现实的。如上图,设循环体应执穷举测试是不现实的。如上图,设循环体应执行行30次,循环体中有次,循环体中有4个独立的分支,则最多个独立的分支,则最多有有4 30 10 18个逻辑路径,假设每运行一个测试个逻辑路径,假设每运行一个测试用例平均花费用例平均花费1毫秒,则需花费毫秒,则需花费3千多万年。一千多万年。一般选用少量最有效的测试用例,以便覆盖每一般选用少量最有效的测试用例,以便覆盖每一个条件、每一个路径和每一个语句,从而以最个条件、每一个路径和每一个语句,从而以最少的代价发现尽可能多的错误。少的代价发现尽可能多的错误。开始开始结束结束12.1.5 软件测试中常见的错误类型软件测试中常见的错误类型按照错误的影响和造成的后果进行分类,按照错误的影响和造成的后果进行分类,可分为:较小错误,中等错误,较严重可分为:较小错误,中等错误,较严重错误,严重错误,非常严重的错误,最错误,严重错误,非常严重的错误,最严重的错误。严重的错误。按照软件生存周期各个阶段分类,可分按照软件生存周期各个阶段分类,可分为:问题定义错误、需求分析规格说明为:问题定义错误、需求分析规格说明错误、设计错误、编码错误等等。错误、设计错误、编码错误等等。这里重点介绍一种按照错误的性质和范这里重点介绍一种按照错误的性质和范围进行分类的方法,可以将错误分为如围进行分类的方法,可以将错误分为如下几类:下几类:按照错误的性质和范围进行分类按照错误的性质和范围进行分类1功能错误功能错误 需求规格说明错误。主要是指其中需求规格说明错误。主要是指其中有错误、多余或遗漏的功能,有二有错误、多余或遗漏的功能,有二义性或自相矛盾。义性或自相矛盾。设计实现错误。设计或实现的功能设计实现错误。设计或实现的功能不是规格说明或用户所要求的功能。不是规格说明或用户所要求的功能。按照错误的性质和范围进行分类按照错误的性质和范围进行分类2系统错误系统错误 外部接口错误。如与打印机的接口错误。外部接口错误。如与打印机的接口错误。内部接口错误。指各程序模块间的联系存在错内部接口错误。指各程序模块间的联系存在错误。如输入误。如输入/输出、数据保护、子程序访问等。输出、数据保护、子程序访问等。硬件结构错误。如错误地理解硬件结构错误。如错误地理解I/O指令、中断指令、中断处理、设备启动和初始化等而引起的错误。处理、设备启动和初始化等而引起的错误。软件结构错误。由于软件结构不合理或不清晰软件结构错误。由于软件结构不合理或不清晰所引起的错误。往往在系统满载时才能发现。所引起的错误。往往在系统满载时才能发现。操作系统错误。该类错误是由于不了解操作系操作系统错误。该类错误是由于不了解操作系统而引起的,操作系统本身也有错误。统而引起的,操作系统本身也有错误。控制与顺序错误。包括事件的时间顺序不正确、控制与顺序错误。包括事件的时间顺序不正确、等待一个不可能发生的事件等等。等待一个不可能发生的事件等等。资源管理错误。既资源使用不当。资源死锁等。资源管理错误。既资源使用不当。资源死锁等。按照错误的性质和范围进行分类按照错误的性质和范围进行分类3加工错误(算法错误)加工错误(算法错误)计算与操作错误。指计算、函数求值和一般计算与操作错误。指计算、函数求值和一般操作过程中的错误。操作过程中的错误。初始化错误。如忘记了初始化工作区、数据初始化错误。如忘记了初始化工作区、数据区,错误地对循环变量赋初值,不正确的初区,错误地对循环变量赋初值,不正确的初始化等等。始化等等。局部控制和次序错误。如遗漏路径、不可达局部控制和次序错误。如遗漏路径、不可达到的代码段、循环嵌套或终止条件不正确、到的代码段、循环嵌套或终止条件不正确、死循环等等。死循环等等。逻辑错误。如多分支、判断条件不正确等。逻辑错误。如多分支、判断条件不正确等。按照错误的性质和范围进行分类按照错误的性质和范围进行分类4数据错误数据错误 动态数据错误。动态数据错误。静态数据错误。静态数据指直接或间接地出现静态数据错误。静态数据指直接或间接地出现在程序或数据库中的数据,其内容和格式都是在程序或数据库中的数据,其内容和格式都是固定的。因此在内容或格式上都可能存在错误。固定的。因此在内容或格式上都可能存在错误。数据内容错误。是指由于内容被破坏或被错误数据内容错误。是指由于内容被破坏或被错误地解释而造成的错误。地解释而造成的错误。数据结构错误。包括数据结构说明错误和数据数据结构错误。包括数据结构说明错误和数据结构使用错误。结构使用错误。数据属性错误。数据属性是指数据内容的含义数据属性错误。数据属性是指数据内容的含义或语义,如整数、字符等。数据属性错误是指或语义,如整数、字符等。数据属性错误是指对数据属性的错误解释和错误使用而导致的错对数据属性的错误解释和错误使用而导致的错误。误。按照错误的性质和范围进行分类按照错误的性质和范围进行分类5代码错误代码错误 代码错误主要包括语法错误、键入错误、代码错误主要包括语法错误、键入错误、对语句的理解错误等。对语句的理解错误等。例如,例如,Myers(1976)指出,美国第一个)指出,美国第一个去金星的太空任务的失败是由于在一个去金星的太空任务的失败是由于在一个Fortran do循环中缺少一个逗号。循环中缺少一个逗号。12.2 软件测试技术软件测试技术 12.2.1 白盒测试白盒测试 白盒测试的原则是:白盒测试的原则是:保证程序中每一独立的路径至少执行一次;保证程序中每一独立的路径至少执行一次;保证所有判定的每一个分支至少执行一次;保证所有判定的每一个分支至少执行一次;保证每个判定表达式中每个条件的所有可能结保证每个判定表达式中每个条件的所有可能结果至少出现一次;果至少出现一次;保证每一循环都在边界条件和一般条件至少各保证每一循环都在边界条件和一般条件至少各执行一次;执行一次;验证所有内部数据结构的有效性。验证所有内部数据结构的有效性。几种典型的白盒测试技术几种典型的白盒测试技术1逻辑覆盖逻辑覆盖 l逻辑覆盖是指设计测试用例对程序的内逻辑覆盖是指设计测试用例对程序的内部分支逻辑结构进行部分或全部覆盖的部分支逻辑结构进行部分或全部覆盖的技术。技术。1)语句覆盖)语句覆盖 2)判定覆盖)判定覆盖 3)条件覆盖)条件覆盖 4)判定)判定/条件覆盖条件覆盖 5)条件组合覆盖)条件组合覆盖 6)路径覆盖)路径覆盖逻辑覆盖逻辑覆盖1)语句覆盖)语句覆盖 使程序中的每个语句至少执行一次。使程序中的每个语句至少执行一次。令令x=2,y=0,z=4作为测试数据,程序执作为测试数据,程序执行路径为行路径为abcde,使语句段,使语句段1和和2各执行一各执行一次,实现了语句覆盖。它不能检测所有次,实现了语句覆盖。它不能检测所有判定条件的错误。比如,错把判定条件的错误。比如,错把z1写成了写成了z1)AND(y=0)(x=2)OR(z1)语句段语句段1语句段语句段2开始开始结束结束TTFFabcde2)判定覆盖)判定覆盖分支覆盖分支覆盖判定覆盖是指设计足够多的测试用例,判定覆盖是指设计足够多的测试用例,使每个判定的每种可能结果都至少出现使每个判定的每种可能结果都至少出现一次,也就是使每个判定的每个分支都一次,也就是使每个判定的每个分支都至少执行一次。至少执行一次。可以设计如下两组数据以满足判定覆盖:可以设计如下两组数据以满足判定覆盖:x=3,y=0,z=1(通过路径(通过路径abce););x=2,y=1,z=2(通过路径(通过路径acde)。)。判定覆盖必然满足语句覆盖。覆盖程度仍然判定覆盖必然满足语句覆盖。覆盖程度仍然不高。比如,错把不高。比如,错把z1写成了写成了z1)AND(y=0)(x=2)OR(z1)语句段语句段1语句段语句段2开始开始结束结束TTFFabcde3)条件覆盖)条件覆盖条件覆盖是指设计足够的测试用例,使每个判定表条件覆盖是指设计足够的测试用例,使每个判定表达式中的每个条件的每种可能值都至少出现一次。达式中的每个条件的每种可能值都至少出现一次。如图,共有如图,共有4个条件:个条件:x 1,y=0,x=2,z 1。条件覆盖要求设计测试用例,覆盖第一个判定表达条件覆盖要求设计测试用例,覆盖第一个判定表达式的式的x 1,y=0,x 1,y0等各种结果,并覆盖等各种结果,并覆盖第二个判定表达式的第二个判定表达式的x=2,z 1,x 2,z 1等各等各种结果。种结果。(x1)AND(y=0)(x=2)OR(z1)语句段语句段1语句段语句段2开始开始结束结束TTFFabcde3)条件覆盖)条件覆盖设计如下两组测试用例,可以满足条件覆盖的标准:设计如下两组测试用例,可以满足条件覆盖的标准:x=2,y=0,z=3(覆盖(覆盖x1,y=0,x=2,z1,通过路径,通过路径abcde););x=1,y=1,z=1(覆盖(覆盖x1,y0,x2,z1,通过路径,通过路径ace)。)。(x1)AND(y=0)(x=2)OR(z1)语句段语句段1语句段语句段2开始开始结束结束TTFFabcde3)条件覆盖)条件覆盖但是,如果设计如下一组测试用例:但是,如果设计如下一组测试用例:x=1,y=0,z=3(覆盖(覆盖x1,y=0,x2,z1,通过路径,通过路径acde););x=2,y=1,z=1(覆盖(覆盖x1,y0,x=2,z1,通过路径,通过路径ace)。)。虽满足条件覆盖,但不满足语句覆盖和判定覆盖。虽满足条件覆盖,但不满足语句覆盖和判定覆盖。(x1)AND(y=0)(x=2)OR(z1)语句段语句段1语句段语句段2开始开始结束结束TTFFabcde4)判定)判定/条件覆盖条件覆盖它是指设计足够的测试用例,使得它是指设计足够的测试用例,使得判定表达式中的每个条件都取到所判定表达式中的每个条件都取到所有可能的值(即满足条件覆盖),有可能的值(即满足条件覆盖),并使每个判定表达式也都取到所有并使每个判定表达式也都取到所有可能的判定结果(即满足判定覆盖)。可能的判定结果(即满足判定覆盖)。4)判定)判定/条件覆盖条件覆盖x=2,y=0,z=3(覆盖(覆盖x1,y=0,x=2,z1,通过路径,通过路径abcde););x=1,y=1,z=1(覆盖(覆盖x1,y0,x2,z1,通过路径,通过路径ace)。)。(x1)AND(y=0)(x=2)OR(z1)语句段语句段1语句段语句段2开始开始结束结束TTFFabcde5)条件组合覆盖)条件组合覆盖条件组合覆盖是指设计足够的测试条件组合覆盖是指设计足够的测试用例,使得每个判定表达式中条件用例,使得每个判定表达式中条件的各种可能值的组合都至少出现一的各种可能值的组合都至少出现一次。这是一种较强的逻辑覆盖。次。这是一种较强的逻辑覆盖。如图,两个判定表达式中含有如图,两个判定表达式中含有4个条件,个条件,共有共有8种组合:种组合:x1,y=0;x1,y0;x1,y=0;x1,y0;x=2,z1;x=2,z1;x2,z1;x2,z1。(x1)AND(y=0)(x=2)OR(z1)语句段语句段1语句段语句段2开始开始结束结束TTFFabcdex=2,y=0,z=3;覆盖条件组合覆盖条件组合和和,通过路径,通过路径abcde;x=2,y=1,z=1;覆盖条件组合覆盖条件组合和和,通过路径,通过路径acde;x=0,y=0,z=3;覆盖条件组合覆盖条件组合和和,通过路径,通过路径acde;x=1,y=1,z=1;覆盖条件组合覆盖条件组合和和,通过路径,通过路径ace。但未通过路。但未通过路径径abce。(x1)AND(y=0)(x=2)OR(z1)语句段语句段1语句段语句段2开始开始结束结束TTFFabcde6)路径覆盖)路径覆盖路径覆盖是指设计足够的测试用例,以覆盖被路径覆盖是指设计足够的测试用例,以覆盖被测程序中所有可能的路径。测程序中所有可能的路径。如图,共有如图,共有4条路径,设计以下条路径,设计以下4组测试用例,组测试用例,就可以覆盖这就可以覆盖这4条路径:条路径:x=2,y=0,z=3;覆盖路径;覆盖路径abcde x=2,y=1,z=1;覆盖路径;覆盖路径acde x=1,y=1,z=1;覆盖路径;覆盖路径ace x=3,y=0,z=1;覆盖路径;覆盖路径abce(x1)AND(y=0)(x=2)OR(z1)语句段语句段1语句段语句段2开始开始结束结束TTFFabcde没有覆盖条件组没有覆盖条件组合合和和x1,y=0 x2,z1实际测试实际测试在实际测试时,为了达到充分测试在实际测试时,为了达到充分测试的目的,一般以条件组合覆盖为主的目的,一般以条件组合覆盖为主设计测试用例,然后再补充部分测设计测试用例,然后再补充部分测试用例,以便实现路径覆盖。试用例,以便实现路径覆盖。课程名称:软件工程课程名称:软件工程 第第23讲讲班班 级:级:日日 期:期:教教 室:室:教学题目:教学题目:12.2 软件测试技术软件测试技术 12.2.1 白盒测试白盒测试 12.2.2 黑盒测试黑盒测试教学目的:掌握白盒、黑盒测试的概念和测试方教学目的:掌握白盒、黑盒测试的概念和测试方 法步骤。法步骤。教学重点:基本路径测试、黑盒测试技术教学重点:基本路径测试、黑盒测试技术教学难点:基本路径测试。教学难点:基本路径测试。教教 具:多媒体教室、电子教案具:多媒体教室、电子教案作作 业:业:12.2.1 白盒测试白盒测试 2基本路径测试基本路径测试 其主要思想是根据软件详细设计的过程其主要思想是根据软件详细设计的过程性描述或源代码中的控制流程求出程序性描述或源代码中的控制流程求出程序的环形复杂性度量,然后用此度量确定的环形复杂性度量,然后用此度量确定程序的基本路径集合,并由此导出一组程序的基本路径集合,并由此导出一组测试用例来覆盖该集合中的每一个独立测试用例来覆盖该集合中的每一个独立的路径,从而可以保证每个语句至少执的路径,从而可以保证每个语句至少执行一次。行一次。2基本路径测试基本路径测试l【例【例12.1】试用基本路径测试法对如】试用基本路径测试法对如下的下的PDL描述或如图描述或如图14-2-2所示的程所示的程序流程图设计测试用例。该例子描序流程图设计测试用例。该例子描述了最多输入述了最多输入50个值(以个值(以1作为输作为输入结束标志),计算其中有效的学入结束标志),计算其中有效的学生分数的个数、总分数和平均值。生分数的个数、总分数和平均值。PROCEDURE averageINTERFACE RETURNS average,sum,n1;*n1为有效成绩的个数。为有效成绩的个数。*INTERFACE ACCEPTS score;TYPE score1,50 IS SCALAR ARRAY;TYPE average,n1,n2,sum IS SCALAR;*n2为输入值的个数。为输入值的个数。*TYPE i IS INTEGER;i=1;n1=n2=0;sum=0;DO WHILE(score i 1)AND(n2=0)AND(score i 0 THEN average=sum/n1;ELSE average=1;END IF;END average 图图14-2-2 过程过程average的程序流程图的程序流程图开始开始 i=1,n1=n2=0,sum=0Score i-1 AND n20 AND scorei0average=sum/n1average=1 返回返回FFFTTT12和和345和和6789101112【例【例12.1】解:可按如下步骤解:可按如下步骤设计测试用例:设计测试用例:步骤步骤1:根据详细:根据详细设计或代码导出设计或代码导出过程过程average的的流图。流图。123456789111012R1R2R3R4R5R6【例【例12.1】步骤步骤2:据流图确定环形复杂性度量:据流图确定环形复杂性度量V(G):):1)V(G)=E N+2=16 12+2=6 ;其中其中E为流图中的边数,为流图中的边数,N为结点数;为结点数;2)V(G)=6(个区域);(个区域);3)V(G)=P+1=5+1=6 ;其中其中P为谓词结点的个数。在流图中,结点为谓词结点的个数。在流图中,结点2、3、5、6、9是谓词结点。是谓词结点。【例【例12.1】步步骤骤3:确确定定基基本本路路径径集集合合(即即独独立立路路径径集集合合)。一一条条独独立立路路径径是是指指,和和其其他他的的独独立立路路径径相相比比,至至少少引引入入一一个个新新处处理理语语句句或或一一个个新新判判断断的的程程序序通通路路。V(G)值值正正好好等等于于该该程程序序的的独独立立路路径径的条数。于是可确定的条数。于是可确定6条独立的路径:条独立的路径:路径路径1:12291012路径路径2:1291112路径路径3:12391012路径路径4:1234582路径路径5:12345682路径路径6:123456782【例【例12.1】步步骤骤4:为为每每一一条条独独立立路路径径各各设设计计一一组组测测试试用用例例,以便强迫程序沿着该路径至少执行一次。以便强迫程序沿着该路径至少执行一次。1)路径)路径1的测试用例:的测试用例:scorek=有效分数值,当有效分数值,当k i;score i=1,2i50;期期望望结结果果:根根据据输输入入的的有有效效分分数数算算出出正正确确的的分分数数个数个数n1、总分、总分sum和平均分和平均分average。2)路径)路径2的测试用例:的测试用例:score 1=1;期望的结果:期望的结果:average=1,其他量保持初值。,其他量保持初值。【例【例12.1】3)路径)路径3的测试用例:的测试用例:输输入入多多于于50个个有有效效分分数数,即即试试图图处处理理51个个分数,要求前分数,要求前51个为有效分数;个为有效分数;期期望望结结果果:n1=50、且且算算出出正正确确的的总总分分和和平平均分。均分。4)路径)路径4的测试用例:的测试用例:score i=有效分数,有效分数,当当i50;score k 0,k i ;期期望望结结果果:根根据据输输入入的的有有效效分分数数算算出出正正确确的的 分分 数数 个个 数数 n1、总总 分分 sum和和 平平 均均 分分average。【例【例12.1】5)路径)路径5的测试用例:的测试用例:score i=有效分数,有效分数,当当i100,k i ;期期望望结结果果:根根据据输输入入的的有有效效分分数数算算出出正正确确的的 分分 数数 个个 数数 n1、总总 分分 sum和和 平平 均均 分分average。6)路径)路径6的测试用例:的测试用例:score i=有效分数,有效分数,当当i50;期期望望结结果果:根根据据输输入入的的有有效效分分数数算算出出正正确确的的 分分 数数 个个 数数 n1、总总 分分 sum和和 平平 均均 分分average。3循环测试循环测试1)对对于于最最多多为为n次次的的单单循循环环,可可设设计计测测试试用用例例实实现下列测试:现下列测试:跳过循环,即一次也不执行;跳过循环,即一次也不执行;仅循环仅循环1次;次;循环循环2次;次;循环循环m次,次,mn;分别循环分别循环n 1次,次,n次,次,n+1次。次。2)对于嵌套循环的测试:)对于嵌套循环的测试:从从最最内内层层循循环环开开始始测测试试,此此时时外外层层循循环环都都取取最最小值,对内层进行单循环的测试;小值,对内层进行单循环的测试;向向外外退退一一层层进进行行测测试试,此此时时其其内内层层循循环环取取一一些些典型值,其外层循环仍取最小值;典型值,其外层循环仍取最小值;继续向外层扩展,直至测试完成。继续向外层扩展,直至测试完成。12.2.2 黑盒测试黑盒测试主要是测试软件是否满足功能需求。主要是测试软件是否满足功能需求。黑盒测试主要测试的错误类型有:黑盒测试主要测试的错误类型有:不正确或遗漏的功能;不正确或遗漏的功能;接口错误;接口错误;性能错误;性能错误;数据结构或外部数据访问错误;数据结构或外部数据访问错误;初始化或终止条件错误等等。初始化或终止条件错误等等。黑盒测试设计测试用例的方法:黑盒测试设计测试用例的方法:等价类的划分、边界值分析、等价类的划分、边界值分析、错误推测、组合数据测试等。错误推测、组合数据测试等。1等价类划分等价类划分等价类划分的思想是将输入数据按有效的(合等价类划分的思想是将输入数据按有效的(合理的)和无效的(不合理的)划分成若干个等理的)和无效的(不合理的)划分成若干个等价类,认为测试等价类中的一个代表值的结果价类,认为测试等价类中的一个代表值的结果就等于对该类其他值的测试。利用等价类划分就等于对该类其他值的测试。利用等价类划分的测试步骤如下:的测试步骤如下:1)划分等价类)划分等价类 从程序的功能说明中找出每个输入条件,然后从程序的功能说明中找出每个输入条件,然后将其划分成若干个有效和无效的等价类。下面将其划分成若干个有效和无效的等价类。下面给出等价类划分的几条经验性原则供参考:给出等价类划分的几条经验性原则供参考:等价类划分的几条经验性原则等价类划分的几条经验性原则如如果果规规定定了了输输入入值值的的范范围围,则则可可划划分分出出一一个个有有效效的的等等价价类类(输输入入值值在在此此范范围围内内)和和两两个个无无效效的等价类(输入值小于最小值或大于最大值)。的等价类(输入值小于最小值或大于最大值)。如如果果规规定定了了数数据据输输入入的的个个数数,则则可可划划分分出出一一个个有有效效的的等等价价类类(输输入入值值的的个个数数符符合合规规定定)和和两两个个无无效效的的等等价价类类(输输入入值值的的个个数数少少于于或或多多于于规规定个数)。定个数)。如如果果规规定定了了输输入入数数据据的的一一组组值值,而而且且程程序序对对不不同同的的输输入入值值进进行行不不同同的的处处理理,则则每每个个允允许许的的输输入入值值是是一一个个有有效效的的等等价价类类,此此外外还还有有一一个个无无效效的等价类(规定的这一组值以外的值)。的等价类(规定的这一组值以外的值)。等价类划分的几条经验性原则等价类划分的几条经验性原则如如果果规规定定了了输输入入数数据据必必须须遵遵循循的的规规则则,则则可可划划分分出出一一个个有有效效的的等等价价类类(符符合合规规则则)和和若若干干个个无无效效的的等等价价类类(从从不不同同的的角度违反规则)。角度违反规则)。如如果果输输入入条条件件规规定定了了一一个个集集合合,则则可可划划分分出出一一个个有有效效的的等等价价类类(此此集集合合)和和一一个无效的等价类(此集合的补集)。个无效的等价类(此集合的补集)。1等价类划分等价类划分2)设计测试用例)设计测试用例等等价价类类划划分分应应列列表表,并并为为每每一一个个等等价价类类编号。编号。设设计计一一个个有有效效等等价价类类的的测测试试用用例例,使使其其尽尽可可能能多多地地覆覆盖盖尚尚未未被被覆覆盖盖过过的的有有效效等等价价类类。如如此此重重复复,直直到到所所有有有有效效等等价价类类都被覆盖为止。都被覆盖为止。设计一个测试用例,仅覆盖一个无效等设计一个测试用例,仅覆盖一个无效等价类,如此重复,直到所有无效等价类价类,如此重复,直到所有无效等价类都被覆盖为止。都被覆盖为止。2)设计测试用例)设计测试用例【例【例12.1】设有一个档案管理系统,要求】设有一个档案管理系统,要求用户输入以年月表示的日期。假设日期用户输入以年月表示的日期。假设日期限定在限定在1990年年1月月2003年年12月,并规定月,并规定日期由日期由6位数字字符组成,前位数字字符组成,前4位表示年,位表示年,后后2位表示月。现用等价类划分法设计测位表示月。现用等价类划分法设计测试用例,来测试程序的试用例,来测试程序的“日期检查功能日期检查功能”。【例【例12.1】1)划分等价类并编号)划分等价类并编号表表14-1等价类划分的结果等价类划分的结果输入等价类输入等价类有效等价类有效等价类无效等价类无效等价类日期的类型日期的类型及长度及长度6位数字字符位数字字符 有非数字字符有非数字字符少于少于6位数字字符位数字字符多于多于6位数字字符位数字字符年份范围年份范围在在19902003之间之间小于小于1990大于大于2003月份范围月份范围在在0112之间之间 等于等于00大于大于12【例【例12.1】2)设计测试用例,以便覆盖所有的有效等)设计测试用例,以便覆盖所有的有效等 价类价类在在表表14-1中中列列出出了了3个个有有效效等等价价类类,编编号号分分别为别为、,设计的测试用例如下:,设计的测试用例如下:测试数据测试数据 期望结果期望结果 覆盖的有效等价类覆盖的有效等价类200211 输入有效输入有效 、【例【例12.1】3)为每一个无效等价类设计一个测试用例,)为每一个无效等价类设计一个测试用例,设计结果如下:设计结果如下:测试数据测试数据 期望结果期望结果 覆盖的无效等价类覆盖的无效等价类95June 无效输入无效输入 20036 无效输入无效输入 2001006 无效输入无效输入 198912 无效输入无效输入 200401 无效输入无效输入 200100 无效输入无效输入 200113 无效输入无效输入 2边界值分析边界值分析边界值分析(边界值分析(boundary value analysis,BVA)是指设计测试用例,使程序在输)是指设计测试用例,使程序在输入或输出的边界值或者边界值左右的值入或输出的边界值或者边界值左右的值执行。执行。边界值分析方法可以单独设计测试用例,边界值分析方法可以单独设计测试用例,也可以作为等价类划分方法的补充,即也可以作为等价类划分方法的补充,即在各个等价类中主要是选择边界上及其在各个等价类中主要是选择边界上及其左右的值。例如例左右的值。例如例12.1中对月份范围的测中对月份范围的测试就可以选择试就可以选择00、01、02、11、12、13等数据作为测试用例。等数据作为测试用例。边界值分析方法设计测试用例的经验性原则边界值分析方法设计测试用例的经验性原则1)如如果果输输入入条条件件指指定定了了范范围围a,b,则则a、b以以及及紧紧挨挨a、b左左右右的的各各

    注意事项

    本文(软件工程第12章34187.pptx)为本站会员(jix****n11)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开