《软件测试基本概念.ppt》由会员分享,可在线阅读,更多相关《软件测试基本概念.ppt(46页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、软件测试基本概念1现在学习的是第1页,共46页第第1章回顾章回顾1.1 软件的含义1.2 软件开发过程模型1.3 UML代表着软件建模的发展趋势1.4 软件测试的重要性2现在学习的是第2页,共46页第第2章章 软件测试的基本概念软件测试的基本概念2.1 软件缺陷软件缺陷2.2 验证和确认验证和确认2.3 软件测试的分类软件测试的分类2.4 测试模型测试模型2.5 软件测试的工作范畴软件测试的工作范畴3现在学习的是第3页,共46页缺陷是质量的对立面缺陷是质量的对立面要了解什么是缺陷(defect),就必须清楚“质量(Quality)”概念,因为缺陷是相对质量而存在的,违背了质量、违背了客户的意愿
2、,不能满足客户的要求,就会引起缺陷或产生缺陷。4现在学习的是第4页,共46页2.1 软件缺陷软件缺陷2.1.1 软件质量的内涵2.1.2 软件缺陷的定义2.1.3 软件缺陷的产生2.1.4 软件缺陷的构成2.1.5 修复软件缺陷的代价5现在学习的是第5页,共46页软件质量软件质量 的内涵的内涵1 1 1 1 质量质量质量质量(Quality)(Quality)(Quality)(Quality)的概念的概念的概念的概念 在RUP(“Rational标准过程”理论)中,质量被定义为:满足或超出认定的一组需求,并使用经过认可的评测方法和标准来评估,还使用认定的流程来生产。RUP:Rational
3、Unified Process6现在学习的是第6页,共46页软件质量软件质量 的内涵的内涵2 2 2 2 软件质量的内涵软件质量的内涵软件质量的内涵软件质量的内涵 总结说来,高品质软件高品质软件应该是相对的无产品缺陷(bug free)或只有极少量的缺陷,它能够及时递交给客户,所花费用都在预算内,并且满足客户需求,是可维护的。但是,有关质量好坏的最终评价依赖于用户的反馈。7现在学习的是第7页,共46页高质量软件标准体系高质量软件标准体系产品质量产品质量是人们实践产物的属性和行为,是可以认识,可以科学地描述的。并且可以通过是人们实践产物的属性和行为,是可以认识,可以科学地描述的。并且可以通过一些
4、方法和人类活动,来改进质量一些方法和人类活动,来改进质量.质量模型:McCall 模型,Boehm 模型,ISO 9126 模型过程质量过程质量:软件能力成熟度模型软件能力成熟度模型 CMM(Capability Maturity Model).国际标准过程模型国际标准过程模型 ISO 9000 软件过程改进和能力决断软件过程改进和能力决断 SPICE(Software Process Improvement and Capability dEtermination)在商业过程中有关的质量内容在商业过程中有关的质量内容:培训、成品制作、宣传、发布日起、客户、风险、成本等 8现在学习的是第8页,
5、共46页产品质量的标准产品质量的标准-功能性功能性 Functionality-可用性可用性 Usability(简单安装;轻松使用;友好界面)-可靠性可靠性 Reliability(用户使用的根本)-性能性能 Performance-容量容量 Capacity-可测量性可测量性 Scalability-可维护性可维护性 Service manageability-兼容性兼容性 Compatibility-可扩展性可扩展性 Extensibility9现在学习的是第9页,共46页软件质量特征软件质量特征(ISO9126)pp 功能功能:与一组功能及其指定性质有关的一组属性,这里的功能是满足明确
6、或隐含的需求的那些功能。p 可靠可靠:在规定的一段时间和条件下,与软件维持其性能水平的能力有关的一组属性。p 可用可用:由一组规定或潜在的用户为使用软件所需作的努力和所作的评价有关的一组属性。p 效率效率:与在规定条件下软件的性能水平与所使用资源量之间关系有关的一组属性。p 可维护可维护:与进行指定的修改所需的努力有关的一组属性。p 可移植可移植:与软件从一个环境转移到另一个环境的能力有关的一组属性。其中每一个质量特征都分别与若干子特征相对应。其中每一个质量特征都分别与若干子特征相对应。10现在学习的是第10页,共46页ISO 9126软件质量三层模型软件质量三层模型-SQRC 软件质量需求评
7、价准则(高层)-SQDC 软件质量设计评价准则(中层)-SQMC 软件质量度量评价准则(低层)11现在学习的是第11页,共46页McCall软件质量模型软件质量模型互用性互用性互用性互用性正确性正确性正确性正确性可靠性可靠性可靠性可靠性效率效率效率效率完整性完整性完整性完整性可用性可用性可用性可用性可维护性可维护性可维护性可维护性可测试性可测试性可测试性可测试性灵活性灵活性灵活性灵活性可移植性可移植性可移植性可移植性重复性重复性重复性重复性阐述性阐述性数据公开性数据公开性连贯性连贯性容错性容错性执行效率执行效率/储存效率储存效率存取控制存取控制/存取检查存取检查可训练可训练沟通良好沟通良好 简
8、单性简单性易操作的易操作的工具工具自我操作性自我操作性扩展性扩展性一般性一般性模块性模块性软件系统独立性软件系统独立性机器独立性机器独立性通讯公开性通讯公开性正确性正确性可操作性可操作性产品产品操作操作产品产品修改修改产品产品转换转换12现在学习的是第12页,共46页什么是什么是 Bug?2.1.2 软件缺陷的定义软件缺陷的定义Any problem/disfigurement/limitation in product design&development nFeature or function cant worknUnreasonable designnPartly realizatio
9、n in functionnData errornRun errornLimitation in featuresnDifference between actual results and expected resultsnUnfriendly UI,Low performancenOthers 任何程序、系统中的问题,和产品设计书的不任何程序、系统中的问题,和产品设计书的不任何程序、系统中的问题,和产品设计书的不任何程序、系统中的问题,和产品设计书的不一致性一致性一致性一致性,不能满足用户的需求不能满足用户的需求 13现在学习的是第13页,共46页软件缺陷软件缺陷IEEE(1983)729
10、 IEEE(1983)729 软件缺陷一个标准的定义:软件缺陷一个标准的定义:n 从产品内部看,软件缺陷是软件产品开发或维护过程中所存在的错误、毛病等各种问题;n 从外部看,软件缺陷是系统所需要实现的某种功能的失效或违背。14现在学习的是第14页,共46页软件开发描述图软件开发描述图15现在学习的是第15页,共46页软件缺陷软件缺陷软件错误产生的可能原因是:n需求规格说明书包含错误的需求、或漏掉一些需求,或没有准确表达客户所需要的内容n需求规格说明书中有些功能不可能或无法实现n系统设计(system design)中的不合理性n程序设计中的错误n程序代码中的问题,包括错误的算法、复杂的逻辑等1
11、6现在学习的是第16页,共46页软件缺陷软件缺陷软件缺陷的主要类型软件缺陷的主要类型/现象:现象:n 功能、特性没有实现或部分实现n 设计不合理,存在缺陷n 实际结果和预期结果不一致n 运行出错,包括运行中断、系统崩溃、界面混乱n 数据结果不正确、精度不够n 用户不能接受的其他问题,如存取时间过长、界面不美观 17现在学习的是第17页,共46页软件缺陷的种类软件缺陷的种类:按照严重性级别的定义不尽相同,但一般可以概括为4 4种类型种类型:n致命的致命的(fatal)(fatal):致命的错误,造成系统或应用程序崩溃(crash)、死机、系统悬挂,或造成数据丢失、主要功能完全丧失等。n严重的严重
12、的(critical)(critical):严重错误,指功能或特性没有实现,主要功能部分丧失,次要功能完全丧失,提示信息不太准确,或致命的错误声明n一般的一般的(major)(major):不太严重的错误,这样的软件缺陷虽然不影响系统的基本使用,但没有很好地实现功能,没有达到预期效果。如次要功能丧失,提示信息不太准确,或用户界面差,操作时间长n微小的微小的(minor)(minor):一些小问题,对功能几乎没有影响,产品或属性仍可使用,如有个别错别字、文字排列不整齐等。n此外,有时还需要“建议建议(Suggestion)(Suggestion)”级别来处理测试人员所提出的建议或质疑。软件缺陷软
13、件缺陷18现在学习的是第18页,共46页软件缺陷的状态软件缺陷的状态软件缺陷除了严重性以外,还存在反映软件缺陷处于一种什么样的状态,便于跟踪和管理某个产品的缺陷,可以定义不同的bugbug状态状态:n激活状态激活状态(Active(Active或或Open)Open):问题没有解决,测试人员新报的bug,或验证后bug依然存在n已修正状态已修正状态(Fixed(Fixed或或Resolved)Resolved):开发人员针对所存在的缺陷,修改程序,认为已解决问题,或通过单元测试n关闭或非激活状态关闭或非激活状态(Close(Close或或Inactive)Inactive):测试人员验证fix
14、ed bug后,确认bug不存在之后的状态。n此外,还有下面一些中间状态:n保留保留(Hold)(Hold):bug目前无法解决或是由第三方软件产品引起的n延期延期(Differed):(Differed):bug暂时不需要解决或在下一版本中解决更彻底一些软件缺陷软件缺陷19现在学习的是第19页,共46页造成软件缺陷产生的主要原因有:1.1.技术问题技术问题主要包括:算法错误、语法错误、计算和精度问题、系统结构不合理、算法不科学,造成系统性能低下、接口参数传递不匹配,导致模块集成出现问题2.2.团队工作团队工作对客户的需求不是十分清楚,或者和用户的沟通存在一些困难;开发人员相互理解不一致;设计
15、或编程上的一些假定或依赖性,没有得到充分的沟通3.3.软件本身软件本身文档错误、用户使用场合(user scenario),时间上不协调、或不一致性所带来的问题。系统的自我恢复或数据的异地备份、灾难性恢复等问题软件缺陷的产生软件缺陷的产生20现在学习的是第20页,共46页软件缺陷构成软件缺陷构成 21现在学习的是第21页,共46页软件缺陷在不同阶段的分布软件缺陷在不同阶段的分布 在真正的程序测试之前,通过审查、评审会可以发现更多的缺陷。规格说明书的缺陷会在需求分析审查、设计、编码、测试等过程中会逐步发现,而不能在需求分析一个阶段发现22现在学习的是第22页,共46页缺陷成本缺陷成本软件缺陷的发
16、现随着时间的推移带来的成本越来越大。23现在学习的是第23页,共46页2.2 验证和确认验证和确认2.2.1 验证和确认验证和确认2.2.2 评审评审2.2.3 质量保证和测试的关系质量保证和测试的关系24现在学习的是第24页,共46页验证和确认验证和确认(V&V)Verification:Are we building the product right?是否正确地构造了软件?即是否正确地做事,验证开发过程是否遵守已定义好的内容。验证产品满足规格设计说明书的一致性Validation:Are we building the right product?是否构造了正是用户所需要的软件?即是否正
17、在做正确的事。验证产品所实现的功能是否满足用户的需求25现在学习的是第25页,共46页评审评审n通过软件评审,可以更早地发现需求工程、软件设计等各个方面的问题,大大减少大量的后期返工,将质量成本从昂贵的后期返工转化为前期的缺陷发现。n评审是对软件元素或者项目状态的一种评估手段,以确定其是否与计划的结果保持一致,并使其得到改进。检验工作产品是否正确地满足了以往工作产品中建立的规范。n软件评审是软件测试的组成部分。26现在学习的是第26页,共46页评审分类评审分类n管理评审管理评审n技术评审技术评审n文档评审文档评审n流程评审流程评审27现在学习的是第27页,共46页什么是什么是 SQA?软件质量
18、保证是通过对软件产品和活动有计划的进行评软件质量保证是通过对软件产品和活动有计划的进行评软件质量保证是通过对软件产品和活动有计划的进行评软件质量保证是通过对软件产品和活动有计划的进行评审和审计来验证软件是否合乎标准的系统工程活动审和审计来验证软件是否合乎标准的系统工程活动审和审计来验证软件是否合乎标准的系统工程活动审和审计来验证软件是否合乎标准的系统工程活动.n确保确保SQA活动要自始至有计划的进行活动要自始至有计划的进行n审查软件产品和活动是否遵守适用的标准、规程和要求并得到客观验审查软件产品和活动是否遵守适用的标准、规程和要求并得到客观验证。证。nSQA的活动和结果要保证全员参与,沟通顺畅
19、。的活动和结果要保证全员参与,沟通顺畅。n逐级解决不符合问题逐级解决不符合问题28现在学习的是第28页,共46页SQA与软件测试有什么关系和区别?与软件测试有什么关系和区别?29现在学习的是第29页,共46页SQA与软件测试的关系与软件测试的关系 nSQA 是管理工作、审查对象是流程、强调以预防为主n测试测试是技术工作、测试对象是产品、主要是以事后检查nSQA指导测试、监控测试n测试为SQA提供依据30现在学习的是第30页,共46页2.3 软件测试的分类软件测试的分类方法方法目标目标/特性特性单元测试单元测试系统测试系统测试验收测试验收测试性能测试性能测试强壮性测试强壮性测试功能测试功能测试白
20、盒测试白盒测试黑盒测试黑盒测试测试阶段或层次测试阶段或层次适用性测试适用性测试可靠性测试可靠性测试集成测试集成测试安全性测试安全性测试31现在学习的是第31页,共46页不同的分类不同的分类n按测试的对象或范围分类,如单元测试、文档测试、系统测试等)n按测试目的分类,如功能测试、回归测试、性能测试、可靠性测试、安全性测试和兼容性测试等n根据测试过程中被测软件是否被执行,分为静态测试和动态测试n根据是否针对系统的内部结构和具体实现算法来完成测试,可分为白盒测试和黑盒测试32现在学习的是第32页,共46页2.4.1 软软件件测试测试模型:模型:V模型模型33现在学习的是第33页,共46页2.4.2
21、软软件件测试测试模型:模型:X模型模型34现在学习的是第34页,共46页2.5 软件测试的工作范畴软件测试的工作范畴n软软件件测试测试工作的工作的组织组织与管理与管理:制定测试策略、测试计划,确认所采用的测试方法与规范,控制测试进度,管理测试资源。n测试测试工作的工作的实实施施:编制符合标准的测试文档,搭建测试环境,开发测试脚本、与开发组织协作实现各阶段的测试活动。35现在学习的是第35页,共46页测试工作流程测试工作流程36现在学习的是第36页,共46页2.5.1 2.5.1 测试计划制定测试计划制定在测试计划中,主要包括以下内容:1.1.制定测试策略制定测试策略制定测试策略主要分析测试的目
22、标和指标,确定测试的对象和依据,明确测试的重点和采用的方法2.2.确定测试范围确定测试范围测试主要依据“产品设计规格说明书”,根据产品的新特性或功能修改需求所做的代码变化,以及这种变化可能引起的问题或给其他模块造成的影响。3.3.所需资源和日程安排所需资源和日程安排资源包括计算机硬件、软件和人力资源。在进行资源安排时,更重要的是设置不同的角色,清楚地定义每个人的工作内容和责任。对于日程安排,主要是设置整个测试周期的项目进程。为了合理、准确地安排日程,对测试工作量要进行正确的估计。37现在学习的是第37页,共46页2.5.2 2.5.2 设计测试用例设计测试用例在单元测试阶段,主要用白盒测试方法
23、设计测试用例;在功能测试阶段,主要用黑盒测试方法来设计测试用例。测试用例定义了为执行测试所需要的条件或环境、输入或操作步骤,以及所期望的结果。测试用例定义了为执行测试所需要的条件或环境、输入或操作步骤,以及所期望的结果。n测试环境是测试的基础测试环境是测试的基础。要尽量模拟软件系统实际应用的环境。n输入值输入值。除了正常的输入值,关键是需要寻找哪些是属于边界条件的输入值和正常输入值。n期望结果或标准期望结果或标准。是根据系统设计规格说明书来确定的输出结果、标准。有时是由经验作出正确判断、理解所确定。38现在学习的是第38页,共46页2.5.3 2.5.3 执行测试执行测试执行测试主要有下列一些
24、活动:n建立必要的测试环境n按照所写的测试用例,编写测试脚本n根据测试对象和目的,构造测试用例的集合n运行测试脚本或手工按测试用例进行n记录测试结果n结果比较分析,找出软件缺陷n将软件缺陷记录到缺陷数据库中,清楚地描述该缺陷n跟踪和管理软件缺陷n验证被处理的软件缺陷,并进行回归测试n对测试过程进行管理,保证测试工作执行的正确性,实现资源调拨和相关合作方的协调。对测试中的问题进行全程跟踪39现在学习的是第39页,共46页2.5.4 2.5.4 测试结果分析和质量报告测试结果分析和质量报告一个好的测试报告建立在测试结果的基础之上,不仅要提供必要测试结果的实际数据,同时要对结果进行分析,发现产品中问
25、题的本质,对产品质量进行准确的评估。分析的对象和内容是:n测试的覆盖率测试的覆盖率nbugbug分析分析n产品总体质量分析产品总体质量分析40现在学习的是第40页,共46页习题习题1单元测试是以单元测试是以 a 说明书为指导,测试源程序代码;集成说明书为指导,测试源程序代码;集成测试以测试以 b 说明书为指导,测试软件结构;说明书为指导,测试软件结构;确认测试以确认测试以 c 说明书为指导。说明书为指导。a.详细设计详细设计 b.概要设计概要设计 c.需求分析需求分析2软件是包括软件是包括 a 、b 、c 、d 的完整集的完整集合。合。a.程序程序 b.文档文档 c.数据数据 d.服务服务填空
26、题:填空题:3动态测试分为动态测试分为 a 即功能测试,和即功能测试,和 b 即结构测试。即结构测试。a.黑盒测试黑盒测试 b.白盒测试白盒测试41现在学习的是第41页,共46页习题习题1测试是为了验证软件正确地实现了用户需求。测试是为了验证软件正确地实现了用户需求。2确认测试主要测试软件功能是否满足用户的合理需求,确认测试主要测试软件功能是否满足用户的合理需求,以以“需求规格说明书需求规格说明书”为测试依据。为测试依据。判断题:判断题:3如果发布的软件有质量问题,那是软件测试人员的错。如果发布的软件有质量问题,那是软件测试人员的错。4.设计实现测试,软件测试是开发后期的一个阶段。设计实现测试
27、,软件测试是开发后期的一个阶段。对对错错错错错错42现在学习的是第42页,共46页习题习题1.软件测试是按照特定的规程,_的过程。A发现软件错误 B说明程序正确 C证明程序没有错误 D设计并运行测试用例2一个成功的测试是_。A发现错误 B发现了至今尚未发现的错误 C没有发现错误 D证明发现不了错误 3测试过程的活动几乎贯穿整个开发过程,他大体分为_和系统测试阶段。A模块测试、集成测试、有效性测试 B模块测试、功能测试、回归测试 C单元测试、功能测试、用户测试 D单元测试、集成测试、确认测试ABD43现在学习的是第43页,共46页习题习题4测试过程的三个测试阶段分别以_文档为指导。A需求规格说明书、概要设计、详细设计 B产品目标设计、产品设计、测试计划 C产品需求分析、产品设计、产品测试计划 D测试计划、测试用例设计、测试报告5.软件测试的目的_。A.避免软件开发中出现的错误 B.发现软件开发中出现的错误 C.尽可能发现并排除软件中潜藏的错误,提高软件的可靠性 D.修改软件中出现的错误BA44现在学习的是第44页,共46页作业作业第第2章章 3、545现在学习的是第45页,共46页Q&A46现在学习的是第46页,共46页
限制150内