已阅读5页,还剩44页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1,软件生存周期,可行性研究,需求分析,概要设计,详细设计,编码,集成测试,确认测试,使用与维护,退役,软件定义,软件开发,软件使用与维护,软件生命周期,2,软件工程,-软件测试,3,防不胜防的软件错误例:1963年,美国,飞往火星的火箭爆炸,损失$10million.原因:FORTRAN循环DO5I=1,3误写为DO5I=1.3,软件测试(Testing),软件测试是保证软件质量的关键步骤,是对软件规格说明、设计和编码的最后复审,其工件量约占总工作量40%以上(对于人命关天的情况,测试相当于其它部分总成本的35倍)。,4,1.基本概念,1、定义:测试是为了发现程序中的错误而执行程序的过程。注意:只能尽可能查错,不能证明程序中没有错;测试员与程序员不应是同一个人。2、黑盒和白盒测试,黑盒测试(black-box,orclosed-boxtesting):不考虑程序内部的结构,只观察程序的入口和出口,是否能完成规格要求的输入输出.功能测试,5,白盒测试(white-box,oropen-box,clear-boxtesting):程序的结构和处理过程象白盒子一样透明.结构测试,1.基本概念,若程序执行需10-3秒,则对于所有合法输入的测试大约需用一万年,而且还应测试输入非法数据的情况。,主要问题:穷尽测试(completetest)通常是不可能的。例:(Black-box)程序要求输入3个整形数据。若字长16位,则各种可能输入的排列组合共有(种),6,例:(White-box)下图所示的程序中共有5201014条可能的执行通路,显然,每条通路都执行一遍是不现实的。,1.基本概念,7,3、测试步骤:,1.基本概念,测试阶段的信息流:,8,2.单元测试(白盒),主要测试以下五个方面:1、模块接口:内部检查:传输参数的数目、属性、单位、次序是否匹配;全程变量的定义是否一致;只做输入的变元有无被修改,等等。外部检查:打开、结束、关闭文件的操作;文件和属性;IO错误处理;输出拼写,等等。2、局部数据结构:数据说明(declaration);初始化与缺省值的设置;变量名拼写;数据类型的相容性;上下溢出及地址异常,等等。,9,2.单元测试,3、重要的执行通路:由于穷尽测试不可能,故通常针对最常见的错误设计测试方案。,4、出错处理通路:预见出现错误的条件,设置处理。,5、边界条件单元测试中最后,也可能是最重要的任务,因为软件常在其边界失效。,10,1、代码审查(codeinspection)彻底检查:例如LucentTechnologies的测试策略,是由三人一组(包括author,reader,和recorder),逐行检查源代码。演习:由人扮演computer,模拟执行情况。,2.单元测试,优点:一次审查可发现多个错误,不必改一个测一个。,单元测试的主要手段:,2、制作测试软件:Stub(存根)和Driver(驱动)软件的编写,属额外开支。模块高内聚可简化这一过程。,11,3.集成测试(IntegrationTesting),1、非渐增式测试(Big-bangtesting),12,3.集成测试,两种方式的比较:Incrementaltesting可以较早发现模块间的接口错误;Big-bangtesting最后才组装,因此错误发现得晚。Big-bangtesting中发现错误后难以诊断定位;Incrementaltesting中,出现的错误往往跟最新加入的模块有关。Incrementaltesting在不断集成的过程中使模块不断在新的条件下受到新的检测,测试更彻底。Incrementaltesting较Big-bangtesting费时。Big-bangtesting可以同时并行测试所有模块,能充分利用人力。,2、渐增式测试(Incrementaltesting),13,自顶向下测试第1步:测试顶端模块,用存根程序(stub)代替直接附属的下层模块Stub:模拟未测试模块的活动.,3.集成测试,3、Incrementaltesting的几种策略,14,第2步:根据深度优先或宽度优先的策略,每次用一个实际模块代换一个stub。,3.集成测试,第3步:在结合进一个模块的同时进行测试。,M,第4步:回归测试(regressiontesting)全部或部分地重复以前做过的测试。,15,自底向上测试第1步:把低层模块组合成族,每族实现一个子功能。第2步:用驱动程序(Driver)协调测试数据的IO,测试子功能族。,3.集成测试,优点:在早期即对主要控制及关键的抉择进行检验。问题:Stub只是对低层模块的模拟,测试时没有重要的数据自下往上流,许多重要的测试须推迟进行,而且在早期不能充分展开人力。,Driver:调用模块细节逐个进行测试.,16,第3步:去掉Driver,自下而上把子功能族合成更大的子功能族。,M,M,M,3.集成测试,注意:两种策略的优、缺点刚好互补,但单用其中任一种都不实际,通常根据软件的特点将二者混用。,17,Sandwichtesting(三文治测试),3.集成测试,Targetlayer,Top-down,Bottom-up,18,4.验收测试(Acceptancetesting),任务:验收软件的有效性(功能和性能达标)。手段:黑盒测试;用户参与;主要用实际数据进行测试。内容:按合同规定审查软件配置;设计测试计划,使通过测试保证软件能满足所有功能、性能要求;文档与程序一致,具有维护阶段所必须的细节;严格按用户手册操作,以检查手册的完整性和正确性。,19,5.设计测试方案(Planoftesting),主要技术:1、逻辑覆盖(Logicalcoverage)适用于白盒测试覆盖程度由弱到强顺次为:语句覆盖(Statementcoverage):每个语句至少执行一次。,任务:预定要测试的功能设计输入的测试数据(testcases)列出预期结果(expectedoutput),20,5.设计测试方案,例:,问题:若AND错写为OR,或X1错写为X1错写为X1,B=0;A=2,X1)A=1,B=1,X=1(满足A1,B0;A2,X1),问:条件覆盖?判定覆盖,答:不一定。反例:A=2,B=0,X=1A=1,B=1,X=2,判定/条件覆盖:即判定覆盖条件覆盖,23,条件组合覆盖:每个判定表达式中条件的各种可能组合都至少出现一次。,5.设计测试方案,全部可能的条件组合为:A1,B=0A1,B0A1,B=0A1,B0A=2,X1A=2,X1A2,X1A2,X1,Testcases:A=2,B=0,X=4(TT)A=2.B=1,X=1(FT)A=1,B=0,X=2(FT)A=1,B=1,X=1(FF),问题:没有测试到(TF)的情形,24,考察controlflowgraph的角度,还可考虑下述覆盖:点覆盖,5.设计测试方案,边覆盖,=语句覆盖,路径覆盖(Pathcoverage):每条可能的路径都至少执行一次,若图中有环,则每个环至少经过一次。,=判定覆盖,Testcases:A=1,B=1,X=1A=1,B=1,X=2A=3,B=0,X=1A=2,B=0,X=4,路径覆盖条件组合覆盖,25,划分经验当规定了输入范围时:,5.设计测试方案,2、等价划分(EquivalencePartitioning)适用于黑盒测试划分一组等价类描绘一组输入条件的有效或无效条件,测试程序是否有设计方案中该有的输出结果.,当规定了输入的一组值,且对不同值做不同处理时:例:教工分房方案中,按教授、副教授、讲师、助教分别计分有效类4个;无效类1个,26,当规定了输入的规则时:例:(PASCAL)语言规定,每个语句以“;”结束有效类1个;无效类若干(以“,”结束、以“:”结束、以空格结束等等)当输入为整型时:有效类可分为Z+、0、Z三种当处理表格时:有效类可分为空表、含一项的表、含多项的表等注:以上经验亦适用于输出数据;不需要测试编译程序肯定能发现的错误。,5.设计测试方案,27,设计步骤设计一个新方案以尽可能多地覆盖尚未被覆盖的有效等价类;重复这一步骤直到所有有效类都被覆盖为止。设计一个新方案以覆盖一个且仅一个尚未被覆盖的无效等价类;重复这一步骤直到所有无效类都被覆盖为止。(通常程序执行一个错误后即不继续检测其它错误,故每次只测一个无效类),5.设计测试方案,28,3、边界值分析(BoundaryValueAnalysis)注意:程序最容易在边界发生错误;通常与等价划分结合进行。4、错误推测(FailurePrediction)思路:列出可能有的错误;列出容易发生错误的特殊情况。以此为基础设计测试方案。根据:直觉、经验工具:常见错误清单、判定表等。,5.设计测试方案,29,5、实用策略(PracticalStrategies)黑盒设计白盒补充在任何情况下都应该使用边界值分析的方法;必要时用等价划分法补充;必要时再用错误推测法补充;对照程序逻辑,检查测试方案。可根据对程序可靠性的要求采用不同的逻辑覆盖标准,必要时补充一些测试方案。注:即使用上述综合策略设计测试方案,仍不能保证发现一切错误。例如Lucent公司经过包括逐行检查源代码在内的多方面测试之后,其软件能达标运行的成功率为,5.设计测试方案,80%。,30,6.调试(Debugging),测试发现错误调试改正错误,第1步:确定错误的位置(95%工作量);第2步:改正错误。,Failure(外错误)通常是由系统设计产生的.,Fault(故障、内错误、error、bug)起因于软件生产中的人为错误.,程序的failure通常有一个清晰的表现特征,但是fault往往很难被发现。,31,Executionofcases,Debugging,Additionaltests,Suspectedcauses,Identifiedcauses,Corrections,Regressiontests,Debugging,6.调试,32,1、调试技术输出存储器内容(memorydump):以八进制或十六进制的形式印出存储器的内容。缺点:输出信息量极大,不易解读且大多无用;输出的是程序在某一时刻的静态情况,且往往不是出错时的状态。,6.调试,33,插入“watchpoints”(或称“spypoints”)人工插入打印缺点:改动源代码,增加了出错机会;打印信息可能太多。自动调试工具无须打印额外信息,且不改动源代码,6.调试,34,2、调试策略调试过程的关键不是调试技术,而是用来推断错误原因的基本策略。主要有:试探法,凭经验猜测。回溯法:由症状(symptom)最先出现的地方,沿controlflow向回检查。适用于小型程序。对分法:在关键点插入变量的正确值,则:,6.调试,35,收集数据,组织数据,研究数据间的关系,提出假设,证明假设,纠正错误,能,能,不能,不能,6.调试,归纳法:从错误症状中找出规律,推断根源。,36,列举可能的原因,排除不正确的假设,精化余下的假设,证明假设,收集更多数据,纠正错误,有剩余,能,不能,无剩余,演绎法:普通特殊从假设中逐步排除、精化,从而导出错误根源。,6.调试,37,7.软件可靠性(Reliability),1、基本概念可靠性(Reliability):程序在给定的时间间隔内,按照说明书的规定,成功地运行的概率。可用性(Usability):程序在给定的时间点,按照说明书的规定,成功地运行的概率。正确性(Correctness):程序的功能正确。,Reliability,Correctness,Usability,38,7.软件可靠性,设系统故障停机时间为td1,td2,;正常运行时间为tu1,tu2,;则系统的“稳态可用性”为,Availability=(Shooman,1983)其中MTTF=MeanTimeToFailure=MTTR=MeanTimeToRepair=,0,t,tu1,td1,tu2,td2,39,2、估算MTTF:MTTF=,7.软件可靠性,其中:K为经验常数(典型值约在200左右);ET为测试前故障总数;IT为程序长度(机器指令总数);为测试(包括调试)时间;EC()为时间从0至期间改正的错误数。,前提假设:ET/ITConstant(通常为0.52%)调试中没有引入新故障(即ET与时间无关)MTTF与剩余故障成反比,40,换个角度看问题,7.软件可靠性,意义:可根据对软件平稳运行时间的要求,估算需改正多少个错误后才能结束测试。,还有一个问题,ET=?,估算方法:,植入故障法:人为植入NS个故障,测后发现ns个植入故障和n个原有故障,则设,41,Hyman分别测试法:二人(组)分别独立测试同一程序,甲测得故障总数为B1,乙测得为B2,其中有bc是相同的,设以甲的测试结果为基准(即相当于中的植入故障),则设,7.软件可靠性,一般多测几个取平均。,42,3、正确性说明目标:研究能证明程序正确性的自动系统。,7.软件可靠性,a(i):断言(assertion),证明:对任一个i,执行了pi到pi+1之间的语句后,可将a(i)变为a(i+1),则证明由a(1)可导出a(n)。若a(1)和a(n)正确,且程序确定可终止,则证明程序正确。,但是:即使有了正确性证明程序,软件测试也仍然是需要的。,因为:正确性证明只证明程序功能正确,但不能验证动态特性;证明过程本身也可能发生错误。,原理:,43,测试用例完成率=已完成用例/全部用例,测试时间使用率=所用时间/总时间,第一阶段,第二阶段,第三阶段,8.日立预测法,日立预测法测试期间绘制并检查两种曲线,1、测试完成率曲线:,经验:工程的成败取决于第一阶段向第二阶段转移断点的位置,一般成功的工程其转折点位于15%;若超过55%则破产不可避免。,44,峰值时间,成功的工程,失败的工程,极坏的工程,8.日立预测法,2、错误发现率曲线:,经验:刚过峰值点后曲线的导数关系到工程的成败。若导数值大于-0.3,则失败不可避免。,45,其它可靠性预测模型(reliabilitypredictionmodel):最早:Jelinski-Morandamode
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 卫生副高职称考试试题
- 2021年税务师《财务与会计》财管公式总结
- 公考资料湖北省考《行测》真题附答案
- 国开电大老年教育专题(河北)形考任务 3参考答案
- 山西省公务员2025年考试申论真题试卷(含答案)
- 会展企业战略管理考前押题宝典
- (完整版)制药工程试题
- 工业机器人技术考试题库
- 安全员B证(项目负责人)操作证考试100题及答案
- 2025年中医眼科角膜炎中医眼科临床康复能力测试卷
- 律师对客户经典话术汇总
- 体质测试教案
- 15D501建筑物防雷设施安装图集
- 水库工程建设征地移民安置监测评估本底调查报告
- 多参数监护仪产品技术要求三瑞
- 森林抚育工程竣工验收资料
- 质量五大工具培训
- GB/T 8918-2006重要用途钢丝绳
- GB/T 8737-1988铸造黄铜锭
- 05 02 第五章第二节 吸收借鉴优秀道德成果
- 物理光学-叶玉堂
评论
0/150
提交评论