软件测试的基础理论--课件

上传人:仙*** 文档编号:242022405 上传时间:2024-08-10 格式:PPT 页数:38 大小:1.10MB
返回 下载 相关 举报
软件测试的基础理论--课件_第1页
第1页 / 共38页
软件测试的基础理论--课件_第2页
第2页 / 共38页
软件测试的基础理论--课件_第3页
第3页 / 共38页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版文本样式,第二级,*,单击此处编辑母版标题样式,软件测试基础教程,1,ppt课件,软件测试的基础理论,软件测试的基础理论,1,软件测试,的含义,2,软件测试的目的与原则,3,软件测试的生命周期,4,软件测试与软件开发的,关系,2,ppt课件,1.,软件测试的含义,软件测试的基础理论,1.1,软件,缺陷,1.2,软件测试技术的发展历史及现状,3,ppt课件,1.,软件测试的含义,软件测试的基础理论,软件的质量就是软件的生命,为了保证软件的质量,人们在长期的开发过程中积累了许多经验并形成了许多行之有效的方法。但是借助这些方法,我们只能尽量减少软件中的错误和不足,却不能完全避免所有的错误。,如果把所开发出来的软件看作一个企业生产的产品,那么软件测试就相当于该企业的质量检测部分。简单地说,我们在编写完一段代码之后,检查其是否如我们所预期的那样运行,这个活动就可以看作是一种软件测试工作。新的测试理论、测试方法、测试技术手段在不断涌出,软件测试机构和组织也在迅速产生和发展,由此软件测试技术职业也同步完善和健全起来。,4,ppt课件,1.1,软件缺陷,软件测试的基础理论,1,软件缺陷案例,人们常常不把软件当回事,没有真正意识到它已经深入渗透到我们的日常生活中,软件在电子信息领域里无处不在。现在有许多人如果一天不上网查看电子邮件,简直就没法过下去。我们已经离不开,24,小时包裹投递服务、长途电话服务和最先进的医疗服务了。,然而软件是由人编写开发的,是一种逻辑思维的产品,尽管现在软件开发者采取了一系列有效措施,不断地提高软件开发质量,但仍然无法完全避免软件(产品)会存在各种各样的缺陷。,5,ppt课件,1.1,软件缺陷,软件测试的基础理论,下面以实例来说明。,(,1,)迪斯尼的狮子王游戏软件缺陷。,1994,年秋天,迪斯尼公司发布了第一个面向儿童的多媒体光盘游戏,狮子王动画故事书(,The Lion King Animated Storybook,)。尽管已经有许多其他公司在儿童游戏市场上运作多年,但是这次是迪斯尼公司首次进军这个市场,所以进行了大量促销宣传。结果,销售额非常可观,该游戏成为孩子们那年节假日的“必买游戏”。然而后来却飞来横祸。,12,月,26,日,圣诞节的后一天,迪斯尼公司的客户支持电话开始响个不停。很快,电话支持技术员们就淹没在来自于愤怒的家长并伴随着玩不成游戏的孩子们哭叫的电话之中。报纸和电视新闻进行了大量的报道。,后来证实,迪斯尼公司未能对市面上投入使用的许多不同类型的,PC,机型进行广泛的测试。软件在极少数系统中工作正常,-,例如在迪斯尼程序员用来开发游戏的系统中,但在大多数公众使用的系统中却不能运行。,6,ppt课件,1.1,软件缺陷,软件测试的基础理论,(,2,)爱国者导弹防御系统缺陷,爱国者导弹防御系统是里根总统提出的战略防御计划(即星球大战计划)的缩略版本,它首次应用在海湾战争中对抗伊拉克飞毛腿导弹的防御战中。尽管对系统赞誉的报道不绝于耳,但是它确实在对抗几枚导弹中失利,包括一次在沙特阿拉伯的多哈击毙了,28,名美国士兵。分析发现症结在于一个软件缺陷,系统时钟的一个很小的计时错误积累起来到,14,小时后,跟踪系统不再准确。在多哈的这次袭击中,系统已经运行了,100,多个小时。,7,ppt课件,1.1,软件缺陷,软件测试的基础理论,(,3,)千年虫问题,20,世纪,70,年代早期的某个时间,某位程序员正在为本公司设计开发工资系统。他使用的计算机存储空间很小,迫使他尽量节省每一个字节。他将自己的程序压缩得比其他任何人都紧凑。使用的其中一个方法是把,4,位数年份,例如,1973,年,缩减为,2,位数,,73,。因为工资系统相当信赖于日期的处理,所以需要节省大量的存储空间。他简单的认为只有在到达,2000,年,那时他的程序开始计算,00,或,01,这样的年份时问题才会产生。虽然他知道会出这样的问题,但是他认定在,25,年之内程序肯定会升级或替换,而且眼前的任务比现在计划遥不可及的未来更加重要。然而这一天毕竟到来了。,1995,年他的程序仍然在使用,而他退休了,谁也不会想到如何深入到程序中检查,2000,年兼容问题,更不用说去修改了。,估计全球各地更换或升级类似的前者程序以解决潜在的,2000,问题的费用已经达数千亿美元。,8,ppt课件,2,软件缺陷的定义,从上述的案例中可以看到软件发生错误时将造成灾难性危害或对用户产生各种影响。软件缺陷(,bug,),即计算机系统或者程序中存在的任何一种破坏正常运行能力的问题、错误,或者隐藏的功能缺陷、瑕疵。缺陷会导致软件产品在某种程度上不能满足用户的需要。,1.1,软件缺陷,软件测试的基础理论,对于软件缺陷的准确定义,通常有以下,5,条描述:,(,1,)软件未实现产品说明书要求的功能。,(,2,)软件出现了产品说明书指明不会出现的错误。,(,3,)软件超出实现了产品说明书提到的功能。,(,4,)软件实现了产品说明书虽未明确指出但应该实现的目标。,(,5,)软件难以理解,不易使用,运行缓慢或者终端用户认为不好。,9,ppt课件,1.1,软件缺陷,软件测试的基础理论,为了更好地理解每一条规则,我们以计算器为例进行说明。,计算器的产品说明书声称它能够准确无误地进行加、减、乘、除运算。当你拿到计算器后,按下()键,结果什么反应也没有,根据第条规则,这是一个缺陷。假如得到错误答案,根据第条规则,这同样是一个缺陷。,若产品说明书声称计算器永远不会崩溃、锁死或者停止反应。当你任意敲键盘,计算器停止接受输入,根据第条规则,这是一个缺陷。,若用计算器进行测试,发现除了加、减、乘、除之外它还可以求平方根,说明书中从没提到这一功能,根据第条规则,这是软件缺陷。软件实现了产品说明书未提到的功能,若在测试计算器时,会发现电池没电会导致计算不正确,但产品说明书未指出这个问题。根据第条规则,这是个缺陷。,第条规则是全面的。如果软件测试员发现某些地方不对劲,无论什么原因,都要认定为缺陷。如“”键布置的位置使其极其不好按;或在明亮光下显示屏难以看清。根据第条规则,这些都是缺陷。,10,ppt课件,1.1,软件缺陷,软件测试的基础理论,3,软件缺陷的种类,软件缺陷表现的形式有多种,不仅仅体现在功能的失效方面,还体现在其他方面。软件缺陷的主要类型有:,功能、特性没有实现或部分实现。,设计不合理,存在缺陷。,实际结果和预期结果不一致。,运行出错,包括运行中断、系统崩溃、界面混乱。,数据结果不正确、精度不够。,用户不能接受的其他问题,如存取时间过长、界面不美观。,11,ppt课件,1.1,软件缺陷,软件测试的基础理论,4,软件缺陷的级别及软件缺陷的状态,(,1,),软件缺陷的级别,作为软件测试员,可能所发现的大多数问题不是那么明显、严重,而是难以觉察的简单而细微的错误,有些是真正的错误,也有些不是。一般来说,问题越严重的,其优先级越高,越要得到及时的纠正。软件公司对缺陷严重性级别的定义不尽相同,但一般可以概括为,4,种级别:,致命的,:致命的错误,造成系统或应用程序崩溃、死机、系统悬挂,或造成数据丢失、主要功能完全丧失等。,严重的,:严重错误,指功能或特性没有实现,主要功能部分丧失,次要功能完全丧失,或致命的错误声明。,一般的,:不太严重的错误,这样的软件缺陷虽然不影响系统的基本使用,但没有很好地实现功能,没有达到预期效果。如次要功能丧失,提示信息不太准确,或用户界面差,操作时间长等。,微小的,:一些小问题,对功能几乎没有影响,产品及属性仍可使用,如有个别错别字、文字排列不整齐等。,备注:有时需要“建议”级别来处理测试人员所提出的建议或质疑,如建议程序做适当的修改,来改善程序运行状态,或对设计不合理、不明白的地方提出质疑。,12,ppt课件,1.1,软件缺陷,软件测试的基础理论,(,2,),软件缺陷的状态,软件缺陷除了严重性之外,还存在反映软件缺陷处于一种什么样的状态,便于跟踪和管理某个产品的缺陷,可以定义不同的,bug,状态。,激活状态,:问题还没有解决,测试人员新报的,bug,,或验证后,bug,仍然存在。,已修正状态,:开发人员针对所存在的缺陷,修改程序,认为已解决问题,或通过单元测试。,关闭或非激活状态,:测试人员验证已经修正的,bug,后,确认,bug,不存在以后的状态。,13,ppt课件,1.1,软件缺陷,软件测试的基础理论,5,软件缺陷的原因,软件缺陷的产生,首先是不可避免的。其次我们可以从软件本身,团队工作和技术问题等多个方面分析,比较容易确定造成软件缺陷的原因,归纳如下。,技术问题,算法错误。,语法错误。,计算和精度问题。,系统结构不合理,造成系统性能问题。,接口参数不匹配出现问题。,14,ppt课件,团队工作,系统分析时对客户的需求不是十分清楚,或者和用户的沟通存在一些困难。,不同阶段的开发人员相互理解不一致,软件设计对需求分析结果的理解偏差,编程人员对系统设计规格说明书中某些内容重视不够,或存在着误解。,设计或编程上的一些假定或依赖性,没有得到充分的沟通。,软件本身,文档错误、内容不正确或拼写错误。,数据考虑不周全引起强度或负载问题。,对边界考虑不够周全,漏掉某几个边界条件造成的错误。,对一些实时应用系统,保证精确的时间同步,否则容易引起时间上不协调、不一致性带来的问题。,没有考虑系统崩溃后在系统安全性、可靠性的隐患。,硬件或系统软件上存在的错误。,软件开发标准或过程上的错误。,1.1,软件缺陷,软件测试的基础理论,15,ppt课件,1.1,软件缺陷,软件测试的基础理论,6,软件缺陷的组成,我们知道软件缺陷是由很多原因造成的,如果把它们按需求分析结果,规格说明书,系统设计结果,编程的代码等归类起来,比较后发现,结果规格说明书是软件缺陷出现最多的地方,见图,1-1,。,图,1-1,软件缺陷构成示意图,16,ppt课件,1.1,软件缺陷,7,软件缺陷的修复费用,软件测试不仅仅是表面上的那些东西通常要靠有计划、有条理的开发过程来实现。从开始到计划、编程、测试、到公开使用过程中,都有可能发现软件缺陷。但是修复的费用随着时间的推移,费用呈十倍的增长,在我们的例子中,当早期编写产品说明书时发现并修复缺陷,费用只要,1,美元甚至更少,同样的缺陷知道软件编写完成开始测试时才发现,费用可能要,10,100,美元。如果客户发现,费用可能达到数千甚至数百万美元。,图,1-2,随着时间的推移,修复软件缺陷的费用惊人地增长,17,ppt课件,举个例子说明,比如前面迪斯尼狮子王实例,问题的根本原因就是软件无法在流行的,PC,台上运行,假如早在编写产品说明书时,有人已经研究过什么,PC,机流行,并且明确指出需要在该配置上设计和测试,付出的代价小的几乎可以忽略不计。如果没有这样做,还有一个补救措施,软件测试员去搜集流行,PC,样机并在其上验证,他们可能发现软件的缺陷,但是修复的费用要高的多,因为软件必须调试,修改,再测试。开发小组还应把软件的初期版本分发给一小部分客户进行试用,这叫,beta,测试。那些被挑选出来的代表庞大的市场客户可能会发现问题,然而实际的情况是问题完全被忽视,知道成千上万的光盘被压制和销售出去。而迪斯尼公司最终支付了客户投诉电话费、产品召回、更换光盘、以及又一轮的调试、维修和测试的费用。如果严重的软件的软件缺陷到客户那里,就足以耗尽整个产品的利润。,1.1,软件缺陷,18,ppt课件,1.2,软件测试技术的发展历史及现状,软件测试的基础理论,1,软件测试技术的发展历史,随着计算机的诞生,在软件行业发展初期就已经开始实施软件测试,但这一阶段还没有系统意义上的软件测试,更多的是一种类似调试的测试。测试是没有计划和方法的,测试用例的设计和选取也都是根据测试人员的经验随机进行的,大多数测试的目的是为了证明系统可以正常运行。,20,世纪,50,年代后期到,20,世纪,60,年代,各种高级语言相继诞生,测试的重点也逐步转入到使用高级语言编写的软件系统中来,但程序的复杂性远远超过了以前。尽管如此,由于受到硬件的制约,在计算机系统中,软件仍然处于次要位置。软件正确性的把握仍然主要依赖于编程人员的技术水平。因此,这一时期软件测试的理论和方法发展比较缓慢。,19,ppt课件,1.2,软件测试技术的发展历史及现状,软件测试的基础理论,20,世纪,70,年代以后,随着计算机处理速度的提高,存储器容量的快速增加,软件在整个计算机系统中的地位变得越来越重要。随着软件开发技术的成熟和完善,软件的规模也越来越大,复杂度也大大增加。因此,软件的可靠性面临着前所未有的危机,给软件测试工作带来了更大的挑战,很多测试理论和测试方法应运而生,逐渐形成了一套完整的体系,培养和造就了一批批出色的测试人才。,20,ppt课件,1.2,软件测试技术的发展历史及现状,软件测试的基础理论,2,软件测试的现状,在我国,软件测试可能算不上一个真正的产业,软件开发企业对软件测试认识淡薄,软件测试人员与软件开发人员往往比例失调,而在发达国家和地区软件测试已经成了一个产业。,我们在软件测试实现方面并不比国外差,国际上优秀的测试工具,我们基本都有,这些工具所体现的思想我们也有深刻的理解,很多大型系统在国内都得到了很好的测试。,21,ppt课件,2,软件测试的目的与原则,软件测试的基础理论,1,软件测试的定义,软件测试就是在软件投入运行前,对软件需求分析、设计规格说明和编码的最终复审,是软件质量保证的关键步骤。通常对软件测试的定义有如下描述:,软件测试是为了发现错误而执行程序的过程。或者说,软件测试是根据软件开发各阶段的规格说明和程序的内部结构而精心设计一批测试用例,并利用这些测试用例去运行程序,以发现程序错误的过程。,22,ppt课件,2,软件测试的目的与原则,软件测试的基础理论,2,软件测试的目的,基于不同的立场,存在着两种完全不同的测试目的。,从用户的角度出发,普遍希望通过软件测试暴露软件中隐藏的错误和缺陷,以考虑是否可以接受该产品。,从软件开发者的角度出发,则希望成为表明软件产品中不存在错误的过程,验证该软件已正确地实现了用户的要求,确立人们对软件质量的信心。,综上所述,软件测试的目的包括以下三点:,(1),测试是程序的执行过程,目的在于发现错误,不能证明程序的正确性,仅限于处理有限种的情况。,(2),检查系统是否满足需求,这也是测试的期望目标。,(3),一个好的测试用例在于发现还未曾发现的错误;成功的测试是发现了错误的测试。,23,ppt课件,2,软件测试的目的与原则,软件测试的基础理论,3,软件测试的原则,软件测试的目标是想以最少的时间和人力找出软件中潜在的各种错误和缺陷。如果成功地实施了测试,就能够发现软件中的错误。,根据这样的测试目的,软件测试的原则应该是:,应当把尽早地和不断地进行软件测试作为软件开发者的座右铭。坚持在软件开发的各个阶段的技术评审,这样才能在开发过程中尽早发现和预防错误,把出现的错误克服在早期,杜绝某些隐患,提高软件质量。,测试用例应由测试输入数据和与之对应的预期输出结果这两部分组成。如果对测试输入数据没有给出预期的程序输出结果,那么就缺少了检验实测结果的基准,就有可能把一个似是而非的错误结果当成正确结果。,程序员应避免检查自己的程序。如果由别人来测试程序员编写的程序,可能会更客观,更有效,并更容易取得成功。,24,ppt课件,2,软件测试的目的与原则,软件测试的基础理论,在设计测试用例时,应当包括合理的输入条件和不合理的输入条件。,合理的输入条件是指能验证程序正确的输入条件,而不合理的输入条件是指异常的,临界的,可能引起问题变异的输入条件。因此,软件系统处理非法命令的能力也必须在测试时受到检验。用不合理的输入条件测试程序时,往往比用合理的输入条件进行测试能发现更多的错误。,充分注意测试中的群集现象。测试时不要以为找到了几个错误问题就已解决,不需继续测试了。应当对错误群集的程序段进行重点测试,以提高测试投资的效益。,严格执行测试计划,排除测试的随意性。对于测试计划,要明确规定,不要随意解释。,应当对每一个测试结果做全面检查。这是一条最明显的原则,但常常被忽视。必须对预期的输出结果明确定义,对实测的结果仔细分析检查,抓住关键,暴露错误。,妥善保存测试计划,测试用例,出错统计和最终分析报告,为维护提供方便。,25,ppt课件,2,软件测试的目的与原则,软件测试的基础理论,4,软件测试的分类,从不同的角度,可以把软件测试技术分成不同种类。,(,1,)从是否需要执行被测软件的角度分类,从是否需要执行被测软件的角度,可分为静态测试(,Static Testing,)和动态测试,(Dynamic Testing),。顾名思义,静态测试就是通过对被测程序的静态审查,发现代码中潜在的错误。它一般用人工方式脱机完成,故亦称人工测试或代码评审(,Code Review,),;,也可借助于静态分析器在机器上以自动方式进行检查,但不要求程序本身在机器上运行。按照评审的不同组织形式,代码评审又可分为代码会审,走查以及办公桌检查,同行评分,4,种。对某个具体的程序,通常只使用一种评审方式。,动态测试的对象必须是能够由计算机真正运行的被测试的程序。它分为黑盒测试和白盒测试,也是我们下面将要介绍的内容。,26,ppt课件,2,软件测试的目的与原则,软件测试的基础理论,(,2,)从软件测试用例设计方法的角度分类,从软件测试用例设计方法的角度,可分为黑盒测试(,Black-Box Testing,)和白盒测试(,White-Box Testing,)。,黑盒测试是一种从用户观点出发的测试,又称为功能测试,数据驱动测试和基于规格说明的测试。若测试用例的设计是基于产品的功能,目的是检查程序各个功能是否实现,并检查其中的功能错误,则这种测试方法称为黑盒。,白盒测试基于产品的内部结构来进行测试,检查内部操作是否按规定执行,软件各个部分功能是否得到充分利用。白盒测试又称为结构测试,逻辑驱动测试或基于程序的测试。即根据被测程序的内部结构设计测试用例,测试者需事先了解被测试程序的结构。,27,ppt课件,2,软件测试的目的与原则,软件测试的基础理论,(,3,)从软件测试的策略和过程的角度分类。,按照软件测试的策略和过程分类,软件测试可分为单元测试(,Unit Testing,),集成测试(,Integration Testing,),确认测试(,Validation Testing,),系统测试(,System Testing,)和验收测试(,Verification Testing,),.,单元测试是针对每个单元的测试,是软件测试的最小单位。它确保每个模块能正常工作。单元测试多数使用白盒测试,用以发现内部错误。,集成测试是对已测试过的模块进行组装,进行集成测试的目的主要在于检验与软件设计相关的程序结构问题。集成测试一般通过黑盒测试方法来完成。,确认测试是检验所开发的软件能否满足所有功能和性能需求的最后手段,通常采用黑盒测试方法。,系统测试的主要任务是检测被测软件与系统的其他部分的协调性。,验收测试是软件产品质量的最后一关。这一环节,测试主要从用户的角度着手,其参与者主要是用户和少量的程序开发人员。,28,ppt课件,3,软件测试的生命周期,软件测试的基础理论,图,1-3,给出了软件测试生命周期的模型把测试的生命周期分为几个阶段前个阶段是引入程序错误阶段,也就是开发过程中的需求规格说明、设计、编码阶段,此时极易引入错误或者导致开发过程中其他阶段产生错误。然后是通过测试发现错误的阶段,这需要通过使用一些适当的测试技术和方法来共同完成。后,3,个阶段是清除程序错误的阶段。其主要任务是进行缺陷分类、缺陷隔离和解决缺陷。其中在修复旧缺陷的时候很可能引进新的错误,导致原来能够正确执行的程序出现新的缺陷。,29,ppt课件,图,1-3,软件测试生命周期,3,软件测试的生命周期,软件测试的基础理论,30,ppt课件,3,软件测试的生命周期,软件测试的基础理论,在软件测试生命周期的每个阶段都要完成一些确定的任务,在执行每个阶段的任务时,可以采用行之有效的结构分析设计技术和适当的辅助工具;在结束每个阶段的任务时都进行严格的技术审查和管理复审。最后提交最终软件配置的一个或几个成分(文档或程序)。,31,ppt课件,4,软件测试与软件开发的关系,软件测试的基础理论,1,测试与软件开发各阶段的关系,软件开发过程是一个自顶向下,逐步细化的过程,首先在软件计划阶段定义了软件的作用域,然后进行软件需求分析,建立软件的数据域、功能和性能需求、约束和一些有效性准则。接着进入软件开发,首先是软件设计,然后再把设计用某种程序设计语言转换成程序代码。而测试过程则是依相反的顺序安排的自底向上,逐步集成的过程,低一级测试为上一级测试准备条件。此外还有两者平行地进行测试。,如图,1-4,,首先对每一个程序模块进行单元测试,消除程序模块内部在逻辑上和功能上的错误和缺陷。再对照软件设计进行集成测试,检测和排除子系统(或系统)结构上的错误。随后再对照需求,进行确认测试。最后从系统全体出发,运行系统,看是否满足要求。,32,ppt课件,4,软件测试与软件开发的关系,软件测试的基础理论,图,1-4,软件测试与软件开发过程的关系,33,ppt课件,4,软件测试与软件开发的关系,软件测试的基础理论,2,测试与开发的并行性,在软件的需求得到确认并通过评审后,概要设计工作和测试计划制定设计工作就要并行进行。如果系统模块已经建立,对各个模块的详细设计、编码、单元测试等工作又可并行。待每个模块完成后,可以进行集成测试、系统测试。并行流程如图,1-5,所示。,34,ppt课件,4,软件测试与软件开发的关系,软件测试的基础理论,图,1-5,软件测试与软件开发的并行性,35,ppt课件,4,软件测试与软件开发的关系,软件测试的基础理论,3,测试与开发模型,软件测试不仅仅是执行测试,而是一个包含很多复杂活动的过程,并且这些过程应该贯穿于整个软件开发过程。在软件开发过程中,应该什么时候进行测试,如何更好地把软件开发和测试活动集成到一起?其实这也是软件测试工作人员必须考虑的问题,因为只有这样,才能提高软件测试工作的效率,提高软件产品的质量,最大限度地降低软件开发与测试的成本,减少重复劳动。如图,1-6,所示,即为软件测试与开发的完整流程。,36,ppt课件,4,软件测试与软件开发的关系,软件测试的基础理论,图,1-6,软件测试与开发的完整流程,37,ppt课件,软件测试的基础理论,Q&A,38,ppt课件,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!