《hw软件测试(周)1ppt课件》由会员分享,可在线阅读,更多相关《hw软件测试(周)1ppt课件(47页珍藏版)》请在金锄头文库上搜索。
1、软件测试技术基础,软件测试, 教材软件测试教程 机械工业出版社, 参考书1.软件测试技术基础 陈汶滨 主编清华大学出版社2.软件测试 曹薇 编著清华大学出版社,考试成绩,平时成绩期末考试,在我国,随着软件产业的高速发展,软件测试的重要性也已逐渐被软件企业关注,近91%的国内软件企业已有组建测试队伍的意识。但现阶段我国软件测试的发展存在严重问题-人才紧缺。在大多数软件企业中,测试人员的数量不足开发人员数量的五分之一,平均比在1:8左右,远远落后于国外先进水平。智联招聘提供的具体调查数据显示,国内软件测试人才缺口挺进30万大关,仅北京、上海两地缺口量就达到20万。造成这种稀缺局面的主要原因是我国相
2、关人才的培养尚未形成规模,高等教育体系尚没有开设软件测试相关专业,测试人才数量无法满足企业的实际需求。,像美国这样软件产业发达的国家,软件企业将40%的工作量花在软件测试上,测试费用占项目总费用的30%50%。,内容安排,第一章 软件工程与软件测试 第二章 软件测试概论 第三章 软件测试基础知识 第四章 软件的测试过程 第五章 黑盒测试 第六章 白盒测试 第七章 自动化测试及其工具 第八章 性能测试 第九章 面向对象的测试 第十章 软件测试管理,Unit 1 软件工程与软件测试,学习要求 了解当前流行的软件过程模型 掌握软件缺陷、软件故障、软件质量的概念 掌握软件测试与软件开发过程的关系,1.
3、1 软件,软件 = 程序 + 数据 (库) + 文档,1.1.1 软件的发展史,软件自问世以来,其发展经历了以下四个阶段: 第一阶段:(50年代初期至60年代中期) 称为程序设计阶段。 软件产品为专用软件,开发者即使用者,规模较小。 软件只有程序,没有文档。 第二阶段:(60年代中期至70年代末期)称为程序系统阶段 。 软件技术和管理水平相对落后,导致“软件危机”出现。,1.1.1 软件的发展史,第三阶段:(70年代中期至80年代末期)称为软件工程阶段。 软件开发有了可以遵循的软件工程化的设计准则、方法和标准。 通过提供规范化的分析设计方法和工具软件,来避免或者减少软件错误的发生。 第四阶段:
4、(从20世纪80年代中期至今 )。 软件体系结构向更加灵活的多层分布式结构演变。,1.1.2 软件的生命周期,软件生命周期指软件从概念形成开始,经过开发、使用和维护,直到最终被废弃的整个过程。,1.2 软件过程,软件过程作为软件工程的核心问题,是指为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。,RUP(Rational Unified Process,译为Rational统一过程)是IBM公司的一套软件开发过程产品。 学习之前,让我们来看一下福特的故事。,1.2.1 RUP,1908年前 技术熟练的工人 850$ 1908年后 T型流水线 360$,开发一个具
5、有一定规模和复杂性的软件系统,开发一个简单的程序,盖大厦,盖狗窝,RUP定义了进行软件开发的步骤,即定义了软件开发过程中什么时候做,做什么,怎么做,谁来做的问题,以保证软件项目有序的、可控的、高质量的完成。,RUP六大经验,两种常见的软件开发模型?,经验一:迭代开发,瀑布模型,迭代模型,需求分析,设计,编码&集成,系统测试,瀑布模型,推迟关键风险决定的确认,不利于时间进度和工作完 成情况的预估,推迟和集中的集成与测试,排斥早期的部署,经常导致非计划的项目延伸,瀑布模型,瀑布模型的不足,迭代模型,迭代模型不是在项目结束时一次性提交软件,而是分块逐次开发的提交。分析人员只要找出满足项目需求的某一子
6、集(比如说某个功能,或者是UML中所称的Uses Case),就立即进行迭代开发,而不是将该项目的所有需求都搞清楚后才开始开发。 所谓迭代,就是指每一个迭代过程都包含了软件生命周期的所有阶段,即: 分析、设计、实现和测试阶段。所有的迭代(子集)加起来就是项目的所有需求 (全集)。,迭代模型,允许变更需求,及早降低风险,有助于组织学习和提高,提高复用性,鼓舞团队士气,迭代模型的优点,迭代模型,RUP把需求定义为“系统必须符合的条件或具备的功能”。,软件开发的任务?,保证开发出来的软件符合用户的需要。,经验二:管理需求,事实?,需求分析很难,结论?,要对需求进行管理,功能性需求,性能需求,课程注册
7、管理系统的用例图,从传统制造业得到什么启发?,经验三:基于组件的架构,何为组件?组件是包含一定的功能,具有外界交互接口的软件包。,基于组件的开发的优点:促进软件的重用允许高效的并行开发人员分配更加灵活,经验四:可视化建模,为什么要可视化建模? 帮助管理复杂性 捕获结构和行为 显示系统元素如何组合在一起 适当的隐藏或者展示细节 保持设计和实现的一致性 促进沟通 为所有软件从业者提供一种语言,经验五:持续的质量验证,在RUP中软件质量评估不再是事后进行或单独小组进行的分离活动,而是内建于过程中的所有活动,这样可以及早发现软件中的缺陷。,经验六:管理变更,迭代式开发中如果没有严格的控制和协调,整个软
8、件开发过程很快就陷入混乱之中。,1.2.2 敏捷过程,极限编程作为敏捷方法中最重要最著名的方法之一,1998年由Smalltalk社群大师级人物Kent Beck首先倡导。敏捷过程定义了一系列核心原则和辅助原则,为软件开发项目建模实践奠定基石。,它的基础和价值观是交流、朴素、反馈和勇气;即,任何一个软件项目都可以从四个方面入手进行改善:加强交流;从简单做起;寻求反馈;勇于实事求是。XP是一种近螺旋式的开发方法,它将复杂的开发过程分解为一个个相对比较简单的小周期;通过积极的交流、反馈以及其它一系列的方法,开发人员和客户可以非常清楚开发进度、变化、待解决的问题和潜在的困难等,并根据实际情况及时地调
9、整开发过程。,1.3 软件缺陷,1.3.1 软件缺陷的典型例子,1998年开始,全世界花费上百亿美元,(4195835 / 3145727) * 3145727 4195835 0 1994年,花费4.5亿美元,软件未达到产品说明书中已经标明的功能; 软件出现了产品说明书中指明不会出现的错误; 软件未达到产品说明书中虽未指出但应当达到的目标; 软件功能超出了产品说明书中指出的范围; 软件测试人员认为软件难以理解、不易使用,或者最终用户认为该软件使用效果不良。,软件缺陷的主要类型,1.3.2 软件缺陷产生的原因,缺乏或者没有进行沟通软件复杂度编程错误不断变更的需求,时间的压力开发人员的自大技术文
10、档本身的缺陷,导致软件缺陷的最大原因是软件产品说明书。软件缺陷的第二大来源是设计方案,这是实施软件计划的关键环节。编程排在第三位。,软件缺陷的修复费用,结论?,用户一般是非计算机专业人员,软件开发人员和用户的沟通存在较大困难,对要开发的产品功能理解不一致。 由于软件产品还没有设计、开发、完全靠想象去描述系统的实现结果,所以有些特性还不够清晰。 需求变化的不一致性。用户的需求总是在不断变化的,这些变化如果没有在产品规格说明书中得到正确的描述,容易引起前后文,上下文的矛盾。 对规格说明书不够重视,在规格说明书的设计和写作上投入的人力,时间不足。 没有在整个开发队伍中进行充分沟通,有时只有设计师或项
11、目经理得到比较多的信息。,为什么产品规格说明书是软件缺陷存在最多的地方?,1.3.3 软件缺陷的级别,致命的:造成系统或应用程序崩溃,或数据丢失、主要功能完全丧失 严重的:严重错误,指功能或特性没有实现、主要功能丧失; 一般的:不太严重的错误,次要功能丧失 微小的:一些小问题,对功能几乎没有影响,1.4 软件质量,(1) 从用户角度出发,质量是对需求的满足。软件需求是度量软件质量的基础。 (2) 从软件产品角度出发,质量是软件的内在特征。 (3) 从软件开发过程出发,质量是对过程规范的符合。,1.4.1 软件质量的概念,1.4.2 质量模型,软件质量框架是“质量特征质量子特征度量因子”的3层结
12、构模型。其中第1层称为质量特性,第2层称为质量子特性,第3层称为度量。,1.4.3 质量与测试,软件质量保证(Software Quality Assurance):SQA介入于整个软件开发过程监督和改进流程,确认达成的标准和过程被正确的遵循,保证问题被发现和解决。它以预防为主。 软件测试(Software Testing):软件测试是在一定控制的条件下,围绕一个系统或应用的操作并且评价其结果,控制的条件应当包括正常和异常的条件。测试企图使事情变得很糟糕,从而来检测出一些应当发生而没有发生,或者不应当发生而发生的事情。测试以检测为主。,1.4.3 质量与测试,1.5 软件测试与软件开发的关系,Q & A,