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

    第06章软件工程的测试精选文档.ppt

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

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

    第06章软件工程的测试精选文档.ppt

    第第06章章软件工程的件工程的测试本讲稿第一页,共七十六页第六章第六章软件项目的测试软件项目的测试软件测试基本概念软件测试基本概念1软件测试计划与测试分析报告软件测试计划与测试分析报告5软件测试的方法软件测试的方法2软件测试的步骤软件测试的步骤3程序调试程序调试4本讲稿第二页,共七十六页6.1 软件测试基本概念软件测试基本概念测试的目的是确保软件的质量,尽量找出软件错误并加以纠正,而不是证明软件没有错。v19631963年美国飞往火星的火箭爆炸,原因是年美国飞往火星的火箭爆炸,原因是FORTRANFORTRAN程序:程序:vDO 5 I=1DO 5 I=1,3 3 误写为:误写为:DO 5 I=1.3 DO 5 I=1.3 损失损失10001000万美元。万美元。v19671967年苏联年苏联“联盟一号联盟一号”宇宙飞船返回时因忽略一个小数点,在进入大气层时打不宇宙飞船返回时因忽略一个小数点,在进入大气层时打不开降落伞而烧毁。开降落伞而烧毁。本讲稿第三页,共七十六页6.1 软件测试基本概念软件测试基本概念v一、为什么要进行软件测试一、为什么要进行软件测试软件中存在错误是不可避免的软件是一种高密集度的智力产品客观系统的复杂性人主观认识的局限性信息通信不一致协调管理不完善本讲稿第四页,共七十六页6.1 软件测试基本概念软件测试基本概念v二、测试的概念二、测试的概念v1 1、软件测试、软件测试软件测试是对软件计划、软件设计、软件编码进行查错和纠错的活动(包括代码执行活动与人工活动)。测试的目的是找出软件设计开发全周期中各个阶段的错误,以便分析错误的性质与位置而加以纠正。纠正过程可能涉及到改正或者重新设计相关的文档活动。找错活动称为测试,纠错活动称为调试。本讲稿第五页,共七十六页6.1 软件测试基本概念软件测试基本概念v2 2、程序测试、程序测试程序测试是早已流行的概念。它是对编码阶段的语法错、语义错、运行错进行查找的编码执行活动。找出编码中错误的代码执行活动称程序测试。纠正编码中的错误的执行活动称程序调试。通过查找编码错与纠正编码错来保证算法的正确实现。v软件测试与调试覆盖软件生存周期的整个阶段,而程序测试与调试软件测试与调试覆盖软件生存周期的整个阶段,而程序测试与调试则仅限于编码阶段,软件测试中的单元测试与程序测试十分相似,则仅限于编码阶段,软件测试中的单元测试与程序测试十分相似,不同在于,单元测试还要测试模块间的接口,并要设计与接口相关不同在于,单元测试还要测试模块间的接口,并要设计与接口相关的模块。的模块。本讲稿第六页,共七十六页6.1 软件测试基本概念软件测试基本概念v3 3、软件确认与程序确认、软件确认与程序确认v软件确认是广义上的软件测试,它是企图软件确认是广义上的软件测试,它是企图证明程序软件在给定的外部环境中的逻辑正确证明程序软件在给定的外部环境中的逻辑正确性的一系列活动和过程,指需求说明书的确认,性的一系列活动和过程,指需求说明书的确认,程序的确认。程序确认又分成静态确认与动态程序的确认。程序确认又分成静态确认与动态确认。静态确认包括,正确性证明,人工分析,确认。静态确认包括,正确性证明,人工分析,静态分析。动态分析包括动态确认与动态测试。静态分析。动态分析包括动态确认与动态测试。本讲稿第七页,共七十六页6.1 软件测试基本概念软件测试基本概念v静态分析是不执行程序本身,分析程序正文可能导致错误的异常情况。静态分析是不执行程序本身,分析程序正文可能导致错误的异常情况。可以人工的进行分析,也可以用测试工具静态分析程序来进行,被测试程序的可以人工的进行分析,也可以用测试工具静态分析程序来进行,被测试程序的正文做为输入,经静态分析程序分析得出分析结果。静态分析包括结构检查,正文做为输入,经静态分析程序分析得出分析结果。静态分析包括结构检查,流图分析,符号执行。流图分析,符号执行。v动态分析是执行被测程序,从执行结果分析程序可能出现的错误。动态分析是执行被测程序,从执行结果分析程序可能出现的错误。可以人工设计程序测试用例,也可以由测试工具动态分析程序来做检测与可以人工设计程序测试用例,也可以由测试工具动态分析程序来做检测与分析。动态测试包括功能测试和结构测试。动态测试的内容包括:单元测分析。动态测试包括功能测试和结构测试。动态测试的内容包括:单元测试,也称逻辑测试,模块测试,功能测试。组装测试也称集成测试,综合试,也称逻辑测试,模块测试,功能测试。组装测试也称集成测试,综合测试,或结构测试,子系统测试。系统测试是软硬件或子系统的组装测试。测试,或结构测试,子系统测试。系统测试是软硬件或子系统的组装测试。本讲稿第八页,共七十六页6.1 软件测试基本概念软件测试基本概念v4 4、各种软件错误的出现比例、各种软件错误的出现比例v功能错,占整个软件错误功能错,占整个软件错误2727,是需求分析设计不完整而引,是需求分析设计不完整而引起的。起的。v系统错,占整个软件错误系统错,占整个软件错误1616,是总体设计错误而引起,是总体设计错误而引起v数据错,占整个软件错误数据错,占整个软件错误1010,由编码错误引起的,由编码错误引起的v编码错,占整个软件错误编码错,占整个软件错误4 4,程序员编码错误引起的,程序员编码错误引起的v其它错,占整个软件错误其它错,占整个软件错误1616,文档错和硬件错所引起,文档错和硬件错所引起本讲稿第九页,共七十六页6.1 软件测试基本概念软件测试基本概念n三、软件测试的目标三、软件测试的目标n测试是为了发现程序中的错误而执行程序的过程;n好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案;n成功的测试是发现了至今为止尚未发现的错误的测试本讲稿第十页,共七十六页6.1 软件测试基本概念软件测试基本概念v四、软件测试的原则四、软件测试的原则v1 1、测试前要认定被测试软件有错,不要认为软件设有错。、测试前要认定被测试软件有错,不要认为软件设有错。v2 2、要预先确定被测试软件的测试结果。、要预先确定被测试软件的测试结果。v3 3、要尽量避免测试自己编写的程序。、要尽量避免测试自己编写的程序。v4 4、测试要兼顾合理输入与不合理输入数据。、测试要兼顾合理输入与不合理输入数据。v5 5、测试要以软件需求规格说明书为标准。、测试要以软件需求规格说明书为标准。v6 6、测试是相对的,不能穷尽所有的测试,要据人力物力安排测、测试是相对的,不能穷尽所有的测试,要据人力物力安排测试,并选择好测试用例与测试方法。试,并选择好测试用例与测试方法。v7 7、充分注意测试中的群集现象、充分注意测试中的群集现象:测试中发现的测试中发现的80%80%的错误可能来的错误可能来自于自于20%20%的程序代码的程序代码本讲稿第十一页,共七十六页6.1 软件测试基本概念软件测试基本概念v四、软件测试的原则四、软件测试的原则n8、严格执行测试计划,尽量避免测试的随意性,从工程的角度理解软件测试,它是有组织、有计划、有步骤的活动n9、妥善保存测试计划、测试用例、出错统计和最终分析报告,为维护提供方便n10、应当把“尽早地和不断地进行软件测试”作为软件测试人的座右铭本讲稿第十二页,共七十六页6.2 软件测试的方法软件测试的方法v6.2.1 6.2.1 软件测试方法的分类软件测试方法的分类v软件测试方法分为两类:静态分析、动态测试。软件测试方法分为两类:静态分析、动态测试。v一、静态分析技术一、静态分析技术v不执行被测软件,可对需求分析说明书、软件设计说明书、不执行被测软件,可对需求分析说明书、软件设计说明书、源程序做结构检查、流程分析、符号执行来找出软件错误。源程序做结构检查、流程分析、符号执行来找出软件错误。v二、动态测试技术二、动态测试技术v当把程序作为一个函数,输入的全体称为函数的定义域,输出当把程序作为一个函数,输入的全体称为函数的定义域,输出的全体称为函数的值域,函数则描述了输入的定义域与输出值域的的全体称为函数的值域,函数则描述了输入的定义域与输出值域的关系。关系。本讲稿第十三页,共七十六页6.2 软件测试的方法软件测试的方法v动态测试的算法有:动态测试的算法有:选取定义域中的有效值,或定义域外无效值。对已选取值决定预期的结果。用选取值执行程序。观察程序行为,记录执行结果。将的结果与的结果相比较,不吻合则程序有错。本讲稿第十四页,共七十六页6.2 软件测试的方法软件测试的方法v三、黑盒测试与白盒测试三、黑盒测试与白盒测试v动态测试既可以采用白盒法对模块进行逻辑结构的测试,又可以用动态测试既可以采用白盒法对模块进行逻辑结构的测试,又可以用黑盒法做功能结枸的测试,接口的测试,它们都是以执行程序并分黑盒法做功能结枸的测试,接口的测试,它们都是以执行程序并分析执行结果来查错的。析执行结果来查错的。v1、黑盒测试法、黑盒测试法v黑盒测试法把程序看成一个黑盒子,完全不考虑程序的内黑盒测试法把程序看成一个黑盒子,完全不考虑程序的内部结构和处理过程。黑盒测试是在程序接口进行的测试,它只部结构和处理过程。黑盒测试是在程序接口进行的测试,它只检查程序功能是否能按照规格说明书的规定正常使用,程序是检查程序功能是否能按照规格说明书的规定正常使用,程序是否能适当地接收输入数据产生正确的输出信息,并且保持外部否能适当地接收输入数据产生正确的输出信息,并且保持外部信息的完整性。黑盒测试又称为功能测试。信息的完整性。黑盒测试又称为功能测试。本讲稿第十五页,共七十六页6.2 软件测试的方法软件测试的方法v2、白盒测试法、白盒测试法v白盒测试法的前提是可以把程序看成装在一个透明的白盒子里,白盒测试法的前提是可以把程序看成装在一个透明的白盒子里,也就是完全了解程序的结构和处理过程。这种方法按照程序内部的也就是完全了解程序的结构和处理过程。这种方法按照程序内部的逻辑测试程序,检验程序中的每条通路是否都能按预定要求正确工逻辑测试程序,检验程序中的每条通路是否都能按预定要求正确工作,白盒测试又称为结构测试。作,白盒测试又称为结构测试。使用白盒测试法,为了做到穷尽测试,程序中每条可能的通路至少都应该执行一次,但即使测试很小的程序,通常也不能做到这一点。一段程序对嵌套的语句循环执行20次,而循环体中有5条可能的路径,则在这段程序中共有520条可能的通路,即使每条通路只执行一次,也是不可能的,因此,要注意,不可能进行穷尽测试,也说明,测试不可能发现程序中的所有错误。本讲稿第十六页,共七十六页6.2 软件测试的方法软件测试的方法本讲稿第十七页,共七十六页6.2 软件测试的方法软件测试的方法v6.2.2 6.2.2 测试方案设计测试方案设计v一、白盒法一、白盒法v白盒法又称为逻辑覆盖法,其测试用例选择,是按照不同覆白盒法又称为逻辑覆盖法,其测试用例选择,是按照不同覆盖标准确定的。盖标准确定的。语语句句覆覆盖盖判判定定覆覆盖盖条条件件覆覆盖盖判判定定条条件件覆覆盖盖条条件件组组合合覆覆盖盖弱弱强强本讲稿第十八页,共七十六页6.2 软件测试的方法软件测试的方法语句覆盖:选择足够的测试用例,使得程序中每个语句至少都能被执行一次。判定覆盖:执行足够的测试用例,使得程序中每个判定至少都获得一次“真”值和“假”值。条件覆盖:执行足够的测试用例,使得判定中的每个条件获得各种可能的结果。判定/条件覆盖:执行足够的测试用例,使得判定中每个条件取到各种可能的值,并使每个判定取到各种可能的结果。条件组合覆盖:执行足够的例子,使得每个判定中条件的各种可能组合都至少出现一次。本讲稿第十九页,共七十六页6.2 软件测试的方法软件测试的方法v白盒测试法步骤白盒测试法步骤:选择逻辑覆盖标准。按照覆盖标准列出所有情况。选择确定测试用例。验证分析运行结果与预期结果。v例:用白盒法测试以下程序段:例:用白盒法测试以下程序段:vProcedureProcedure(VAR AVAR A,B B,X X:REALREAL););vBEGINBEGINv IF IF(A1)AND(B=0)A1)AND(B=0)v THEN X:=X/A;THEN X:=X/A;v IF(A=2)OR (X1)IF(A=2)OR (X1)v THEN X:=X+1 THEN X:=X+1vEND;END;本讲稿第二十页,共七十六页满足语句覆盖的情况:满足语句覆盖的情况:执行路径:执行路径:aceace用例格式:用例格式:输入输入(A,B,X)(A,B,X),输出,输出(A,B,X)(A,B,X)选择用例:选择用例:(2,0,4),(2,0,3)(2,0,4),(2,0,3)1 1、语句覆盖、语句覆盖使得程序中每个语句至少都使得程序中每个语句至少都能被执行一次能被执行一次6.2 软件测试的方法软件测试的方法A1A1ANDANDB=0B=0X=X/AX=X/AA=2A=2OR OR X1X1X=X+1X=X+1a ab bc cd de eY YN NY YN N本讲稿第二十一页,共七十六页覆盖情况:应执行路径覆盖情况:应执行路径ace abdace abd或:或:acd acd abe abe选择用例选择用例(其一):其一):(2,0,4),(2,0,3)ace(2,0,4),(2,0,3)ace (1,1,1),(1,1,1)abd (1,1,1),(1,1,1)abd(2,1,1),(2,1,2)abe(2,1,1),(2,1,2)abe (3,0,3),(3,1,1)acd (3,0,3),(3,1,1)acd2 2、判定覆盖、判定覆盖使得程序中每个判定至少使得程序中每个判定至少为为TRUE TRUE 或或FALSEFALSE各一次。各一次。6.2 软件测试的方法软件测试的方法A1A1ANDANDB=0B=0X=X/AX=X/AA=2A=2OR OR X1X1X=X+1X=X+1a ab bc cd de eY YN NY YN N本讲稿第二十二页,共七十六页3 3、条件覆盖、条件覆盖使得判定中的每个条件获得各种使得判定中的每个条件获得各种可能的结果。可能的结果。应满足以下覆盖情况:应满足以下覆盖情况:判定一判定一:A1,A1,B=0,B0:A1,A1,B=0,B0判定二判定二:A=2,A2,X1,X1:A=2,A2,X1,X1选择用例:选择用例:(2,0,4),(2,0,3)(2,0,4),(2,0,3)(1,1,1),(1,1,1)(1,1,1),(1,1,1)注意注意:(1,0,3),(1,0,4)(1,0,3),(1,0,4)(2,1,1),(2,1,2)(2,1,1),(2,1,2)满足条件覆盖,但不满足判断覆盖满足条件覆盖,但不满足判断覆盖6.2 软件测试的方法软件测试的方法A1A1ANDANDB=0B=0X=X/AX=X/AA=2A=2OR OR X1X1X=X+1X=X+1a ab bc cd de eY YN NY YN N本讲稿第二十三页,共七十六页v4 4、判定、判定/条件覆盖条件覆盖v同时满足判断覆盖和条件覆盖同时满足判断覆盖和条件覆盖应满足以下覆盖情况:应满足以下覆盖情况:条件条件:A1,A1,B=0,B0:A1,A1,B=0,B0 A=2,A2,X1,X1 A=2,A2,X1,X1 应执行路径应执行路径ace abdace abd或:或:acd acd abe abe选择用例:选择用例:(2,0,4),(2,0,3)(2,0,4),(2,0,3)(ace)ace)(1,1,1),(1,1,1)(abd)(1,1,1),(1,1,1)(abd)6.2 软件测试的方法软件测试的方法A1A1ANDANDB=0B=0X=X/AX=X/AA=2A=2OR OR X1X1X=X+1X=X+1a ab bc cd de eY YN NY YN N本讲稿第二十四页,共七十六页5、条件组合覆盖使得每个判定中条件的各种可能组合都至少出现一次。编译系统下的执行情况:编译系统下的执行情况:部分路径未被执行。部分路径未被执行。满足以下覆盖情况:满足以下覆盖情况:A1,B=0 A1,B0 A1,B=0 A1,B0 A1,B=0 A1,B0 A1,B=0 A1,B0 A=2,X1 A=2,X1 A=2,X1 A=2,X1 A2,X1 A2,X1 A2,X1 A2,X1选择用例:选择用例:(2,0,4),(2,0,3)(2,0,4),(2,0,3)(2,1,1),(2,1,2)(2,1,1),(2,1,2)(1,0,3),(1,0,4)(1,0,3),(1,0,4)(1,1,1),(1,1,1)(1,1,1),(1,1,1)A1X=X/AA=2X=X+1a ab bcd de eB=0X1YNYNYNYN6.2 软件测试的方法软件测试的方法本讲稿第二十五页,共七十六页6、路径覆盖被测程序的每条可能执行到的路径都至少经过一次。选择用例:选择用例:(2,0,4),(2,0,3)a(2,0,4),(2,0,3)a、c c、e e(2,1,1),(2,1,2)a(2,1,1),(2,1,2)a、b b、e e(3,0,3),(3,0,1)a(3,0,3),(3,0,1)a、c c、d d(1,1,1),(1,1,1)a(1,1,1),(1,1,1)a、b b、d d6.2 软件测试的方法软件测试的方法A1A1ANDANDB=0B=0X=X/AX=X/AA=2A=2OR OR X1X1X=X+1X=X+1a ab bc cd de eY YN NY YN N本讲稿第二十六页,共七十六页6.2 软件测试的方法软件测试的方法v二、黑盒法二、黑盒法 不考虑程序的内部结构与特性,只根据程序功能或程序的外部特性设计测试用例。等等价价分分类类法法边边值值分分析析法法错错误误推推测测法法因因果果图图法法本讲稿第二十七页,共七十六页v1 1、等价分类法、等价分类法v基基本本思思想想:根根据据程程序序的的I/OI/O特特性性,将将程程序序的的定定义义域域划划分分为为有有限限个个等等价价区区段段 “等等价价类类”,从从等等价价类类中中选选择择出出的的用用例例,具具有有“代代表表性性”。v等价类分为:等价类分为:v有有效效等等价价类类 对对于于程程序序的的规规格格说说明明是是合合理理的的、有有意意义义的的输输入入数据构成的集合。数据构成的集合。v无效等价类无效等价类 对于程序的规格说明,是不合理的,是没有意义对于程序的规格说明,是不合理的,是没有意义的输入数据构成的集合。的输入数据构成的集合。6.2 软件测试的方法软件测试的方法本讲稿第二十八页,共七十六页等价分类法步骤等价分类法步骤等价分类法步骤等价分类法步骤 应应按按照照输输入入条条件件(如如输输入入值值的的范范围围,值值的的个个数数,值值的的集集合合,输输入入条条件件必必须须如如何何)划分为有效等价类和无效等价类。划分为有效等价类和无效等价类。例如:每个学生可选修例如:每个学生可选修1-31-3门课程门课程 可以划分一个有效等价类:选修可以划分一个有效等价类:选修1-31-3门课程。门课程。可以划分两个无效等价类:未选修课,选修课超过可以划分两个无效等价类:未选修课,选修课超过3 3门。门。又如:标识符的第一个字符必须是字母。又如:标识符的第一个字符必须是字母。可以划分为一个有效等价类:第一个字符是字母。可以划分为一个有效等价类:第一个字符是字母。可以划分一个无效等价类:第一个字符不是字母。可以划分一个无效等价类:第一个字符不是字母。vv 划分划分划分划分“等价类等价类等价类等价类”A A、为每个等价类编号;、为每个等价类编号;B B、使一个测试用例尽可能覆盖多个有效等价类、使一个测试用例尽可能覆盖多个有效等价类C C、特别要注意的是:一个测试用例只能覆盖一个无效等价类。、特别要注意的是:一个测试用例只能覆盖一个无效等价类。选择测试用例选择测试用例选择测试用例选择测试用例 等价分类法步骤等价分类法步骤本讲稿第二十九页,共七十六页v2 2、边值分析法、边值分析法 v基本思想:基本思想:选择等价类的边缘值作为测试用例,让每个等价类的选择等价类的边缘值作为测试用例,让每个等价类的边界都得到测试,选择测试用例既考虑输入亦考虑输出。边界都得到测试,选择测试用例既考虑输入亦考虑输出。v分析步骤:分析步骤:vA A、先划分等价类。、先划分等价类。vB B、选择测试用例,测试等价类边界。、选择测试用例,测试等价类边界。v边界选择原则:边界选择原则:vA A、按照输入值范围的边界。、按照输入值范围的边界。vB B、按照输入、按照输入/输出值个数的边界。输出值个数的边界。vC C、输出值域的边界。、输出值域的边界。vD D、输入、输入/输出有序集的边界。输出有序集的边界。6.2 软件测试的方法软件测试的方法本讲稿第三十页,共七十六页边值分析法举例:边值分析法举例:边值分析法举例:边值分析法举例:A A A A、按照输入值范围的边界。按照输入值范围的边界。例例如如:输输入入值值的的范范围围是是-1.0-1.0至至1.01.0,则则可可选选择择用用例例 1.01.0、1.01.0、-1.001-1.001、1.0011.001。B B B B、按照输入按照输入/输出值个数的边界。输出值个数的边界。例例如如:输输入入文文件件可可有有1-2551-255个个记记录录,则则 设设计计用用例例:文文件件的的记记录录数数为为 0 0个、个、1 1个、个、255255个、个、256256个。个。C C、输出值域的边界。、输出值域的边界。例例如如:检检索索文文献献摘摘要要,最最多多4 4篇篇。设设计计用用例例:可可检检索索0 0篇篇、1 1篇篇、4 4篇篇,和和5 5篇(错误)。篇(错误)。D D、输入、输入/输出有序集(如顺序文件、线性表)的边界。输出有序集(如顺序文件、线性表)的边界。应选择第一个元素和最后一个元素。应选择第一个元素和最后一个元素。6.2 软件测试的方法软件测试的方法本讲稿第三十一页,共七十六页3、错误推测法凭经验或直觉推测可能的错误,列出程序中可能有的错误和容易发生错误的特殊情况,选择测试用例。4 4、因果图法(、因果图法(cause effcet graphiceicause effcet graphicei)把输入条件视为把输入条件视为“因因”,把输出条件视为,把输出条件视为“果果”,将黑盒,将黑盒看成是从因到果的网络图,采用逻辑图的形式来表达功看成是从因到果的网络图,采用逻辑图的形式来表达功能说明书中输入条件的各种组合与输出的关系。根据这能说明书中输入条件的各种组合与输出的关系。根据这种关系可选择高效的测试用例。因果图是一种形式化语种关系可选择高效的测试用例。因果图是一种形式化语言,是一种组合逻辑。言,是一种组合逻辑。6.2 软件测试的方法软件测试的方法本讲稿第三十二页,共七十六页v 因果图的基本符号因果图的基本符号:0-0-表示表示“不出现不出现”,1-,1-表示表示“出现出现”v恒等恒等:若若a a为为1 1,则,则b b为为1 1,否则,否则b b为为0 0。v“非非”函数函数 :若若a a为为1 1,则,则b b为为0 0,否则,否则b b为为1 1。v“或或”函数函数:若若a a或或b b为为1 1,则,则d d为为1 1,否则,否则d d为为0 0。v“与与”函数函数:若若a a与与b b同为同为1 1,则,则d d为为1 1,否则,否则d d为为0 0。abababd dabd d6.2 软件测试的方法软件测试的方法本讲稿第三十三页,共七十六页v对对“与与”、“或或”函数的限制符号函数的限制符号vE E约束(异)约束(异)排斥排斥v即即a a、b b不能同时为不能同时为1 1。vI I约束(或)约束(或)包容包容va a、b b、c c不能同时为不能同时为0 0。vO O约束(唯一)约束(唯一)选一选一va a、b b中仅有一个为中仅有一个为1 1。vR R约束(要求)约束(要求)需要需要va a为为1 1时,时,b b必须为必须为1 1vMM约束(强制)约束(强制)屏蔽屏蔽v若若a a为为1 1时,则时,则b b强制为强制为1 1。abEabcIabRabO OabM6.2 软件测试的方法软件测试的方法本讲稿第三十四页,共七十六页v 因果图法的步骤因果图法的步骤v分析规范,即将问题分为若干可工作的步骤。分析规范,即将问题分为若干可工作的步骤。v标识出规范中的原因与结果。标识出规范中的原因与结果。原因输入条件 结果输出或系统变换v分析规范语义、内容,转换为因果图分析规范语义、内容,转换为因果图v将因果图转换为有限项判断表。将因果图转换为有限项判断表。v将判断表的每一列,转换为一个测试用例。将判断表的每一列,转换为一个测试用例。6.2 软件测试的方法软件测试的方法本讲稿第三十五页,共七十六页 因果图法应用举例规范:文件名第一列字符必须为A或B,第二列字符必须为数字。满足则修改文件。第一字符不正确发出信息X12,第二个字符不正确发出信息X13。v、分析规范、分析规范v原原 因因 结结 果果v1 1 第一列字符为第一列字符为A A5050修改文件修改文件v2 2 第一列字符为第一列字符为B B 5151发信息发信息X12X12v3 3 第二列字符为数字第二列字符为数字 5252发信息发信息X13X136.2 软件测试的方法软件测试的方法本讲稿第三十六页,共七十六页画出因果图画出因果图画出因果图画出因果图中间结点是导出结果的进一步原因。v考虑到原因考虑到原因1 1、2 2不可能同时为不可能同时为1 1,加上,加上E E约束。约束。1111515035212E发发 X 12发发 X 13 修改文件修改文件6.2 软件测试的方法软件测试的方法本讲稿第三十七页,共七十六页将因果图转换为判断表将因果图转换为判断表12345678条件原因111100001100110010101010111100动作结果000011101000010101测试用例A3A8AMA?B5B4BNB!C2X6DYPI11115151505052526.2 软件测试的方法软件测试的方法本讲稿第三十八页,共七十六页v测试步骤及策略测试步骤及策略v 所有测试过程都应采用综合测试策略;即先作静态分析,再作动态所有测试过程都应采用综合测试策略;即先作静态分析,再作动态测试。并事先制订测试计划。测试。并事先制订测试计划。v测试过程通常可分测试过程通常可分4 4步进行:步进行:单元单元测试测试单元单元测试测试单元单元测试测试被测被测模块模块被测被测模块模块集成集成测试测试设计设计信息信息已测试已测试的模块的模块确认确认测试测试已集成已集成的模块的模块软件软件需求需求系统系统测试测试已确认已确认的软件的软件可交付可交付的软件的软件系统其系统其他元素他元素6.3 软件测试步骤软件测试步骤本讲稿第三十九页,共七十六页6.3 软件测试步骤软件测试步骤V V模型:软件开发各阶段与测试策略之间的对应关系。模型:软件开发各阶段与测试策略之间的对应关系。系统工程系统工程需求分析需求分析设计设计编码编码系统测试系统测试确认测试确认测试集成测试集成测试单元测试单元测试本讲稿第四十页,共七十六页1、单元测试(unit testing)的测试内容模块模块接口测试模块接口测试局部数据结构测试局部数据结构测试重要路径测试重要路径测试错误处理测试错误处理测试边界条件测试边界条件测试I/O I/O 参数值的个数、类型、参数值的个数、类型、次序、格式是否正确,次序、格式是否正确,I/OI/O文件属性、操作是否正确等。文件属性、操作是否正确等。数据说明是否正确、一数据说明是否正确、一致,变量及其初值定义致,变量及其初值定义是否正确等。是否正确等。检查检查“错误处理错误处理程序程序”本身的错本身的错误。误。边界条件常包括循环边界,边界条件常包括循环边界,最大最小值、控制流中等最大最小值、控制流中等于、大于、小于的比较值于、大于、小于的比较值等。等。重要路径通常是指完成模重要路径通常是指完成模块功能的主要路径,一般块功能的主要路径,一般是控制结构。是控制结构。一、单元测试(一、单元测试(unit testing)本讲稿第四十一页,共七十六页n2、模块测试步骤n考虑到被测模块与其它模块的联系,因此测试时需要使用两类辅助模块来模拟其他模块。驱动模块(驱动模块(driverdriver)模拟主程序功能,模拟主程序功能,用于向被测模块传递数据,接收、打印用于向被测模块传递数据,接收、打印从被测模块返回的数据。从被测模块返回的数据。桩模块(桩模块(stubstub)又称为假模块,用于模又称为假模块,用于模拟那些由被测模块所调用的下属模块功能。拟那些由被测模块所调用的下属模块功能。一般,驱动模块比桩模块容易设计。但都是额外开销。一般,驱动模块比桩模块容易设计。但都是额外开销。测试方法以白盒法为主。测试方法以白盒法为主。被测模块被测模块驱动模块驱动模块桩模块桩模块桩模块桩模块桩模块桩模块一、单元测试(一、单元测试(unit testing)本讲稿第四十二页,共七十六页n1、组装测试的任务n确定模块组装方案,将经过测试的模块组装为一个完整的系统。组装方案分为渐增式及非渐增式。n测试方法以黑盒法为主,按照组装方案进行测试。也称为联合测试或集成测试,重点测试模块的接口部分,也称为联合测试或集成测试,重点测试模块的接口部分,需设计测试过程使用的驱动模块或桩模块。需设计测试过程使用的驱动模块或桩模块。二、组装测试(二、组装测试(Integration testing)本讲稿第四十三页,共七十六页v2 2、渐增式组装测试、渐增式组装测试v渐增式是先进行模块测试,然后将这些模块逐步组装成较大的系统,渐增式是先进行模块测试,然后将这些模块逐步组装成较大的系统,每连接一个模块进行一次测试每连接一个模块进行一次测试。两种方案:两种方案:设计驱动模块或桩模块,对每一个新组装的子系统进行测试,设计驱动模块或桩模块,对每一个新组装的子系统进行测试,对发现问题较多的子系统或模块应该用白盒法作回归测试。对发现问题较多的子系统或模块应该用白盒法作回归测试。v自顶而下增值自顶而下增值v自底而上自底而上增值增值二、组装测试(二、组装测试(Integration testing)本讲稿第四十四页,共七十六页M1M4M3M2M6M5程程序序模模块块示示意意图图S5M1S1S1S1S2S2S2S3S3S3第第一一步步,测测试试主主控控模模块块M1M1设设计计桩桩模模块块S1S1、S2S2、S3S3,模拟被,模拟被M1M1调用的调用的M2M2、M3M3、M4M4。M2M3M4第第二二步步,依依次次用用M2M2、M3M3、M4M4替替代代桩桩模模块块S1S1、S2S2、S3S3,每每替替代代一一次次进进行行一一次次测试。测试。S4S4S4S5S5第第三三步步,对对由由主主控控模模块块M1M1和和模模块块M2M2、M3M3、M4M4构构成成的的子子系系统统进进行行测测试试,设设计桩模块计桩模块S4S4、S5S5。M5M6第第四四步步,依依次次用用模模块块M5M5和和M6M6替替代代桩桩模模块块S4S4、S5S5,并并同同时时进进行行新新的的测测试试。组组装装测测试完毕。试完毕。自顶而下增值自顶而下增值本讲稿第四十五页,共七十六页M3M6M5D1D2D3D1D1D2D2D3D3M2M4M1第第四四步步,把把已已测测试试的的子子系系统统按按程程序序结结构连接起来完成程序整体的组装测试。构连接起来完成程序整体的组装测试。D4D4D4D5D5D5M1M4M3M2M6M5程程序序模模块块示示意意图图第第一一步步,对对最最底底层层的的模模块块M3M3、M5M5、M6M6进进行行测试,设计驱动模块测试,设计驱动模块D1D1、D2D2、D3D3来模拟调用。来模拟调用。第第三三步步,设设计计驱驱动动模模块块D4D4、D5 D5 和和D6D6模模拟拟调调用,分别对新子系统进行测试。用,分别对新子系统进行测试。第第二二步步,用用实实际际模模块块M2M2、M1M1和和M4M4替替换驱动模块换驱动模块D1D1、D2D2、D3D3。D6自底而上增值自底而上增值本讲稿第四十六页,共七十六页确定组装过程的原则确定组装过程的原则确定组装过程的原则确定组装过程的原则n 自顶而下增值自顶而下增值n优点:能够尽早发现系统主控方面的问题。n缺点:无法验证桩模块是否完全模拟了下属模块的功能。n n 自底而上自底而上自底而上自底而上增值增值n优点:驱动模块较容易编写桩模块,能够尽早查出底层涉及较复杂的算法和实际的I/O模块中的错误。n缺点:最后才能发现系统主控方面的问题。集成过程的原则集成过程的原则 尽早测试关键模块。尽早测试关键模块。尽早测试关键模块。尽早测试关键模块。尽早测试包含尽早测试包含尽早测试包含尽早测试包含I/OI/OI/OI/O的模块。的模块。的模块。的模块。二、组装测试(二、组装测试(Integration testing)本讲稿第四十七页,共七十六页3、混合增值,常见的混合增值方案有:衍变的自顶而下先自底而上集成子系统,再自顶而下集成总系统。自底而上自顶而下增值对含有读操作的子系统采用自底而上。对含有写操作的子系统采用自顶而下。回归测试在回归测试中自底而上,对其余部分(尤其是对修改过的子系统)采用自顶而下。二、组装测试(二、组装测试(Integration testing)本讲稿第四十八页,共七十六页1、任务 又称为有效性测试或功能测试。其任务是验证系统的功能、性能等特性是否符合需求规格说明。选择测试人员选择测试人员选择测试用例选择测试用例实际运行测试实际运行测试软件计划软件计划用户文档用户文档开发文档开发文档源程序文本源程序文本支持环境支持环境有效性有效性测试测试软件软件配置配置审查审查管理管理机构机构裁决裁决专家专家鉴定会鉴定会交用户交用户运行维护运行维护测试报告测试报告软件配置软件配置三、确认测试(三、确认测试(Validation testing)本讲稿第四十九页,共七十六页(1)有效性测试制定测试计划,运用黑盒法,验证软件特性是否与需求符合。(2 2)软件配置复查)软件配置复查 软软件件配配置置 指指软软件件工工程程过过程程中中所所产产生生的的所所有有信信息息项项:文文档档、报报告告、程程序序、表表格格、数数据据。随随着着软软件件工工程程过过程程的的进进展展软软件件配配置置项项(SCI SCI software software Configuration Configuration ItemItem)快快速速增增加加和和变变化化。应应复复查查SCISCI是否齐全。是否齐全。2 2、确认测试的步骤、确认测试的步骤三、确认测试(三、确认测试(Validation testing)本讲稿第五十页,共七十六页F F F Function Testing unction Testing 功能测试功能测试L L L Local Area Testing ocal Area Testing 局域化测试局域化测试U U U Usability Testing sability Testing 可使用性测试可使用性测试R R R Regression Testing egression Testing 回归测试回归测试P P P Performance Testing erformance Testing 性能测试性能测试S S S Supportability Testing upportability Testing 可支持可支持性测试性测试(3 3)测试和测试和 测试测试 测试测试 :是在开发机构的监督下,由个别用户在确认测试阶段后期对软件进:是在开发机构的监督下,由个别用户在确认测试阶段后期对软件进行测试,目的是评价软件的行测试,目的是评价软件的FLURPSFLURPS(功能、局域化、可使用性、可靠(功能、局域化、可使用性、可靠性、性能和支持),注重界面和特色。性、性能和支持),注重界面和特色。测试测试:由支持软件预发行的客户对:由支持软件预发行的客户对FLURPSFLURPS进行测

    注意事项

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

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




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

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

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

    收起
    展开