面向对象测试技术

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

2020/3/1InstituteofComputerSoftwareNanjingUniversity1Object-OrientedTesting面向对象测试技术2020/3/1InstituteofComputerSoftwareNanjingUniversity2摘要软件测试面向对象软件测试测试驱动的开发2020/3/1InstituteofComputerSoftwareNanjingUniversity3摘要软件测试面向对象软件测试测试驱动的开发2020/3/1InstituteofComputerSoftwareNanjingUniversity4软件测试可靠性:观测系统行为是否同规格说明行为一致的一种成功标准软件可靠性:软件系统在特定条件和特定时间下,不会导致系统失败的可能性。--IEEE测试的最大目标:最大限度地发现错误,以便开发者改正它们,以增加系统的可靠性。2020/3/1InstituteofComputerSoftwareNanjingUniversity5软件测试软件测试:使用人工或自动手段来运行或测试某个系统的过程,其目的在于检验它是否满足规定的需求或是弄清预期结果与实际结果之间的差别。--IEEE,1993“程序测试是为了发现错误而执行程序的过程”。--G.J.Myers,《TheArtofSoftwareTesting》2020/3/1InstituteofComputerSoftwareNanjingUniversity6广义的软件测试确认:评估将要开发的软件产品是正确无误、可行和有价值的验证:检验软件开发的每个阶段、每个步骤的结构是否正确无误,是否与软件开发各阶段的要求或期望的结果相一致。测试:狭义的测试计划、需求分析、测试设计、编码编码、测试2020/3/1InstituteofComputerSoftwareNanjingUniversity7软件测试术语测试:检查软件的某个方面是否正确验证(verification):根据需求文档(系统用例)检查软件是否正确有效性验证(validation):检查软件是否是顾客需要的,例如它是否以顾客和最终用户能接受的方式执行顾客需要的函数2020/3/1InstituteofComputerSoftwareNanjingUniversity8软件测试的原则“尽早和不断地测试”设计测试用例时应该考虑合法的和不合法的输入以及各种边界条件,特殊情况下要制造极端状态和意外状态,如网络异常中断,电源断电一定要注意测试中的错误集中发生现象对测试错误结果一定要有一个确认过程回归测试的关联性要引起充分注意妥善保存一切测试过程文档,以便测试的重现2020/3/1InstituteofComputerSoftwareNanjingUniversity9软件测试过程代码会审:对程序进行静态分析的过程单元测试:检查软件设计的最小单位模块,采用结构测试(白盒法)+功能测试(黑盒法)集成测试:将模块按照设计要求组装起来同时进行测试,主要目标是发现与接口有关的问题验收测试:向未来的用户表明系统能够像预定要求那样工作。2020/3/1InstituteofComputerSoftwareNanjingUniversity10软件测试的模型V模型:软件开发瀑布模型的变种,主要反映测试活动与分析和设计的关系局限性:把测试作为编码之后的最后一个活动,需求分析等前期产生的错误直到后期的验收测试才能发现需求分析验收测试系统测试集成测试单元测试编码详细设计概要设计2020/3/1InstituteofComputerSoftwareNanjingUniversity11软件测试的模型W模型强调:测试伴随着整个软件开发周期,而且测试的对象不仅仅是程序,需求、设计等同样要测试,也就是说,测试与开发是同步进行的。局限性:在W模型中,需求、设计、编码等活动被视为串行的,同时,测试和开发活动也保持着一种线性的前后关系,上一阶段完全结束,才可正式开始下一个阶段工作。这样就无法支持迭代的开发模型。2020/3/1InstituteofComputerSoftwareNanjingUniversity12软件测试的模型H模型:测试活动完全独立出来,形成了一个完全独立的流程,将测试准备活动和测试执行活动清晰地体现出来。只要测试准备完成,就可以执行测试2020/3/1InstituteofComputerSoftwareNanjingUniversity13软件测试的模型X模型:弥补V模型的一些缺陷,例如:交接、经常性的集成等问题。X模型的左边描述的是针对单独程序片段所进行的相互分离的编码和测试,此后将进行频繁的交接,通过集成最终合成为可执行的程序。右上方:这些可执行程序还需要进行测试。已通过集成测试的成品可以进行封版并提交给用户,也可以作为更大规模和范围内集成的一部分。多根并行的曲线表示变更可以在各个部分发生。右下方:探索性测试。这是不进行事先计划的特殊类型的测试2020/3/1InstituteofComputerSoftwareNanjingUniversity14摘要软件测试面向对象软件测试测试驱动的开发2020/3/1InstituteofComputerSoftwareNanjingUniversity15OO技术新特点:封装、继承、多态产生新的错误可能性不再是传统的功能模块结构,原有集成测试所要求的逐步将开发的模块搭建在一起进行测试的方法已成为不可能OO开发模式不同于传统开发模式,不可能用功能细化的观点来检测OOA和OOD的结果。需要一种新的测试模型!2020/3/1InstituteofComputerSoftwareNanjingUniversity16面向对象软件测试模型面向对象开发模型:OOA,OOD,OOP相应的OOATestOODTestOOPTestOOUnitTestOOIntegrateTestOOSystemTest2020/3/1InstituteofComputerSoftwareNanjingUniversity17面向对象软件测试模型对分析结果的测试对设计结果的测试对编程风格和程序代码的测试OOAOODOOPOOATestOODTestOOPTestOOUnitTestOOIntegrateTestOOSystemTest单一功能模块的测试对服务交互进行测试最后阶段的测试,需借鉴OOA和OOD测试的结果2020/3/1InstituteofComputerSoftwareNanjingUniversity18OOATestOOA:把E-R图和语义网络模型,即信息造型中的概念,与OOP中的重要概念结合在一起而形成的设计方法。问题空间的图表的形式描述OOA直接映射问题空间,全面的将问题空间中实现功能的现实抽象化。将问题空间中的实例抽象为对象,用对象的结构反映问题空间的复杂实例和复杂关系,用属性和操作表示实例的特性和行为。行为是相对稳定的,结构是相对不稳定的!2020/3/1InstituteofComputerSoftwareNanjingUniversity19OOATest测试的划分对认定的对象的测试对认定的结构的测试对认定的主题的测试对定义的属性和实例关联的测试对定义的服务和消息关联的测试OOA测试重点在其完整性和冗余性2020/3/1InstituteofComputerSoftwareNanjingUniversity20OODTestOOD:“造型的观点”,以OOA为基础归纳类,并建立类结构或进一步构造成类库,实现分析结果对问题空间的抽象,是OOA的进一步细化和更高层的抽象。测试的三个方面对认定的类的测试对构造的类层次结构的测试对类库的支持的测试2020/3/1InstituteofComputerSoftwareNanjingUniversity21OODTest对认定的类的测试:认定的类原则上应该尽量是基础类是否涵盖了OOA中所有认定的对象是否能体现OOA中定义的属性是否能实现OOA中定义的服务是否对应着一个含义明确的数据抽象是否尽可能少的依赖其它类类中的方法是否单用途2020/3/1InstituteofComputerSoftwareNanjingUniversity22OODTest对构造的类层次结构的测试:继承类层次结构是否涵盖了所有定义的类是否能体现OOA中所定义的实例关联是否能实现OOA中所定义的消息关联子类是否具有父类没有的新特性子类间的共同特性是否完全在父类中得以体现2020/3/1InstituteofComputerSoftwareNanjingUniversity23OODTest对类库支持的测试:强调的重点是再次软件开发的重用一组子类中关于某种含义相同或基本相同的操作,是否有相同的接口(包括名字和参数表)类中方法的功能是否较单纯,相应的代码行是否较少类的层次结构是否是深度大,宽度小2020/3/1InstituteofComputerSoftwareNanjingUniversity24OOPTest双刃剑!继承使代码重用率提高,同时错误传播的概率也提高多态使OO程序对外呈现出强大的处理能力,但同时使得程序内“同一”函数的行为复杂化,测试时不得不考虑不同类型具体执行的代码和产生的行为测试的两个方面数据成员是否满足数据封装的要求类是否实现了要求的功能2020/3/1InstituteofComputerSoftwareNanjingUniversity25OOUnitTest传统的单元测试对象:模块。多采用白盒测试技术。OO的单元测试:封装的类或对象。不再孤立地测试单个操作,而是将操作作为类的一部分。两个考虑继承的成员函数是否都不需要测试?继承的成员函数在子类中做了改动成员函数调用了改动过的成员函数的部分对父类的测试是否能照搬子类?2020/3/1InstituteofComputerSoftwareNanjingUniversity26OOIntegrateTest传统的集成测试自顶向下集成自底向上集成OO集成:由于“构成类的成分的直接和间接的交互”,传统的增量集成方式经常是不可能的OO集成测试静态测试:针对程序的结构,“逆向工程”动态测试:测试需要达到一定的覆盖标准(达到类所有的服务要求或服务提供的一定覆盖率;依据类间传递的消息,达到对所有执行线程的一定覆盖率;达到类的所有状态的一定覆盖率)2020/3/1InstituteofComputerSoftwareNanjingUniversity27OOSystemTestTips:应该尽量搭建与用户实际使用环境相同的测试平台,应该保证被测系统的完整性;应该参考OOA分析的结果,对应描述的对象、属性和各种服务,检测软件是否能够再现“问题”空间系统测试需要对被测的软件结合需求分析做仔细的测试分析,建立测试用例2020/3/1InstituteofComputerSoftwareNanjingUniversity28OOSystemTest具体测试内容功能测试:最常用和必须的测试强度测试:测试系统的能力最高实际限度性能测试:测试软件的运行性能安全测试:测试是否确实能对系统进行保护,是否有安全保密漏洞恢复测试:采用人工的干扰使软件出错,中断使用,检测系统的恢复能力,特别是通信系统可用性测试:测试用户是否能够满意使用2020/3/1InstituteofComputerSoftwareNanjingUniversity29摘要软件测试面向对象软件测试测试驱动的开发2020/3/1InstituteofComputerSoftwareNanjingUniversity30eXtremeProgrammingTestDrivenDevelopment

1 / 50
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功