软件测试基础.ppt.ppt

上传人:laozhun 文档编号:2908344 上传时间:2023-03-02 格式:PPT 页数:82 大小:1.60MB
返回 下载 相关 举报
软件测试基础.ppt.ppt_第1页
第1页 / 共82页
软件测试基础.ppt.ppt_第2页
第2页 / 共82页
软件测试基础.ppt.ppt_第3页
第3页 / 共82页
软件测试基础.ppt.ppt_第4页
第4页 / 共82页
软件测试基础.ppt.ppt_第5页
第5页 / 共82页
点击查看更多>>
资源描述

《软件测试基础.ppt.ppt》由会员分享,可在线阅读,更多相关《软件测试基础.ppt.ppt(82页珍藏版)》请在三一办公上搜索。

1、软件测试基础,主要内容,软件测试基本概念 软件测试模型,软件测试基本概念,什么是软件测试?,测试就是为了发现程序错误而运行程序的过程。,2.测试是以评价一个程序或者系统的属性为目标的任何一种活动。测试是对软件质量的度量。,3.使用人工或自动的手段来运行或测定某个软件系统的过程,其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别。,4.测试是为了度量和提高被测试的软件的质量,对测试件进行工程设计、使用和维护的并发生命周期活动。,5.在规定的条件下操作系统或部件、观察或记录结果和对系统或部件的某些方面做评价的过程以及 分析软件项以检测在存在的和要求的软件之间的区别以评价软件项的特

2、性。,6.一种作为主体的人对客体软件的某种固有属性通过各种手段进行的一种以认知和改造为目的的活动。,Glen Myers 软件测试的艺术-1979Bill Hetzel Complete Guide of Software TestingIEEE 软件工程术语(1983)Rick D.C Systematic Software Testing 2002国军标 GJB/Z 141军用软件测试指南 2004王轶辰 博士论文 2006,软件测试定义的演变反映了人们对软件认识的不断深入;软件测试与若干领域相交联。,软件质量,质量的概念 产品或服务满足明示或暗示需求能力的特性和特征的集合。ISO8492

3、(1986)软件质量的概念 与软件产品满足规定的和隐含的需求的能力有关的特性或特征的全体。ANSI/IEEE Std 729(1983),软件确认,确认通过检查和提供客观证据,证实特定预期用途的需求是否得到满足。在设计和开发中,确认关系到检查产品是否符合用户要求的过程;确认一般是在规定的操作条件下对最终产品进行的。在早期阶段,这样做可能也是必要的;“已确认的”一词用来表示相应的状态;如果有几种不同的预期用途,可进行多种确认。特定预期用途的需求通常是指需求规格说明或合同中规定的需求。,软件验证,通过检查并提供客观证据来确定规定的需求已被满足。注 1:在设计和开发中,验证是指对某项指定活动的结果进

4、行检查的过程,以确定该活动是否符合该活动声明的需求。注2:“已验证的”一词用来表示相应的状态。,软件测试模型,如何做软件测试?,软件测试的思维导图,一段需求,某单位计划开发一个室内温度控制系统软件,该系统能根据用户的设定实时地调节室内温度。要求在3秒内响应温度的变化,并在1分钟内将温度调节在设定温度的1度范围内。给出这个软件的测试方案,软件测试模型,软件测试目标,测试目标是进行一次测试活动的目的所在,只有确定了测试的目标之后才可能进行后续的一系列测试活动;从测试的定义可以看出软件测试活动总体的目标是对被测软件的某种属性的认知和改造;在实际测试中测试目标可以具体化为发现软件的缺陷、验证软件的功能

5、、评测软件的性能以及提高软件的可靠性等等。,在软件测试模型中,软件测试目标是核心要素!明确了“为什么要测”,实例,验证性测试功能验证+性能验证查错性测试猜错,基于需求的测试,基于需求的测试方法包括基于需求的硬件/软件综合测试,基于需求的软件综合测试和基于需求的低层测试。,23,基于需求的测试,三类测试的目标是:硬件/软件综合测试:验证软件在目标机环境中的正确运行。软件综合测试:验证软件需求和部件之间的内部关系,验证软件需求和软件部件在软件体系结构中的实现。低层测试:验证软件低层需求的实现。,24,基于需求的测试,为了满足软件测试目标:a.测试用例应主要以软件需求为基础。b.测试用例应开发成能验

6、证正确的功能和建立能暴露潜在错误的条件。c.软件需求覆盖分析应确定哪些软件需求未被测试。d.结构覆盖分析应确定哪些软件结构未被运行。,25,基于需求的测试,基于需求的硬件/软件综合测试:这种测试方法应把重点放在与目标机环境中运行的软件有关的错误源和高层功能上。基于需求的硬件/软件综合测试的目标是确保目标机中的软件满足高层需求。通过这种测试方法揭示的典型错误有:不正确的中断处理。不能满足执行时间需求。对软件瞬变或硬件失效的不正确的软件响应,如启动顺序、瞬变输入负载和输入电压瞬变。,26,数据总线和其它资源争用问题,如存储映象。机内自测试不能检测到失效。硬件/软件接口错误。反馈回路的不正确行为。对

7、存储器管理硬件或其它硬件设备的不正确的软件控制。堆栈溢出。用于确认外场可加载软件的正确性和兼容性的机制的不正确运行。软件划分的越界。,27,基于需求的软件综合测试:这种测试方法应把重点放在软件需求之间的内部关系,以及软件体系结构对需求的实现。基于需求的软件综合测试的目标是确保软件部件之间正确地相互作用并满足软件需求和软件体系结构。这种方法的实施途径可以是通过逐步地综合软件部件和相应地扩大测试用例的作用域来扩展需求的作用域。,28,用这种测试方法揭示的典型错误是:变量和常量的不正确的初始化。参数传递错误。数据失效,特别是全局数据。不适当的端点间分辨率。不正确的事件和操作顺序。,29,基于需求的低

8、层测试:这种测试方法应把重点放在演示每个软件部件符合其低层需求。基于需求的低层测试的目标是确保软件部件满足其低层需求。,30,用这种测试方法揭示的典型错误是:一个算法不能满足软件需求。不正确的循环操作。不正确的逻辑判定。不能正确地处理输入状态的合法组合。不能正确地响应丢失的或失效的输入数据。不能正确地处理异常,如算术故障或数组越界。不正确的计算顺序。不适当地算法精度,准确度或性能。,31,软件测试对象,测试对象指具有被测属性的软件实体。测试对象是对测试客体以及客体的信息场的具体化。测试对象具有“被测属性”和“软件实体”两个重要属性。“被测属性”和“测试实体”是确定一个测试对象不可或缺的两个重要

9、因素。只有对要测试的软件实体以及对测试实体的测试属性进行指定后,才算确定了一次测试的测试对象,也只有这样测试才有其存在的意义。,在软件测试模型中,软件测试对象的确定回答:“要测什么”,实例,测试阶段单元测试+集成测试+系统测试质量属性功能、性能、安全性、易用性等,软件测试依据,测试依据是指根据测试目标制定的能够对测试对象做出明确判断并得到测试结果的标准。在这个定义中,测试依据要具备两个条件:合法性 唯一性,在软件测试模型中,软件测试依据要求规定“凭什么测试”,实例,实例性文件软件需求、软件设计、软件用户手册。标准性文件国军标。,缺陷定义,通常人们一般性的将测试对象与测试依据之间的不匹配称之为缺

10、陷,但是在软件测试活动中有多个术语用来表示软件与相关依据之间的不一致情况,下面首先来明确几个概念关于错误的术语:失效(failure):当使用者感觉到程序不再按照期望的方式运行时,即认为发生了失效。故障(faults):是导致失效的原因,或者是指程序内部的一个错误(internal error)。缺陷(defect):在程序中存在的,有可能诱发软件故障或导致软件实效的潜在因素。,缺 陷,故 障,失 效,物理环境,使用者,其他设备,软件环境,激活,特殊的输入导致软件的特殊路径,演变,缺少对特殊路径的防范措施,容错机制,自检测,冗余机制,软件系统,功能、性能的的丧失、任务的失败、对环境的不利影响,

11、缺陷的演化过程,在软件生存期中的缺陷分布,Latent errors delivered,Inspections Test Operations,实例,缺陷类型代码错误、文档错误。缺陷等级关键、重要、一般。,知识问题,关注度问题,策略问题,人的认识问题,人实施的动作,理解、创造、修改,需求分析,概要设计,详细设计,编码调试,理解、创造、修改,理解、创造、修改,修改、重用、实现,开发阶段,文档规约,思维模型,环境制品,库,人工产品,算法,数据结构,语言结构,设计缺陷,需求缺陷,编码缺陷,缺陷产生的原因,测试解决方案,测试解决方案是对软件测试手段的具体化,它包括测试方法和测试工具两部分内容。以测试

12、对象为基础 解决方案的制定要以测试对象为前提,测试对象的特征和测试属性在很大程度上决定了测试方案。以测试依据为参照 测试方案的制定不能偏离测试依据所制定的标准,而且测试依据的形式也是制定测试策略的限制条件之一,例如采用形式化的需求规格和采用一套覆盖率指标作为测试依据它们所采用的测试策略是完全不同。,包含多种活动 测试解决方案中主要包括方法和支持方法的测试工具。其中测试方法中制定的是一系列的活动,包括如何生成测试用例、如何执行测试用例、测试执行的过程以及测试何时停止等等。,在软件测试模型中,软件测试方案表明:“怎么测软件”,软件测试过程,测试过程,需求,计划,设计,执行,总结,软件测试的技术,静

13、态测试方法动态测试方法白盒测试方法黑盒测试方法,47,测试工具,48,测试工具,通用,专用,全数字,半实物,全实物,实例,确定测试方法测试过程、测试策略、测试人员。明确测试工具,软件测试结果,测试结果是将测试方案施加于测试对象之后得到的结果。测试结果是软件测试的最终产品的集合,其中包括:测试的缺陷数据 这是最重要的成果形式,它是度量软件其他属性以及提高软件质量等一系列测试目标能够实现的基础。有人甚至认为发现缺陷的数量是衡量一次测试的唯一标准。,测试的评价 前面已经分析过软件测试的不充分性,那么对于一次测试进行合理的评价就是十分必要的,这也是根据测试做出其他决策的重要依据。测试过程的记录 这个记

14、录通常由一组文档来完成,记录了从测试对象的定义、测试依据的制定到测试策略的设计以及执行等等一系列活动,是测试的档案。,在软件测试模型中,软件测试结果说明:“软件怎么样”以及“测的怎么样”,实例,软件质量属性的对量测试过程、测试策略、测试人员。软件测试的质量,软件测试质量的构成,软件测试质量的构成是指影响软件测试质量的主要因素,它们是:1)开发文档的质量、2)测试需求的质量、3)测试人员的素质、4)测试用例的充分性、5)测试环境的有效性、6)测试流程的合理性及其过程监控、7)测试结果的分析与评价,8)测试文档的质量.,软件开发文档,软件开发文档是软件测试最重要的依据之一,软件开发文档,尤其是软件

15、的需求规格说明、设计文档、接口控制文件(ICD)的质量对确定软件测试需求和生成测试用例有决定性的影响。要求软件的需求规格说明,应遵循软件需求的正确性、无二义性、完整性、一致性、详细性、可验证性、可追踪性等要求来编写.,测试用例,测试用例的数量与质量对软件测试质量有重大影响,测试用例设计的原则是:应当设计尽可能多地发现软件缺陷,尤其是高发生概率缺陷的用例,而不是设计证明软件功能正确的用例。因此测试用例中不能只包含正常的功能、性能、接口、界面的用例,还必须包括边界、异常、强度、安全性等方面的用例.,软件输入空间:是指软件所有输入状态的集合,其中包括软件的合法输入空间与非法输入空间。软件的错误空间:

16、是软件中存在的所有错误(缺陷)的集合。软件的测试空间:是指所有软件测试用例所包含的输入状态的集合。,软件测试空间对软件输入空间的覆盖程度:测试的充分性软件测试空间对软件错误空间的覆盖程度:测试的有效性,不同测试空间对错误空间的覆盖,测试用例的充分性,1)测试用例必须100地覆盖软件的需求,2)测试用例中必须包括非法的输入,如边界、异常、强度等用例,3)作为经验数据参考,要求每50-100行代码应有一个测试用例。4)测试用例中,正常(合法输入)的测试用例数量与非正常(包括异常、边界、强度等)测试用例数量之比,一般应为 1:1。,测试覆盖,测试覆盖分析分两种,即基于需求的覆盖分析和结构覆盖分析。第

17、一种分析与软件需求有关的测试用例,以证实所选的测试用例满足指定的准则。第二种证实基于需求的测试规程测试了代码结构。,62,基于需求的测试覆盖分析这种分析的目标是确定基于需求的测试对软件需求的实现的验证情况。这种分析可能要求增加基于需求的测试用例。基于需求的测试覆盖分析应表明:a.每一项需求都有测试用例。b.测试用例满足正常和鲁棒测试准则。,63,结构覆盖分析这种分析的目标是确定基于需求的测试规程未测试到的代码结构。基于需求的测试用例可能没有测试到所有代码结构,所以要执行结构覆盖分析,并进行额外的验证以达到结构覆盖。,64,指导原则包括:a.分析应证实结构覆盖的程度适应所定的软件等级。b.除软件

18、等级是 A 级并且编译器产生的目标码不能直接追踪到源代码语句外,可以对源代码直接进行结构覆盖分析。然后,对目标码进行附加验证以确定所产生的代码序列的正确性。由编译器生成的数组边界检查的目标码是不能直接追踪到源代码的一个例子。c.分析应证实代码部件之间的数据耦合和控制耦合。,65,测试环境,对软件进行系统测试,其测试环境可以分为半实物仿真测试环境和全实物测试环境。全实物测试环境是指被测试软件、被测试软件的支撑硬件以及被测试软件的交联设备及外部环境全是真实的,其优点是测试环境的真实性,但其缺点也是明显的:构建这样一个全实物测试环境费用昂贵,而且当一个被测软件在进行测试时,它的所有交联设备都要与它一

19、起工作,试验件的实物损耗很大,测试代价高昂。,测试环境,由于所有的交联系统全是实物,所以在进行异常情况测试,强度测试等需要施加高负载和超负载的测试时,会对系统产生破坏,甚至发生危险。若为了避免这种情况发生,则不少测试用例无法执行。据我国的经验,在这种环境下的系统测试,将有20-30左右,甚至更高比例的测试用例不能执行。,试验人员在测试F-35 AN/APG-81雷达的软件系统,测试 F-35 的软件系统,截至2007.03,ANAPG一81雷达已经完成了大量的地面试验和总计85小时的空中飞行试验,其空中测试是在一架BACl1 1试验机上完成的,试验证明雷达硬件部分的性能完全达到了设计要求。按照

20、布兰安的说法,未来一段时期内的主要任务就是提高ANAPG-81雷达软件水平。布兰安透露,根据试验时间表安排,任务系统的全部测试大约为600小时,除了验证机载传感器本身的性能之外,更重要的是验证任务软件的可靠性并对其进行完善。,半实物仿真测试环境,对嵌入式软件的系统测试最好在半实物仿真测试环境下进行,这种半实物仿真是指嵌入式软件运行采用真实硬件环境,而对于被测软件与外界环境及其它设备之间的输入/输出则通过软件方式进行仿真。半实物仿真测试具有较高的逼真度,因为嵌入式软件的运行环境和接口都采用真实的硬件设备,所以对于测试中系统的输入/输出信号保持了其原有的物理特性,这一点比全数字仿真更接近真实情况。

21、同时采用软件方式模拟系统输入信号的逻辑特性,而这一点使得半实物仿真比全实物仿真具有更加灵活的测试可控性,而且减少了采用硬件仿真造成的浪费。,SRSTP总体结构,测试环境的有效性评价,为满足软件测试的目标,可能需要多个测试环境。一个优秀的测试环境应能把软件加载到目标机中,并在目标机环境的高保真仿真环境中对其进行测试用目标机仿真器或宿主机模拟机进行测试可给出取证置信度。这类测试环境的指导原则是:应在综合的目标机环境中运行选定的测试,因为某些错误只能在这种环境中被发现。,73,在许多情况下,只有在一个全综合环境中通过比一般情况更为精确的控制和监视测试输入和代码执行才能达到必要的基于需求的覆盖和结构覆

22、盖。可能需要对一个与其他软件部件功能隔离的小的软件部件进行这种测试。,74,测试人员素质,与硬件测试不同,软件测试人员必须对被测软件的专业背景有较深入的了解,在此基础上,才能设计出能高效发现软件缺陷的测试用例并构建合适的测试环境。素质不同的两个软件测试组即使使用完全相同的测试工具和测试环境来测试同一个软件,其发现软件的缺陷会有很大的不同。,人员素质对软件质量的影响,是否经过PSP培训及PSP等级的影响:缺陷密度DKLOCPSP0 PSP1 PSP2 PSP3,个人能力与培训的影响,个人能力分:高级、中级、低级。未经培训时,高级水平人员的DKLOC显著低于后两者;经培训后,低级水平人员的能力提高

23、极显著。,软件测试质量的度量和评价,软件测试质量的度量有:1)测试发现的软件缺陷数 N2)测试发现的软件关键缺陷数 Nc 3)测试发现的软件致命性缺陷数 Ns 4)测试发现的软件缺陷率 N/KLOC 5)测试发现的软件关键缺陷率 Nc/KLOC6)测试发现的软件致命性缺陷率 Ns/KLOC7)测试发现的需求错误数(Nr)和设计错误数(Nd)8)测试后需修改的需求数(Rn)和设计文档数量(Rd),软件测试质量的度量,9)缺陷修改率Rf10)白盒测试中的结构覆盖率11)黑盒测试中的需求覆盖率12)测试用例执行率13)测试成功率14)外场试用缺陷率Nu/KLOC15)外场试用致命性缺陷率Nuc/KLOC,软件测试质量的评价,对测试质量的评价基本上只能作出“模糊”概念的评价:即质量高、中、低。我们提出了评估软件质量高、低的5个评价准则:a.测试用例对需求的覆盖率;b.对应软件代码行数的测试用例数;c.测试用例中正常用例与非正常用例之比;d.测试用例执行率;e.外场试用期间暴露的软件缺陷数与测试中发现的缺陷数之比等。,软件测试工作质量评价表,谢 谢,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号