




已阅读5页,还剩98页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
张世玲2769477386,软件测试概述,软件和软件测试软件的缺陷软件生命周期软件开发和测试流程软件测试方法和策略软件测试工程师职责,内容进度,软件的定义软件(software)是计算机系统中与硬件(hardware)相互依存的另一部分,它是包括程序(program)、文档(document)的完整集合。 软件与程序的区别软件=程序(包括数据)+文档,软件和软件测试,软件测试的概念是为了发现错误而执行程序的过程。应关心程序的效率和鲁棒性等因素。检验软件是否满足规定的需求。弄清预期与实际结果之间的差别。备注:所谓“鲁棒性”,是英文“robust”的译音,指强壮、健壮的意思。软件的“鲁棒性”,是指系统在一定条件下维持某些性能的特性,简单地说,就是适应各种各样的变化的能力。鲁棒性越强,系统精确度就愈高,性能越好。,软件和软件测试,软件测试定义使用人工或自动手段,来运行或测试某个系统的过程。其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别。软件测试活动一般包含制订测试计划设计测试用例实施测试提交缺陷报告测试总结,软件和软件测试,软件测试和调试的区别,软件和软件测试,软件测试伴随软件的产生而产生测试是为发现错误而执行一个程序或者系统的过程测试是对软件质量的度量,软件测试的目的,软件测试的原则,软件测试应尽早执行不同阶段引入的缺陷对于软件的影响有什么不同?,软件测试应追溯需求规格需求说明书注意规格需求说明书是否真实反映了用户需求,过程中需要不断和用户沟通。测试应由第三方来构造程序设计机构(开发团队)不应测试自己的程序,程序员也应避免测试自己的程序。第三方可以是测试部门,现在流行的测试项目外包也是典型的由第三方来构造测试的情况。,软件测试的原则,不要做不充分的测试,也不要做过多的测试。,软件测试的原则,其他值得注意的规律和经验严格执行测试计划(需要时修改测试计划),排除测试的随意性注意正确合理的输入,也要注意非法的非预期的输入 检查程序是否是否做了不该做的 测试应从“小规模”开始,逐步转向“大规模” 反复使用同样的测试会使软件具有抵抗力,可以让测试人员更换测试模块进行测试 关注缺陷的修复,一般每修复三到四个缺陷一般就会产生一个新的缺陷,软件测试的原则,正确认识软件测试,软件的质量不是靠测出来的软件测试真的比开发容易么?测试人员发现缺陷是测试的初步,还要分析定位缺陷;而且测试人员需要发现潜在的难以被发现的缺陷 测试人员需要开发测试工具和自动测试脚本 测试人员必须精通整个业务 软件测试需要开发与测试人员的共同努力破坏性、建设性考虑角度不同,测试职业的认可:以前“如果你没有能力做开发,那么就去做测试”现在“只有高水平的技术者,才能胜任测试工作”,软件测试的发展趋势,软件测试软件测试的原则软件测试的目的你是怎样理解软件测试的,软件测试总结,软件和软件测试软件的缺陷软件生命周期软件开发和测试流程软件测试方法和策略软件测试工程师职责,内容进度,什么是缺陷(defect)?不满足用户确定需求,软件的缺陷,错误、缺陷、故障、失效,错误:指导致软件包含故障的人的行为缺陷:指产品的异常情况故障:指引起一个功能部件不能完成所要求的功能的一种意外情况失效:指功能部件执行其规定功能的能力丧失一个软件失效过程:,什么软件缺陷,IEEE对软件缺陷下的标准定义:从产品内部看,软件缺陷是软件产品开发或维护过程中所存在的错误、毛病等各种问题。从外部看,软件缺陷是系统所需要实现的某种功能的失效或违背。,什么是软件缺陷,软件未达到产品说明书标明的功能。软件出现了产品说明书指明不会出现的错误。软件功能超出产品说明书指明的范围。软件未达到产品说明书虽未指出但应该达到的目标。软件难以理解、不易使用、运行速度缓慢或者从测试人员的角度看最终用户认为不好,产生缺陷的原因是什么?人员(用户、设计、开发、测试、技术支持等)之间的沟通交流不够,交流上有误解或者根本不进行交流文档不完善甚至没有文档(尤其是国内中小软件企业)需求不断的变化参与人员的过度自信程序设计本身有错误软件复杂度大,缺陷很难避免(例如Windows、Word)工期短,任务重,时间压力大软件开发工具与系统软硬件的支持,软件的缺陷,按功能(模块)例如按菜单划分功能模块按问题引出不同UI、功能、性能、安全性,缺陷的分类,按缺陷的严重程度影响进度的问题死机功能问题界面问题建议按修复缺陷的优先级立即修复在产品发布之前必须修复如果时间允许应该修复可以在发布版本中存在的问题,缺陷的分类,备注:缺陷的严重程度和优 先级各软件公司可根据实际情况自行确定。,缺陷的识别依据通过参考文档来确认缺陷需求规格说明书概要设计、详细设计用户手册通过了解软件行业标准、行业背景(或参考同类典型软件)来发现缺陷通过沟通来确认和识别缺陷,软件的缺陷,有效记录缺陷的方法保证重现缺陷分析故障使用最少步骤复现故障包含所有重现缺陷的必要步骤方便阅读尽量简单一个缺陷一个报告注意自己的语气值得注意的经验,软件的缺陷,缺陷报告的用途记录缺陷缺陷分类(为解决缺陷分配资源)缺陷跟踪为什么要尽早的报告缺陷?是不是所有的缺陷都会被修复?,缺陷报告,缺陷报告的分类按缺陷所处状态分类待确认的新提交的已分配的问题未解决的待返测的待归档的已归档的,缺陷报告,按处理意见分类已修改的不是问题无法修改以后版本解决保留重复无法重现,缺陷报告的处理流程,缺陷报告的分类按优先级分类按缺陷状态、处理意见分类缺陷报告处理流程提交缺陷报告处理缺陷报告返测缺陷报告关闭缺陷报告,缺陷报告的处理流程,软件的缺陷,测试人员,测试经理或开发经理,开发人员,测试人员,测试经理或测试人员,软件缺陷的状态,New(新的):bug提交到缺陷库中会自动的被设置成New状态Assigned(已指派):当一个bug被认为New之后,将其分配开发人员,开发人员将确认这是否是一个bug,如果是,开发组的负责人就将这个bug指定给某位开发人员处理,并将bug的状态设定为“Assigned”Open(已打开):开发人员开始处理bug时,他将这个bug的状态设置为“Open”,表示开发人员正在处理这个“bug”,软件缺陷的状态,Fixed(已修复):当开发人员进行处理(并认为已经解决)之后,他(她)就可以将这个bug的状态设置为“Fixed”并将其提交给开发组的负责人,然后开发组的负责人将这个bug返还给测试组Rejected(被拒绝):测试组的负责人接到上述bug的时候,如果他(她)发现这是产品说明书中定义的正常行为或者经过与开发人员的讨论之后认为这并不能算作bug的时候,开发组负责人就将这个bug的状态设置为“Rejected”Postponed(延期):有些时候,对于一些特殊的bug的测试需要搁置一段时间,事实上有很多原因可能导致这种情况的发生,比如无效的测试数据,一些特殊的无效的功能等等,在这种情况下,bug的状态就被设置为“Postponed”,软件缺陷的状态,Closed(已关闭):测试人员经过再次测试后确认bug已经被解决,将bug的状态设置为“Closed”Reopen(再次打开):如经过再次测试发现bug仍然存在,测试人员将bug再次返回给开发组,将bug的状态设置为“Reopen”,软件缺陷的处理流程,测试人员提交新的Bug入库。 项目经理、开发经理或者测试经理,再或者测试人员自己分配给相应的开发人员,设置状态为Open。 测试人员查询状态为Fixed(或Resolved)的Bug,然后验证Bug是否已解决,如解决置Bug的状态为Closed,如没有解决置状态为Reopen。 开发人员查询状态为Open和Reopen的Bug,不是Bug,则置状态为Invalid,是Bug则解决并置状态为Fixed(或Resolved),不能解决的Bug,要留下文字说明及设置Bug状态。 对于不能解决和延期解决的Bug,不能由开发人员自己决定,一般要通过某种会议(评审会)通过才能认可。,缺陷跟踪系统的目标,1.问题一旦报告,所有需要了解该问题的人必须立刻获取到该问题的信息2.不能有任何错误因为被某人遗忘未得到改正3.不能有任何错误因为某个程序员的一念之差而未得到改正4.使因为沟通问题而未得到改正的问题尽量少,软件缺陷跟踪系统,使用商业缺陷跟踪与管理系统TestDirector for Quality CenterSilkCentral Test ManagerTestTrack ProMantis(开源)BugFree(开源)自行开发专用缺陷跟踪与管理系统自创建缺陷数据库,缺陷管理系统的使用角色,关于处理缺陷,注意缺陷报告的处理成本修改缺陷要量力而行关注被推迟修改的缺陷如果决定据理力争就一定要赢,什么是缺陷产生缺陷的原因缺陷的分类怎样判定一个缺陷怎样记录一个缺陷缺陷报告的处理流程缺陷的状态,缺陷总结,软件和软件测试软件的缺陷软件生命周期软件开发和测试流程软件测试方法和策略软件测试工程师职责,内容进度,什么是软件生命周期软件开发全部过程、活动和任务的结构框架,是从可行性研究到需求分析、软件设计、编码、测试、软件发布维护的过程。,软件生命周期,瀑布模型,软件生命周期,设计阶段通常又可分为概要设计和详细设计,软件测试的生命周期,软件和软件测试软件的缺陷软件生命周期软件开发和测试流程软件测试方法和策略软件测试工程师职责,内容进度,软件开发测试流程需求阶段,软件开发测试流程,软件开发测试流程设计编码阶段,软件开发测试流程,软件开发测试流程集成、系统、验收阶段,软件开发测试流程,软件测试V模型,软件开发测试流程,软件测试不是软件开发过程中的一个阶段,软件测试W模型,软件开发测试流程,测试计划,测试开发,测试执行,软件测试过程,软件测试流程概述,软件测试流程测试计划阶段测试设计和开发阶段测试实施阶段测试评估阶段,软件测试的几个阶段,软件测试阶段,软件测试阶段,单元测试集成测试系统测试(包括确认测试)验收测试,单元测试,单元测试又称为模块测试,是最小单位测试单元测试是在软件开发过程中要进行的最低级别的测试活动类、文件、窗口、函数、菜单、报表或一个存储过程都可以作为一个单元进行测试其依据是详细设计文档,非增式集成方法,集成测试,增式集成方法自顶向下测试自底向上测试,集成测试,系统测试是为验证和确认系统是否达到其原始目标,而对集成的硬件和软件系统进行的测试。系统测试是在真实或模拟系统运行的环境下,检查完整的程序系统能否和系统(包括硬件/外设/网络/系统软件/支持平台)正确配置,连接,并满足用户需求。,系统测试,系统测试,按照项目任务书或合同,供需双方约定的验收依据文档进行的对整个系统的测试与评审,决定是否接收或拒收系统。,验收测试,软件测试的分类按阶段,按照测试实施方分类开发方测试:通常也叫Alpha测试用户测试:Beta测试,主要是把软件产品有计划地免费分发到目标市场,让用户大量使用,并评价第三方测试:介于软件开发方和用户方之间的测试组织的测试,软件测试分类,软件生命周期软件测试的生命周期软件测试V模型软件测试流程软件测试阶段,分别说出各个阶段的区别和联系Alpha测试和Beta测试的区别,软件开发和测试流程总结,软件和软件测试软件的缺陷软件生命周期软件开发和测试流程软件测试方法和策略软件测试工程师职责,内容进度,静态测试与动态测试静态测试静态测试不必动态运行程序静态测试一般由人工进行,充分发挥人的逻辑思维优势静态测试实施不需要特别的条件,容易开展静态测试内容动态测试构造测试用例根据测试用例运行程序分析程序的输出结果,软件测试的方法和策略,黑盒测试与白盒测试,软件测试的方法和策略,白盒测试白盒测试也称结构测试或逻辑驱动测试,是针对被测单元内部是如何进行工作的测试.它根据程序的控制结构设计测试用例,主要用于软件或程序验证,软件测试的方法和策略,黑盒测试是把测试对象看做一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明。因此黑盒测试又叫功能测试或数据驱动测试。,软件测试的方法和策略,黑盒测试特点检查程序功能能否按需求规格说明书的规定正常使用,测试各个功能是否有漏洞.检测性能等特性要求是否满足检测人机交互是否错误,检测数据结构或外部数据库访问是否错误,程序是否能适当地接收数据而产生正确的输出结果,并保持外部信息的完整性如数据库或文件检测程序初始化和终止方面的错误,软件测试的方法和策略,灰盒测试灰盒测试与黑盒测试一样是通过用户界面进行测试,但是测试人员有所了解软件的设计,甚至可能已经读过那部分源代码。因此测试人员可能有的放矢地进行某种确定的条件/功能测试灰盒测试的意义在于:如果你知道产品内部的设计和对产品有透过用户界面的深入了解,可以更有效和深入地从用户界面来测试它的各项性能,提高测试的针对性和效果,软件测试的方法和策略,手工测试与自动测试自动测试优点节约大量时间处理精确的事务大数据量事务并发事务自动测试局限产品本身不稳定开发、维护脚本工作量大、费用高人才缺乏,软件测试的方法和策略,冒烟测试有针对性地通过验证软件中的主要功能是否能够正常运行,来确认是否有必要将测试人员测试工作都转移到对新版本的测试中。,软件测试的方法和策略,回归测试,回归测试就是验证发现的缺陷是否真正被开发人员修复,同时测试是否由于代码修改而引入新的缺陷。在软件开发的各个阶段都会进行回归测试包含两种含义一种是开发人员修改一个bug后,测试人员去验证这个修改是否正确所作的测试另一种是在软件研发后期,选择一部分重要的测试用例去验证产品的某个版本是否正常。,要做的回归测试是新增加的功能,则应该在回归测试前现对此新功能做独立手工测试,验证其是否符合预定设计的要求收集现有的测试用例或自动测试程序,确定哪些是本次会测试必须做的要做的回归测试是针对功能的改变或缺陷修复,则应审查现有的测试用例或测试程序,看是否有需要修改的地方;如有则应在回归测试前完成,回归测试的过程,所做的修改达到了预期的目的,错误得到了修改,新功能得到了实现,能够适应新的运行环境。不影响软件原有功能的正确性。,回归测试的目标,回归测试的策略,再次测试全部用例。基于风险选择测试。先运行最重要的、关键的和可疑的测试,跳过次要的、额外的、稳定的测试。可以提高安全性。再测试修改的部分。当测试这对修改的局部有足够的信心,可以通过依赖性分析识别软件的修改情况并分析修改的影响,将回归测试局限于被改变的模块和他的接口上。,什么是探索性测试,探索性测试可以说是一种测试思维技术。它没有很多实际的测试方法、技术和工具,但是却是所有测试人员都应该掌握的一种测试思维方式。探索性强调测试人员的主观能动性,抛弃繁杂的测试计划和测试用例设计过程,强调在碰到问题时及时改变测试策略。探索性测试最直白的定义是:同时设计测试和执行测试。相比即兴测试是一种精致的、有思想的过程。,探索性测试,探索性测试强调:测试设计和测试执行的同时性,这是相对于传统软件测试过程中严格的“先设计,后执行”来说的。通过测试来不断学习被测系统,同时把学习到的关于软件系统的更多信息通过综合的整理和分析,创造出更多的关于测试的主意。,其他功能测试性能测试压力测试负载测试易用性测试安装测试,软件测试的方法和策略,界面测试配置测试文档测试兼容性测试安全性测试恢复测试,黑盒测试与白盒测试静态测试与动态测试手工测试与自动测试冒烟测试回归测试,软件测试的分类按策略小结,软件测试的分类,按测试策略分类黑盒/白盒测试、动态/静态测试、手工/自动测试按测试阶段分类单元测试、集成测试、系统测试、验收测试按测试方法分类功能测试、性能测试、压力测试、负载测试、易用性测试、安装测试、界面测试、配置测试、文档测试、兼容性测试、安全性测试、恢复测试,静态测试和动态测试的区别黑盒测试和白盒测试的区别什么是灰黑测试什么是冒烟测试什么是回归测试软件测试的分类,软件测试方法总结,软件和软件测试软件的缺陷软件生命周期软件开发和测试流程软件测试方法和策略软件测试工程师职责,内容进度,熟悉软件测试流程了解测试人员职责分工熟悉软件测试工程师必备素质明确软件测试中的风险,软件测试工程师职责,测试流程,制定项目计划,需求、设计和编码,测试,发布,制定测试计划,设计和实现测试用例,测试执行,测试报告与总结,测试工作流程,测试人员职责分工,测试经理和测试主管是测试小组对外的接口,对内负责组员的工作安排、工作检查和进度管理,同时承担重要项目的测试工作测试工程师的职责从本质上讲就是做好项目的测试工作,达到软件测试的目的,测试主管/测试经理职责,负责招聘适合于工作的测试人员建立测试技术模型和培训机制审核测试计划,监督计划的实施过程,确保按计划进行实施和按计划完成测试任务项目之间的人员调配;与其他部门的协调和合作制定短期、长期的改进措施,进行评审和监督监督新员工培训实施情况,对培训结果进行考核跟进测试人员发展,定期与员工进行正式交流规划和开展其它测试管理工作,软件测试工程师职责,制定测试计划设计与编写测试用例实施测试BUG跟踪编写测试报告与总结其他软件工程活动,软件测试工作特点,强调对测试的正确理解与深入理解强调测试中的各种原则,比如总假定软件是有错误的强调软件测试的破坏性思维强调软件测试中的发散性思维,软件测试团队合作精神,强调团队各角色的统一协作,学会换位思考坚守原则和工作底线前提下,运用妥协和争取,提倡团队的补位意识树立测试威信提倡学习和运用软件工程知识,提高分析能力,解释和推进解决实际问题,软件测试必备的素质,责任心沟通能力团队合作精神耐心、细心、信心时时保持怀疑态度,并且有缺陷预防的意识具备一定的编程经验,明确测试风险,测试计划中强调任务风险明确任务的风险:了解测试任务的风险有助于对潜伏的问题事先作好思想上和物质上的准备检验测试资源:检验测试过程中所需的资源是否可
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论