软件工程7.ppt
- 文档编号:2154941
- 上传时间:2022-10-27
- 格式:PPT
- 页数:73
- 大小:2.10MB
软件工程7.ppt
《软件工程7.ppt》由会员分享,可在线阅读,更多相关《软件工程7.ppt(73页珍藏版)》请在冰豆网上搜索。
第第7章章测测试试(Testing)n软件基本概念件基本概念n软件件测试与与软件开件开发n测试过程程单元元测试集成集成测试确确认测试n测试方法方法白盒白盒黑盒黑盒n调试n软件可靠性件可靠性库存管理系统数据流图,给出软件结构库存管理系统数据流图,给出软件结构划分划分n
(1)根据根据计划部划部门送来的收送来的收货单和已存在的和已存在的物物资编码文件,建立物文件,建立物资采采购单流水流水账n
(2)根据技)根据技术部部门送来的物送来的物资验收收报告和告和物物资采采购单流水流水账,更新物,更新物资台台账文件文件n(3)对物物资台台账分分类汇总,将,将结果存果存储与与物物资总账文件文件n软件件总体体设计的基本原理的基本原理n耦合与内聚的定耦合与内聚的定义P开始Q结束ABTFFT转换成转换成NS图和图和PAD问题分析图问题分析图防不防不胜防的防的软件件错误例例1:
1963年年,美国美国,飞往火星的火箭爆炸往火星的火箭爆炸,损失失1千万千万美元美元.原因原因:
FORTRAN循循环DO5I=1,3误写写为DO5I=1.3第第7章章测测试试(Testing)w软件测试是保证软件质量的关键步骤,是对软件规格说软件测试是保证软件质量的关键步骤,是对软件规格说明、设计和编码的最后复审明、设计和编码的最后复审w其工件量约占总工作量其工件量约占总工作量40%以上(对于人命关天的情以上(对于人命关天的情况,测试相当于其它部分总成本的况,测试相当于其它部分总成本的35倍倍)。
)。
7.1软件测试的基本概念软件测试的基本概念测试是是为了了发现程序中的程序中的错误而而执行程序的行程序的过程。
程。
注意:
注意:
只能尽可能只能尽可能查错,不能,不能证明程序中明程序中没有没有错;测试员与程序与程序员不不应是同一个人。
是同一个人。
测试用例用例:
为了了进行行测试而而输入的和入的和获得的得的输出数据。
出数据。
22、软件测试的对象:
、软件测试的对象:
软件测试不等于程序测试。
它贯穿于软件定义和开发的软件测试不等于程序测试。
它贯穿于软件定义和开发的整个期间。
整个期间。
测试的对象测试的对象需求分析,概要设计,详细设计以及程序编码等各个阶需求分析,概要设计,详细设计以及程序编码等各个阶段得到的文档都是测试的对象段得到的文档都是测试的对象1、定义、定义用户要求用户要求用户用户:
我要什么我要什么?
运行结果运行结果计算机计算机:
程序运行得程序运行得到的结果到的结果源程序源程序程序员程序员:
我要让计算我要让计算机做什么机做什么?
设计说明书设计说明书设计员设计员:
我要让软件我要让软件做什么做什么?
需求说明书需求说明书分析员分析员:
我要提我要提供什么供什么?
理解正确性理解正确性表达正确性表达正确性表达正确性表达正确性理解正确性理解正确性设计正确性设计正确性理解正确性理解正确性编码正确性编码正确性输入正确性输入正确性运行正确性运行正确性相符吗相符吗?
3Myers软件测试目的软件测试目的
(1)
(1)测试是是程序的程序的执行行过程程,目的在于,目的在于发现错误;
(2)
(2)一个好的一个好的测试用例在于用例在于能能发现至今未至今未发现的的错误;(3)(3)一个成功的一个成功的测试是是发现了至今未了至今未发现的的错误的的测试。
!
:
!
:
测试只能只能查找程序中的找程序中的错误,而不能,而不能证明程序中没有明程序中没有错误。
n黑盒黑盒测试:
把把测试对象看做一个黑盒子,象看做一个黑盒子,测试人人员完全不考完全不考虑程序内部的程序内部的逻辑结构和内部特构和内部特性,只依据程序的需求性,只依据程序的需求规格格说明明书,检查程序程序的功能是否符合它的功能的功能是否符合它的功能说明。
明。
黑盒黑盒测试又叫做功能又叫做功能测试或数据或数据驱动测试。
n黑盒黑盒测试方法是在程序接口上方法是在程序接口上进行行测试,4测试用例的设计方法测试用例的设计方法uu黑盒穷举测试黑盒穷举测试对对对对所有输入数据的各种可能值的排列组合都进所有输入数据的各种可能值的排列组合都进所有输入数据的各种可能值的排列组合都进所有输入数据的各种可能值的排列组合都进行测试行测试行测试行测试,来检查程序是否都能产生正确的输出。
,来检查程序是否都能产生正确的输出。
,来检查程序是否都能产生正确的输出。
,来检查程序是否都能产生正确的输出。
实际上这是不可能的。
实际上这是不可能的。
实际上这是不可能的。
实际上这是不可能的。
nn假设一个假设一个假设一个假设一个程序程序程序程序PP有有有有输入量输入量输入量输入量XX和和和和YY及及及及输出量输出量输出量输出量ZZ。
在字。
在字。
在字。
在字长为长为长为长为3232位的计算机上运行。
若位的计算机上运行。
若位的计算机上运行。
若位的计算机上运行。
若XX、YY取整数,按黑取整数,按黑取整数,按黑取整数,按黑盒方法进行穷举测试:
盒方法进行穷举测试:
盒方法进行穷举测试:
盒方法进行穷举测试:
nn可能采用的可能采用的可能采用的可能采用的测试数据组:
测试数据组:
测试数据组:
测试数据组:
232232264nn如果测试一组数据需要如果测试一组数据需要如果测试一组数据需要如果测试一组数据需要11毫秒,一年工作毫秒,一年工作毫秒,一年工作毫秒,一年工作3653652424小时,完成所有测试需小时,完成所有测试需小时,完成所有测试需小时,完成所有测试需55亿年。
亿年。
亿年。
亿年。
n白盒测试:
把把测试对象看做一个透明的盒子象看做一个透明的盒子,它,它允允许测试人人员利用程序内部的利用程序内部的逻辑结构及有关信构及有关信息,息,设计或或选择测试用例,用例,对程序所有程序所有逻辑路径路径进行行测试。
n白盒白盒测试又称又称为结构构测试或或逻辑驱动测试。
输入:
输入:
5,9输出:
输出:
9,5swap(intx,inty)intt;t=x;x=y;y=t;main()inta,b;int*pointer_1,*pointer_2;scanf(%d,%d,&a,&b);pointer_1=&a;pointer_2=&b;if(a1ANDB=0TA=2ORX1TX=X/AX=X+1返回返回FF课堂作业:
课堂作业:
设计上面流程图中满足判定设计上面流程图中满足判定TT的测试用例的测试用例5软件测试步骤软件测试步骤n单元元测试,集成,集成测试(子系(子系统和系和系统测试),确),确认测试,平行运行,平行运行单元单元测试测试单元单元测试测试单元单元测试测试被测模块被测模块被测模块被测模块被测模块被测模块集成集成测试测试设设计计信信息息确认确认测试测试软软件件需需求求平行平行运行运行其其他他信信息息3单元测试单元测试n实用用软件度量件度量(CapersJones,McGraw-Hill1991)中指出中指出单元测试的成本效率大单元测试的成本效率大约是集成测试的两倍约是集成测试的两倍系统测试的系统测试的3倍倍图表表表明尽可能早地排除尽可能多的图表表表明尽可能早地排除尽可能多的Bug,可,可以减少以后阶段测试在时间和精力上的开销。
以减少以后阶段测试在时间和精力上的开销。
3.单元测试(白盒)单元测试(白盒)n定定义:
集中集中检测软件件设计的最小的最小单元元模模块,目的在于,目的在于发现各模各模块内部可能存在的各内部可能存在的各种差种差错。
n应用白盒用白盒测试技技术:
单元元测试从程序内部从程序内部结构出构出发设计测试用例,所以主要使用白盒用例,所以主要使用白盒测试技技术。
n内容内容模块模块模块接口模块接口出错处理出错处理局部数据结构局部数据结构重要的执行通路重要的执行通路边界条件边界条件1、代、代码审查(codeinspection)Walk-through:
例例如如LucentTechnologies的的测试策策略略,是是由由三三人人一一组(包包括括author,reader,和和recorder),逐行,逐行检查源代源代码。
Rehearsal:
由人扮演:
由人扮演computer,模,模拟执行行情况。
情况。
3.单元测试(白盒)优点优点:
一次审查可发现多个错误,不必改一一次审查可发现多个错误,不必改一个测一个。
个测一个。
单元测试的主要手段单元测试的主要手段:
3.单元测试(白盒)单元测试(白盒)n驱动程序程序通常也就是一个通常也就是一个“主程序主程序”,它接收,它接收测试数数据,把据,把这些数据些数据传送送给被被测试的模的模块,并且,并且印出有关的印出有关的结果。
果。
n存根程序存根程序代替被代替被测试的模的模块所所调用的模用的模块,也可以称,也可以称为“虚虚拟子程序子程序”。
它使用被它代替的模它使用被它代替的模块的接口,可能做最少的接口,可能做最少量的数据操作,印出量的数据操作,印出对入口的入口的检验或操作或操作结果,并且把控制果,并且把控制归还给调用它的模用它的模块。
2、制做测试软件:
、制做测试软件:
Driver(驱动)(驱动)和和Stub(存根)软(存根)软件的编写,属额外开支。
件的编写,属额外开支。
被测模块被测模块存根模块存根模块驱动模块驱动模块存根模块存根模块存根模块存根模块测试用例测试用例测试结果测试结果单元测试的测试环境单元测试的测试环境3.单元测试(白盒)单元测试(白盒)图图7.2是一个正文加工系统的部分层次图,假定要测试是一个正文加工系统的部分层次图,假定要测试其中编号为其中编号为3.0的关键模块的关键模块正文正文编辑编辑模块。
模块。
图图7.27.2正文加工系统的层次图正文加工系统的层次图驱动驱动存根存根changechange存根存根appendappend3.单元测试(白盒)单元测试(白盒)n.TESTSTUB(*.TESTSTUB(*测试正文正文编辑模模块用的用的存根程序存根程序*)n初始化;初始化;n输出信息出信息“进入了正文入了正文编辑程序程序”;n输出出“输入的控制信息是入的控制信息是”CFUNCTCFUNCT;n输出出缓冲区中的字符串;冲区中的字符串;nIFCFUNCT=CHANGEIFCFUNCT=CHANGEnTHENTHENn把把缓冲区中第二个字改冲区中第二个字改为*nELSEELSEn在在缓冲区的尾部加冲区的尾部加?
nENDENDIFIF;n输出出缓冲区中的新字符串;冲区中的新字符串;nENDTESTSTUBENDTESTSTUB3.单元测试(白盒)单元测试(白盒)n.TESTDRIVER(*.TESTDRIVER(*测试正文正文编辑模模块用的用的驱动程序程序*)n说明明长度度为25002500个字符的一个个字符的一个缓冲区;冲区;n把把CFUNCTCFUNCT置置为希望希望测试的状的状态;n输入字符串;入字符串;n调用正文用正文编辑模模块;n停止或再次初启;停止或再次初启;nENDTESTDRIVERENDTESTDRIVERn注意:
注意:
驱动程序和存根程序代表开程序和存根程序代表开销。
4.集成测试集成测试(IntegrationTesting)1、非渐增式测试、非渐增式测试(Big-bangtesting)TestA,B,C,DTestATestBTestCTestDBd1ACBEDFs1Dd2s2Cd3Ed4Fd5As4s3s5ACBEDF说明:
说明:
di为驱动程序为驱动程序si为存根程序为存根程序举例举例举例举例2、渐增式测试、渐增式测试(Incrementaltesting)TestC,DTestATestBTestCTestDTestA,BTestA,B,C,D自自顶向下向下Top-downtesting第第1步:
步:
测试顶端模端模块,用存根程序,用存根程序(stub)代代替直接附属的下替直接附属的下层模模块Stub:
tosimulatetheactivityofthecomponentwhichisnotyettested.4.集成测试集成测试33、渐增测试、渐增测试的几种策略的几种策略MS1S2Si存根程序存根程序第第2步:
根据步:
根据深度深度优先或先或宽度度优先先的策略,的策略,每次用一个每次用一个实际模模块代代换一个一个stub。
4.集成测试集成
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程