您好,欢迎访问三七文档
当前位置:首页 > 财经/贸易 > 资产评估/会计 > 第二讲-软件测试的基本概念和方法
第二讲软件测试的基本概念和方法12.1软件质量就是客户的满意度2.2软件缺陷(Bug)是什么2.3软件测试的基本方法2.4软件测试的分类和阶段2.5软件测试的工作范畴2“Makeadifference”--“让世界因我不同”,一直是我在哥伦比亚大学时期的哲学老师最为推崇的人生态度。想象一个没有你的世界,让有你的世界和无你的世界作出对比,让世界由于你的态度与选择发生有益的变化。老师说,这就是人生存在的哲学意义。Makeadifference,将人生的影响力最大化,提供给我一种思考与世界观。3目录第一部分《世界因你不同》引言:从心选择第一章顽童第二章飞往美国第三章我的大学第四章博士生涯第五章工作在苹果第六章SGI第七章创建微软中国研究院第八章五年西雅图第九章最艰难的60天第十章谷歌的童话世界第十一章世界因你不同第二部分谷歌的童话世界42.1软件质量就是客户的满意度2.1.1质量的概念5软件质量是客户满意度的体现客户满意度=质?+量?质量主观?客观?软件行业的发展为软件测试带来新的挑战软件结构越来越复杂团队规模越来越大开发成本与风险越来越高用户对应用程序的质量要求越来越严格影响软件质量的4个方面7软件质量开发技术过程质量人员素质成本、时间、进度从不同的角度来理解“质量”8-先验论观点:质量是产品的一种可以认识但不可定义的性质。-用户观点:质量是产品满足使用目的之程度。-制造者的观点:质量是产品性能和规格要求的符合度。-产品观点:质量是联结产品固有性能的纽带。-基于价值观点:质量依赖于顾客愿意付给产品报酬的数量。质量(Quality)9质量是系统、部件或过程满足明确需求。IEEEStandardGlossaryofSoftwareEngineeringTerminology质量:产品或服务所满足明示或暗示需求能力的特性和特征的集合(ISO8492)2.1.2软件质量的内涵朱少民认为软件质量是由3部分组成的:软件产品的质量,即满足使用要求的程度。软件开发过程的质量,即能否满足开发所带来的成本、时间和风险的要求。软件在其商业环境中所表现的质量。1011高质量的软件应该是相对的无产品缺陷(BugFree)或只有极少量的缺陷,它能够准时递交给用户,所用的费用都是在预算内,并且满足客户需求,是可维护的。但是,有关质量的好坏最终评价依赖于用户的反馈。“客户”定义:-外部的客户:产品的实际使用者或服务的对象,是传统意义上大家所认可的客户。--内部的客户:更为广泛意义上的客户,下一个环节/工序的接受者。软件的设计者是需求分析人员的客户,编程人员是设计者的客户,软件测试员是编程人员的客户。软件质量3A特性Accountability(可说明性)–用户可以基于产品或服务的描述和定义进行使用.(例如:市场需求说明书,功能设计说明书.)Availability(有效性)–产品或服务对于客户的需求是否能保持有效,如具有99.99%的有效性,可以说达到质量要求(例如:性能测试和恢复测试)Accessibility(易用性)–对于用户,产品或服务非常容易使用并且一定是非常有用的功能.(例如:确认测试和用户可用性测试)12软件质量标准体系13产品质量:是人们实践产物的属性和行为,是可以认识,可以科学地描述的。并且可以通过一些方法和人类活动,来改进质量.质量模型:McCall模型,Boehm模型,ISO9126模型过程质量:软件能力成熟度模型CMM(CapabilityMaturityModel).国际标准过程模型ISO9000软件过程改进和能力决断SPICE(SoftwareProcessImprovementandCapabilitydEtermination)商业环境质量:培训、成品制作、宣传、发布日起、客户、风险、成本、业务等产品质量的标准14-功能性Functionality-可用性Usability(简单安装;轻松使用;友好界面)-可靠性Reliability(用户使用的根本)-性能Performance-容量Capacity-可测量性Scalability-可维护性Servicemanageability-兼容性Compatibility-可扩展性Extensibility阐述性互用性数据公开性正确性可靠性效率完整性可用性可维护性可测试性灵活性可移植性重复性连贯性容错性执行效率/储存效率存取控制/存取检查可训练沟通良好简单性易操作的工具自我操作性扩展性一般性模块性软件系统独立性机器独立性通讯公开性正确性可操作性面向软件产品的软件质量属性:运行性能维护性能移植性能量Boehm(1978)软件质量模型McCall等人改进了Boehm质量模型1979产品运行的诠释产品修正与转移的诠释McCall模型和Boehm模型存在的问题Boehm模型与McCall模型的产品操作质量要素基本相同,且均没有给出质量要素之间的关系。两者唯一的差别在于特征的种类(Boehm模型包括McCall模型没有的硬件生产力的质量特征),所以它们具有类似的优缺点。例如,它们都没有从软件生存周期不同阶段的存在形态来考虑,仅仅考虑一种产品形态,不利于软件产品早期的缺陷发现和维护成本的降低。19国际标准化组织制定了国际标准ISO/IEC9126《软件质量模型》,这个质量模型被广泛引用.它定义了外部和内部质量的质量模型,将软件构件质量属性划分为6个特性(功能性、可靠性、易用性、效率、维护性和可移植性),并进一步细分为若干子特性。ISO建议软件质量模型由3层组成:•高层:软件质量需求评价准则(SQRC);•中层:软件质量设计评价准则(SQDC);•低层:软件质量度量评价准则(SQMC);这种分层模型被广泛采用,很多的质量模型都是确定质量需求之后,再进一步分层来细化各评价准则。20ISO9126(1993)模型aninternationalstandardfortheevaluationofsoftwarequalityISO9126模型的六个质量特征功能:与一组功能及其指定性质有关的一组属性,这里的功能是满足明确或隐含的需求的那些功能。可靠:在规定的一段时间和条件下,与软件维持其性能水平的能力有关的一组属性。易用:由一组规定或潜在的用户为使用软件所需作的努力和所作的评价有关的一组属性。效率:与在规定条件下软件的性能水平与所使用资源量之间关系有关的一组属性。可维护:与进行指定的修改所需的努力有关的一组属性。可移植:与软件从一个环境转移到另一个环境的能力有关的一组属性。其中每一个质量特征都分别与若干子特征相对应。2122ISO9126软件质量度量模型企业自定义质量模型1-FURPS惠普公司侧重于FURPS标准,即:F=functionality功能性。特征、能力、可比性与安全性。U=usabitity可用性。人的因素、产品的一致性与文件。R=reliability可靠性。失效频次与严重性,产品的可预测性与精确性。P=performance性能。产品的速度与效率、资源消耗性能。S=supportability支持性。产品的可维护性与可服务性及其安装能力。23企业自定义质量模型2-CUPRIMDSOIBM公司利用CUPRIMDSO的层次来监控对软件产品的满意度,即功能性(Capability)、使用性(Usability)、性能(Performance)、可靠性(Reliability)、可安装性(Installability)、可维护性(Maintainability)、文档/信息(Documentation/information)、服务(Service)以及综合满意程度(OverallSatisfaction)。24软件过程质量软件能力成熟度模型CMM(CapabilityMaturityModel).国际标准过程模型ISO9000软件过程改进和能力决断SPICE(SoftwareProcessImprovementandCapabilitydEtermination)252.2软件缺陷(Bug)是什么Anyproblem/disfigurement/limitationinproductdesign&developmentFeatureorfunctioncan’tworkUnreasonabledesignPartlyrealizationinfunctionDataerrorRunerrorLimitationinfeaturesDifferencebetweenactualresultsandexpectedresultsUnfriendlyUI,LowperformanceOthers26什么是Bug?问题出在哪里?27•项目没有被很好地理解;计划不周,最终导致进度拖延。•没有充分的文档资料。•人与人的交流比写程序困难得多。•软件可靠性缺少度量的标准,质量无法保证。•软件难以维护、不易升级。解决问题的想法28•Bettermanagement管理•Differentteamorganizations组织•Betterlanguages&tools语言和工具•Uniformcodingconventions编程惯例必须意识到:“软件”≠编程,它有自己的生命周期(lifecycle)。大型软件系统的开发与其它工程项目如建造桥梁、制造飞机、轮船等的开发是同理的。软件测试29实践证明:对软件进行充分的测试才能够有效的保证软件质量对软件产品进行充分测试,找出其中的缺陷(Bug),并进行修复(Fix)。软件测试的目的(1)测试是程序的执行过程,目的在于发现错误;不能证明程序的正确性,除非仅处理有限种情况。(2)检查系统是否满足需求也是测试的期望目标。(3)一个好的测试用例在于发现了还未曾发现的错误;一次成功的测试则是发现了错误的测试。注意:测试无法说明错误不存在,只能说明软件错误已出现。30测试理想目标和对象理想的目标:用相对少的测试尽可能多地找到程序中的缺陷。测试对象:软件开发过程中各阶段的人工制品(artifact),包括需求分析文档、设计文档、程序代码、最终的系统等。312.2.1软件缺陷的定义和种类32IEEE(1983)729软件缺陷一个标准的定义:从产品内部看,软件缺陷是软件产品开发或维护过程中所存在的错误、毛病等各种问题;从外部看,软件缺陷是系统所需要实现的某种功能的失效或违背。软件缺陷的主要类型/现象:功能、特性没有实现或部分实现设计不合理,存在缺陷实际结果和预期结果不一致运行出错,包括运行中断、系统崩溃、界面混乱数据结果不正确、精度不够用户不能接受的其他问题,如存取时间过长、界面不美观“臭虫”的由来人们将软件错误称为“臭虫”,这是因为第一个有记载的电脑故障是由线路上的臭虫造成的。就是我们通常称的“BUG”。33缺陷–Bug近义词34缺点(defect)偏差(variance)谬误(fault)失败(failure)问题(problem)矛盾(inconsistency)错误(error)毛病(incident)异常(anomy)352.2.2软件缺陷的产生•技术问题算法错误,语法错误,计算和精度问题,接口参数传递不匹配•团队工作误解、沟通不充分•软件本身文档错误、用户使用场合(userscenario),时间上不协调、或不一致性所带来的问题系统崩溃后的自我恢复或数据的异地备份、灾难性恢复等问题软件缺陷的严重性级别1致命缺陷:系统不工作。系统的有效部分无法操作且没有可供使用的工作区。严重缺陷:系统无法满足基本的商业要求且没有便捷可用的工作区。性能、功能或使用方面严重不达标。一般缺陷:系统能够满足商业要求。有快捷方便的工作区可供使用。性能、功能或使用方面并不是严重不达标。微小缺陷:微小修改,希望提出建议,最好能够修正,但不是必需的。在发布准确性或实用性方面不会产生重大影响。36软件缺陷的严重性级别2紧急Urgent(系统崩溃或挂起)
本文标题:第二讲-软件测试的基本概念和方法
链接地址:https://www.777doc.com/doc-1199101 .html