软件测试-2-软件测试基本概念

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

软件测试方法和技术第2版第2章软件测试的基本概念第1章回顾①什么是软件测试②软件测试的正反两面性验证软件发现缺陷V&V①软件测试和开发的关系②TDD第2章软件测试的基本概念2.1软件缺陷2.2验证和确认2.3软件测试的分类2.4测试阶段2.5软件测试的工作范畴缺陷是质量的对立面要了解什么是缺陷(defect),就必须清楚“质量(Quality)”概念,因为缺陷是相对质量而存在的,违背了质量、违背了客户的意愿,不能满足客户的要求,就会引起缺陷或产生缺陷软件行业的发展为软件测试带来新的挑战软件结构越来越复杂团队规模越来越大开发成本与风险越来越高用户对应用程序的质量要求越来越严格影响软件质量的4个方面6软件质量开发技术过程质量人员素质成本、时间、进度2.1软件缺陷2.1.1软件质量的内涵2.1.2软件缺陷的定义2.1.3软件缺陷的产生2.1.4软件缺陷的构成2.1.5修复软件缺陷的代价软件质量的内涵IEEE:质量是系统、部件或过程满足1.明确需求2.客户或用户需要或期望的程度不同软件质量:软件产品具有满足规定的或隐含要求能力要求有关的特征与特征总和(ISO8492)软件质量:软件产品满足使用要求的程度高质量软件标准体系产品质量是人们实践产物的属性和行为,是可以认识,可以科学地描述的。并且可以通过一些方法和人类活动,来改进质量.质量模型:McCall模型,Boehm模型,ISO9126模型过程质量:软件能力成熟度模型CMM(CapabilityMaturityModel).国际标准过程模型ISO9000软件过程改进和能力决断SPICE(SoftwareProcessImprovementandCapabilitydEtermination)在商业过程中有关的质量内容:培训、成品制作、宣传、发布日起、客户、风险、成本、业务等产品质量的标准-功能性Functionality-可用性Usability(简单安装;轻松使用;友好界面)-可靠性Reliability(用户使用的根本)-性能Performance-容量Capacity-可测量性Scalability-可维护性Servicemanageability-兼容性Compatibility-可扩展性Extensibility软件质量特征(ISO9126)功能:与一组功能及其指定性质有关的一组属性,这里的功能是满足明确或隐含的需求的那些功能。可靠:在规定的一段时间和条件下,与软件维持其性能水平的能力有关的一组属性。易用:由一组规定或潜在的用户为使用软件所需作的努力和所作的评价有关的一组属性。效率:与在规定条件下软件的性能水平与所使用资源量之间关系有关的一组属性。可维护:与进行指定的修改所需的努力有关的一组属性。可移植:与软件从一个环境转移到另一个环境的能力有关的一组属性。南生橘北生枳其中每一个质量特征都分别与若干子特征相对应。ISO9126软件质量三层模型Boehm(1978)软件质量模型互用性正确性可靠性效率完整性可用性可维护性可测试性灵活性可移植性重复性阐述性数据公开性连贯性容错性执行效率/储存效率存取控制/存取检查可训练沟通良好简单性易操作的工具自我操作性扩展性一般性模块性软件系统独立性机器独立性通讯公开性正确性可操作性产品操作产品修改产品维护企业自定义质量模型1-FURPS惠普公司侧重于FURPS标准,即:F=functionality功能性。特征、能力、可比性与安全性。U=usabitity可用性。人的因素、产品的一致性与文件。R=reliability可靠性。失效频次与严重性,产品的可预测性与精确性。P=performance性能。产品的速度与效率、资源消耗性能。S=supportability支持性。产品的可维护性与可服务性及其安装能力。14企业自定义质量模型2-CUPRIMDSOIBM公司利用CUPRIMDSO的层次来监控对软件产品的满意度,即功能性(Capability)、使用性(Usability)、性能(Performance)、可靠性(Reliability)、可安装性(Installability)、可维护性(Maintainability)、文档/信息(Documentation/information)、服务(Service)以及综合满意程度(OverallSatisfaction)。15什么是Bug?2.1.2软件缺陷的定义Anyproblem/disfigurement/limitationinproductdesign&developmentFeatureorfunctioncan’tworkUnreasonabledesignPartlyrealizationinfunctionDataerrorRunerrorLimitationinfeaturesDifferencebetweenactualresultsandexpectedresultsUnfriendlyUI,LowperformanceOthers任何程序、系统中的问题,和产品设计书的不一致性,不能满足用户的需求缺点(defect)偏差(variance)谬误(fault)失败(failure)问题(problem)矛盾(inconsistency)错误(error)毛病(incident)异常(anomy)缺陷–Defect,Bug软件缺陷IEEE(1983)729软件缺陷一个标准的定义:从产品内部看,软件缺陷是软件产品开发或维护过程中所存在的错误、毛病等各种问题;从外部看,软件缺陷是系统所需要实现的某种功能的失效或违背。软件缺陷的主要类型/现象:功能、特性没有实现或部分实现设计不合理,存在缺陷实际结果和预期结果不一致运行出错,包括运行中断、系统崩溃、界面混乱数据结果不正确、精度不够用户不能接受的其他问题,如存取时间过长、界面不美观软件缺陷的产生①技术问题算法错误,语法错误,计算和精度问题,接口参数传递不匹配②团队工作误解、沟通不充分③软件本身文档错误、用户使用场合(userscenario),时间上不协调、或不一致性所带来的问题系统的自我恢复或数据的异地备份、灾难性恢复等问题软件缺陷构成20设计25%规格说明书54%其他6%代码15%软件缺陷产生的原因分布其他10%软件产品说明书(需求)56%编写代码7%设计27%软件缺陷在不同阶段的分布在真正的程序测试之前,通过审查、评审会可以发现更多的缺陷。规格说明书的缺陷会在需求分析审查、设计、编码、测试等过程中会逐步发现,而不能在需求分析一个阶段发现。修复软件缺陷的代价软件在从需求、设计、编码、测试一直到交付用户公开使用后的过程中,都有可能产生和发现缺陷。随着整个开发过程的时间推移,更正缺陷或修复问题的费用呈几何级数增长。22软件缺陷在不同阶段发现时修复的费用示意图020406080100编制说明书设计阶段编写代码测试发布2.2验证和确认2.2.1验证和确认2.2.2评审2.2.3质量保证和测试的关系验证和确认(V&V)Verification:Arewebuildingtheproductright?是否正确地构造了软件?即是否正确地做事,验证开发过程是否遵守已定义好的内容。验证产品满足规格设计说明书的一致性Validation:Arewebuildingtherightproduct?是否构造了正是用户所需要的软件?即是否正在做正确的事。验证产品所实现的功能是否满足用户的需求评审通过软件评审,可以更早地发现需求工程、软件设计等各个方面的问题,大大减少大量的后期返工,将质量成本从昂贵的后期返工转化为前期的缺陷发现。评审是对软件元素或者项目状态的一种评估手段,以确定其是否与计划的结果保持一致,并使其得到改进。检验工作产品是否正确地满足了以往工作产品中建立的规范。评审分类管理评审技术评审文档评审流程评审什么是SQA?软件质量保证是通过对软件产品和活动有计划的进行评审和审计来验证软件是否合乎标准的系统工程活动.确保SQA活动要自始至有计划的进行审查软件产品和活动是否遵守适用的标准、规程和要求并得到客观验证。SQA的活动和结果要保证全员参与,沟通顺畅。逐级解决不符合问题SQA活动技术方法的应用正式技术评审的实施软件测试标准的执行修改的控制度量质量记录和记录保存SQA与软件测试有什么关系和区别?SQA与软件测试的关系SQA是管理工作、审查对象是流程、强调以预防为主测试是技术工作、测试对象是产品、主要是以事后检查SQA指导测试、监控测试测试为SQA提供依据2.3软件测试的分类方法目标/特性单元测试系统测试验收测试性能测试强壮性测试功能测试白盒测试黑盒测试测试阶段或层次适用性测试可靠性测试集成测试安全性测试不同的分类•按测试的对象或范围分类,如单元测试、文档测试、系统测试等)•按测试目的分类,如功能测试、回归测试、性能测试、可靠性测试、安全性测试和兼容性测试等•根据测试过程中被测软件是否被执行,分为静态测试和动态测试•根据是否针对系统的内部结构和具体实现算法来完成测试,可分为白盒测试和黑盒测试2.4软件测试的各个阶段开发生命周期...维护需求定义应用定义应用开发修订建立建立测试生命周期...执行.执行执行.测试计划缺陷跟踪测试开发测试设计评估软件测试阶段阶段输入输出需求分析需求定义,市场分析文档,相关技术文档市场需求分析会议记要,功能设计,技术设计设计审查市场需求文档,技术设计文档测试计划,测试用例功能验证代码完成文件包,功能详细设计说明书最终技术文档完整测试用例,完备的测试计划,缺陷报告,功能验证测试报告系统测试代码修改后的文件包完整测试用例,完备的测试计划缺陷报告缺陷状态报告项目阶段报告确认测试代码冻结文件包确认测试用例缺陷状态报告缺陷报告审查版本审查版本发布代码发布文件包测试计划检查清单当前版本已知问题的清单版本发布报告测试阶段(SDLC)需求和设计审查测试人员参与产品需求分析和系统设计,认真阅读有关文档,真正理解客户的需求和技术上的设计,检查需求说明书对产品描述的准确性、一致性等,检查系统设计的合理性和可测试性等单元测试单元测试的对象是程序系统中的最小单元---模块或组件上,在编码阶段进行,针对每个模块进行测试,主要通过白盒测试方法,从程序的内部结构出发设计测试用例,检查程序模块或组件的已实现的功能与定义的功能是否一致、以及编码中是否存在错误。多个模块可以平行地、对立地测试,通常要编写驱动模块和桩模块•单元测试一般由编程人员和测试人员共同完成,而以开发人员为主•单元测试包括代码评审,代码评审可以发现程序50%~70%代码的缺陷。集成测试集成测试,也称组装测试、联合测试、子系统测试,在单元测试的基础上,将模块按照设计要求组装起来同时进行测试,主要目标是发现与接口有关的模块之间问题两种集成方式:一次性集成方式和增殖式集成方式。功能测试功能测试一般须在完成集成测试后进行,而且是针对应用系统进行测试。功能测试是基于产品功能说明书,是在已知产品所应具有的功能,从用户角度来进行功能验证,以确认每个功能是否都能正常使用系统测试系统测试是将软件放在整个计算机环境下,包括软硬件平台、某些支持软件、数据和人员等,在实际运行环境下进行一系列的测试,包括恢复测试、安全测试、强度测试和性能测试等验收测试&安装测试验收测试的目的是向未来的用户表明系统能够像预定要求那样工作,验证软件的功能和性能如同用户所合理期待的那样安装测试是指按照软件产品安装手册或相应的文档,在一个和用户使用该产品完全一样的环境中或相当于用户使用环境中,进行一步一步的安装操作性的测试2.5软件测试的工作范畴软件测试工作的组织与管理:制定测试策略、测试计划,确认所采用的测试方法与规范,控制测试进度,管理测试资源。测试工作的实施:编制符合标准的测试文档,搭建测试环境,开发测试脚本、与开发组织协作实现各阶段的测试活动测试工作流程作业第2章2、5Q&A

1 / 45
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功