第一章 软件测试概述

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

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

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

资源描述

第一章软件测试概述2009--machunyan1第一章软件测试概述1.1软件测试的意义和概念(了解)1.2测试用例和测试方法(掌握)1.3软件测试过程(了解)1.4软件测试类型(掌握)1.5软件测试与软件开发的关系(了解)1.6软件测试工具(了解)第一章软件测试概述2009--machunyan21.1软件测试的意义和概念(了解)随着计算机技术的飞速发展,计算机系统的规模和复杂性急剧增加,其软件开发成本以及由于软件故障而造成的经济损失(甚至是伤亡事故和环境造成重大损害)也正在增加,软件质量问题已成为人们共同关注的焦点。千年虫问题阿丽亚娜5运载火箭首次飞行失败--软件错误是失败的重要原因。火星探测运载火箭因控制程序中错写逗号而爆炸。软件测试(是对软件需求分析、设计规格说明和编码的最终复审)是软件质量保证的重要技术手段。第一章软件测试概述2009--machunyan31.1软件测试的意义和概念(了解)软件测试——保证软件质量的重要手段系统的、严密的软件测试能最大限度的发现软件中的错误,减少软件中残留的错误。通过软件测试可以验证软件功能、性能、容量、约束、限制等指标是否满足规定的需求。软件可靠性测试可得到软件可靠性指标。软件测试为软件质量定量评定提供依据。第一章软件测试概述2009--machunyan41.1软件测试的意义和概念—续(了解)随着软件系统规模和复杂性的增加,进行专业化高效软件测试的要求越来越严格,软件测试职业的价值逐步得到了认可,软件测试技术已作为一门新兴产业而快速发展起来了。软件测试费用在软件开发总成本中占有很大的比例。在国外,软件测试人员与开发人员的比例为4:6,测试费用与开发费用的比例为1:1,而在安全关键软件的研制中,如飞行控制软件,测试费用与开发费用的比例就更高。第一章软件测试概述2009--machunyan51.1软件测试的意义和概念—续(了解)定义1:1983年IEEE(国际电子电气工程师协会)提出的软件工程标准术语中软件测试的定义:“使用人工或自动手段来运行或测定某个系统的过程,其目的在于检验它是否满足规定的需求或是弄清预期结果与实际结果之间的差别”。定义2(GB/T11457-1995的定义):软件测试是根据软件开发各阶段的规格说明和程序的内部结构而精心设计一批测试用例,并利用这些测试用例去执行程序,以发现软件故障的过程。一个好的测试用例在于发现至今未被发现的故障一个成功的测试是发现了至今未被发现的故障的测试定义3:软件测试是一种软件质量保证活动,其动机是通过一些经济有效的方法,发现软件中存在的缺陷,从而保证软件质量。第一章软件测试概述2009--machunyan61.1软件测试的意义和概念—续(了解)软件测试包括静态测试和动态测试静态测试是指测试不运行的部分,只是检查和审阅,如规格说明测试、软件模型测试和文档测试等。动态测试是指通过运行软件来检验软件的动态行为和运行结果的正确性。所以,软件测试并不等于程序测试。软件测试贯穿于软件定义与开发的整个期间。因此,需求分析、概要设计、详细设计以及程序编码等各阶段所得到的文档,包括需求规格说明、概要设计规格说明、详细设计规格说明以及源程序,都可成为软件测试的对象。本门课程讲述关于动态测试的内容,即通常所指的软件测试,以后所指软件测试即是指动态测试。第一章软件测试概述2009--machunyan71.1软件测试的意义和概念—续(了解)软件测试的基本原则(Myers原则)尽早地和不断地进行测试程序员应避免测试自己编写的程序测试用例=输入数据+预期结果测试集合=期望(有效)输入+不期望(无效)输入测试程序=它做该做的事+它不做不该做的事一段程序中存在错误的概率与在这段程序中已发现的错误数成比例全面检查每一个测试结果测试是一项具有很大创造性的工作第一章软件测试概述2009--machunyan8第一章软件测试概述1.1软件测试的意义和概念(了解)1.2测试用例和测试方法(掌握)1.3软件测试过程(了解)1.4软件测试类型(掌握)1.5软件测试与软件开发的关系(了解)1.6软件测试工具(了解)第一章软件测试概述2009--machunyan91.2测试用例和测试方法(掌握)软件测试是采用测试用例执行软件的活动。软件测试的本质是针对要测试的内容确定一组测试用例。本课程的重点在于讲解测试用例的生成技术和方法。第一章软件测试概述2009--machunyan101.2测试用例和测试方法—续(掌握)文献[1]给出的测试用例的定义:为了特定目标而设计的一组测试输入,执行条件和期望的输出结果,例如为了执行被测试程序中的某一条特定路径或验证是否满足特定需求。为某一测试项记录特定的输入、预测结果和一组执行条件。[1][IEEEStd610.12一1990]IEEEStandardGlossaryofSoftwareEngineeringTerminology[S].InIEEEStandardsSoftwareEngineering,Volumeone:CustormerandTerminologyStandards,1999第一章软件测试概述2009--machunyan111.2测试用例和测试方法—续(掌握)测试用例需要被开发、评审、使用、管理和保存,典型的测试用例信息包括:测试用例ID目的前提(测试要建立必要的前提条件)输入预期输出(将测试用例执行的输出与预期输出进行比较,以确定该测试是否通过)后果(观察的输出)执行历史日期结果(通过或失败)版本执行人第一章软件测试概述2009--machunyan121.2测试用例和测试方法—续(掌握)软件测试方法:根据产生测试用例的方法的不同,基本可以划分为基于源码的测试(即白盒测试或结构性测试)和基于规范/规格说明的测试(即黑盒测试或功能性测试)两大范畴。第一章软件测试概述2009--machunyan131.2测试用例和测试方法—续(掌握)功能性测试的基本观点:任何程序都可以看作是将输入定义域取值映射到输出值域的函数。优点:1)功能性测试与软件如何实行无关,如果实现发生变化,测试用例仍然有用;2)测试用例的开发可以与实现并行,可压缩总的项目开发时间。第一章软件测试概述2009--machunyan141.2测试用例和测试方法—续(掌握)测试用例集合完全局限在已描述行为集合,如果程序实现了没有被描述的行为,功能测试用例永远也不能揭示这一点。缺点:测试用例之间可能存在严重的冗余,或有未测试的软件漏洞。第一章软件测试概述2009--machunyan151.2测试用例和测试方法—续(掌握)结构性测试使用程序源代码(实现)作为测试用例标示的基础。测试用例集合完全局限于已编程实现的行为集合中,穷举路径测试决不能查出程序违反了设计规范,即程序本身是个错误的程序。第一章软件测试概述2009--machunyan161.2测试用例和测试方法—续(掌握)白盒测试和黑盒测试方法的目标都是标示测试用例。白盒测试仅利用程序源代码(实现)表示测试用例;黑盒测试仅利用规格说明标示测试用例;两种方法单独使用都是不充分的。明智的组合会带来功能性测试的置信,以及结构性测试的度量。功能性测试常常会有冗余和漏洞两方面的问题,如果功能性测试结合结构性测试覆盖率指标执行,则这两个问题都会被发现并解决。第一章软件测试概述2009--machunyan17第一章软件测试概述1.1软件测试的意义和概念(了解)1.2测试用例和测试方法(掌握)1.3软件测试过程(了解)1.4软件测试类型(掌握)1.5软件测试与软件开发的关系(掌握)1.6软件测试工具(了解)第一章软件测试概述2009--machunyan181.3软件测试过程(了解)软件测试过程涉及四个阶段:参考文献JamesA.Whittaker.Stochasticsoftwaretesting.AnnalsofSoftwareEngineering,4:115-131,August1997JamesA.Whittaker.Softwaretesting:Whatitis,andwhyitissodifficult.ToappearinIEEESoftware,1999IbrahimKhalilIbrahimEl-Far.AutomatedConstructionofSoftwareBehaviorModels:[Masterthesis],FloridaInstituteofTechnologyMelbourne,Florida,USA.19991.ModelingProgramBehavior2.SelectingTests3.Running&EvaluatingTests4.MeasuringTestProgress软件测试是采用测试用例执行软件的活动。软件测试的本质是针对要测试的内容确定一组测试用例。本课程的重点在于第1,2阶段(生成测试用例的生成技术和方法)第一章软件测试概述2009--machunyan191.3软件测试过程—续(了解)1ModelingProgramBehavior模拟软件和它的运行环境之间的交互是一个测试者的首要任务。测试者必须识别和模拟软件系统的接口,这涉及到枚举接口所有的输入和产生的输出,构建所有可能的输入序列,所以测试者需要对软件的行为进行建模。第一章软件测试概述2009--machunyan201.3软件测试过程—续(了解)1ModelingProgramBehavior(续)测试者可以构建一个行为模型,对软件的行为进行建模,它模拟一个软件是如何操作的,基于该行为模型,测试者可以产生相应的测试用例,通常,该行为模型也称为测试模型。例如,在结构测试中,常用的测试模型包括控制流图、数据流图和程序输入/输出依赖图等;在黑盒测试中,有限状态机及扩展有限状态机、petri网和马尔科夫链等都可以作为软件的测试模型。软件行为建模包括测试模型选取和测试模型构建。第一章软件测试概述2009--machunyan211.3软件测试过程—续(了解)2SelectingTests测试用例产生的算法和测试充分性标准例如软件有两个64位的变量,其总的状态数是264*2Mostoftheworkintestinghasaddressedtestselectionwithvariousobjectivesinmind(suchasrevealingbugs,coveringcode,etc...).第一章软件测试概述2009--machunyan221.3软件测试过程—续(了解)2SelectingTests软件测试的完成准则完成测试计划规定的测试项使用规定的测试用例设计方法达到预期目标(如覆盖率要求)标出单位时间查出的错误量,进行曲线分析查出一定数目的错误第一章软件测试概述2009--machunyan231.3软件测试过程—续(了解)3Running&EvaluatingTests测试执行和测试评估是执行测试用例并对结果进行评估的过程。包括设置测试环境、运行所选择的测试用例、记录测试执行活动、分析判断测试结果、分析潜在的软件故障并检查测试工作的有效性。测试执行涉及如何模拟用户的行为,设置测试用例运行的环境。测试评估涉及测试结果的验证,而分析判断测试结果需要撰写测试预言(oracle)。第一章软件测试概述2009--machunyan241.3软件测试过程—续(了解)4MeasuringTestProgress一般而言,测试者和项目管理者感兴趣的测试过程度量的方式有两种:测试停止标准(Stoppingcriteria)和属性质量指标(Fieldqualitymetrics)。测试停止标准描述了测试充分性的条件。属性质量指标是对在预期环境下所发布的软件质量的评估和预测。例如,某些

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

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

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

×
保存成功