《软件开发过程》PPT课件.ppt_第1页
《软件开发过程》PPT课件.ppt_第2页
《软件开发过程》PPT课件.ppt_第3页
《软件开发过程》PPT课件.ppt_第4页
《软件开发过程》PPT课件.ppt_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1,软件测试方法和技术-Ch.1软件及其开发过程,计算机工程系,杨晓花,2,软件测试行业背景,目前,软件测试人才严重匮乏,当前120万软件从业者中具备软件测试专业技术的人员不超过5万,人才缺口达到30万。“在国内很多软件企业中,软件开发和测试人员数量之比仅能达到8:1,”清华大学计算机教育专家谭浩强教授介绍说,“而与此同时,国际先进软件企业的同类数据却在1:1到1:2之间,差距十分明显”。,国内软件业的弱点正是发展的前沿,TestEngineerQA/SupervisorProject/QualityManager,3,机遇和挑战并存,软件测试行业在国内正处于成长期。专家指出,职业前景好、寿命长的工作应具有工作周期上的延续性和不可替代性,个人能在工作中不断成长,积累较多的行业经验,并有较大的发展空间。“例如精算师、游戏设计师、同声翻译、软件测试等等,都是较好的选择。”智联招聘求职专家郝健介绍,“尤其是软件测试,每天有大量企业发布招聘信息,人才需求量非常大。”,4,人力市场的测试人员位置?,5400虚位以待Onlyinonewebsite-,5,21世纪什么最贵软件测试工程师,软件测试工程师,目前IT行业极端短缺的金贵人才,未来5年IT行业最炙手可热的高薪职位。中国软件业每年新增约20万测试岗位就业机会,而企业、学校培养出的测试人才却不足需求量的1/10,这种测试人才需求与供给间的差距仍在拉大。软件测试产品质量的保证软件测试控制成本的关键软件测试软件可靠性确认软件测试让企业具备国际竞争的实力,6,软件测试行业背景,种种现象、数据显示,软件测试工程师已成为求职者考虑今后发展的一门重要职业。在市场需求量不断增大的环境下,软件测试工程师的待遇也在不断提高。距不完全统计,北京地区的薪资趋势大致如图所示:,7,软件测试工程师能力要求,一般的公司在招聘时会有如下几点要求:一年以上测试经验;计算机相关专业大专或本科以上学历;英语达到四级或以上水平,熟悉日语者优先;了解软件工程,熟悉软件测试过程和标准,熟悉配置管理技术和工具;能够编制测试计划、设计测试用例、编写Bug报告和测试总结报告、使用测试工具、开发测试脚本;熟练使用Windows或Unix、Linux操作系统;熟练使用SQLServer或Oracle数据库;了解业务领域(ERP、OA、电子商务、税务系统、电信系统等)优先;熟练掌握至少一种以上的测试工具,如Testdirector、QTP、LoadRunner、Robot等。,8,软件测试工程师素质要求,为高效地完成测试任务,优秀的测试工程师应具有良好的素质和能力,主要包括:工作态度;沟通能力,与开发人员、与领导沟通;反向思维和发散思维能力;学习技术能力;自信心;耐心;怀疑精神;洞察力;适度的好奇心;,9,软件测试职业发展:一个基准点三个方向,职业发展:,职业发展,10,课程目标,本课程是计算机或软件专业课程,重在培养我们的实践能力,适应软件企业的工作环境和业界标准,并和国际先进的软件开发理念和测试技术保持同步。通过本课程的学习,了解并掌握软件产品质量保证的基本思想和科学体系、软件测试技术的基本内容,以及软件测试的方法、技术和工具的使用,为全面掌握软件技术和软件项目管理打下坚实的基础。,11,互联网资源:,下面是一些对学习软件测试有帮助的优秀的网站:51testing软件测试网()测试时代()软件测试基地(,12,参考书籍,软件测试技术大全-测试基础、流行工具、项目实战陈能技编著人民邮电出版社ISBN978-7-115-17891-6/TP自动化软件测试张瑾、杜春晖编著机械工业出版社ISBN978-7-111-23182-0软件测试工程师刘德宝编著中科院新科海学校计算机软件测试技术郑人杰编著.北京:清华大学出版社,1990,13,第一章软件及其开发过程,1.1软件的含义1.2软件开发过程模型1.3UML代表着软件建模的发展趋势1.4软件测试的重要性,14,1.1软件的含义,能够完成预定功能和性能的、可执行的指令(计算机程序);使得程序能够适当地操作信息的数据结构;描述程序的操作和使用的文档。软件=程序+数据(库)+文档+服务,15,软件组成,客户需求-CustomerRequirements市场需求文档-MRD(MarketingRequirementDocument)软件规格说明书-Specifications技术设计文档TechnicalDesignDocs测试文档-TestDocuments在线帮助-Onlinehelp产品发布注释-ReleaseNotes/ReadMe产品软件包-Releasepackages,16,软件产品的其他内容,帮助文件Helpfiles示例Samplesandexamplestoillustratepoints产品支持文档Productsupportinformation错误信息Errormessages安装手册Setupandinstallationinstructions用户手册Usermanual(s)产品标签Labelandstickers产品广告或宣传材料Adsandmarketingmaterial,17,软件特点,软件是相对硬件而存在的。软件则是逻辑的、知识性的产品集合,是对物理世界的一种抽象,或者是某种物理形态的虚拟化软件是硬件的灵魂,硬件是软件的基础软件,是智慧和知识的结晶软件不会“磨损”,而是逐步完善.,Return,18,1.2软件开发过程模型,瀑布模型快速应用开发(RAD)模型V模型原型模型增量模型和迭代模型螺旋模型,19,WaterFallmodel,20,WaterFallmodel特点,简单易用,直观;开发的进程一个顺着一个;限制变更,需要严密控制;一个全新的项目不适合这个模型;用户直到项目结束才能看到质量如何;,21,WaterFallmodel,图:修改后的瀑布模型,22,WaterFallmodel适合的项目,项目的需求在项目开始前很明确解决方案在项目开始前也很明确类似的项目如:公司的财务系统库存管理系统,return,23,RAD-VModel,24,改进的V模型W模型,W模型说明软件测试的工作很早就可以开始了,项目一启动,软件测试的工作也就启动了。,25,W模型特点,测试的活动与软件开发同步进行测试的对象不仅仅是程序,还包括需求和设计尽早发现软件缺陷可降低软件开发成本测试和开发活动也保持线性的前后关系,上一阶段完全结束,才可开始下一个阶段工作,无法支持迭代的开发模型。,26,RAD-V模型模型适合的项目,项目的需求在项目开始前很明确解决方案在项目开始前也很明确所开发系统容易模块化对系统的性能安全很严格的项目类似的项目如:航天飞机等公司的财务系统,return,27,原型模型,原型模型的优点是使用户能够感受到实际的系统,使开发者能够快速的构造出系统的框架。其缺点是产品的先天性不足,因为开发者常常需要做实现上的折中,可能采用不合适的操作系统或程序设计语言,以使原型能够尽快工作。,28,原型模型特点,在需求定义之前,需要快速构建一个系统根据构建系统的优缺点,用户给开发人员提出反馈意见根据反馈意见修改软件需求规格,以便系统可以更正确地反映用户的需求减少各种假设以及风险,29,原型模型模型适合的项目,项目的需求在项目开始前不明确需要减少项目需求的不确定性类似的项目如:明确显示界面第一次开发的产品,return,30,软件分阶段开发,图1-5软件分阶段开发示意图,31,增量和迭代模型,软件开发分阶段可以通过两种模型来描述,即增量模型和迭代模型,32,增量和迭代模型特点,循序渐进,避免一次投入太大的风险更快地开发出可以操作的系统可以减少开发过程中用户需求的变更,33,增量和迭代模型模型适合的项目,项目开始,明确了需求的大部分,但是需求可能会发生变化对于市场和用户把握不是很准,需要逐步了解对于有庞大和复杂功能的系统进行功能改进,就需要一步一步实施的。,return,34,螺旋模型,Return,35,螺旋模型,螺旋模型沿着螺线旋转,在四个象限上分别表达了四个方面的活动,即:目标、选择和限制确定软件目标,弄清项目开发的限制条件,最终选定实施方案风险评估评估所选方案,考虑如何识别和消除风险开发和测试进行软件需求分析、开发,编码,测试等计划根据客户的评价反馈,重新对项目进行目标的调整以及改善系统实施效率,36,螺旋模型特点,是Waterfall模型的多次迭代它将每个阶段进行更细的划分可以进行灵活设计通过风险管理驱动用户可以更早看到产品用户可以不断对产品进行评估用户可以与开发人员进行紧密的合作项目的投资不用一次投入可以给开发人员更多的反馈信息,Return,37,1.3UML代表着软件建模的发展趋势,UML(UnifiedModelingLanguage):统一建模语言代表软件建模的今后5到10年的发展方向,成为面向对象技术领域内占主导地位的标准建模语言,支持从需求分析开始的软件开发的全过程。总的来说,UML是一种定义良好、易于表示、功能强大且普遍实用的建模语言。,38,UML发展历史,39,UML分类和模型图,标准建模语言UML共定义了三大类、共12种模型图:结构类StructuralDiagrams:用4种模型图描述系统应用的静态结构,包括类图、对象图、组件图和配置图;行为类BehaviorDiagrams:用5种模型图描述系统动态行为的各个方面,包括用例图、序列图、行为图、协作图和状态图模型管理类ModelManagementDiagrams:用3种模型图来组织和管理各种应用模型,包括软件包、子系统、模型等,40,UML分类和模型图,UML是一种定义良好、易于表达、功能强大且普遍适用的建模语言。它溶入了软件工程领域的新思想、新方法和新技术。它的作用域不限于支持面向对象的分析与设计,还支持从需求分析开始的软件开发的全过程。UML作为一种模型语言,它使开发人员专注于建立产品的模型和结构,而不是选用什么程序语言和算法实现。当模型建立之后,模型可以被UML工具转化成指定的程序语言代码。IBM的RationalRose和MS的Visio都是UML工具。,Return,41,1.4软件测试的重要性,千年虫的悲剧在上个世纪70年代,程序员为了节约非常宝贵的内存资源和硬盘空间,在存储日期时,只保留年份的后两位,如“1980”被存为“80”。当2000年到来的时候,问题就会出现,比如银行存款程序在计算利息时,应该用现在的日期“2000年1月1日”减去当时存款的日期,比如“1989年1月1日”,结果应该是21年,如果利息是3%,银行要付给顾客每100元,大约86元利息。如果程序没有纠正年份只存储两位的问题,其存款年数就变为-89年,变成顾客反要付银行1288元的巨额利息。,42,其他一些例子,“冲击波”计算机病毒11火星登陆事故爱国者导弹防御系统迪斯尼的圣诞节礼物Windows2000安全漏洞,43,Bug,世界上第一个Bug的故事,格蕾斯哈珀GraceHopper:美国海军的编程员;编译器的发明者;领导了Cobol语言的开发。,“马克二型”计算机上的bug,44,测试是软件开发的重要环节之一,G.J.Myers软件测试技巧:“程序测试是为了发现错误而执行程序的过程”。测试的目的是发现程序中的错误,是为了证明程序有错,而不是证明程序无错。在软件开发过程中,分析、设计与编码等工作都是建设性的,惟独测试是带有“破坏性”,测试可视为分析、设计和编码3个阶段的“最终复审”,在软件质量保证中具有重要地位。统计表明,在典型的软件开发项目中,软件测试工作量往往占软件开发总工作量的40%以上。而在软件开发的总成本中,用在测

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论