资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,/30,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,/,*,/,第一章 什么是软件测试,/,第一部分,-,学习目标,软件测试产生背景,软件测试工作,软件分类,软件测试环境,/,学习进度,什么是软件,软件测试的产生、意义和概念,软件测试的产生,软件测试的意义,软件测试的定义,软件测试的现状与前景,测试与调试的区别,软件测试工程师必备的素质,/,软件的定义,软件(,software,)是计算机系统中与硬件(,hardware,)相互依存的另一部分,它是包括程序(,program,)、文档(,document,)的完整集合。,软件与程序的区别,软件,=,程序,+,文档,什么是软件,/,软件分类,按功能,系统软件:,电脑系统:,Windows,、,Linux,、,MS-DOS,、,MAC OS,、,UNIX,等,手机系统:,Symbain,、,android,、,wm,、,palm,、黑莓、苹果等,应用软件:,Word,、,Excel,、,PhotoShop,、游戏软件等,支持软件:,VB,、,C,、,Activeperl,等,按技术架构,C/S,架构软件:,QQ,、,MSN,、网络游戏、手机,QQ,B/S,架构软件:新浪、网易、网页游戏,单机版软件:,Word,、,Excel,、,PowerPoint,、,PhotoShop,/,软件测试环境,客户端,WindowsXP,、,Windows2000,、,windows 7,服务器端,Linux,(,RedHat,)、,Windows2003,、,windows server2008,/,学习进度,什么是软件,软件测试的产生、意义和概念,软件测试背景,软件测试的意义,软件测试的定义,软件测试的现状与前景,测试与调试的区别,软件测试工程师必备的素质,/,软件测试背景,软件危机,危机背景:,落后的软件生产方式无法满足日趋复杂大型软件系统的开发需求(,20,世纪,60,年代),危机表现:,项目延期、经费超支、产品无法维护,/,软件测试背景,软件危机,危机原因:缺乏规范化工程约束,缺陷的不断积累与放大效应,需求阶段,设计阶段,编码阶段,测试阶段,正确需求,需求缺陷,正确设计,需求缺陷,设计缺陷,正确编码,需求缺陷,设计缺陷,编码缺陷,已发现缺陷,需求缺陷,设计缺陷,编码缺陷,未发现缺陷,缺陷如何使软件开发成本增加,/,软件测试背景,软件危机,危机解决:,软件工程,(,1968,年),软件工程,(,IEEE,定义,):,将系统化的、严格约束的、可量化的方法应用于软件的开发、,运行和维护,即将工程化应用于软件,.,阶段,需求分析,(,Requirement Analysis,),设计,(Design),编码,(Coding),测试,(Testing),运行和维护,(Run and Maintenance),工作量,20%,15%,20%,45%,软件工程各阶段工作量,/,软件测试背景,软件危机,在程序员与用户需求间寻找平衡点,程序员在开发过程关注什么?,设计需求,技术内涵,用户关注什么?,满足自身特定的需求,优秀的软件产品的特点是什么?,在程序自身的技术内涵和用户特定领域的需求间找,到平衡点,/,学习进度,什么是软件,软件测试的产生、意义和概念,软件测试的产生,软件测试的意义,软件测试的定义,软件测试的现状与前景,测试与调试的区别,软件测试工程师必备的素质,/,软件测试意义,软件测试的意义,1,迪斯尼的狮子王:,1994,1995,软件缺陷难以避免!,94,年秋,迪斯尼公司发布了面向儿童的游戏“,Lion King Animated Storybook”,,进行了大量的宣传和促销,销售额可观。,12,月,26,日,开始收到大量投诉:游戏无法正常运行,舆论哗然。,原因:没有对市场上的各种,PC,机型进行测试,该软件只能在少数系统中正常工作,但在大众常用的系统中不行。,/,软件测试意义,软件测试的意义,千年虫问题,(Y2K),软件缺陷难以避免!,2,/,软件测试意义,软件测试的意义,3,北京奥运订票网站瘫痪,事故过程:订票系统半小时即瘫痪,软件缺陷难以避免!,/,软件测试的意义,解放程序员和售后服务人员,软件测试可以降低软件质量风险,使程序员能够更专心于解决程序的算法和效率;同时经过严格检验的完整产品也减轻了售后服务人员的工作量。,/,学习进度,什么是软件,软件测试的产生、意义和概念,软件测试的产生,软件测试的意义,软件测试的定义,软件测试的现状与前景,测试与调试的区别,软件测试工程师必备的素质,/,软件测试的定义,定义,使用,人工或自动,手段,来,运行或测试某个系统,的过程。其目的在于检验它,是否满足规定的需求,或,弄清预期结果与实际结果之间的差别,。,软件测试活动一般包含,制订测试计划,设计测试用例,实施测试,提交缺陷报告,测试总结,/,学习进度,什么是软件,软件测试的产生、意义和概念,软件测试的产生,软件测试的意义,软件测试的定义,软件测试目的,软件测试的现状与前景,测试与调试的区别,软件测试工程师必备的素质,/,软件测试的目的,确保产品完成了它所承诺或公布的功能,并且用户可以访问到的功能都有明确的书面说明。,确保产品满足性能和效率的要求,确保产品是健壮的和适应用户环境的,/,学习进度,什么是软件,软件测试的产生、意义和概念,软件测试的产生,软件测试的意义,软件测试的定义,软件测试目的,软件测试的现状与前景,测试与调试的区别,软件测试工程师必备的素质,/,软件测试现状和趋势,国际现状,测试在软件开发中占有不可或缺的重要地位(,53%-87%,),.,阶段,需求分析,设计,编码,测试,投产和维护,资金量,3%,8%,7%,15%,67%,知名,IT,企业中,开发人员和测试人员比例通常都为,1:1,微软甚至达到,1:2.,Microsoft Project,Exchange2000,Windows2000,Manager,25,250,Developer,140,1700,Tester,350,3200,Developer/Tester,2.5,1.9,/,软件测试现状和趋势,国内现状,软件测试逐渐受到重视,;,存在不同程度的测试人才缺口,;,高素质的测试人才紧缺,.,软件测试从业人员年龄分布,软件测试是一个新兴领域,80,年代的职场新人是主力军,缺乏资深测试人员是不争的事实,/,软件测试现状和趋势,国内现状,软件测试从业人员性别比例,接近,1:1,的性别比例,传统的部分男性开发者转向测试,/,软件测试现状和趋势,国内现状,软件测试从业人员从业年限和职业发展分布,软件测试近年来才受到重视:,3,年以内工作经验占,82%,存在金字塔人才结构,:(,初级,),测试工程师占,75%,/,软件测试现状和趋势,软件测试的挑战,1.,技术发展的挑战,复杂性、协调性、变化,.,2.,测试工程师素质的挑战,责任心、综合素质、学习能力、解决问题能力、对行业的把握,职业素质:,“,三心二意一能力,”,三心:细心、耐心、信心,二意:服务意识、团队合作意识,一能力:沟通能力,/,软件测试现状和趋势,软件测试职业发展,测试工程师、高级软件测试工程师、,软件测试组负责人、软件测试项目经理,.,需求集中于沿海发达城市,/,学习进度,什么是软件,软件测试的产生、意义和概念,软件测试的产生,软件测试的意义,软件测试的定义,软件测试目的,软件测试的现状与前景,测试与调试的区别,软件测试工程师必备的素质,/,测试与调试的区别,区别,测试,调试,目的,发现软件的错误(测试人员不负责修改错误),确定程序中错误的确切位置,对程序(设计,编码)进行修改,排除错误。,阶段,软件生命周期,软件开发阶段,人员,测试人员和开发,开发人员,/,第二部分,-,学习目标,掌握识别和描述缺陷的方法,缺陷管理工具,/,内容进度,再现与优化缺陷,怎样有效记录缺陷,缺陷管理工具,/,软件缺陷,什么是缺陷,不满足用户确定需求,产生缺陷的原因,人员之间的沟通交流不够,交流上有误解或者根本不进行交流,文档不完善,需求不断的变化,参与人员的过度自信,程序设计本身有错误,软件复杂性,工期短,任务重,时间压力大,软件开发工具与系统软硬件的支持,比如,web,软件,外网环境和内网测试环境不一样导致有些,bug,出现,/,缺陷识别,判断发现的问题是否是缺陷的方法,通过参考文档来确认缺陷,通过了解软件产品的行业背景(或参考同类典型软件)来发现缺陷,通过沟通来确认和识别缺陷,/,/,内容进度,再现与优化缺陷,怎样有效记录缺陷,缺陷管理工具,/,再现与优化缺陷,再现(又叫重现)与优化缺陷的必要性,为什么要再现与优化缺陷(需要特别注意,优化缺陷并不是指优化缺陷本身,而是优化缺陷的再现步骤),关于软件中“随机”出现的缺陷,/,再现与优化缺陷方法,不要想当然的接受任何假设,查找时间依赖和竞争条件的问题,与压力和负荷相关的边界条件软件缺陷、内存泄漏和数据溢出缺陷的发生有一定的前提条件,状态缺陷仅在特定软件状态中显露,状态缺陷的例子是软件缺陷仅在软件第一次运行或者在此第一次运行之后出现,考虑资源依赖性和内存、网络、硬件共享的相互作用,关注硬件的失效问题,硬件可能不按照预定方式工作,关注软件的失效问题,对缺陷的修改可能会引发新的缺陷,从阅读缺陷报告入手,/,内容进度,再现与优化缺陷,怎样有效记录缺陷,缺陷管理工具,/,怎样有效记录缺陷小结,保证重现缺陷,分析故障,使用最少步骤复现故障,包含所有重现缺陷的必要步骤,方便阅读,尽量简单,一个缺陷一个报告,注意自己的语气,值得注意的经验,/,内容进度,再现与优化缺陷,怎样有效记录缺陷,缺陷管理工具,/,缺陷管理工具,Bugzilla,,,Bugfree,,,Mantis,,,TestDirector,Bugfree,配置,B/S,:,Web,服务器(,Apache,,,IIS,,,Tomcat,),apache2.0,数据库:(,Mysql,,,Sql/Servere,,,DB2,,,Oracle,),Mysql5.0,Php,环境支持:,php5.2.6,邮件服务器:,Winmail Mail Server,/,缺陷报告用途,缺陷报告的用途是什么?,记录缺陷,缺陷分类,缺陷跟踪,为什么要尽早的报告缺陷?,是不是所有的缺陷都会被修复?,/,缺陷分类,从哪些角度给缺陷分类?,按问题引出不同,按功能(模块),按缺陷的严重程度,影响进度的问题,死机,功能问题,建议,界面问题,按修复缺陷的优先级,应立即修复的问题,在产品发布之前必须修复的问题,如果时间允许应该修复的问题,可以在发布版本中存在的问题,备注:缺陷的严重程度和优先级各软件公司可根据实际情况自行确定。,/,缺陷报告分类,按缺陷所处状态分类,待确认的,新提交的,已分配的,问题未解决的,待返测的,待归档的,已归档的,按处理意见分类,已修改的,不是问题,无法修改,以后版本解决,保留,重复,无法重现,/,缺陷处理流程,测试人员,测试经理或开发经理,开发人员,测试人员,测试经理或测试人员,/,状态(,status,),处理办法(,resolution,),待确认的(,Unconfirmed,),:,待确认后提交到系统中,新提交的(,New,),:,这个,bug,刚刚被提交到系统中,还没有做任何的处理和响应,未解决的(,Reopened,),:,这个,bug,曾经被处理过一次,但是处理的结果不太正确,处于左侧这三种状态的,bug,,其处理办法为空。,已解决的(,Resolved,),:,这个,bug,已经被处理了,提醒测试组对此,bug,进行验证,已验证的(,Verified,),:,测试人员认可了处理意见,并且对,bug,进行了验证,已关闭的(,Closed,),:产品发布以后对,bug,进行关闭,归档,已修改的(,Fixed,),:,开发人员对此,bug,进行了修改,并且经过自己的单元测试后已经,check,in,到配置管理系统中,不是问题(,Invalid,),:,这个,bug,中描述的不是问题,通常作为,FAQ,不修改(,Wontfix,),:,这个,bug,描述的是问题,但是不修改,以后也不修改,以后版本解决(,Later,),:,这个,bug,描述的是问题,但是不在这个版本解决,保留(,Remind,),:,这个,bug,描述的是问题,但是不能确定是否在这个版本中修改,重复(,Duplicate,),:,这个,bug,与已有的,bug,重复了,在置重复的时候必须说明与哪个,bug,重复,需要更多信息(,Worksforme,),:,根据,bug,描述无法查找问题的原因并解决,需要提供更多的关于这个,bug,的信息,/,缺陷生命周期(缺陷状态转换图),/,本章内容总结,软件测试定义,Bug,管理系统,
展开阅读全文