收藏 分销(赏)

《软件工程与软件测试技术》习题讲解.ppt

上传人:可**** 文档编号:772719 上传时间:2024-03-11 格式:PPT 页数:208 大小:3.26MB
下载 相关 举报
《软件工程与软件测试技术》习题讲解.ppt_第1页
第1页 / 共208页
《软件工程与软件测试技术》习题讲解.ppt_第2页
第2页 / 共208页
《软件工程与软件测试技术》习题讲解.ppt_第3页
第3页 / 共208页
《软件工程与软件测试技术》习题讲解.ppt_第4页
第4页 / 共208页
《软件工程与软件测试技术》习题讲解.ppt_第5页
第5页 / 共208页
点击查看更多>>
资源描述

1、软件工程与软件测试技术习题讲解韩智第一章软件工程和软件测试概述软件工程和软件测试概述1.名词解释:软件、软件危机、软件工程、软件生命周期软件:软件是计算机系统中与硬件相互依存的另一部分,它是包括程序,数据及其相关文档的完整集合。软件危机:软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。这些问题绝不仅仅是不能正常运行的软件才具有,实际上,几乎所有软件都不同程度地存在这些问题。软件工程:把系统的、规范的、可度量的途径应用于软件开发、运行和维护过程,也就是把工程应用于软件;研究中提到的途径。软件生命周期:软件生命周期是从软件的产生到报废的生命周期,生命周期中有问题定义、可行性分析、

2、总体描述、系统设计、编码、调试和测试、验收与运行、维护升级、废弃等阶段。3第一章软件工程和软件测试概述软件工程和软件测试概述2.请说明软件工程方法学都包含哪些要素?简要说明目前使用最广泛的两种软件工程方法学答:软件工程方法学包含3个要素:方法、工具和过程。其中方法是完成软件开发的各项任务的技术方法,回答“怎样做”的问题;工具是为运用方法而提供的自动的或半自动的软件工程支撑环境;过程是为了获得高质量的软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。4第一章软件工程和软件测试概述软件工程和软件测试概述目前使用得最广泛的软件工程方法学,分别是传统方法学和面向对象方法学。传统方法学也

3、称为生命周期方法学或结构化范型。它采用结构化技术(结构化分析、结构化设计和结构化实现)来完成软件开发的各项任务,并使用适当的软件工具或软件工程环境来支持结构化技术的运用。这种方法学把软件生命周期的全过程依次划分为若干个阶段,然后顺序地完成每个阶段的任务。与传统方法相反,面向对象方法把数据和行为看成同等重要,它是一种以数据为主线,把数据和对数据的操作紧密地结合起来的方法。5第一章软件工程和软件测试概述软件工程和软件测试概述3.软件生命周期都包括哪些阶段,简述每个阶段的任务。答:软件生命周期包括问题的定义,可行性分析,需求分析,概要设计,详细设计,编码,测试,维护8个阶段。问题定义阶段必须回答的关

4、键问题是:“要解决的问题是什么?”可行性研究阶段要回答的关键问题是:“对于上一个阶段所确定的问题有行得通的解决办法吗?”需求分析阶段的任务是准确地确定“为了解决这个问题,目标系统必须做什么”,主要是确定目标系统必须具备哪些功能。概要设计阶段必须回答的关键问题是:“概括地说,应该怎样实现目标系统?”6第一章软件工程和软件测试概述软件工程和软件测试概述详细设计阶段将详细地设计每个模块,确定实现模块功能所需要的算法和数据结构。编码阶段关键任务是写出正确的容易理解、容易维护的程序模块。测试阶段的关键任务是通过各种类型的测试(及相应的调试)使软件达到预定的要求。维护阶段的关键任务是,通过各种必要的维护活

5、动使系统持久地满足用户的需要。7第一章软件工程和软件测试概述软件工程和软件测试概述4.简述瀑布模型的特点、优点、缺点、适用场合答:瀑布模型是按照软件生命周期的阶段进行的,每个阶段都必须完成规定的文档,并在阶段结束前都要对所完成的文档进行评审;各个阶段间具有顺序性和依赖性。瀑布模型的优点:可强迫开发人员采用规范的方法(例如,结构化技术);严格地规定了每个阶段必须提交的文档;要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证。8第一章软件工程和软件测试概述软件工程和软件测试概述瀑布模型的缺点:1)在项目开始的时候,用户常常难以清楚地给出所有需求;用户与开发人员对需求理解存在差异。2)很少软

6、件项目按照顺序模型进行,不能很好地支持迭代。3)只有到了整个项目的后半段时间,客户才能看到软件的模样。一个没有及时发现的错误,可能导致灾难。瀑布模型适用场合:1)当有一个稳定的产品定义和很容易被理解的技术解决方案时,可以采用纯瀑布模型。2)当你对一个定义得很好的版本进行维护或将一个产品移植到一个新的平台上,可以采用瀑布模型。3)在质量需求高于成本需求和进度需求的时候,可以采用瀑布模型。9第一章软件工程和软件测试概述软件工程和软件测试概述5.简述快速原型模型的特点、优点、缺点、适用场合答:所谓快速原型是快速建立起来的可以在计算机上运行的程序,它所能完成的功能往往是最终产品能完成的功能的一个子集。

7、快速原型模型主要优点:(1)原型系统已经通过与用户交互而得到验证,据此产生的规格说明文档正确地描述了用户需求,因此,在开发过程的后续阶段不会因为发现了规格说明文档的错误而进行较大的返工。(2)开发人员通过建立原型系统已经学到了许多东西,因此在设计和编码阶段发生错误的可能性也比较小,这自然减少了在后续阶段需要改正前面阶段所犯错误的可能性。10第一章软件工程和软件测试概述软件工程和软件测试概述缺点:1)用户有时误解了原型的角色,例如他们可能误解原型应该和真实系统一样可靠。2)缺少项目标准,进化原型方法有点像编码修正。3)缺少控制,由于用户可能不断提出新要求,因而原型迭代的周期很难控制。4)额外的花

8、费:研究结果表明构造一个原型可能需要10%额外花费。5)原型法要求开发者与用户密切接触,有时这是不可能的。例如外包软件。适用场合:1)适用于用户驱动的系统,即需求模糊或随时间变化的系统;2)已有产品或产品的原型,只需客户化的工程项目;3)简单而熟悉的行业或领域;4)有快速原型开发工具;5)进行产品移植或升级11第一章软件工程和软件测试概述软件工程和软件测试概述6.简述增量模型的特点、优点、缺点、适用场合答:增量模型以增量的形式分阶段发布产品。第一个增量往往是核心的产品。也就是,实现了基本的需求,但很多补充的特征,使用和/或评估的结果是下一个增量的开发计划。该计划包括对核心产品的修改,使其能够更

9、好的满足客户的需要,并发布一些新增的特征和功能。这个过程在每个增量发布后不断重复,直到产生最终的完善产品。增量过程模型,本质上是迭代的,强调每一个增量均发布一个可操作产品增量模型的优点:融合了线性顺序模型的基本成分和原型实现的迭代特征;能较快地产生可操作的系统;在每一步递增中,均发布一个新的增量,把用户/开发者的经验结合到不断求精的产品中;每个增量的开发没有必要使用相同的过程;可改善测试效果和降低软件开发总成本。12第一章软件工程和软件测试概述软件工程和软件测试概述增量模型的缺点:1)增量应该相对较小,每个增量应该包含一定的系统功能。所以,很难把用户的需求映射到适当规模的增量上。2)大多数系统

10、需要一组在系统许多部分都会用到的基本服务。但由于增量实现前,需求不能被详细定义,所以,明确所有增量都会用到的基本服务就比较困难。3)若软件系统的组装和拆卸性不强,或开发人员全局把握能力不高,或客户不同意分阶段提交产品等,均不合适。适用场合:1)客户接受分阶段交付。2)对应用领域不熟悉,难以一步到位。3)用户可参与到整个软件开发过程中。4)有较好的类库和构件库。13第一章软件工程和软件测试概述软件工程和软件测试概述7.简述螺旋模型的特点、优点、缺点、适用场合答:螺旋将瀑布模型和快速原型模型结合起来,强调了其他模型所忽视的风险分析,把软件开发过程组成为一个逐步细化的定义周期(螺旋周期)序列,每经历

11、一个周期,系统就得到进一步的细化和完善;本质上,具有上述特征的螺旋是一直运转的,直到软件退役。有时这个过程处于睡眠状态,但任何时候出现了改变,过程都会从合适的入口点开始;紧密围绕开发中的风险问题,用风险分析推动软件设计向深一层扩展、求精;强调持续地判断、确定和修改用户任务目标,并按成本、效益来分析候选的软件产品性质对任务目标的贡献;可结合采用多种软件开发方法,但究竟结合哪一种方法仍由风险分析来决定。14第一章软件工程和软件测试概述软件工程和软件测试概述优点:1)对可选方案和约束条件的强调有利于已有软件的重用,也有助于把软件质量作为软件开发的一个重要目标;2)减少了过多测试(浪费资金)或测试不足

12、(产品故障多)所带来的风险;3)在螺旋模型中维护只是模型的另一个周期,在维护和开发之间并没有本质区别。缺点:1)比较复杂,需要相当的风险评估技术,且成功依赖于这种技术。2)需要软件开发人员具有丰富的风险评估经验和这方面的专门知识适用场合:适应于内部的大规模软件开发15第一章软件工程和软件测试概述软件工程和软件测试概述8.以下属于软件维护阶段文档的是以下属于软件维护阶段文档的是 A软件需求说明软件需求说明 B操作手册操作手册 C软件问题报告软件问题报告 D测试分析报告测试分析报告 16第一章软件工程和软件测试概述软件工程和软件测试概述9.可行性研究要进行一次可行性研究要进行一次_需求分析需求分析

13、 A.详细的详细的 B.全面的全面的 C.简化的、压缩的简化的、压缩的 D.彻底的彻底的 17第一章软件工程和软件测试概述软件工程和软件测试概述10关于原型化开发方法的叙述中,不正确的是关于原型化开发方法的叙述中,不正确的是_。A.原型化方法适应于需求不明确的软件开发原型化方法适应于需求不明确的软件开发 B.在开发过程中,可以废弃不用早期构造的软件原型在开发过程中,可以废弃不用早期构造的软件原型 C.原型化方法可以直接开发出最终产品原型化方法可以直接开发出最终产品 D.原型化方法利于确认各项系统服务的可用性原型化方法利于确认各项系统服务的可用性 18第一章软件工程和软件测试概述软件工程和软件测

14、试概述11以下各项中,以下各项中,_属于需求说明书的评测内容。属于需求说明书的评测内容。系统定义的目标是否与用户的要求一致系统定义的目标是否与用户的要求一致 设计的约束条件或限制条件是否符合实际设计的约束条件或限制条件是否符合实际 是否考虑过软件需求的其他方案是否考虑过软件需求的其他方案 软件的行为与它必须处理的信息、必须完成的功能软件的行为与它必须处理的信息、必须完成的功能是否一致是否一致 A、B、C、D、19第一章软件工程和软件测试概述软件工程和软件测试概述12.可行性研究的方面包括可行性研究的方面包括 _A.经济可行性经济可行性 B.技术可行性技术可行性 C.法律可行性法律可行性 D.抉

15、择抉择 E.软件的规模软件的规模 20第一章软件工程和软件测试概述软件工程和软件测试概述13.软件开发模型有原型模型、软件开发模型有原型模型、_、_、_。A 瀑布模型瀑布模型 B增量模型增量模型 C W模型模型D 螺旋模型螺旋模型21第二章软件测试基础-习题1、名词解释:软件测试,软件质量保证,单元测试,集成测试,系统测试,确认测试,验收测试,黑盒测试,白盒测试,灰盒测试,开发方测试(alpha测试),用户测试(Beta测试),第三方测试。软件测试:软件质量保证的关键元素,代表了规约、设计和编码的最终检查。从标准论角度,软件测试是“验证(Verification)”和“确认(Validatio

16、n)”活动构成的整体。验证是通过提供客观证据检验规定的要求是否得到满足,也就是说对输入与输出进行比较。确认是在验证好的基础上,预期的应用要求是否得到满足,也就是说,在确认时应考虑应用的条件范围要远远大于输入时确定的范围。22第二章软件测试基础-习题软件质量保证软件质量保证(SoftwareQualityAssurance,SQA)是为了提供信用,证明项目将会达到有关质量标准,而在质量体系中进行有计划、有组织的活动。单元测试单元测试又称模块测试,是针对软件设计的最小单位程序模块,进行正确性检验的测试工作。集成测试集成测试又称组装测试、联合测试、子系统测试或部件测试,是在单元测试的基础上,将所有模

17、块按照设计要求组装成子系统或系统进行的测试活动。系统测试系统测试,是将通过确认测试的软件,作为整个基于计算机系统的一个元素,与计算机硬件、外设、某些支持软件、数据和人员等其它系统元素结合在一起,在实际运行环境下,对计算机系统进行一系列的组装测试和确认测试。验收测试验收测试是系统开发生命周期中的一个阶段,它是一项判断产品是否能够满足合同或用户既定需求的测试23第二章软件测试基础-习题开发方测试开发方测试通常也叫“验证测试”或“Alpha测试”,是在软件开发环境下,由开发者检测与证实软件的实现是否满足软件设计说明或软件需求说明的要求。用户测试用户测试又称“Beta测试”,是在用户的应用环境下,用户

18、通过运行和使用软件,检测与核实软件实现是否符合自己预期的要求。第三方测试第三方测试是介于软件开发方和用户方之间的测试组织的测试,也称为独立测试,是由在技术、管理和财务上与开发方和用户方相对独立的组织进行的软件测试。软件测试。24第二章软件测试基础-习题白盒测试白盒测试也称结构测试或逻辑驱动测试,它是按照程序内部的结构测试程序,通过测试来检测产品内部动作是否按照设计规格说明书的规定正常进行,检验程序中的每条通路是否都能按预定要求正确工作。黑盒测试黑盒测试也称功能测试或数据驱动测试。它主要是检测每个功能是否能正常使用。在测试过程中,将程序看做一个不能打开的黑盒子,在完全不考虑程序内部结构的情况下,

19、主要检查程序的功能是否按照软件需求规格说明书的规定正常使用,程序能否正确的接收所输入的数据,并产生正确的输出信息。灰盒测试灰盒测试,是介于白盒测试与黑盒测试之间的测试,灰盒测试关注输出对于输入的正确性,同时也关注内部表现,但这种关注不象白盒那样详细、完整,只是通过一些表征性的现象、事件、标志来判断内部的运行状态。25第二章软件测试基础-习题2.使用白盒测试方法时,确定测试数据应根据使用白盒测试方法时,确定测试数据应根据()()和指定的覆盖标准。和指定的覆盖标准。A程序的内部逻辑程序的内部逻辑 B程序的复杂结构程序的复杂结构 C使用说明书使用说明书 D程序的功能程序的功能 26第二章软件测试基础

20、-习题3.软件测试的目的是软件测试的目的是()。A证明程序中没有错误证明程序中没有错误 B.发现程序中的错误发现程序中的错误 C.测量程序的动态特性测量程序的动态特性 D.检查程序中的语法错误检查程序中的语法错误 27第二章软件测试基础-习题4软件测试的对象包括软件测试的对象包括()。A.目标程序和相关文档目标程序和相关文档 B.源程序、目标程序、数据及相关文档源程序、目标程序、数据及相关文档 C.目标程序、操作系统和平台软件目标程序、操作系统和平台软件 D.源程序和目标程序源程序和目标程序 28第二章软件测试基础-习题5下述说法错误的是下述说法错误的是()。A.单元测试又称为模块测试,是针对

21、软件测试的最小单位单元测试又称为模块测试,是针对软件测试的最小单位程序模块进行正确性检验的测试工作;程序模块进行正确性检验的测试工作;B.集成测试也叫做组装测试,通常在编码完成的基础上,将所集成测试也叫做组装测试,通常在编码完成的基础上,将所有的程序模块进行有序的、递增的测试;有的程序模块进行有序的、递增的测试;C.集成测试是检验程序单元或部件的接口关系,逐步集成为符集成测试是检验程序单元或部件的接口关系,逐步集成为符合概要设计要求的程序部件或整个系统;合概要设计要求的程序部件或整个系统;D.系统测试是在真实或模拟系统运行环境下,检查完整的程序系统测试是在真实或模拟系统运行环境下,检查完整的程

22、序系统能否和相关硬件、外设、网络、系统软件和支持平台等系统能否和相关硬件、外设、网络、系统软件和支持平台等正确配置与连接,并满足用户需求。正确配置与连接,并满足用户需求。29第二章软件测试基础-习题6验收测试的定义是()。A.由用户按照用户手册对软件进行测试以决定是否接受;B.由某个测试机构代表用户按照需求说明书和用户手册对软件进行测试以决定是否接受;C.按照软件任务书或合同,供需双方约定的验收依据进行测试,决定是否接受D.由开发方和用户按照用户手册执行软件验收30第二章软件测试基础-习题7软件的集成测试工作最好由()承担,以提高集成测试的效果。A.该软件的设计人员B.该软件开发组的负责人C.

23、该软件的编程人员D.不属于该软件开发组的软件设计人员31第二章软件测试基础-习题8关于第三方测试的描述,正确的观点是()。A.既不是开发人员,也不是用户所进行的测试就是第三方测试B.由在技术、管理和财务上与开发方和用户方相对独立的组织进行的测试C.第三方测试是在开发方与用户方的测试基础上所进行的验证测试D.第三方测试又称为测试32第二章软件测试基础-习题9对于软件的测试,下列描述正确的是_。A测试就是在软件公司内部展开的测试,由公司专业的测试人员执行的测试B测试就是在软件公司内部展开的测试,由公司的非专业测试人员执行的测试C测试就是在软件公司外部展开的测试,由专业的测试人员执行的测试D测试就是

24、在软件公司外部展开的测试,可以由非专业的测试人员执行的测试33第二章软件测试基础-习题10.典型的软件测试过程模型有(1)等,在这些模型中,(2)强调了测试计划等工作的先行和对系统需求和系统设计的测试,(3)对软件测试流程予以了说明。(1)AV模型、W模型、H模型、渐进模型BV模型、W模型、H模型、螺旋模型CX模型、W模型、H模型、前置测试模型DX模型、W模型、H模型、增量模型(2)A模型BW模型C渐进模型D螺旋模型(3)A模型BW模型CH模型D增量模型34第二章软件测试基础-习题12.下列哪一种不属于验收测试范畴()A正式验收测试Balpha测试Cbeta测试D系统测试35第二章软件测试基础

25、-习题13.在软件生命周期的不同阶段,需要实施不同类型的测试工作,单元测试是对程序设计进行验证,其中_不是单元测试的主要内容。A.模块接口测试B.有效性测试C.路径测试D.边界测试36第二章软件测试基础-习题14.在进行单元测试过程中,通常测试工程师都需要借助_来代替所测模块调用的子模块。A.桩模块B.驱动模块C.桩模块和驱动模块D.存根模块和驱动模块37第二章软件测试基础-习题15.在单元测试的基础上,需要将所有模块按照概要设计和详细设计说明书的要求进行组装,模块组装成系统的方式有两种,分别是_。A.非增量式和增量式B.自顶向下组装和启底向上组装C.单个模块组装和混合模块组装D.接口组装和功

26、能组装38第二章软件测试基础-习题16在系统验收测试中,_(1)_是在一个模拟的环境下使用模拟数据运行系统;_(2)_是在一个实际环境中使用真实数据运行系统。(1)A验证测试B审计测试C确认测试D模块测试(2)A验证测试B审计测试C确认测试D模块测试39第二章软件测试基础-习题17单元测试将根据在()阶段中产生的规格说明进行。A.可行性研究与计划B.需求分析C.概要设计D.详细设计40第二章软件测试基础-习题18.软件测试类型按开发阶段划分是_A.需求测试、单元测试、集成测试、验证测试B.单元测试、集成测试、确认测试、系统测试、验收测试C.单元测试、集成测试、验证测试确认测试、验收测试D.调试

27、、单元测试、集成测试、用户测试41第二章软件测试基础-习题19.V模型指出,_对程序设计进行验证A.单元和集成测试B.系统测试C.验收测试和确认测试D.验证测试42第二章软件测试基础-习题20.V模型指出,_对系统设计进行验证A.单元测试B.集成测试C.功能测试D.系统测试43第二章软件测试基础-习题21.V模型指出,_应当追朔到用户需求说明A.代码测试B.集成测试C.验收测试D.单元测试44第二章软件测试基础-习题22广义的软件测试包括_。A单元测试、集成测试、确认测试和系统测试B确认、验证和测试C需求评审、设计评审、单元测试和综合测试D开发方测试、用户测试和第三方测试45第二章软件测试基础

28、-习题23下列关于alpha测试的描述中正确的_Aalpha测试需要用户代表参加Balpha测试不需要用户代表参加Calpha测试是系统测试的一种Dalpha测试是验收测试的一种46第二章软件测试基础-习题24_不是易用性测试包括的内容。A安装测试B界面测试C菜单测试D文档测试47第二章软件测试基础-习题25_不是文档测试包括的内容。A合同文档B开发文档C管理文档D用户文档48第二章软件测试基础-习题26软件测试的说法,_是错误的。A软件测试就是程序测试B软件测试贯穿于软件定义和开发的整个期间C需求规格说明、设计规格说明都是软件测试的对象D程序是软件测试的对象49第二章软件测试基础-习题27软

29、件测试按实施组织分,测试应该包括以下的_。开发方测试用户方测试第三方测试验收测试确认测试A、B、C、D、50第二章软件测试基础-习题28.简述测试的目的、原则与对象软件测试的目的:1)是以最少的人力、物力和时间找出软件中潜在的各种错误和缺陷,通过修正各种错误和缺陷提高软件质量,回避软件发布后由于潜在的软件缺陷和错误造成的隐患所带来的商业风险。2)是确认软件的质量,软件做了所期望的事情(Dotherightthing),另一方面是确认软件以正确的方式来做了这个事件(Doitright)3)是为开发过程提供反馈信息,协助开发过程的改进:软件测试不仅是在测试软件产品本身,还包括软件开发的过程。软件测

30、试的第三个目的是保证整个软件开发过程的高质量。4)软件质量评估:软件测试是以评价一个程序或系统属性为目标的一种活动,是对软件质量的度量与评估,以验证软件的质量满足用户的需求,为用户选择与接收软件提供有力的依据。51第二章软件测试基础-习题软件测试的原则1.所有的软件测试都应追溯到用户需求2.应当把“尽早地和不断地进行软件测试”作为软件开发者的座右铭。3.完全测试是不可能的,测试需要终止4.软件测试无法显示软件潜在的缺陷5.充分注意软件测试中的群集现象6.程序员应避免检查自己的程序7.尽量避免测试的随意性8.妥善保存一切测试过程文档。软件测试的对象:需求规格说明、概要设计规格说明、详细设计规格说

31、明、源程序。52第二章软件测试基础-习题29、什么是V模型?简述V模型在软件测试过程中的作用,以及在V模型中各个测试阶段和开发过程的对应关系V模型是软件开发瀑布模型的变种,它反映了测试活动与分模型是软件开发瀑布模型的变种,它反映了测试活动与分析和设计的关系析和设计的关系。从左到右,描述了基本的开发过程和测试行为,非常明确地标明了测试过程中存在的不同级别,并且清楚地描述了这些测试阶段和开发过程期间各阶段的对应关系。左边依次下降的是开发过程各阶段,与此相对应的是右边依次上升的部分,即各测试过程的各个阶段。V模型的局限性在于没有明确地说明早期的测试,无法体现“尽早地和不断地进行软件测试”的原则53第

32、二章软件测试基础-习题30、什么是W模型?简述其特点W模型由Evolutif公司提出,相对于V模型,W模型增加了软件各开发阶段中应同步进行的验证和确认活动。W模型由两个V字型模型组成,分别代表测试与开发过程,图中明确表示出了测试与开发的并行关系。W模型强调:测试伴随着整个软件开发周期,而且测试的对象不仅仅是程序,需求、设计等同样要测试,也就是说,测试与开发是同步进行的。W模型有利于尽早地全面的发现问题。例如,需求分析完成后,测试人员就应该参与到对需求的验证和确认活动中,以尽早地找出缺陷所在。同时,对需求的测试也有利于及时了解项目难度和测试风险,及早制定应对措施,这将显著减少总体测试时间,加快项

33、目进度。但W模型也存在局限性。在W模型中,需求、设计、编码等活动被视为串行的,同时,测试和开发活动也保持着一种线性的前后关系,上一阶段完全结束,才可正式开始下一个阶段工作。这样就无法支持迭代的开发模型。对于当前软件开发复杂多变的情况,W模型并不能解除测试管理面临着困惑。54第二章软件测试基础-习题31、什么是X模型?简述其特点X模型也是对V模型的改进,X模型提出针对单独的程序片段进行相互分离的编码和测试,此后通过频繁的交接,通过集成最终合成为可执行的程序。X模型的左边描述的是针对单独程序片段所进行的相互分离的编码和测试,此后将进行频繁的交接,通过集成最终成为可执行的程序,然后再对这些可执行程序

34、进行测试。己通过集成测试的成品可以进行封装并提交给用户,也可以作为更大规模和范围内集成的一部分。多根并行的曲线表示变更可以在各个部分发生。X模型还定位了探索性测试,这是不进行事先计划的特殊类型的测试,这一方式往往能帮助有经验的测试人员在测试计划之外发现更多的软件错误。但这样可能对测试造成人力、物力和财力的浪费,对测试员的熟练程度要求比较高。55第二章软件测试基础-习题32、简述前置测试模型。前置测试模型由RobinF.Goldsmith等人提出,它是一个将测试和开发紧密结合的模型,并提供了轻松的方式,可以使项目的进度加快。前置测试模型则体现了开发与测试的结合,要求对每一个交付内容进行测试。前置

35、测试模型是一个将测试和开发紧密结合的模型,此模型将开发和测试的生命周期整合在一起,随项目开发生命周期从开始到结束每个关键行为。56第二章软件测试基础-习题33、简述软件测试的分类答:按照软件不同的开发阶段,可以将软件测试分为:单元测试、集成测试、系统测试、确认测试、验收测试;按照测试实施组成划分,测试包括:开发方测试、用户测试、第三方测试;按照测试技术划分可分为:白盒测试、黑盒测试、灰盒测试;按照测试内容划分,可以分为:功能性测试、可靠性测试、易用性测试、效率测试(性能测试)、可移植性测试、文档测试57第二章软件测试基础-习题34、请叙述软件质量保证的工作内容。软件质量保证的主要职责是检查开发

36、和管理活动是否与已定的过程策略、标准和流程一致,检查工作产品是否遵循模板规定的内容和格式等。具体的工作内容主要包括(1)与SQA计划直接相关的工作(2)参与项目的阶段性评审和审计(3)对项目日程活动与规程的符合性进行检查(4)对配置管理工作的检查和审计(5)跟踪问题的解决情况(6)收集新方法,提供过程改进的依据。58第二章软件测试基础-习题35.在软件开发与运行阶段一般需要完成单元测试、集成测试、确认测试、系统测试和验收测试,这些对软件质量保证起着非常关键的作用。(1)简述集成测试与系统测试的关系(2)公司A承担了业务B的办公自动化系统的建设工作。2004年10月初,项目正处于开发阶段,预计2

37、005年5月能够完成全部开发工作,但是合同规定2004年10月底进行系统验收。因此2004年10月初,公司A依据合同规定向业主B和监理方提出在2004年10月底进行验收测试的请求,并提出了详细的测试计划和测试方案。在该方案中指出测试小组由公司A的测试工程师、外聘测试专家、外聘行业专家以及监理方的代表组成。公司A的做法是否正确?请给出理由。59第二章软件测试基础-习题答:1)集成测试的主要依据是概要设计说明书,系统测试的主要依据是需求设计说明书;集成测试是系统模块的测试,系统测试是对整个系统的测试,包括相关的软硬件平台、网络以及相关外设的测试。2)验收测试要在系统测试通过之后,交付使用之前进行,

38、而不是仅仅根据合同规定进行。2004年10月初并不具备验收测试的条件60第三章白盒测试技术-习题1、名词解释:静态测试,动态测试,桌面检查,代码审查,走查软件的静态测试不要求在计算机上实际执行所测程序,主要以一些人工的模拟技术对软件进行分析和测试而软件的动态测试是通过输入一组预先按照一定的测试准则构造的实例数据来动态运行程序,而达到发现程序错误的过程。桌面检查是代码检查方式的一种,由程序员自己检查自己编写的程序。程序员在程序通过编译之后,进行单元测试设计之前,对源程序代码进行分析、检验,并补充相关的文档,目的是发现程序中的错误。61第三章白盒测试技术-习题代码审查是由若干程序员和测试员组成一个

39、审查小组,通过阅读、讨论和争议,对程序进行静态分析的过程。走查与代码审查基本相同,其过程分为两步。第一步也把材料先发给走查小组每个成员,让他们认真研究程序,然后再开会。开会的程序与代码审查不同,不是简单地读程序和对照错误检查表进行检查,而是让与会者“充当”计算机,即首先由测试组成员为被测程序准备一批有代表性的测试用例,提交给走查小组。62第三章白盒测试技术-习题2、什么是逻辑覆盖测试?逻辑覆盖都有哪些类型?逻辑覆盖是通过对程序逻辑结构的遍历实现程序的辑覆盖是通过对程序逻辑结构的遍历实现程序的覆盖。它是一系列测试过程的总称,这组测试过程覆盖。它是一系列测试过程的总称,这组测试过程逐渐进行越来越完

40、整的通路测试。逐渐进行越来越完整的通路测试。从覆盖源程序语句的详尽程度分析,逻辑覆盖标准从覆盖源程序语句的详尽程度分析,逻辑覆盖标准包括:包括:语句覆盖语句覆盖判定覆盖判定覆盖条件覆盖条件覆盖条件判定组合覆盖条件判定组合覆盖多条件覆盖多条件覆盖修正条件判定覆盖63第三章白盒测试技术-习题3、简述白盒测试的综合测试策略在白盒测试中,可以使用各种测试方法的综合策略如下:(1)在测试中,应尽量先使用工具进行静态结构分析。(2)测试中可采取先静态后动态的组合方式:先进行静态结构分析、代码检查,再进行覆盖率测试。(3)利用静态分析的结果作为导引,通过代码检查和动态测试的方式对静态发现结果进行进一步的确认

41、,使测试工作更为有效。(4)覆盖率测试是白盒测试的重点,一般可使用基本路径测试法达到语句覆盖标准;对于软件的重点模块,应使用多种覆盖率标准衡量代码的覆盖率。(5)在不同的测试阶段,测试的侧重点不同:在单元测试阶段,以代码检查、逻辑覆盖为主;在集成测试阶段,需要增加静态结构分析等;在系统测试阶段,应根据黑盒测试的结果,采取相应的白盒测试。64第三章白盒测试技术-习题4、某商场在“五一”期间,顾客购物时收费有4种情况:普通顾客一次购物累计少于100元,按A类标准收费(不打折),一次购物累计多于或等于100元,按B类标准收费(打9折);会员顾客一次购物累计少于1000元,按C类标准收费(打8折),一

42、次购物累计等于或多于1000元,按D类标准收费(打7折)。测试对象是按以上要求计算顾客收费模块,按照路径覆盖法设计测试用例。65第三章白盒测试技术-习题被测模块的程序流程图如图所示66第三章白盒测试技术-习题按照路径覆盖法设计测试用例如下:是会员,累计消费900元,覆盖路径127是会员,累计消费2000元,覆盖路径128不是会员,累计消费80元,覆盖路径134不是会员,累计消费300元,覆盖路径13567第三章白盒测试技术-习题5.对以下代码,假设输入的取值范围是1900year2050,请使用基本路径测试法为变量year设计测试用例,使其满足基本路径覆盖的要求。IntIsLeap(intye

43、ar)if(year%4=0)if(year%100=0)if(year%400=0)leap=1;elseleap=0;elseleap=1;elseleap=0;returnleap;68第三章白盒测试技术-习题答:1)控制流图2)V(G)=469第三章白盒测试技术-习题用例1:year是19002050之间不能被4整除的整数,如1901、2001、2003等。用例2:year是19002050之间能被4整除但不能被100整除的整数,如2004、2008、2012、1916等。用例3:year是19002050之间能被100整除但不能被400整除的整数,如1900。用例4:year是190

44、02050之间能被400整除的整数,如200070第三章白盒测试技术-习题6.下面是一段求最大值的程序,其中data是数据表,n是data的长度。intMaxValueCal(intn,intdata)intk=0;for(inti=1;idatak)k=i;returnk;画出该程序的流程图和对应的控制流图计算控制流图的环路复杂性。给出线性独立路径的基本集为(3)中的每条路径设计测试用例。711.程序流程图和控制流图72第三章白盒测试技术-习题(2)复杂度为3(3)测试路径:Path1:Path2:Path3:73第三章白盒测试技术-习题(4)测试用例:Path1:取n=1,datalist

45、0=1,预期结果:k=0Path2:取n=2,datalist0=1,datalist1=0,预期结果:k=0Path3:取n=2,datalist0=0,datalist1=1,预期结果:k=174第三章白盒测试技术-习题7以下属于白盒技术设计测试用例的方法A逻辑覆盖B等价类划分C边界值分析D因果图75第三章白盒测试技术-习题8下面哪个不属于静态测试A编码规则检查B程序结构分析C程序复杂度分析D内存泄漏76第三章白盒测试技术-习题9.白盒测试是_的测试A.基于功能B.基于代码C.基于设计D.基于需求文档77第三章白盒测试技术-习题10以下测试方法是白盒测试方法的是_A.判定覆盖和边界值分析法

46、B.等价划分和错误推测法C.路径覆盖和判定/条件覆盖法D.条件组合覆盖和语句覆盖法E.条件覆盖和错误推测法78第三章白盒测试技术-习题11针对下列程序段,对于(A,B)的取值,以下_测试用例组合能够满足条件覆盖的要求。IF(A-10)=20AND(B+20)10)THENC=0IF(A-30)10AND(B-30)payload)i;switch(c)caseSLIP_END:sio_send(SLIP_ESC,netif-state);sio_send(SLIP_ESC_END,netif-state);break;caseSLIP_ESC:sio_send(SLIP_ESC,netif-s

47、tate);sio_send(SLIP_ESC_ESC,netif-state);break;defult:sio_send(c,netif-state);break;A4B3C2D181第三章白盒测试技术-习题14.确定下面函数的基本路径并给出测试用例voidSort(intiRecordNum,intiType)12intx=0;3inty=0;4while(iRecordNum-0)56 If(iType=0)7break;8else9 If(iType=1)10 x=x+10;11else12y=y+20;131482第三章白盒测试技术-习题画出控制流图:如右图所示计算环形复杂度:V(

48、G)=e-n+210(条边)-8(个节点)+2=4导出独立路径(用语句编号表示)路径1:4691213414路径2:4691013414路径3:46714路径4:41446791012131483第三章白盒测试技术-习题输入数据预期输出测试用例1irecordnum=0itype=0 x=0y=0测试用例2irecordnum=1itype=0 x=0y=0测试用例3irecordnum=1itype=1x=10y=0测试用例4irecordnum=1itype=2x=0y=20设计测试用例(试写出其他测试用例)84第三章白盒测试技术-习题15.请对以下程序设计测试用例,以实现:1)语句覆盖;

49、2)判定覆盖;3)条件覆盖;4)条件判定覆盖;voidDoWork(intx,inty,intz)intk=0,j=0;if(x3)&(z5)j=x*y+10;/语句块2j=j%3;/语句块385第三章白盒测试技术-习题X3&z5执行语句块执行语句块3FFTTabdce86语句覆盖要实现DoWork函数的语句覆盖,只需设计一个测试用例就可以覆盖程序中的所有可执行语句。测试用例输入为:x=4、y=5、z=5程序执行的路径是:abd分析:语句覆盖可以保证程序中的每个语句都得到执行,但发现不了判定中逻辑运算的错误,即它并不是一种充分的检验方法。例如在第一个判定(x3)&(z5错误写为y3)&(z3取

50、真值记为T1,取假值记为-T1条件z5):条件x=4取真值记为T3,取假值记为-T3条件y5取真值记为T4,取假值记为-T4条件覆盖的思想就是让测试用例能覆盖T1、-T1、T2、-T2、T3、-T3、T4、-T489条件覆盖(续)对DoWork函数的条件覆盖测试用例设计如下:测试用例执行路径覆盖条件覆盖分支x=2、y=6、z=5acd-T1、T2、-T3、T4cdx=4、y=5、z=15acdT1、-T2、T3、-T4cd分析:上述设计的这组测试用例,虽然满足了条件覆盖,但只是覆盖了程序中第一个判定的取假分支c和第二个判定的取真分支d,不能满足判定覆盖的要求。90判定/条件覆盖判定/条件覆盖实

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服