版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1
第1章软件测试概述思考题1.1软件测试背景1.2软件测试基础理论 1.3软件开发1.4软件测试过程本章小结思考题1、软件生存周期中有哪些质量问题需要考虑?2、软件的外部和内部质量有哪些特性?3、软件和硬件的可靠性有哪些区别和关系?4、什么是软件缺陷?5、简述软件测试的意义。6、什么是验证(Verification)和确认(Validation)?7、什么是软件测试?2思考题8、软件测试的基本问题有哪些?9、简述软件测试的目的。10、简述软件测试的原则。11、什么是测试用例?12、软件测试停止的标准有哪些?13、软件测试有哪些分类?14、简述软件开发的几个模式(并说明每种模式对软件测试的影响)。15、简述软件测试过程。16、简述软件测试模型(测试与开发的关系)。3一次自评价测试一张身份证引发的问题中华人民共和国居民身份证法颁布时间2011-10-29颁布机关全国人大常委会实施时间2012-01-01第三条居民身份证登记的项目包括:姓名、性别、民族、出生日期、常住户口所在地住址、公民身份号码、本人相片、指纹信息、证件的有效期和签发机关。第六条居民身份证式样由国务院公安部门制定。居民身份证由公安机关统一制作、发放。身份证可能存在哪些问题?……4一次自评价测试一个西瓜引发的问题:翠花的老公是程序猿,一天翠花给老公打电话:“下班顺路买两个包子带回来,如果看到卖西瓜的,买一个。”当晚,程序猿带回几个包子和几个西瓜?两个包子和一个西瓜?——翠花的理想结果?一个包子?——程序猿的职业习惯?一个西瓜?——程序猿的职业习惯?其他可能?5一次自评价测试程序描述输入:三个整数a、b、c,代表三角形的三条边。输出:由这三条边确定的三角形类型:等腰三角形、等边三角形、不规则三角形。请设计测试数据(测试用例),来验证程序用例1等腰三角形数据:9,7,7用例2等边三角形数据:9,9,9用例3……671.1软件测试背景1.1.1软件可靠性1.1.2软件缺陷1.1.3软件测试发展与现状81.1.1软件可靠性可靠性(Reliability)概念系统的可靠性通常是指在一定条件下,在规定时间段完成规定功能的能力。要素条件时间功能可靠性条件功能时间9
软件生存周期中的质量1、软件生存周期中有哪些质量问题需要考虑?10
软件的使用质量模型11
软件的外部和内部质量模型2、软件的外部和内部质量有哪些特性?12软件产品评价特性GB/T16260软件产品评价6大特性及其子特性①.功能性functionality:适合性、准确性、互操作性、安全性、依从性②.可靠性reliability:成熟性、容错性、易恢复性③.易使用性usability:易理解性、易学习性、易操作性、吸引性④.效率efficiency: 时间特性、资源特性⑤.可维护性maintainability:易分析性、易更改性、稳定性、易测试性⑥.可移植性portability:适应性、易安装性、共存性、易替换性13软件可靠性与硬件可靠性的区别1.损耗现象硬件有老化损耗现象,而软件没有。2.决定因素硬件可靠性的决定因素是时间、受设计、生产、运用的所有过程影响,软件的决定因素是输入数据、内部程序,更多地决定设计质量本身。
3.修复硬件的纠错维护可通过修复或更换部件,或采用冗余技术;软件只有通过重设计,很难采用冗余技术。4.方法硬件可靠性检验方法已建立,并已标准化且有一整套完整的理论;而软件可靠性验证方法仍未建立,理论体系需要不断完善。5.关系大部分的硬件难以用软件来修复,大部分的软件问题也难以用硬件来修复。3、软件和硬件的可靠性有哪些区别和关系?141.1.2软件缺陷软件几个事件(软件缺陷案例)千年虫问题地球绕日周期:365天5小时48分46秒=365.24219天(回归年)闰年条件1、能被4整除而不能被100整除。2、能被400整除。Dallas公司的日历芯片只使用了两位十进制数来表示年份。Windows2000安全漏洞简体中文输入法(IME)没有正确检查当前运行环境,在登陆界面时能进入帮助系统,进而进入系统。英特尔奔腾芯片缺陷(4195835/3145727)*3145727–4195835=0?即:4005FB/2FFFFF*2FFFFF-4005FB=0?151.1.2软件缺陷软件缺陷(softwaredefect)定义计算机系统或者程序中存在的任何一种破坏正常运行能力的问题、错误,或者隐藏的功能缺陷、瑕疵。缺陷会导致软件产品在某种程度上不能满足用户的需要。从产品内部看软件缺陷是软件产品开发或维护过程中所存在的错误、毛病等各种问题;从产品外部看软件缺陷是系统所需要实现的某种功能的失效或违背。概括软件缺陷就是软件产品中所存在的问题。最终表现为用户所需要的功能没有完全实现。没有满足用户的需求。4、什么是软件缺陷?161.1.2软件缺陷软件缺陷——另一视角软件缺陷的本质软件的质量存在问题。软件缺陷的表现形式与质量特性相关。软件缺陷的影响程度与影响质量特性的程度相关。171.1.2软件缺陷表现形式软件未达到产品说明书中已经标明的功能;软件出现了产品说明书中指明不会出现的错误;软件未达到产品说明书中虽未指出但应当达到的目标;软件功能超出了产品说明书中指出的范围;软件测试人员认为软件难以理解、不易使用,或者最终用户认为该软件使用效果不良。“错误”与“副作用”的概念错误——没有完成规定的功能。副作用——完成了没有规定的功能。181.1.2软件缺陷影响程度致命的(Fatal)瘫痪、崩溃、死机、数据丢失、功能丧失……严重的(Critical)功能偏差、性能低下、数据误差、操作困难……一般的(Major)次要功能偏差、效率降低、个别数据有误差……微小的(Minor)提示信息不确切、界面不美观、个别情况效率低……191.1.2软件缺陷度量的选择与测量准则用户或用户的业务单位可采用使用质量的度量来评价软件产品的适合性。需方可以根据功能性、可靠性、易用性和效率的外部测度的准则值或者使用质量的准则值来评价软件产品。维护人员可以使用维护性的度量来评价软件产品。负责在不同环境中实现软件的人员可以使用可移植性的度量来评价软件产品。开发人员可以根据使用任一质量特性的内部测度的准则值来评价软件产品。要求和指导GB/T18905.1-2002为软件产品评价的度量选择和测量准则提供了要求和指导。201.1.2软件缺陷软件缺陷的产生需求规格说明错误;设计错误;程序代码有误;其他。事实主要来源需求分析阶段引入的缺陷最多,修复成本又最低。次要来源设计方案编程211.1.2软件缺陷软件缺陷属性标识(Identifier)类型(Type)严重程度(Severity)优先级(Priority)缺陷状态(Status)缺陷起源(Origin)缺陷来源(Source)缺陷根源(RootCause)221.1.3软件测试发展与现状发展重视程度忽略-轻视-比较重视-非常重视工作量程序员兼职-专职人员-多种人员参与人员无-少量-较多-相当多研究理念-理论-技术231.1.3软件测试发展与现状软件测试的意义软件测试能够发现难以避免的软件缺陷;验证(Verification)产品是否和需求定义、产品设计是否一致;确认(Validation)产品是否真正满足用户需求,每个功能特性是不是用户想要的。软件测试是有效排除和防治软件缺陷的重要手段。软件测试对保证软件产品质量、评估软件产品风险、预估开发进度成本有重要作用。软件测试现代软件产品开发过程的重要组成。5、简述软件测试的意义。6、什么是验证(Verification)和确认(Validation)?241.1.3软件测试发展与现状现状软件测试岗位已成熟软件企业的标志岗位和资格软件评测师、软件设计师、网络工程师、多媒体应用设计师、嵌入式系统设计师、数据库系统工程师、信息系统管理工程师、信息技术支持工程师。软件测试技术计算机专业的必修课程软件服务外包企业不可或缺的重要环节重要业务的组成软件质量保证管理体系质量保证质量控制251.2软件测试基础理论 1.2.1软件测试定义 1.2.2软件测试基本理论1.2.3软件测试技术概要261.2.1软件测试定义 软件软件=程序+数据+文档+服务软件测试为尽快尽早地发现在软件产品中所存在的各种软件缺陷而展开的贯穿整个软件开发生命周期、对软件产品(包括阶段性产品)进行验证和确认的活动过程。关键词发现软件缺陷,进行验证和确认,活动过程。7、什么是软件测试?271.2.1软件测试定义 软件测试的其他定义描述一种用来促进鉴定软件的正确性、完整性、安全性和品质的过程。软件测试是一种实际输出与预期输出间的审核或者比较过程。在规定的条件下对程序进行操作,以发现程序错误,衡量软件品质,并对其是否能满足设计要求进行评估的过程。为了评估而质疑产品的过程。281.2.1软件测试定义 重要观点原始的观点测试是为了发现程序中的错误,而不是证明没有错误。好的测试方案是尽可能多的、发现尚未发现的错误。成功的测试是发现了至今为止尚未发现的错误。进步的观点测试并不仅仅是为了找出错误,还要分析错误产生的原因和发生趋势,以帮助项目管理者发现软件开发过程中的缺陷,以便改进。没有发现错误的测试也有一定价值。善于总结测试方法,以改善测试的效率和有效性。测试不仅为了提高软件质量,完整的测试本身也是评定软件质量的组成内容。291.2.1软件测试定义 基本问题测试人员——谁?开发者、测试者、使用者测试内容——什么?需求、设计、实现阶段所涉及的程序、文档、环境等。测试过程——怎样进行?计划、策略、方法、管理。测试停止——何时结束?预定时间、测试用例数、覆盖率;缺陷总数、单位时间缺陷数……8、软件测试的基本问题有哪些?301.2.2软件测试基本理论软件测试目标检测:发现——缺陷、错误和系统不足;定义——系统的能力和局限性;提供——组件、产品和系统的质量信息。证明:获取——系统在可接受风险范围内可用的信心;尝试——在非正常情况和条件下的功能和特性;保证——软件产品是完整的并且可用或可被集成。预防:澄清——系统的规格和性能;减少——可能制造错误的信息;确认——可能存在的问题和风险,以及解决的途径。9、简述软件测试的目的。311.2.2软件测试基本理论软件测试原则(参考教材1)(1)测试是证伪而不是证真。(2)测试应当有重点。(3)事先定义好产品的质量标准,确定测试用例预期输出结果。(4)软件项目一启动,软件测试也就开始,而不是等到程序写完才开始进行测试。(5)穷举测试是不可能的。(6)第三方进行测试会更客观,更有效。(7)软件测试计划是做好软件测试工作的前提。(8)测试用例是设计出来的,不是写出来的。(9)对发现错误较多的程序段,应进行更深入的测试。(10)重视文档,妥善保存一切测试过程文档。(关注:参考教材2的P10-)10、简述软件测试的原则。321.2.2软件测试基本理论软件测试原则-(其他经验1)软件开发人员(即程序员)应当避免测试自己的程序。——人类对待错误对难免存在心理障碍。应尽早地和不断地进行软件测试。——测试应当贯穿整个开发过程,不要仅作为一个独立阶段。对测试用例要完整:——测试用例:输入数据+预期结果+测试环境;——输入数据:合理的+不合理的;充分注意软件测试中的群集现象:——软件缺陷同样存在“80-20原则”。331.2.2软件测试基本理论软件测试原则-(其他经验2)严格执行测试计划——“随心所欲”者容易疏漏或者重复无效。对每一个测试结果都要进行全面检查——用“侦探”的眼光怀疑每个细节。妥善保存记录保存测试用例、测试计划、测试报告和最终分析报告,以备回归测试及维护之用。——“法庭”判案需要证据和案例说话。341.2.2软件测试基本理论软件测试的心理依据心理学研究告诉我们:人类行为具有高度目标性,确立一个正确的目标有着重要的心理学影响。当人们在干一件已经知道是不合适的或不可能做到的事时,往往他们的表现就相当糟糕。人类的心理障碍承认错误——需要勇气;知错就改——需要机会;赔礼道歉——需要胆魄。351.2.2软件测试基本理论软件测试的任务规格说明书审查系统和程序设计审查;单元测试;集成测试;确认测试;系统测试;验收测试。361.2.2软件测试基本理论测试信息流图软件配置——测试对象测试配置——测试计划、步骤、用例、工具等。测试过程——运行用例、比较分析、改错、报告。371.2.2软件测试基本理论软件测试的周期性“测试->改错->再测试->再改错”串行方式——开发者和测试者依次工作。并行方式——开发者和测试者可同时工作。381.2.2软件测试基本理论测试用例(TestCase)为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,以便测试某个程序路径或核实是否满足某个特定需求。测试用例是软件测试的核心。测试用例的设计和编制是最重要的软件测试活动。回归测试重复以前的全部或部分的相同测试。用于修改代码或加入新组件后,确认没有引入新的错误或导致其他代码产生错误。11、什么是测试用例?391.2.2软件测试基本理论软件测试停止的标准第一类标准超出预定时间。第二类标准执行所有测试用例,但没有发现错误和故障。第三类标准使用特定测试用例,作为判断测试停止的基础。第四类标准正面指出测试停止的指标,如发现修改多少个软件故障。第五类标准根据单位时间内查出错误故障的数量来决定是否停止。12、软件测试停止的标准有哪些?401.2.3软件测试技术概要软件测试分类按软件开发的过程阶段划分单元测试集成测试确认测试系统测试验收测试按执行主体划分人工测试自动化测试13、软件测试有哪些分类?411.2.3软件测试技术概要软件测试分类按系统结构可见性划分白盒测试和墨盒测试按系统运行状态划分静态测试和动态测试按应用场合划分基于Web应用的测试C/C++/Java应用测试嵌入式应用测试数据库应用测试分布式应用测试421.2.3软件测试技术概要软件测试分类按产品发布进程划分Alpha测试(α测试)——内测软件产品发布之前的一种验证测试,在模拟的环境中以模拟的数据来运行。Beta测试(β测试)——公测软件产品发布之前,由公众参与的测试,在一个真实的环境中以实际的数据来运行测试,以确认性能、系统运行有效率。Gamma测试(γ测试)对成为正式发布的候选版本(可能存在缺陷)进行的测试。431.2.3软件测试技术概要软件测试分类按系统需求特性划分功能测试性能测试压力测试恢复测试安装测试安全性测试可靠性测试兼容性测试国际化测试本地化测试441.3软件开发1.3.1软件产品组成1.3.2开发人员角色1.3.3软件开发模式451.3.1软件产品组成组成程序+数据+文档+服务文档:客户需求:可行性研究报告、软件需求规格说明书(SRS)产品说明书:用户手册、操作手册、技术手册、安装手册、维护手册进度表:项目开发计划、开发进度月报设计文档:数据要求说明书、概要设计说明书、详细设计说明书测试文档:测试计划、测试报告其他文档:帮助文件、样本和示例、标签、产品支持信息、图标和标志、错误信息、广告和宣传材料、软件的安装说明、软件说明文件、测试错误提示信息。服务:培训、技术支持、维护。461.3.2开发人员角色主要角色——(摘自IBMRational)项目经理负责管理业务应用开发、软件和系统开发项目。业务分析理解和描绘客户的需求。架构师理解系统的业务需求,并创建合理、完善的系统体系架构。数据设计人员负责定义详细的数据库设计。开发人员负责设计和实现可执行的代码方案,进行调试排错工作。系统测试人员负责制定测试计划并依照测试计划进行测试。这些测试包括功能性的测试(黑盒测试)和非功能性的测试(白盒测试)。471.3.3软件开发模式软件生命周期(SystemsDevelopmentLifeCycle,SDLC)三个时期计划(定义)、开发、运行(维护)。六个阶段规划、分析、设计、编码、测试、维护。481.3.3软件开发模式软件过程(SoftwareProcedure)过程——活动的集合;活动——任务的集合;任务——加工的集合。活动的执行可以是顺序的、重复的、并行的、嵌套的或者是有条件地引发的。软件过程可概括为三类:基本过程类、支持过程类和组织过程类。491.3.3软件开发模式三类软件过程基本过程类包括获取过程、供应过程、开发过程、运作过程、维护过程和管理过程。支持过程类包括文档过程、配置管理过程、质量保证过程、验证过程、确认过程、联合评审过程、审计过程以及问题解决过程。组织过程类包括基础设施过程、改进过程以及培训过程。501.3.3软件开发模式软件过程模型线性顺序模型传统生存周期模型或瀑布模型。快速应用模型线性模型的一个“高速”变种,强调增量、复用。螺旋过程模型螺旋上升、演化软件过程模型客户交流、计划、风险分析、客户评估。511.3.3软件开发模式软件开发模式大棒模式精力都在设计和编码上,最后进行测试。——不成功,便成仁。边写边改模式一边设计编码,一边测试修改。——学而时习之,不亦说乎!瀑布模式规划-分析-设计-编码-测试-最终产品——一去不复返,千载空悠悠!14、简述软件开发的几个模式。521.3.3软件开发模式软件开发模式快速原型模式构造原型-逐步求精-扩充完善-快速成形运行中:检查-测试-修改——日趋於新,精益求精。螺旋式确定目标-解决风险-评估方案-设计测试-重新计划-螺旋上升——循环优化过程——一塔螺旋上,轩窗面面开。——欲穷千里目,更上一层楼。531.3.3软件开发模式其他软件开发模式CMMI(CapabilityMaturityModelIntegration)CMMI(能力成熟度模型集成,或“希迈”)是一个过程改进方法。为组织机构提供了有效过程的基本元素。用于指导跨项目、部门或者整个组织的过程改进。“希迈”由来自行业、政府和卡内基·梅隆大学的软件工程研究所(CMU/SEI)的一组专家。“希迈”的三个区域:CMMI-DEV(希迈-开)——产品和服务开发CMMI-SVC(希迈-服)——服务创建、管理和交付CMMI-ACQ(希迈-采)——产品和服务采购541.3.3软件开发模式其他软件开发模式RUP(RationalUnifiedProcess)RUP(Rational统一过程)是Rational软件公司(现被IBM并购)创造的软件工程方法。RUP描述了如何有效地利用商业的可靠方法开发和部署软件特别适用于大型软件团队开发大型项目。RUP把一个项目分为四个不同的阶段:构思、细化、构建、移交。每个阶段都会有一次或多次的迭代。Rational解决方案可用于软件测试和软件质量管理软件开发管理软件项目管理551.3.3软件开发模式其他软件开发模式MSF(MicrosoftSolutionFramework)MSF微软解决方案框架是一组建立、开发和实现分布式企业系统应用的工作模型、开发准则和应用指南。它帮助企业融合商业和技术的目标,降低采用新技术后系统整体的费用,以及成功的应用微软技术整合商业过程的方法。MSF强调瀑布螺旋式的迭代开发,对过程的每一个阶段有相应的定义。6个角色:产品管理、程序管理、开发、测试、用户体验、发布管理。MSF的核心是沟通、信任、敏捷、重视商业价值,MSF方法以“边规划、边设计”为基础。561.3.3软件开发模式其他软件开发模式敏捷开发(agiledevelopment)一种以人为核心,迭代、循序渐进的开发方法。在敏捷开发中,软件项目的构建被分成多个子项目,各个子项目的成果都经过测试,具备集成和可运行的特征。敏捷是一种能力──消除所有不必要的冗余和浪费。价值观:人和交互>过程和工具可以工作的软件>求全责备的文档客户协作>合同谈判随时应对变化>循规蹈矩敏捷开发的领袖企业:ThoughtWorks思特沃克软件公司。571.4软件测试过程过程主要包括(1)测试计划——进度安排、资源分配(2)测试需求分析——问题描述、方法选择、规格说明(3)测试设计——用例设计、规程设计(4)测试规程实现——制定详细计划(5)测试执行——执行测试用例、记录测试结果、生成问题报告(6)总结生成报告——整理数据、生成报告15、简述软件测试过程。581.4软件测试过程软件测试模型——测试与开发的关系V模型软件开发瀑布模型的变种反映了测试活动与分析和设计的关系。16、简述软件测试模型(测试与开发的关系)。591.4软件测试过程软件测试模型——测试与开发的关系W模型测试与开发是同步进行的。增加了同步进行的验证和确认活动。验证与确认(V&V:Verification&Validation)601.4软件测试过程软件测试模型——测试与开发的关系H模型软件测试过程活动完全独立,贯穿于整个产品的周期。某个测试点准备就绪时,就可以从测试准备阶段进行到测试执行阶段。611.4软件测试过程软件测试模型X模型X模型是对V模型的改进。提出针对单独的程序片段进行相互分离的编码和测试。通过频繁的交接,集成最终合成为可执行的程序。621.4软件测试过程软件测试模型前置模型是一个将测试和开发紧密结合的模型。对每一个交付内容进行测试。基于需求的测试用例和定义验收标准。63
本章小结1软件可靠性与软件质量软件可靠性是软件质量特性之一软件缺陷(softwaredefect)本质、表现形式、影响程度软件测试定义为发现软件缺陷,进行验证和确认的活动过程。软件测试的一些观点发现缺陷、帮助改正。64
本章小结2软件测试的基本问题人员、内容、过程、终止软件测试目标证明、检测、预防软件测试原则正确对待错误、尽早不断、完整测试用例、重视群集现象;避免随心所欲、仔细检查每个细节、善保存记录测试用例组成要素:输入数据、环境条件、输出结果使用过程:设计用例、执行用例、分析判断65
本章小结3软件测试分类按软件开发的过程阶段划分按执行主体划分按系统结构可见性划分按应用场合划分软件开发模式瀑布模式、快速原型模式、螺旋式CMMI、RUP、MSF、敏捷开发软件测试过程V模型、W模型、H模型、X模型、前置模型66
思考题1、软件生存周期中有哪些质量问题需要考虑?过程质量、内部质量、外部质量、使用质量2、软件的外部和内部质量有哪些特性?外部质量有哪些特性①.功能性②.可靠性③.易使用性内部质量有哪些特性④.效率⑤.可维护性⑥.可移植性3、软件和硬件的可靠性有哪些
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026广东广州市中山大学孙逸仙纪念医院药学部工程岗位招聘1人备考题库附参考答案详解(b卷)
- 2026年4月安徽芜湖高新区(弋江区)国有企业人员招聘14人备考题库附参考答案详解(综合卷)
- 2026年自动化仓储环节中的流程优化
- 2026新疆喀什昆仑建设有限公司招聘3人备考题库附答案详解(考试直接用)
- 2026年先进的网络化控制系统研究
- 油画外框制作工岗前评优竞赛考核试卷含答案
- 2026武警贵州省总队医院社会招聘7人备考题库附答案详解
- 混凝土模板工创新方法评优考核试卷含答案
- 贴剂工班组管理水平考核试卷含答案
- 重冶固体原料输送工达标模拟考核试卷含答案
- 中国葡萄酒产区和企业-9
- 供应商声明书(REACH)
- 库房的管理制度
- GB/T 9797-2022金属及其他无机覆盖层镍、镍+铬、铜+镍和铜+镍+铬电镀层
- LY/T 1369-2011次加工原木
- GB/T 8642-2002热喷涂抗拉结合强度的测定
- GB/T 35010.3-2018半导体芯片产品第3部分:操作、包装和贮存指南
- GB/T 33365-2016钢筋混凝土用钢筋焊接网试验方法
- GB/T 17466.1-2008家用和类似用途固定式电气装置电器附件安装盒和外壳第1部分:通用要求
- 毫秒脉冲星及X-射线双星某些重要性质的理论解释课件
- 统编版下册《青蒿素:人类征服疾病的一小步》课件
评论
0/150
提交评论