软件测试第一讲软件测试基础

上传人:zhu****ng 文档编号:245126666 上传时间:2024-10-07 格式:PPT 页数:57 大小:6.70MB
返回 下载 相关 举报
软件测试第一讲软件测试基础_第1页
第1页 / 共57页
软件测试第一讲软件测试基础_第2页
第2页 / 共57页
软件测试第一讲软件测试基础_第3页
第3页 / 共57页
点击查看更多>>
资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,软件测试,第,1,讲 软件测试基础,1,李钏,机遇和挑战并存,2,Test Engineer,QA/Supervisor,Project/Quality Manager,Senior Engineer,软件行业是朝阳行业,软件测试是软件行业的朝阳行业。,软件行业由卖方市场转入买方市场,激烈的竞争要求软件的产品质量越来越高。,欧美国家的软件项目,软件测试的工作量占项目总工作量,40%,,软件测试的经费占项目总经费,30%,。,测试人员和开发人员的比例 国外:,1,:,1-2,:,1,,国内,1,:,51,:,3,, 当前国内高素质软件测试人员的市场需求大约,50,万人左右。,第,1讲,软件测试基础,为什么要进行软件测试?,什么是软件测试 ?,软件测试的分类,测试阶段,软件测试的工作范畴,SQA,与软件测试的关系,3,4,为什么要进行软件测试?,第一道概率题,知道“萨姆”、“霍克”、“爱国者”吗?它们是世界上最著名的地对空导弹。,这里有一种“超级爱国者”地对空导弹,它的单发命中率是,70%,,请计算一下“超级爱国者”地对空导弹,3,发齐射的命中率是多少?,5,第一道概率题解答,1,发导弹脱靶的可能性是:,1 70% = 30%,3,发导弹全部脱靶的可能性是:,30% X 30% X 30% = 2.7%,3,发导弹中,至少有,1,发导弹命中目标的概率是:,1 -,(,1 70%,),3 = 1 2.7% = 97.3%,6,第二道概率题,某世界著名的“音波”宇航工业公司生产的“音波,848-400”,大型宽体客机由,100,万个零部件组装而成,其中每个零部件的合格率都能达到,99.9999%,,请问这种客机的合格率是多少?,7,第二道概率题解答,每个零部件的合格率是,99.9999%,,那整机合格率就是:,(,99.9999%,),1000000,= 36.79%,如果每个零部件的合格率是,99.999%,,那整机合格率是:,(,99.999%,),1000000,= 0.045%,8,哪种概率模型更符合软件开发过程?,1.,两道概率题有什么区别?,第一道概率题描述的问题模型是只要有一发导弹击中目标就算完成任务。,第二道概率题描述的问题模型是只有所有的零部件都合格了,整机才合格。,2.,哪种概率模型更符合软件开发过程?,第二种模型更符合软件开发过程。,9,软件合格率,假设一个优秀的程序员写出的“代码行”合格率可以达到,99%,,如果这个程序员开发的软件由,1,万行代码,那此软件的合格率是多少?,(,99%,),10000,= 2.25 X 10,-44,10,软件缺陷与软件故障案例,迪斯尼并不总是带来笑声,英特尔奔腾浮点除法缺陷,火星探测飞船坠毁,爱国者导弹防御系统,2008,北京奥运会售票系统,11,迪斯尼并不总是带来笑声,1994,年圣诞节前夕,迪斯尼公司发布了第一个面向儿童的多媒体光盘游戏“狮子王童话”,圣诞节后的第一天,迪斯尼客户支持部电话开始响个不停,不断有人咨询、抱怨为什么游戏总是安装不成功,或没法正常使用,这个游戏软件只能在少数系统中正常运行,12,兼容性问题,英特尔奔腾浮点除法缺陷,如果答案不为,0,,说明计算机使用的是带有浮点除法软件缺陷的老式英特尔奔腾处理器。,1994,年,10,月,30,日,弗吉尼亚州的,Thomas R.Nicely,博士在用奔腾,PC,进行计算问题时得出了一个错误的结论,因此发现了这个问题,后来在互联网上引起一场风暴。,他们的软件测试工程师在芯片发布之前进行内部测试时已经发现了这个问题,英特尔的管理层认为这没有严重到保证要修正,甚至公开的程度。,当软件缺陷被发现时,英特尔试图低调解决问题,但为时已晚,最终拿出,4,亿多美元来支付所有维护费用,13,(,4195835,3145727,),3145727- 4195835 =,?,火星探测飞船坠毁,机械震动在大多数情况下也会触发着地开关,设置错误的数据位。设想飞船开始着陆时,计算机极有可能关闭推进器,而火星登陆飞船下坠,1800,米之后没有反推进器的帮助,冲向地面,必然会撞成碎片,两个小组,本身的工作都没什么问题,就是没有合在一起测试,其接口没有被测,而问题就在这里,14,系统测试,衔接问题,爱国者导弹防御系统,当爱国者导弹防御系统的时钟累计运行超过,14,小时后,系统的跟踪系统就不准确,。从而导致,拦截伊拉克飞毛腿导弹,的几次失败,,其中一枚在沙特阿拉伯的多哈爆炸的飞毛腿导弹造成,28,名美国士兵死亡,15,系统时钟误差积累,2008,北京奥运会售票系统,2007,年,10,月,30,日上午,11,时,,2008,北京奥运会售票系统软件瘫痪。北京奥运会的指定独家票务供应商,-,北京歌华特玛捷票务有限公司成立于,2006,年,9,月,由美国特玛捷公司、中体产业股份有限公司及北京歌华文化发展集团三家出资构建而成。售票系统瘫痪事件发生后,公众普遍质疑歌华特玛捷公司是否具备承担,2008,北京奥运会的票务销售能力。,用户常常在软件开发初期就发现软件可能跟他们的需求有不一致的地方。在开发软件之前,需要进行必要的需求分析。开发完成之后,也要进行必要的测试工作。虽然这些软件故障的后果程度不一,但可以肯定的是,通过严格的软件测试可以极大地降低故障及因此而引发的种种恶果。,16,17,为什么要进行软件测试?,软件总存在缺陷,。只有通过测试,才可以发现软件缺陷。也只有发现了缺陷,才可以将软件缺陷从软件产品或软件系统中清理出去。,软件失败时,也许仅仅给我们带来了不便,也可能是灾难性的。我们需要,软件测试,,来保障软件质量。,18,什么是软件测试?,软件测试学科的形成,正反两方面的争辩,软件测试的定义,软件测试的其它观点,19,软件测试学科的发展,从测试的思想导向来划分为,4,个阶段,:,1957,1978,年,以功能验证为导向,测试是证明软件是正确的(正向思维)。,1978,1983,年,以破坏性为为导向,测试是为了找到软件中的错误(逆向思维)。,1983,1987,年,以质量评估为导向,测试是提供产品的评估和质量度量。,1988,年起,以缺陷预防为导向,测试是为了展示软件符合设计要求,发现缺陷、预防缺陷。,20,更好的阶段划分,分为,3,个阶段,初期阶段、发展阶段和成熟阶段,初级阶段,(,1957,1971,)测试通常被认为是对产品进行事后检验 ,缺乏有效的测试方法,发展阶段,(,1972,1982,),,1972,年第一次关于软件测试的正式会议,促进了软件测试的发展,成熟阶段,(,1983,到现在),国际标准,Std 829-1983,,形成一门独立的学科和专业,成为软件工程学科中的一个重要组成部分,21,软件测试的正面性,Bill Hetzel,博士(正向思维的代表):,软件测试就是为程序能够按预期设想那样运行而建立足够的信心,。,“,软件测试是一系列活动以评价一个程序或系统的特性或能力并确定是否达到预期的结果,”,测试是为了验证软件是否符合用户需求,即验证软件产品是否能正常工作,22,软件测试的反面性,Glenford J. Myers,(反向思维的代表):,测试是为了证明程序有错,而不是证明程序无错误,一个好的测试用例是在于它能发现至今未发现的错误,一个成功的测试是发现了至今未发现的错误的测试,23,软件测试定义的两面性,24,评价一个程序或系统的特性或能力并确定是否达到预期的结果,测试是为发现错误而针对某个程序或系统的执行过程,软件测试,正向思维,验证软件正常工作,逆向思维,假定软件有错误,在设计规定的环境下运行软件的所有功能,直至全部通过,。,寻找容易犯错误的地方和系统的薄弱环节,试图破坏系统,直至找不出问题。,软件测试是什么?,测试,=“,测”,+“,试”,什么是“测”?,Measure,、测量,知道结果的验证行为,测,什么是“试”?,Try,、试验,不知道结果的尝试行为,试,软件测试,测:验证软件功能、性能,试:验证软件是否有非功能性的异常,在规定的条件下对程序进行操作,以发现程序错误,对其是否能满足设计要求进行评估的过程,Myers,软件测试的定义,软件测试是为了发现软件缺陷而执行程序或系统的过程。,26,Q:,我按照用户的需求测试了实际的系统,却一个缺陷也没有发现,我所做的测试工作有意义吗?,1979,年,Glenford J. Myers,在,软件测试艺术,(,The art of software testing,)书中给出的定义:,传统意义上的测试定义,是狭义的。,A:,当然有意义,因为我至少证明了该系统基本符 合用户的需求。,IEEE,软件测试的定义,1983,年,IEEE,的定义,:,使用人工或自动手段运行或测定某个系统的过程,其目的在于,检验它是否满足规定的需求,或是弄清预期结果与实际结果之间的差别。,27,明确提出软件测试以检验是否满足需求为目标。,软件测试的定义,软件测试,也可以定义为是“验证(,Verification,)”和“有效性确认(,Validation,)”活动构成的整体。,验证,:是检验软件是否已正确地实现了产品规格书所定义的系统功能和特性,有效性确认,:是确认所开发的软件是否满足用户真正需求的活动,28,验证:“我们是否正确地完成了产品?”,确认:“我们是否完成了正确的产品?”,-,Boehm,软件测试的其它观点,软件测试被认为是对软件系统中潜在的各种风险进行评估的活动,。,基于风险,的软件测试可以被看作是一个动态的监控过程,对软件开发全过程进行检测,随时发现问题、报告问题,测试的,经济观点,就是以最小的代价获得最高的软件产品质量,。,经济观点也要求软件测试尽早开展工作,发现缺陷越早,返工的工作量就越小,所造成的损失就越小。,29,80/20,原则,1.80%的工程量用在20%的需求上,(关键需求,),2.80%的开发成本花费在20%的部件上,3.80%的错误是由20%的部件引起的,4.80%的延期或返工是由20%的变更造成的,5.80%的系统资源是由20%的部件消耗的,6.80%的进度是由20%的人完成,的,30,BUG,的,80/20,原则,在分析、设计、实现阶段的复审和测试工作能够发现和避免80%的,Bug,(提前测试),而系统测试又能找出其余,Bug,中的80%,最后的5%的,Bug,可能只 有在用户的大范围、长时间使用后才会曝露,出来,31,问题讨论,玩电脑游戏是不是软件测试?,玩手机是不是软件测试?,用户使用软件是不是软件测试?,32,软件开发过程,33,产品的,组成部分,软件项目,成员,软件开发生命周期模式,软件产品需要的投入,34,产品说明书产品审查,设计文档进度表,前期版本的反馈竞争对手的信息,测试计划用户调查,易用性数据外观说明,软件体系结构软件代码,客户需求,35,编写软件的目的是满足一些人的需求,;,客户,需求收集可以通过问卷调查,收集软件以前版本反馈信息、收集竞争产品信息、收集期刊评论、收集焦点人群的意见以及其他诸多方式 ;,产品说明书,36,产品说明书综合需求调查信息以及没有提出但必须要实现的需求,真正地定义产品是什么、有哪些功能、外观如何;,开发进度表,37,制定进度的目的是了解哪项工作完成了,还有多少工作要作,何时全部完成 ;,软件设计文档,38,对于稍大一些的程序而言,必须要有一个规划软件如何编写的设计过程,。,常用软件设计文档包括:,结构,文档、数据流图 、状态转换图 、流程图、代码注释,测试文档,39,重要的测试提交文档清单包括,:,测试计划,测试用例,缺陷,报告,测试,工具和自动测试,度量,、统计和总结,软件产品组成部分,40,软件代码,帮助文件 用户手册,样本和示例 标签和不干胶,产品支持信息 图标和标志,错误信息 广告和宣传材料,安装 说明文件,软件项目组成员,41,项目不同,人员就大不相同了。但是对于大多数情况,分工是一样的,只是叫法不同而已,项目经理、程序经理或者监制人员 编写产品说明书、管理进度、进行重大决策,体系,架构师 ,系统工程师 设计整个系统体系,架构,程序员、开发人员设计、编写软件并修复软件中的缺陷,软件项目组成员,42,测试员或质量保证(,Quality Assurance,,,QA,)员找出并报告软件产品的,问题,技术作者编制软件产品附带的文件和联机,文档,配置管理员或构建员把程序员编写的代码及技术作者写的全部文档资料在一起,合成为一个软件包,软件开发生命周期模式,43,软件产品从最初构思到公开发行的过程称为软件开发生命周期模式,在开发软件过程中有 各种不同的方法。对特定项目而言,没有那个模式是一定最好的 ,有,4,种最常用的模式,大爆炸模式(大棒开发),边写边改模式,瀑布模式,螺旋模式,大爆炸模式,44,人力和资金巨大的能量释放产生了优秀的软件产品或者一堆废品。,简单 所有精力都花在开发软件和编写代码上,计划、进度安排和正规开发过程几乎没有,几乎没有什么测试,边写边改模式,45,粗略的想法简单的设计漫长的来回编写、测试和修改缺陷的过程发布产品简单 所有精力都花在开发软件和编写代码上,在大爆炸模式基础上的一个进步,瀑布模式,46,最初的构思到最终产品要经过一系列步骤。每一个步骤结束时,项目小组组织审查,并决定是否进入下一步。如果项目进入下一步未准备好,就停滞下来,直到准备好,强调产品的定义,各步骤是分立的;没有交叉,无法回溯,瀑布模式,47,计划,需求分析,设计,编码,测试,维护,螺旋模式,48,总体思想是:一开始不必详细定义所有细节。从小开始,定义重要功能,努力实现这些功能,接受客户反馈,然后进入下一阶段。重复上述过程,直至得到最终产品,螺旋模式中包含了一点瀑布模式(分析、设计、开发和测试的步骤)、一点边写边改模式(螺旋模式的每一次)和一点大爆炸模式(从外界观察)。模式发现问题早,使成本低。,测试生命周期模型,需求规,格说明,设计,编码,测试,缺陷分类,缺陷隔离,缺陷解决,错误,错误,错误,错误,修复,缺陷,缺陷,缺陷,引入程序错误阶段,清除程序错误阶段,找出程序错误阶段,软件测试与开发各阶段关系,50,需求规,格说明,概要设计,详细设计,编码,单元测试,集成测试,系统测试,V,模型示意图,51,软件测试基本过程,52,一个规范化的软件测试过程包括以下基本的测试活动,拟定软件测试计划、方案,设计和生成测试用例、准备测试数据,执行测试,记录原始数据,对缺陷进行管理,生成软件测试报告、缺陷的统计和报表,软件测试基本过程,53,软件测试过程与整个软件开发过程基本上是平行进行的,一个开发机构还应当制定软件测试规程,按照软件工程的规范,定义各项活动的目标和详细过程,测试工作流程,软件测试过程细分步骤,55,测试计划,测试用例开发,运行测试用例,评估测试结果,SQA,与软件测试的关系,57,The end,57,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


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

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


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