软件工程概述软件测试技术精品文稿.ppt
软件工程概述课件软件工程概述课件 软件测试技术软件测试技术第1 页,本讲稿共35 页特点:软件测试各个方面的基础介绍。能帮助初学者树立正确的态度和观念参考教材2第2 页,本讲稿共35 页特点:使用表格形式介绍如何进行开展测试。如果你通过学习还不清楚如何具体测试,可以参考这本书。可操作性比较强3第3 页,本讲稿共35 页非常精细的介绍了黑盒测试和白盒测试用例的设计方法。内容相对比较枯燥,但是非常有用。4第4 页,本讲稿共35 页这本书可以视作和前一本是同类型的书,对黑盒、白盒测试进行了详尽的分析。书分作三个部分:一、软件测试相关术语和概念介绍;二、测试生成(等价类划分、边界值分析、因果图、有限状态机);三、测试充分性及其增强。5第5 页,本讲稿共35 页和前两本书相比,偏向实践和工程。同时介绍了足够的测试理论知识。6第6 页,本讲稿共35 页p 另外:1.计算机软件测试(原书第2版)(美)卡尼尔(Kaner,C)等著;王峰等译,北京:机械工业出版社;2004.52.软件评测师教程柳纯录主编一北京:清华大学出版社,2005.33.Black,Rex et al.Foundations of Software Testing.*London:Thomson,2006.7第7 页,本讲稿共35 页软件测试的基本概念黑盒测试技术和方法测试工具的使用结构测试课程重点8第8 页,本讲稿共35 页课程难点黑盒测试技术和方法测试工具的使用9第9 页,本讲稿共35 页课程目标p了解软件测试在软件开发中的地位和作用p掌握软件测试的技术和技巧p掌握软件测试相关文档的编制p掌握常用软件测试工具的使用10第10 页,本讲稿共35 页考核方式闭卷考试60%+平时成绩40%考勤(15%):旷课:2分/次旷课6次:取消考试资格其他25%:作业、上机练习等 11第11 页,本讲稿共35 页什么是软件测试?1为什么要测试软件?2什么是软件缺陷?3如何进行软件测试?4第 1 章 主要内容Section112第12 页,本讲稿共35 页软件测试的目的1软件可靠性2软件测试的关键问题3软件测试的原则4软件测试与软件开发的关系5软件测试的工作流程6Section213第13 页,本讲稿共35 页软件测试概论1.1 概述1.2 国内外现状量1.3 软件测试与软件项目的关系,1.4 软件测试的发展趋势1.5 第三方测试第 1 章 section114第14 页,本讲稿共35 页p 软件测试是伴随着软件的产生而产生的,有了软件生产和运行就必然有软件测试。p 早期的软件开发过程中,测试的含义比较狭窄,将测试等同于“调试”p直到1957年,软件测试才开始与调试区别开来p 到了20世纪70年代,尽管对“软件工程”的真正含义还缺乏共识,但这一词条已经频繁出现。p 1972年在北卡罗来纳大学举行了首届软件测试正式会议15第15 页,本讲稿共35 页p 1979年,Glen ford Myers的软件测试艺术(The Art of Software Test)Myers作为当时最好的软件测试,其定义是:“测试是为发现错误而执行的一个程序或者系统的过程”。Myers以及他的同事们在20世纪70年代的工作是测试过程发展的里程碑。16第16 页,本讲稿共35 页p 直到20世纪80年代早期,“质量“的号角才开始吹响。软件测试定义发生了改变,测试不单纯是一个发现错误的过程,而且包含软件质量评价的内容。软件开发人员和测试人员开始坐在一起探讨软件工程和测试问题。l 制定了各类标准,如IEEE、美国ANSIl 1983年,Bill Hetzel在软件测试完全指南(Complete Guide of Softwrare Testing)一书中指出:测试是以评价一个程序或者系统属性为目标的任何一种活动。17第17 页,本讲稿共35 页p 20世纪90年代,测试工具终于盛行起来。l 人们普遍意识到工具不仅是有用的,而且要对今天的软件系统进行充分的测试,工具是必不可少的。l 2002年,Rick&Stefan在系统的软件测试(System Software Testing)一书中对软件测试做了进一步定义:“测试是为了度量和提高被测软件的质量,对测试软件进行工程设计、实施和维护的整个生命周期过程”。18第18 页,本讲稿共35 页软件测试是为了尽快尽早地发现在软件产品中所存在的各种软件缺陷而展开的贯穿整个软件开发生命周期、对软件产品(包括阶段性产品)进行验证和确认的活动过程。软件=程序+数据(库)+文档+服务软件?测试?软件测试定义19第19 页,本讲稿共35 页软件测试概论1.1 概述1.2 国内外现状1.3 软件测试与软件项目的关系,1.4 软件测试的发展趋势1.5 第三方测试第 1 章 section120第20 页,本讲稿共35 页p 在软件比较发达的国家,特别是美国,软件测试已经发展成为一个独立的产业,主要体现在以下几个方面。软件测试在软件公司中占有重要的地位。比尔盖茨曾在马萨诸塞州技术学院的一次演讲中说:“在微软,一个典型的开发项目组中测试工程师要比编码工程师多得多,可以说我们花费在测试上的时间要比花费在编码上的时间多得多”。软件测试理论研究蓬勃发展。每年举办各种各样的测试技术年会,发表了大量的软件测试研究论文,引领软件测试理论研究的国际潮流。软件测试市场繁荣。美国有一些专业公司开发软件测试标准与测试工具,MI、Compuware、MaCabe,Rational等都是著名的软件测试工具提供商,它们出品的测试工具已经占领了国际市场。21第21 页,本讲稿共35 页p 我国无论是在软件测试理论研究还是在测试实践上,和国外发达国家都有不少的差距,主要体现在对软件产品化测试的技术研究还比较贫乏,从业人员较少,测试服务没有形成足够的规模等方面。但是,随着我国软件产业的蓬勃发展以及对软件质量的重视,软件测试也越来越被人们所看重,软件测试正在逐步成为一个新兴的产业。我国正在迈入测试时代,主要体现在以下几个方面。1990年,成立了国家级的中国软件评测中心,国家人事部和信息产业部2003年关于职业资格认证第一次在我国有了“软件评测师”的称号,这是国家对软件测试职业的高度重视与认司。第三方测试机构得到了蓬勃的发展。测试服务体系已经基本确立。用户对软件质量要求越来越高,信息系统验收不再走过场,而要通过第三方测试机构的严格测试来判定。“以测代评”正在成为我国科技项目择优支持的一项重要举措,比如,国家“863”计划对数据库管理系统、操作系统、办公软件、ERP等项目的经费支持,都是通过测试机构科学客观的测试结果来决定的。22第22 页,本讲稿共35 页ISTQB 国际软件测试工程师认证(International Software Testing Qualification Board)基础级/Foundation Level 高级/Advanced Level 专家级/Expert Level 培训者获得基础级证书后,可申请参加更高级别的培训和认证考试,并获得相应证书。至 2008 年 10 月,全球已有超过 100,000 IT 专业人士持有 ISTQB-Certified Tester 的认证证书。软件测试认证23第23 页,本讲稿共35 页ISTQB(contd.)中国于2006年5月26日在美国奥兰多举行的ISTQB 2006年年会上得到正式批准,成为ISTQB的成员 CSTQB是ISTQB在中国的惟一授权机构,由同济大学、中国软件评测中心、上海市软件评测中心、上海滔瑞信息技术有限公司等共同组织,旨在推广ISTQB的认证体系,使中国软件测试体系与国际接轨;同时,配合国家行业主管部门制定和颁布符合国际标准的测试行业规范;加强国际交流与合作,推动国际软件测试人才流动和技术交流等。软件测试认证24第24 页,本讲稿共35 页v 计算机技术与软件专业技术水平考试是国家人事部和信息产业部组织实施的国家级考试,其目的是科学、公正地对全国计算机与软件专业技术人员进行职业资格和专业技术资格认定、专业技术水平测试。v 软考v每年5月和11月考试两次报名时间一般为考前23个月左右上半年考试时间为5月底,下半年考试时间为11月初。软件测试认证 软考25第25 页,本讲稿共35 页计算机与软件水平考试26第26 页,本讲稿共35 页软件测试的挑战p 虽然软件测试技术的发展很快,但是其发展速度仍落后于软件开发技术的发展速度,使得软件测试在今天面临着很大的挑战,主要体现在以下几个方面,软件在国防现代化、社会信息化和国民经济信息化领域中的作用越来越重要,由此产生的测试任务越来越繁重。软件规模越来越大,功能越来越复杂,如何进行充分而有效的测试成为难题。面向对象的开发技术越来越普及,但是面向对象的测试技术却刚刚起步。对于分布式系统整体性能还不能进行很好的测试。对于实时系统来说,缺乏有效的测试手段。随着安全问题的日益突出,信息系统的安全性如何进行有效的测试与评估,成为世界性的难题。27第27 页,本讲稿共35 页 软件测试概论1.1 概述1.2 国内外现状1.3 软件测试与软件项目的关系,1.4 软件测试的发展趋势1.5 第三方测试第 1 章 section128第28 页,本讲稿共35 页p 软件测试是为软件项目服务的,在整个项目组中,要强调测试服务的概念;虽然软件测试的目的是为了发现软件中存在的错误,但是,其根本目的是为了提高软件质量,降低软件项目的风险。p 软件的质量风险表现在两个方面:l 内部风险是在即将销售的时候发现有重大的错误,从而延迟发布日期,失去市场机会;l 外部风险是用户发现了不能容忍的错误,引起索赔、法律纠纷,以及用于客户支持的费用甚至失去客户的风险。29第29 页,本讲稿共35 页p 软件测试只能证明软件存在错误,而不能证明软件没有错误。软件公司对软件项目的期望是在预计的时间、合理的预算下,提交一个可以交付的产品,测试的目的就是把软件的错误控制在一个可以进行产品交付发布的程度上,可以交付发布的产品并不是没有错误的产品,因此软件测试不可能无休止地进行下去,而是要把错误控制在一个合理的范围之内30第30 页,本讲稿共35 页软件测试概论1.1 概述1.2 国内外现状1.3 软件测试与软件项目的关系,1.4 软件测试的发展趋势1.5 第三方测试第 1 章 section131第31 页,本讲稿共35 页p 纵观国内外软件测试的发展现状,可以看到软件测试有以下的发展趋势:测试工作将进一步前移。软件测试不仅是单元测试、集成测试、系统测试和验收测试,对需求的精确性和完整性的测试技术,对系统设计的测试技木是新的测试研究热点。软件架构师、开发工程师、QA人员、测试工程师将进行更好的融合。他们之间要成为伙伴关系,而不是相互对立的关系,因为他们的工作可以相互借鉴,相互促进,而且软件测试工程师应该尽早地介入整个工程,在软件定义阶段就要开发相应的测试方法,使得每一个需求定义都是可以测试的。测试职业将得到充分的尊重。测试工程师和开发工程师不仅是矛盾体,也是相互协调的统一体。在整个软件开发周期,他们提供的是一种至关重要的服务,人们将充分认识到测试的价值设置独立的软件测试部门将成为越来越多的软件公司的共识。测试外包服务将快速增长。和软件开发外包一样,软件测试外包是一种趋势,可以利用职业测试专家队伍与机构为自己的产品进盯测试费用。32第32 页,本讲稿共35 页软件测试概论1.1 概述1.2 国内外现状1.3 软件测试与软件项目的关系,1.4 软件测试的发展趋势1.5 第三方测试第 1 章 section133第33 页,本讲稿共35 页p 第三方测试是指独立于软件公司自身测试的测试。p 所谓的第三方是指在软件公司和软件用户之间的一方。l发现软件问题:专业l评价软件:公正34第34 页,本讲稿共35 页35第35 页,本讲稿共35 页