您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 第一章 软件测试技术概述
TUST软件测试技术计算机学院软件工程天津科技大学2011年8月踏踏实实简简单单天津科技大学计算机科学学院课程介绍课程性质-----必修课时56=20(实验)+36(教学)课程目标-----基本的测试理论和技能课程考核理论40%实践40%出勤课堂20%我能学到什么?踏踏实实简简单单天津科技大学计算机科学学院参考资源参考书《TheArtofSoftwareTesting》•Myers,1979《TestingComputerSoftware》•Cem.Kaner,1993《Black-BoxTesting》•BorisBeizer,1995………………….网络资源………………….踏踏实实简简单单天津科技大学计算机科学学院什么是软件测试?(what)1为什么要测试软件?(why)2如何进行软件测试?(How)3第一章软件测试概述踏踏实实简简单单天津科技大学计算机科学学院软件测试历史---Bug的由来GraceHopper踏踏实实简简单单天津科技大学计算机科学学院测试的必要性和重要性这次事故给测试行业带来什么影响?踏踏实实简简单单天津科技大学计算机科学学院Bug给我们的感受是什么?1.Bug会给我们正常的生活带来不便,有时候会是致命的。2.不经过(科学)测试,(产品)不能投入使用3.测试是(产品)质量的的保证踏踏实实简简单单天津科技大学计算机科学学院软件需要测试的实例1千年虫问题(日期问题)3英特尔奔腾芯片缺陷Windows2000安全漏洞(登陆界面帮助系统)21998年开始,全世界花费上百亿美元(4195835/3145727)*3145727–419583501994年,花费4.5亿美元踏踏实实简简单单天津科技大学计算机科学学院为什么要进行软件测试?为什么要进行软件测试?就是因为软件存在缺陷。只有通过测试,才可以发现软件缺陷。也只有发现了缺陷,才可以将软件缺陷从软件产品或软件系统中清理出去。软件中存在的缺陷给我们带来的损失是巨大的,这也说明了软件测试的必要性和重要性缺陷=bug踏踏实实简简单单天津科技大学计算机科学学院什么是软件缺陷IEEE国际标准729给出了软件缺陷的定义——软件缺陷就是软件产品中所存在的问题,最终表现为用户所需要的功能没有完全实现,不能满足或不能全部满足用户的需求踏踏实实简简单单天津科技大学计算机科学学院软件缺陷的表现根据软件缺陷的定义,可以从两方面考虑:从产品内部看,软件缺陷是软件产品开发或维护过程中所存在的各种问题;从外部看,软件缺陷是系统所需要实现的某种功能的失效或违背。软件缺陷的主要类型/现象:功能、特性没有实现或部分实现设计不合理,存在缺陷实际结果和预期结果不一致运行出错,包括运行中断、系统崩溃、界面混乱数据结果不正确、精度不够用户不能接受的其他问题,如存取时间过长、界面不美观踏踏实实简简单单天津科技大学计算机科学学院缺陷(Bug)分类缺点(defect)偏差(variance)谬误(fault)失败(failure)问题(problem)矛盾(inconsistency)错误(error)毛病(incident)异常(anomy)踏踏实实简简单单天津科技大学计算机科学学院问题出在哪里?踏踏实实简简单单天津科技大学计算机科学学院1什么是软件测试?软件测试是为了尽快尽早地发现:在软件产品中所存在的各种软件缺陷而展开的贯穿整个软件开发生命周期、对软件产品(包括阶段性产品)进行验证和确认的活动过程。软件=程序+数据(库)+文档软件?测试?踏踏实实简简单单天津科技大学计算机科学学院验证和确认(V&V)Verification:Arewebuildingtheproductright?是否正确地构造了软件?即是否正确地做事,验证开发过程是否遵守已定义好的内容。验证产品满足规格设计说明书的一致性Validation:Arewebuildingtherightproduct?是否构造了正是用户所需要的软件?即是否正在做正确的事。验证产品所实现的功能是否满足用户的需求踏踏实实简简单单天津科技大学计算机科学学院软件测试定义的两面性评价一个程序或系统的特性或能力并确定是否达到预期的结果测试是为发现错误而针对某个程序或系统的执行过程软件测试正向思维-验证软件正常工作逆向思维-假定软件有错误在设计规定的环境下运行软件的所有功能,直至全部通过。寻找容易犯错误的地方和系统的薄弱环节,试图破坏系统,直至找不出问题。踏踏实实简简单单天津科技大学计算机科学学院软件软件的过程-----软件缺陷如何产生的?踏踏实实简简单单天津科技大学计算机科学学院软件缺陷产生的原因分布编制说明书55%设计26%其他4%编写代码15%编制说明书设计编写代码其他踏踏实实简简单单天津科技大学计算机科学学院软件缺陷与产品说明书软件未达到产品说明书中已经标明的功能;软件出现了产品说明书中指明不会出现的错误;软件未达到产品说明书中虽未指出但应当达到的目标;软件功能超出了产品说明书中指出的范围;软件中的缺陷大部分来自需求分析,而非代码本身踏踏实实简简单单天津科技大学计算机科学学院软件缺陷的特征软件的特殊性决定了缺陷不易看到,即“看不到”;发现了缺陷,但不易找到问题发生的原因所在,即”看到但是抓不到”踏踏实实简简单单天津科技大学计算机科学学院4如何进行软件测试(讨论)加法功能踏踏实实简简单单天津科技大学计算机科学学院软件测试相关的几个问题软件测试的目标1软件的可靠性2软件测试的关键问题3软件测试与软件开发的关系4软件测试原则5软件测试的工作流程6踏踏实实简简单单天津科技大学计算机科学学院1软件测试的目标1.软件测试的目标在早期被认为是尽可能多地发现软件中的潜在错误。2.1983年,BillHetzel指出,软件测试的目标不仅是尽可能多地发现软件中的错误,还要对软件质量进行度量和评估,以提高软件质量。3.1983年IEEE对软件测试的定义则指出软件测试的目标是检验软件系统是否满足用户的需求。踏踏实实简简单单天津科技大学计算机科学学院2软件可靠性系统在特定的环境下,在给定的时间内无故障运行的可能性。软件可靠性牵涉到软件的性能、功能性、可用性、可服务性、可安装性、可维护性以及文挡等多方面特性是对软件在设计、生产以及在它所预定环境中具有所需功能的置信度的一个度量,是衡量软件质量的主要参数之一踏踏实实简简单单天津科技大学计算机科学学院平均无故障运行时间(MeanTimeBetweenFailure,MTBF)具体是指产品从一次故障到下一次故障的平均时间,是衡量一个产品的可靠性指标,单位为“小时”踏踏实实简简单单天津科技大学计算机科学学院3软件测试的关键问题谁开发人员、测试人员对象程序、文档、环境等等时机与开发并行、尽早开始如何计划、策略、方法、管理停止预定时间、测试用例数、覆盖率、缺陷总数、单位时间缺陷数踏踏实实简简单单天津科技大学计算机科学学院5软件测试的原则1.测试是证伪而不是证真。2.测试应当有重点。3.事先定义好产品的质量标准,确定测试用例预期输出结果。4.软件项目一启动,软件测试也就开始,而不是等到程序写完才开始进行测试。5.穷举测试是不可能的。6.第三方进行测试会更客观,更有效。7.软件测试计划是做好软件测试工作的前提。8.测试用例是设计出来的,不是写出来的。9.对发现错误较多的程序段,应进行更深入的测试。10.重视文档,妥善保存一切测试过程文档。踏踏实实简简单单天津科技大学计算机科学学院4软件测试与软件开发的关系踏踏实实简简单单天津科技大学计算机科学学院6软件测试的工作流程测试计划测试设计测试执行测试报告踏踏实实简简单单天津科技大学计算机科学学院踏踏实实简简单单天津科技大学计算机科学学院软件测试中的认识误区误区一:测试和调试是一回事误区二:可以对软件进行穷举测试误区三:若交付使用的软件有缺陷,是测试人员的失职误区四:关注测试的执行而忽略测试用例的设计误区五:测试比编程容易许多误区六:测试是编码之后进行的工作误区七:测试自动化是万能的误区八:软件测试是一种破坏性的工作踏踏实实简简单单天津科技大学计算机科学学院软件测试的发展趋势软件测试尽早介入软件开发的各阶段软件测试成为一个完全独立的流程。测试可贯穿到软件开发的其他各流程,并与之并发地执行。面向对象的软件测试理论和技术不断发展。对分布式系统、实时系统的测试理论和技术不断发展。软件测试人员的地位得到极大的提高。第三方测试迅速发展。踏踏实实简简单单天津科技大学计算机科学学院你适合做测试工作吗?热爱工作充满兴趣知识渊博能言善辩不需要很强的编程能力踏踏实实简简单单天津科技大学计算机科学学院借用一则励志故事与大家共勉伟大的成功和辛勤的劳动是成正比的,有一分劳动就有一分收获,日积月累,从少到多,奇迹就可以创造出来踏踏实实简简单单天津科技大学计算机科学学院几点建议积极参与讨论更多实践(课下和课上)多提问题按时完成作业和尽可能出勤踏踏实实简简单单天津科技大学计算机科学学院Q&A踏踏实实简简单单天津科技大学计算机科学学院主要参考教材踏踏实实简简单单天津科技大学计算机科学学院
本文标题:第一章 软件测试技术概述
链接地址:https://www.777doc.com/doc-3210540 .html