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

    软件工程教学第7章软件测试课件.ppt

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

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

    软件工程教学第7章软件测试课件.ppt

    第第7 7章章 软件测试软件测试 软件测试的理论基础软件测试的理论基础7.1软件测试的方法软件测试的方法 7.2软件测试的流程及技术软件测试的流程及技术 7.3 软件测试职业素质培养软件测试职业素质培养7.47.1 7.1 软件测试的理论基础软件测试的理论基础7.1.1软件测试的定义软件测试的定义测测试试的的英英文文单单词词是是text,即即检检验验或或考考试试之之意意。测测试试是是软软件件生生存存周周期期中中十十分分重重要要的的一一个个过过程程,是产品发布、提交给最终用户前的稳定化阶段。是产品发布、提交给最终用户前的稳定化阶段。软软件件测测试试是是测测试试中中的的特特例例,它它的的测测试试对对象象是是软软件件。“软软件件测测试试”的的经经典典定定义义是是在在规规定定条条件件下下对对程程序序进进行行操操作作,以以发发现现错错误误,对对软软件件质质量量进行评估。进行评估。7.1.2软件测试的发展历程软件测试的发展历程 1、从测试到调试、从测试到调试软件测试是伴随着软件的产生而产生的。早期的软软件测试是伴随着软件的产生而产生的。早期的软件开发过程中,那时软件规模都很小、复杂程度低,软件开发过程中,那时软件规模都很小、复杂程度低,软件开发的过程混乱无序、相当随意,测试的含义比较狭件开发的过程混乱无序、相当随意,测试的含义比较狭窄,开发人员将测试等同于窄,开发人员将测试等同于“调试调试”,目的是纠正软件中,目的是纠正软件中已经知道的故障,常常由开发人员自己完成这部分的工已经知道的故障,常常由开发人员自己完成这部分的工作。作。2、开发与测试融合、开发与测试融合软件测试的目的是为了检验软件系统是否满足需求。软件测试的目的是为了检验软件系统是否满足需求。它再也不是一个一次性的,而且只是开发后期的活动,它再也不是一个一次性的,而且只是开发后期的活动,而是与整个开发流程融合成一体。而是与整个开发流程融合成一体。7.1.3软件测试的目的和目标软件测试的目的和目标软件测试的目的决定了如何去组织测试。软件测试的目的决定了如何去组织测试。如果测试的目的是为了尽可能多地找出软件如果测试的目的是为了尽可能多地找出软件缺陷,那么测试就应该直接针对软件比较复缺陷,那么测试就应该直接针对软件比较复杂的部分或是以前出现软件缺陷比较多的位杂的部分或是以前出现软件缺陷比较多的位置。置。不同的机构会有不同的测试目的,相同不同的机构会有不同的测试目的,相同的机构也可能有不同测试目的,可能是测试的机构也可能有不同测试目的,可能是测试不同区域或是对同一区域的不同层次的测试。不同区域或是对同一区域的不同层次的测试。测试的目的或定义:测试的目的或定义:1.测试是为了发现程序中的错误而执行程测试是为了发现程序中的错误而执行程序的过程;序的过程;2.好的测试方案是极可能发现迄今为止尚好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案;未发现的错误的测试方案;3.成功的测试是发现了至今为止尚未发现成功的测试是发现了至今为止尚未发现的错误的测试。的错误的测试。软件缺陷的生命周期软件缺陷的生命周期潜伏期错误引入缺陷被发现修复7.1.4软件测试的原则软件测试的原则1尽早开展测试工作尽早开展测试工作;2完全测试不可把握最优测试量完全测试不可把握最优测试量;3严防寄生虫现象严防寄生虫现象;4并非所有的软件缺陷都能修复并非所有的软件缺陷都能修复;5严防杀虫剂现象严防杀虫剂现象;6难以说清的软件缺陷难以说清的软件缺陷;7产品说明书不断变化产品说明书不断变化;8软件测试人员在产品小组中不受欢迎。软件测试人员在产品小组中不受欢迎。软件测试的方法可以从宏观和微观两软件测试的方法可以从宏观和微观两个方面看:从宏观看,软件测试方法也就个方面看:从宏观看,软件测试方法也就是讨论软件测试的方法论。从微观看,软是讨论软件测试的方法论。从微观看,软件测试方法就是软件测试过程中所使用的件测试方法就是软件测试过程中所使用的具体的测试方法。具体的测试方法。7.2 7.2 软件测试的方法软件测试的方法7.2.1静态测试和动态测试静态测试和动态测试 从是否需要执行被测软件的角度,可从是否需要执行被测软件的角度,可分为静态测试和动态测试。分为静态测试和动态测试。1静态测试静态测试静态测试是指无须执行被测代码,而静态测试是指无须执行被测代码,而是借助专用的软件测试工具评审软件文档是借助专用的软件测试工具评审软件文档或程序,度量程序静态复杂度,检查软件或程序,度量程序静态复杂度,检查软件是否符合编程标准,借以发现编写的程序是否符合编程标准,借以发现编写的程序的不足之处,减少错误出现的概率。的不足之处,减少错误出现的概率。2动态测试动态测试动态测试是使被测代码在相对真实环动态测试是使被测代码在相对真实环境下运行,从多角度观察程序运行时能体境下运行,从多角度观察程序运行时能体现的功能、逻辑、行为、结构等行为,以现的功能、逻辑、行为、结构等行为,以发现其中的错误现象。发现其中的错误现象。7.2.1静态测试和动态测试静态测试和动态测试 黑黑盒盒测测试试是是基基于于功功能能的的测测试试,只只关关心心软软件件的的功功能能,而而不不考考虑虑其其内内部部结结构构,也也叫叫功功能能测测试试;白白盒盒测测试试只只关关心心软软件件内内部部逻逻辑辑结结构构,测测试试覆覆盖盖率率,是是由由逻逻辑辑驱驱动动的的测测试试。为为了了较较快快得得到到测测试试效效果果,通通常常先先进进行行功功能能测测试试,达达到到所所有有功功能能后后,为为确确定定软软件件的的可可靠性进行必要的覆盖测试。靠性进行必要的覆盖测试。7.2.2白盒测试和黑盒测试白盒测试和黑盒测试白盒测试也称结构测试或逻辑驱动测白盒测试也称结构测试或逻辑驱动测试,它是按照程序内部的结构测试程序,试,它是按照程序内部的结构测试程序,通过测试来检测产品内部动作是否按照设通过测试来检测产品内部动作是否按照设计规格说明书的规定正常进行,检验程序计规格说明书的规定正常进行,检验程序中的每条通路是否都能按预定要求正确工中的每条通路是否都能按预定要求正确工作。作。1 1白盒测试白盒测试(1)逻辑覆盖)逻辑覆盖逻辑覆盖是以程序内部的逻辑结构为基础的逻辑覆盖是以程序内部的逻辑结构为基础的测试用例设计技术,属白盒测试。最彻底的白盒测试用例设计技术,属白盒测试。最彻底的白盒测试是覆盖程序中的每一条路径,但是由于程序测试是覆盖程序中的每一条路径,但是由于程序中含有循环,要执行每一条路径是不可能的。因中含有循环,要执行每一条路径是不可能的。因此我们只是希望采用的测试用例覆盖程序内部逻此我们只是希望采用的测试用例覆盖程序内部逻辑的程度尽量高些。为了衡量测试的覆盖程度,辑的程度尽量高些。为了衡量测试的覆盖程度,需要建立一些作为测试彻底度的定量衡量标准。需要建立一些作为测试彻底度的定量衡量标准。目前常用的覆盖标准是:目前常用的覆盖标准是:语句覆盖;判定覆盖;条件覆盖;语句覆盖;判定覆盖;条件覆盖;判定判定/条件覆盖;条件组合覆盖。条件覆盖;条件组合覆盖。a.语句覆盖语句覆盖语句覆盖就是设计若干个测试用例,运行所语句覆盖就是设计若干个测试用例,运行所测的程序,使得每一可执行语句至少执行一次。测的程序,使得每一可执行语句至少执行一次。b.判定覆盖判定覆盖判定覆盖就是设计若干个测试用例,使程序判定覆盖就是设计若干个测试用例,使程序中的每个判断至少出现一次中的每个判断至少出现一次“真值真值”和一次和一次“假值假值”,即程序中的每个分支都至少执行一次。,即程序中的每个分支都至少执行一次。c.条件覆盖条件覆盖条件覆盖是指利用若干个测试用例,使被测条件覆盖是指利用若干个测试用例,使被测试的程序中,对应每个判断中每个条件的所有可试的程序中,对应每个判断中每个条件的所有可能情况均至少执行一次。能情况均至少执行一次。d.判定判定/条件覆盖条件覆盖判定判定/条件覆盖就是设计足够多的测试用例,条件覆盖就是设计足够多的测试用例,使得程序中每个判断条件的所有可能的结果至少使得程序中每个判断条件的所有可能的结果至少取到一次,又使每次判断的每个分支至少通过一取到一次,又使每次判断的每个分支至少通过一次。次。e.条件组合覆盖条件组合覆盖解决上述问题的新标准是条件组合覆盖。条解决上述问题的新标准是条件组合覆盖。条件组合覆盖就是设计足够多的测试用例,使得每件组合覆盖就是设计足够多的测试用例,使得每个判断的所有可能的条件取值组合至少执行一次。个判断的所有可能的条件取值组合至少执行一次。(2)基本路径覆盖)基本路径覆盖逻辑覆盖测试主要关注的是程序内部的逻辑逻辑覆盖测试主要关注的是程序内部的逻辑结构,最彻底的测试就是覆盖程序中的每一条路结构,最彻底的测试就是覆盖程序中的每一条路径,但在实际应用中,一个不太复杂的程序,要径,但在实际应用中,一个不太复杂的程序,要覆盖的路径数都是一个庞大的数目,而要执行每覆盖的路径数都是一个庞大的数目,而要执行每一条路径更是不可能的。因此我们希望通过一定一条路径更是不可能的。因此我们希望通过一定的方法将要覆盖的路径数压缩到一个有限的范围的方法将要覆盖的路径数压缩到一个有限的范围内,通过合理地选择一组穿过程序的测试路径,内,通过合理地选择一组穿过程序的测试路径,以实现达到某种测试度量,而确保程序中每一个以实现达到某种测试度量,而确保程序中每一个语句都执行一次。语句都执行一次。a.控制流图控制流图控制流图是用来考察测试路径的有用工具。控制流图是用来考察测试路径的有用工具。控制流图是程序控制结构的图形表示,实际上就控制流图是程序控制结构的图形表示,实际上就是一种简化了的流程图。其基本元素是结点和控是一种简化了的流程图。其基本元素是结点和控制流。制流。用程序流程图和控制流图来表示的程序基本用程序流程图和控制流图来表示的程序基本用程序流程图和控制流图来表示的程序基本用程序流程图和控制流图来表示的程序基本控制结构。控制结构。控制结构。控制结构。b.路径的选取路径的选取所谓路径测试,就是对控制流图中每所谓路径测试,就是对控制流图中每一条可能的程序执行路径至少测试一次,一条可能的程序执行路径至少测试一次,如果程序中含有循环,则每个循环至少执如果程序中含有循环,则每个循环至少执行一次。行一次。1243abecd设计覆盖所有点和设计覆盖所有点和所有边的测试路径,然所有边的测试路径,然后将测试路径结合起来后将测试路径结合起来就可以得到实现路径覆就可以得到实现路径覆盖的测试路径。盖的测试路径。黑盒测试也称功能测试,它是通过测试来黑盒测试也称功能测试,它是通过测试来检测每个功能是否都能正常使用。检测每个功能是否都能正常使用。在测试中,把程序看作一个不能打开的黑在测试中,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性盒子,在完全不考虑程序内部结构和内部特性的情况下,在程序接口进行测试,它只检查程的情况下,在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正用,程序是否能适当地接收输入数据而产生正确的输出信息。确的输出信息。黑盒测试着眼于程序外部结构,不考虑内黑盒测试着眼于程序外部结构,不考虑内部逻辑结构,主要针对软件界面和软件功能进部逻辑结构,主要针对软件界面和软件功能进行测试。行测试。2 2黑盒测试黑盒测试(1)等价类划分)等价类划分等价类划分是一种典型的黑盒测试方法。其基本思想是将等价类划分是一种典型的黑盒测试方法。其基本思想是将程序的输入区域划分为若干个等价类,用每个等价类中的一个程序的输入区域划分为若干个等价类,用每个等价类中的一个具有代表性的输入数据作为测试数据。具有代表性的输入数据作为测试数据。在划分等价类时,我们可以将之划分为两类在划分等价类时,我们可以将之划分为两类:a.有效等价类:是指对程序的规格说明是合理的、有意义的有效等价类:是指对程序的规格说明是合理的、有意义的输入数据所构成的集合。有效等价类可以是一个,也可以是多输入数据所构成的集合。有效等价类可以是一个,也可以是多个。利用它可以检验程序是否实现了程序的规格说明预先规定个。利用它可以检验程序是否实现了程序的规格说明预先规定的功能和性能。的功能和性能。b.无效等价类:是指对程序的规格说明是不合理的或无意义无效等价类:是指对程序的规格说明是不合理的或无意义的输入数据所构成的集合。无效等价类至少有一个。利用它可的输入数据所构成的集合。无效等价类至少有一个。利用它可以检验程序中的功能和性能是否不符合程序的规格说明。以检验程序中的功能和性能是否不符合程序的规格说明。确定等价类有以下几条原则:确定等价类有以下几条原则:1)如果一个输入条件规定了输入值的范围,则可确定)如果一个输入条件规定了输入值的范围,则可确定一个有效等价类和两个无效等价类。一个有效等价类和两个无效等价类。2)如果一个输入条件规定了值的个数,则可确定一个)如果一个输入条件规定了值的个数,则可确定一个有效等价类和两个无效等价类。有效等价类和两个无效等价类。3)如果一个输入条件规定了值的集合,而且有理由确)如果一个输入条件规定了值的集合,而且有理由确信程序对每个输入数据都分别进行处理,则可以确定一信程序对每个输入数据都分别进行处理,则可以确定一个有效等价类(在集合中的所有元素)及一个无效等价个有效等价类(在集合中的所有元素)及一个无效等价类(不在集合中的元素)。类(不在集合中的元素)。4)如果一个输入条件规定了)如果一个输入条件规定了“必须如何必须如何”的条件,则可的条件,则可以确定一个有效等价类及一个无效等价类。以确定一个有效等价类及一个无效等价类。5)如果有理由确信某一个已划分的等价类中各元素在)如果有理由确信某一个已划分的等价类中各元素在程序中处理方式不同,则应将此等价类划分成更小的等程序中处理方式不同,则应将此等价类划分成更小的等价类。价类。选择测试用例的基本步骤是:选择测试用例的基本步骤是:1)给每个等价类规定一个唯一的编号;)给每个等价类规定一个唯一的编号;2)设计新的测试用例,使它覆盖尽可能多的尚未被覆)设计新的测试用例,使它覆盖尽可能多的尚未被覆盖的有效等价类,重复这一步,直到所有有效等价类盖的有效等价类,重复这一步,直到所有有效等价类均被覆盖为止;均被覆盖为止;3)设计新的测试用例,使它覆盖一个且仅一个未被覆)设计新的测试用例,使它覆盖一个且仅一个未被覆盖的无效等价类,重复这一步,直到所有无效等价类盖的无效等价类,重复这一步,直到所有无效等价类均被覆盖为止。均被覆盖为止。必须注意,对有效等价类,一个测试用例可以覆必须注意,对有效等价类,一个测试用例可以覆盖几个,因此应该用尽可能少的测试用例去覆盖所有盖几个,因此应该用尽可能少的测试用例去覆盖所有有效等价类;对无效等价类,一个测试用例只能覆盖有效等价类;对无效等价类,一个测试用例只能覆盖一个,这是因为程序中的某些错误检测往往会抑制其一个,这是因为程序中的某些错误检测往往会抑制其他的错误检测。他的错误检测。(2 2)边界值分析)边界值分析边界值分析是对等价类划分法的补充。边界值分析是对等价类划分法的补充。所谓边界值分析,就是选择这样的测试用例,它能所谓边界值分析,就是选择这样的测试用例,它能使被测程序在边界值及其附近运行,从而更有效地暴露使被测程序在边界值及其附近运行,从而更有效地暴露程序中隐藏的错误。因为经验告诉我们,程序常常在处程序中隐藏的错误。因为经验告诉我们,程序常常在处理边界情况时易于犯错误,所以检查边界情况的测试用理边界情况时易于犯错误,所以检查边界情况的测试用例往往是高效的。所以输入等价类和输出等价类就是我例往往是高效的。所以输入等价类和输出等价类就是我们应着重测试的边界情况。应当选取正好等于、刚刚大们应着重测试的边界情况。应当选取正好等于、刚刚大于或刚刚小于边界的值作为测试数。于或刚刚小于边界的值作为测试数。用边界值分析法设计测试用例时,有以下几条原则:用边界值分析法设计测试用例时,有以下几条原则:1 1)如果输入条件规定了值的范围,则取刚达到这个范围的边)如果输入条件规定了值的范围,则取刚达到这个范围的边界的值,以及刚刚超出范围的无效数据作为测试用例。界的值,以及刚刚超出范围的无效数据作为测试用例。2 2)如果输入条件规定了值的个数,则用最大个数、最小个数、)如果输入条件规定了值的个数,则用最大个数、最小个数、比最大个数多比最大个数多1 1、比最小个数少、比最小个数少1 1的数作为测试用例。的数作为测试用例。3 3)对每个输出条件使用第()对每个输出条件使用第(1 1)条原则。)条原则。4 4)对每个输出条件使用第()对每个输出条件使用第(2 2)条原则。)条原则。5 5)如果程序的输入域或输出域是个有序集合,则应选取集合)如果程序的输入域或输出域是个有序集合,则应选取集合的第一个元素和最后一个元素作为测试用例。的第一个元素和最后一个元素作为测试用例。6 6)如果程序中使用了一个内部数据结构,则应当选择这个内)如果程序中使用了一个内部数据结构,则应当选择这个内部数据结构的边界上的值作为测试用例。部数据结构的边界上的值作为测试用例。7 7)分析规格说明,找出其他可能的边界条件。)分析规格说明,找出其他可能的边界条件。(3 3)错误推测法)错误推测法错误推测法就是根据经验或直觉来推测程序容易错误推测法就是根据经验或直觉来推测程序容易发生的各种错误,然后有针对性地设计能检查出这些发生的各种错误,然后有针对性地设计能检查出这些错误的测试用例。由于错误推测法是基于经验的,因错误的测试用例。由于错误推测法是基于经验的,因而没有确定的产生测试用例的步骤。而没有确定的产生测试用例的步骤。错误推测法的基本思路是:列举出程序中所有可错误推测法的基本思路是:列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据它们选能有的错误和容易发生错误的特殊情况,根据它们选择测试用例。择测试用例。(4 4)因果图)因果图 1 1)基本概念)基本概念 等价类划分法和边界值分析法的缺陷是没有检查等价类划分法和边界值分析法的缺陷是没有检查各种输入条件的组合。这样虽然各种单独输入条件可各种输入条件的组合。这样虽然各种单独输入条件可以发现程序的错误,但多个输入条件组合起来可能出以发现程序的错误,但多个输入条件组合起来可能出现的错误却被忽略了。采用因果图方法能帮助我们按现的错误却被忽略了。采用因果图方法能帮助我们按一定步骤选择一组高效的测试用例,同时还能为我们一定步骤选择一组高效的测试用例,同时还能为我们指出程序规格说明中存在的错误。指出程序规格说明中存在的错误。因果图法的基本思想是:从用自然语言书写的程因果图法的基本思想是:从用自然语言书写的程序规格说明中找出序规格说明中找出“因因”(输入条件或输入条件的等(输入条件或输入条件的等价类)和价类)和“果果”(输出或程序状态的修改),通过画(输出或程序状态的修改),通过画因果图将程序规格说明书转换成一张判定表,再为判因果图将程序规格说明书转换成一张判定表,再为判定表的每一列设计测试用例。定表的每一列设计测试用例。2)因果图的基本符号和约束符号)因果图的基本符号和约束符号因果图的基本符号因果图的基本符号在因果图中,用在因果图中,用Ci表示表示“因因”,用,用Ei表示表示“果果”。包。包括下列图形符号:括下列图形符号:恒等:表示恒等:表示“因因“与与“果果”之间的一对一的对应关之间的一对一的对应关系。若系。若“因因”出现,则出现,则“果果”出现;若出现;若“因因”不出现,不出现,则则“果果”也不出现。如下图所示:也不出现。如下图所示:CE非:表示非:表示“因因“与与“果果”之间的一种否定关系。若之间的一种否定关系。若“因因”出现,则出现,则“果果”不出现;若不出现;若“因因”不出现,则不出现,则“果果”会出现。如下图所示:会出现。如下图所示:CE或:表示若几个或:表示若几个“因因”中有一个出现,则中有一个出现,则“果果”出现,出现,只有当这几个只有当这几个“因因”都不出现时,都不出现时,“果果”才不出现。才不出现。如下图所示:如下图所示:C2EC1C3与:表示若几个与:表示若几个“因因”都出现,都出现,“果果”才出现。才出现。若几个若几个“因因”中有一个不出现,中有一个不出现,“果果”就不出就不出现。如下图所示:现。如下图所示:C2EC1C3因果图的约束符号因果图的约束符号为了表示为了表示“因因”与与“因因”之间,之间,“果果”与与“果果”之间可能存在的约束条件,在因果图中可以附加之间可能存在的约束条件,在因果图中可以附加一些表示约束条件的符号:一些表示约束条件的符号:互斥(互斥(E E):表示两个):表示两个“因因”不能同时成立。不能同时成立。如下图所示:如下图所示:C2C1E包含(包含(I):表示三个):表示三个“因因”中有一个成立。如下中有一个成立。如下图所示:图所示:C2C1C3I唯一(唯一(O):表示两个):表示两个“因因”中必须有一个且仅有中必须有一个且仅有一个成立。如下图所示:一个成立。如下图所示:C2C1O要求(要求(R):表示当一个):表示当一个“因因”出现出现时,另一个时,另一个“因因”也必须出现。不可也必须出现。不可能一个能一个“因因”出现,另一个出现,另一个“因因”不出不出现。现。C2C1R屏蔽(屏蔽(M):该约束是对输出而言。):该约束是对输出而言。表示当一个表示当一个“果果”出现时,另一个出现时,另一个“果果”不能出现;而当这个不能出现;而当这个“果果”不出不出现时,另一个现时,另一个“果果”出现与不出现不出现与不出现不定。定。C2C1M3)用因果图法设计测试用例的步骤)用因果图法设计测试用例的步骤第一步第一步分析程序规格说明书,识别出哪些是原因即分析程序规格说明书,识别出哪些是原因即“因因”,哪些是结果即哪些是结果即“果果”,并给每一个,并给每一个“因因”和和“果果”加以编号。加以编号。第二步第二步根据程序规格说明书中规定的根据程序规格说明书中规定的“因因”与与“果果”之间,之间,“因因”与与“因因”之间的对应关系,画出因果图。之间的对应关系,画出因果图。第三步第三步由于语法或环境的限制,有些原因和结果的组合是由于语法或环境的限制,有些原因和结果的组合是不一定出现的。为表明这些特定的情况,在因果图上用不一定出现的。为表明这些特定的情况,在因果图上用特殊的符号标明约束条件。特殊的符号标明约束条件。第四步第四步由因果图生成判定表。具体方法是:选取每一个由因果图生成判定表。具体方法是:选取每一个“果果”,由它开始沿因果图反向追踪,找出使它成立的受约束,由它开始沿因果图反向追踪,找出使它成立的受约束的的“因因”的组合,在判定表中开辟一列加以描述,并就每的组合,在判定表中开辟一列加以描述,并就每个个“因因”的组合确定其他的组合确定其他“果果”的状态。的状态。第五步第五步把判定表的每一列写成一个测试用例。把判定表的每一列写成一个测试用例。黑盒测试的优点:黑盒测试的优点:l)基本上不需人监控,如果程序停止运行,一般就是被测)基本上不需人监控,如果程序停止运行,一般就是被测试程序终止了;试程序终止了;2)设计完测试用例之后,接下来的工作就会很简单。)设计完测试用例之后,接下来的工作就会很简单。黑盒测试的缺点:黑盒测试的缺点:l)结果取决于测试用例的设计,测试用例的设计部分来源)结果取决于测试用例的设计,测试用例的设计部分来源于经验;于经验;2)没有状态转换的概念,目前一些成功的例子基本上都)没有状态转换的概念,目前一些成功的例子基本上都是针对是针对PDU的,还做不到针对被测试程序的状态转换;的,还做不到针对被测试程序的状态转换;3)就没有状态概念的测试来说,寻找和确定造成程序)就没有状态概念的测试来说,寻找和确定造成程序crash的测试用例很烦琐必须把周围可能的测试用例的测试用例很烦琐必须把周围可能的测试用例单独确认。就有状态的测试来说,就更麻烦,尤其不是单独确认。就有状态的测试来说,就更麻烦,尤其不是一个单独的测试用例造成的问题。一个单独的测试用例造成的问题。7.3 7.3 软件测试的流程及技术软件测试的流程及技术测试流程按测试流程按5个步骤进行,即单元测试、集成测试、个步骤进行,即单元测试、集成测试、确认测试、系统测试和验收测试。确认测试、系统测试和验收测试。单元测试指集中对用源代码实现的每一个程序单元单元测试指集中对用源代码实现的每一个程序单元进行测试,检查各个程序模块是否正确地实现了规定的进行测试,检查各个程序模块是否正确地实现了规定的功能。功能。集成测试把已测试过的模块组装起来,主要对与设集成测试把已测试过的模块组装起来,主要对与设计相关的软件体系结构的构造进行测试。计相关的软件体系结构的构造进行测试。确认测试则是检查已实现的软件是否满足了需求规确认测试则是检查已实现的软件是否满足了需求规格说明中确定了的各种需求,以及软件配置是否完全、格说明中确定了的各种需求,以及软件配置是否完全、正确。正确。系统测试把已经经过确认的软件纳入实际运行环境系统测试把已经经过确认的软件纳入实际运行环境中,与其他系统成分组合在一起进行测试。中,与其他系统成分组合在一起进行测试。7.3.1 7.3.1 单元测试单元测试单元测试(单元测试(unittesting),是指对软件中),是指对软件中的最小可测试单元进行检查和验证。的最小可测试单元进行检查和验证。单元就是人为规定的最小的被测功能模块。单元就是人为规定的最小的被测功能模块。单元测试是在软件开发过程中要进行的最单元测试是在软件开发过程中要进行的最低级别的测试活动,软件的独立单元将在低级别的测试活动,软件的独立单元将在与程序的其他部分相隔离的情况下进行测与程序的其他部分相隔离的情况下进行测试。试。1单元测试的基本方法单元测试的基本方法单元测试的对象是软件设计的最小单单元测试的对象是软件设计的最小单位模块。单元测试的依据是详细设计描述位模块。单元测试的依据是详细设计描述单元测试应对模块内所有重要的控制路径单元测试应对模块内所有重要的控制路径设计测试用例,以便发现模块内部的错误:设计测试用例,以便发现模块内部的错误:单元测试多采用白盒测试技术,系统内多单元测试多采用白盒测试技术,系统内多个模块可以并行地进行测试。个模块可以并行地进行测试。2单元测试的任务单元测试的任务单元测试的任务包括:单元测试的任务包括:l)模块接口测试。)模块接口测试。2)模块局部数据结构测试。)模块局部数据结构测试。3)模块边界条件测试。)模块边界条件测试。4)模块中所有独立执行通路测试。)模块中所有独立执行通路测试。5)模块的各条错误处理通路测试。)模块的各条错误处理通路测试。3单元测试过程单元测试过程单元测试应紧接在编码之后,当源程单元测试应紧接在编码之后,当源程序编制完成并通过复审和编译检查便可序编制完成并通过复审和编译检查便可开始单元测试。开始单元测试。测试用例的设计应与复审工作相结合,测试用例的设计应与复审工作相结合,根据设计信息、选取测试数据,将增大发根据设计信息、选取测试数据,将增大发现上述各类错误的可能性。在确定测试用现上述各类错误的可能性。在确定测试用例的同时,应给出期望结果。例的同时,应给出期望结果。单元测试的基本过程单元测试的基本过程1)在)在详细设计阶段完段完成成单元元测试计划。划。2)建立)建立单元元测试环境,境,完成完成测试设计和开和开发。3)执行行单元元测试用例,用例,并且并且详细记录测试结果。果。4)判定)判定测试用例是否用例是否通通过。5)提交)提交单元元测试报告。告。4单元测试的优点单元测试的优点(1)是一种验证行为)是一种验证行为程序中的每一项功能都是由测试来验证它的正确性:它为以后的开发提程序中的每一项功能都是由测试来验证它的正确性:它为以后的开发提供支持,就算是开发后期,也可以轻松地增加功能或更改程序结构,而供支持,就算是开发后期,也可以轻松地增加功能或更改程序结构,而不用担心这个过程会破坏重要的内容,而且为代码的重构提供了保障,不用担心这个过程会破坏重要的内容,而且为代码的重构提供了保障,这样程序员就可以更自由地对程序进行改进。这样程序员就可以更自由地对程序进行改进。(2)是一种设计行为)是一种设计行为编写单元测试将使开发人员从调用者的角度观察、思号。特别是先写测编写单元测试将使开发人员从调用者的角度观察、思号。特别是先写测试,迫使开发人员把程序设计成易于调试和可测试的,即迫使开发人员试,迫使开发人员把程序设计成易于调试和可测试的,即迫使开发人员解除软件中的耦合。解除软件中的耦合。(3)是一种编写文档的行为)是一种编写文档的行为单元测试是一种无价的文档,它是展示函数或类如何使用的最佳文档。单元测试是一种无价的文档,它是展示函数或类如何使用的最佳文档。这份文档是可编译、可运行的,并且它保持最新,永远与代码同步。这份文档是可编译、可运行的,并且它保持最新,永远与代码同步。(4)具有回归性)具有回归性自动化的单元测试避免了代码出现回归,测试用例编写完成之后,可以自动化的单元测试避免了代码出现回归,测试用例编写完成之后,可以随时随地快速的运行测试。随时随地快速的运行测试。7.3.2 7.3.2 集成测试集成测试集成测试(也叫组装测试,联合测试)是单元测试集成测试(也叫组装测试,联合测试)是单元测试的逻辑扩展。的逻辑扩展。集成测试是在单元测试的基础上,测试在将所有的集成测试是在单元测试的基础上,测试在将所有的软件单元按照概要设计规格说明的要求组装成模块、子软件单元按照概要设计规格说明的要求组装成模块、子系统或系统的过程中各部分工作是否达到或实现相应技系统或系统的过程中各部分工作是否达到或实现相应技术指标及要求的活动。也就是说,在集成测试之前,单术指标及要求的活动。也就是说,在集成测试之前,单元测试应该已经完成,集成测试中所使用的对象应该是元测试应该已经完成,集成测试中所使用的对象应该是已经经过单元测试的软件单元。已经经过单元测试的软件单元。集成测试采用的方法是测试软件单元的组合能否正集成测试采用的方法是测试软件单元的组合能否正常工作,以及与其他组的模块能否集成起来工作,还要常工作,以及与其他组的模块能否集成起来工作,还要测试构成系统的所有模块组合能否正常工作。测试构成系统的所有模块组合能否正常工作。1集成测试的目标集成测试的目标集成测试的目标是按照设计要求使用那些通过单元集成测试的目标是按照设计要求使用那些通过单元测试的构件来构造程序结构。测试的构件来构造程序结构。以下两种测试技术是用于集成测试:以下两种测试技术是用于集成测试:1)功能性测试。使用黑盒测试技术针对被测模块的接口)功能性测试。使用黑盒测试技术针对被测模块的接口规格说明进行测试。规格说明进行测试。2)非功能性测试。对模块的性能或可靠性进行测试。)非功能性测试。对模块的性能或可靠性进行测试。另外,集成测试的必要性还在于一些模块虽然能够单另外,集成测试的必要性还在于一些模块虽然能够单独地工作,但并不能保证连接起来也能正常工作。程序独地工作,但并不能保证连接起来也能正常工作。程序在某些局部反映不出来的问题,有可能在全局上会暴露在某些局部反映不出来的问题,有可能在全局上会暴露出来,影响功能的实现。出来,影响功能的实现。2集成测试的方法集成测试的方法集成测试应该考虑以下问题:集成测试应该考虑以下问题:1)在把各个模块连接起来的时候,穿越模块接口的数据)在把各个模块连接起来的时候,穿越模块接口的数据是否会丢失;是否会丢失;2)各个子功能组合起来,能否达到预期要求的父功能;)各个子功能组合起来,能否达到预期要求的父功能;3)一个模块的功能是否会对另一个模块的功能产生不利)一个模块的功能是否会对另一个模块的功能产生不利的影响;的影响;4)全局数据结构是否有问题;)全局数据结构是否有问题;5)单个模块的误差积累起来,是否会放大,从而达到不)单个模块的误差积累起来,是否会放大,从而达到不可接受的程度。可接受的程度。3集成测试的步骤集成测试的步骤(1)集成测试的过程)集成测试的过程(2)集成测试的需求获取)集成测试的需求获取集成测试需求所确定的是对某一集成工作版本的测试的内容,即测集成测试需求所确定的是对某一集成工作版本的测试的内容,即测试的具体对象。集成测试需求主要来源于设计模型(试的具体对象。集成测试需求主要来源于设计模型(DesignModel)和)和集成构件计划(集成构件计划(IntegrationBuildPlan)。集成测试着重于集成版本的外)。集成测试着重于集成版本的外部接口的行为。部接口的行为。(3)集成测试的工件清单)集成测试的工件清单软件集成测试计划软件集成测试计划集成测试用例集成测试用例测试过程测试过程测试脚本测试脚本测试日志测试日志测试评估摘要测试评估摘要(4)集成测试的常用方案选型)集成测试的常用方案选型集成测试的实施方案有很多种,如自底向上集成测试、集成测试的实施方案有很多种,如自底向上集成测试、自顶向下集成测试、自顶向下集成测试、Big-Bang集成测试、三明治集成测试、集成测试、三明治集成测试、核心集成测试、分层集成测试、基于使用的集成测试等。核心集成测试、分层集成测试、基于使用的集成测试等。7.3.3 7.3.3 确认测试确认测试确认测试的目的是向未来的用户表明系统能确认测试的目的是向未来的用户表明系统能够像预定要求那样工作。经集成测试后,已经按够像预定要求那样工作。经集成测试后,已经按照设计把所有的模块组装成一个完整的软件系统,照设计把所有的模块组装成一个完整的软件系统,接口错误也已经基本排除了,接着就应该进一步接口错误也已经基本排除了,接着就应该进一步验证软件的有效性,这就是确认测试的任务,即验证软件的有效性,这就是确认测试的任务,即软件的功能和性能如同用户所合理期待的那样。软件的功能和性能如同用户所合理期待的那样。1确认测试的基本概念确认测试的基本概念确认测试又称有效性测试。有效性测试确认测试又称有效性测试。有效性测试是在模拟的环境下,运用黑盒测试的方法,是在模拟的环境下,运用黑盒测试的方法,验证被测软件是否满足需求规格说明书列出验证被测软件是否满足需求规格说明书列出的需求。任务是验证软件的功能和性能及其的需求。任务是验证软件的功能和性能及其他特性是否与用户的要求一致。对软件的功他特性是否与用户的要求一致。对软件的功能和性能要求在软件需求规格说明书中已经能和性能要求在软件需求规格说明书中已经明确规定,它包含的信息就是软件确认测试明确规定,它包含的信息就是软件确认测试的基础。的基础。2确认测试的基本方法确认测试的基本方法通过集成测试之后,软件已完全组装起来,接口方面通过集成测试之后,软件已完全组装起来,接口方面的错误也已排除,确认测试即可开始。的错误也已排除,确认测试即可开始。(1)确认测试标准)确认测试标准确认测试的结果有两种可能,一种是功能和性能指标确认测试的结果有两种可能,一种是功能和性能指标满足软件需求说明的要求,用户可以接受;另一种是软件满足软件需求说明的要求,用户可以接受;另一种是软件不满足软件需求说明的要求,用户无法接受。不满足软件需求说明的要求,用户无法接受。(2)配置复审)配置复审确认测试的另一个重要环节是配置复审。复审的目的确认测试的另一个重要环节是配置复审。复审的目的在于保证软件配置齐全、分类有序,并且包括软件维护所在于保证软件配置齐全、分类有序,并且包括软件维护所必需的细节。必需的细节。3确认测试的方式确认测试的方式目前广泛使用的两种确认测试方式是目前广泛使用的两种确认测试方式是测试和测试和测试。测试。1)测试测试测试是指软件开发公司组织内部人员模拟各类用户行测试是指软件开发公司组织内部人员模拟各类用户行对即将面市软件产品(称为对即将面市软件产品(称为版本)进行测试,试图发现错版本)进行测试,试图发现错误并修正。误并修正。2)测试测试测试是指软件开发公司组织各方面的典型用户在日常测试是指软件开发公司组织各方面的典型用户在日常工作中实际使用工作中实际使用版本,并要求用户报告异常情况、提出批

    注意事项

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

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




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

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

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

    收起
    展开