(完整版)软件测试技术基础课后习题答案

合集下载

(完整版)软件测试基础习题及答案

(完整版)软件测试基础习题及答案

(完整版)软件测试基础习题及答案1、软件测试的定义?软件测试是⼀个过程或者⼀系列过程,⽤来确认计算和代码完成了其应该完成的功能,并且不执⾏其不应该有的操作。

2、软件测试的⽬标是什么?是想以最少的⼈⼒、物⼒和时间找出软件中潜在的各种错误和缺陷,通过修正各种错误和缺陷提⾼软件质量,降低软件发布后由于潜在的软件错误和缺陷造成的隐患所带来的商业风险。

3、简单描述⼀下软件测试的原则?所有的软件测试都应追溯到⽤户需求应当把“尽早地和不断地进⾏软件测试”作为测试者的座右铭Good Enough原则质量第⼀充分注意测试中的群集现象程序员应避免检查⾃⼰的程序有据可依尽量避免软件测试的随意性,要有预期结果重视回归测试妥善保存⼀切测试过程⽂档4、软件测试中验证和确认的区别?Verfication 验证:是保证软件正确实现特定功能的⼀系列活动和过程。

⽬的是保证软件⽣命周期中的每⼀个阶段的成果满⾜上⼀个阶段设定的⽬标。

Validation 确认:是保证软件满⾜⽤户需求的⼀系列的活动和过程。

⽬的是在软件开发后保证与⽤户需求符合5、软件测试按照测试的基本策略可分为哪两种并加以详细说明?⽩盒测试:⽩盒测试也称结构测试或逻辑驱动测试,是指基于⼀个应⽤代码的内部逻辑知识,即基于覆盖全部代码、分⽀、路径、条件的测试,它是知道产品内部⼯作过程,可通过测试来检测产品内部动作是否按照规格说明书的规定正常进⾏,按照程序内部的结构测试程序,检验程序中的每条通路是否都有能按预定要求正确⼯作,⽽不顾它的功能,⽩盒测试的主要⽅法有逻辑驱动、基路测试等,主要⽤于软件验证。

⿊盒测试:⿊盒测试是指不基于内部设计和代码的任何知识,⽽基于需求和功能性的测试,⿊盒测试也称功能测试或数据驱动测试,它是在已知产品所应具有的功能,通过测试来检测每个功能是否都能正常使⽤,在测试时,把程序看作⼀个不能打开的⿊盆⼦,在完全不考虑程序内部结构和内部特性的情况下,测试者在程序接⼝进⾏测试,它只检查程序功能是否按照需求规格说明书的规定正常使⽤,程序是否能适当地接收输⼊数锯⽽产⽣正确的输出信息,并且保持外部信息(如数据库或⽂件)的完整性。

《软件测试技术》 刘文乐 天秋成 编著 课后答案 第1章 软件测试概述课后答案

《软件测试技术》 刘文乐 天秋成 编著  课后答案 第1章  软件测试概述课后答案

第1章软件测试概述1.5 习题一、名词解释软件缺陷:又被叫做Bug。

所谓软件缺陷,即为计算机软件或程序中存在的某种破坏软件正常运行的问题、错误,或者隐藏的功能缺陷。

软件测试:利用人工或者自动手段按照测试方案和流程对产品进行功能和性能测试的过程,其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别。

它是识别开发的(中间或最终)软件(整体或部分)的正确度、完全度和质量的过程。

V模型:描述基本的开发过程和测试行为,其价值在于它非常明确地标明了测试过程中存在的不同级别,并且清楚地描述了这些测试阶段和开发过程期间各阶段的对应关系。

W模型:W模型由两个V字型模型组成,分别代表测试与开发过程,明确表示出了测试与开发的并行关系。

X模型:X模型的左边,描述的是针对单独程序片段所进行的相互分离的编码和测试,此后将进行频繁的交接,通过集成最终合成为可执行的程序。

右上半部分,这些可执行程序还需要进行测试。

已通过集成测试的成品可以封版,并提交给用户,也可以作为更大规模和范围内集成的一部分。

多根并行的曲线表示变更可以在各个部分发生。

H模型:在H模型中,软件测试过程的活动完全独立,贯穿于整个产品的周期,与其他流程并发地进行,某个测试点准备就绪时,就可以从测试准备阶段进入到测试执行阶段。

软件测试可以尽早的进行,并且可以根据被测对象的不同而分层次进行。

二、填空题1、软件的测试不仅仅是对程序的测试,而且软件的测试应贯穿于整个软件生命周期。

在软件定义阶段产生的可行性报告、项目实施计划、软件需求说明书或系统功能说明书,在软件开发阶段产生的概要设计说明书、详细设计说明书,以及源程序等都是软件测试的对象。

2、软件测试的目的,就是检验软件是否满足任务书或合同等规定的软件质量要求。

简言之,测试的目的应该是满足用户。

3、软件测试模型,主要包括V模型、W模型、X模型、H模型和前置模型。

4、按软件生存周期划分,软件测试可分为:软件测试可分为:定义阶段测试、开发阶段测试、运行阶段测试、维护阶段测试。

软件测试基础练习题库(附参考答案)

软件测试基础练习题库(附参考答案)

软件测试基础练习题库(附参考答案)一、单选题(共90题,每题1分,共90分)1.下面的哪项测试步骤中需要进行局部数据结构测试()A、单元测试B、系统测试C、集成测试D、确认测试正确答案:A2.()也称功能测试,它是通过测试来检测每个功能是都能正常使用。

A、动态测试B、系统测试C、压力测试D、黑盒测试正确答案:D3.软件生存周期过程中,修改错误最大的阶段是()A、设计阶段B、需求阶段C、发布运行阶段D、编程阶段正确答案:C4.以程序的内部结构为基础的测试用例技术属于()A、白盒测试B、数据测试C、黑盒测试D、灰盒测试正确答案:A5.以下说法正确的是()A、自底向上的集成测试需要测试人员编写测试驱动程序B、非功能质量属性越高越好C、单元测试是对软件基本组成单元进行测试,即测试对象一定是一个函数D、系统备份与恢复中的数据备份与恢复通常只需要针对业务/用户数据正确答案:B6.数据流覆盖关注的是程序中某个变量从其声明、赋值到引用的变化情况,它是下列哪一种覆盖的变种()A、分支覆盖B、语句覆盖C、控制覆盖D、路径覆盖正确答案:D7.软件测试的目的()A、尽可能发现并排出软件中潜藏的错误,提高软件的可靠性B、发现软件开发中出现的错误C、避免软件开发中出现的错误D、修改软件中出现的错误正确答案:B8.下列可以作为软件测试对象的是()A、需求规格说明书B、软件设计规格说明C、源程序D、以上全部正确答案:D9.下面有关软件缺陷的说法中错误的是()A、缺陷就是导致系统程序崩溃的错误B、缺陷开始软件维护过程中存在的错误、毛病等各种问题C、缺陷就是系统所需要实现某种功能的失效和违背D、缺陷就是软件产品在开发中存在的错误正确答案:A10.下列方法中,不属于黑盒测试的是()A、基于场景的测试方法B、边界值分析法C、基本路径测试法D、等价类测试法正确答案:C11.在GB/T17544中,软件包质量要求包括三部分,即产品描述要求、()、程序和数据要求A、用户文档要求B、系统功能要求C、设计要求说明D、软件配置要求正确答案:A12.用黑盒技术设计测试用例的方法之一为()A、循环覆盖B、基本路径测试C、逻辑覆盖D、因果图正确答案:D13.为了提高测试的效率,应该()A、取一切可能的输入数据作为测试数据B、选择发现错误的可能性C、随机的选取测试数据D、在完成编码以后指定软件的测试计划正确答案:B14.CMMI 共有几个级别()A、3个B、4个C、5个D、6个正确答案:C15.软件的六大质量特性包括:()A、功能性、可靠性、可用性、效率、稳定性、可移植B、功能性、可靠性、可拓展性、效率、稳定性、可移植C、功能性、可靠性、兼容性、效率、稳定性、可移植D、功能性、可靠性、可用性、效率、可维护、可移植正确答案:D16.在没有需求文档和产品说明书的情况下只有哪一种测试方法可以进行的()A、语句覆盖测试B、路径分析测试C、条件覆盖测试D、错误推断测试正确答案:D17.在模块测试的过程中,采用自底向上的测试比自顶向下的测试()A、不确定B、好C、差D、一样正确答案:B18.软件测试的目的是()A、修改软件中出现的错误B、尽可能发现并排除软件中潜藏的错误,提高软件的可靠性C、发现软件开发中出现的错误D、避免软件开发中出现的错误正确答案:C19.下列关于测试方法的叙述中不正确的是()A、对功能的测试通常是要考虑程序的内部结构B、结构测试属于白盒测试C、功能测试属于黑盒测试D、从某种角度上讲,白盒测试与黑盒测试都属于动态测试正确答案:A20.功能测试的目的是()A、保证软件的功能符合软件需求B、保证系统没有错误C、保证用户方便使用D、保证软件性能符合设计的要求正确答案:A21.Excel软件可用于()A、文字处理B、幻灯片制作C、电子表格处理D、设计程序正确答案:C22.软件可靠性是指在指定的条件下使用时,软件产品维持规定的性能级别的()A、可靠性依从性B、容错性C、易恢复性D、成熟性正确答案:B23.下列关于软件测试的叙述中,选择出全部正确的一组()1)用黑盒测试时,测试用例是根据程序内部逻辑设计的2)尽量用公共过程或子程序去代替重复的代码段3)测试是为了验证该软件已正确的实现了用户的要求4)对于连锁型分支结构,若有n个判定语句,则有2n条路径5)尽量采用复合的条件测试,以避免嵌套的分支结构6)语句概念简单,使用方便,在某些情况下,保留GOTO语句反能使写出的程序更加简洁 7)发现错误多的程序模块,残留在模块中的错误也多8)黑盒测试方法中最有效的是因果图法9)在做程序的单元测试时,桩(存根)模块比驱动模块容易编写10)程序效率的提高主要应通过选择高效的算法来实现A、4)5)6)7)10)B、1)2)4)5)7)C、2)4)5)7)9)D、以上描述全部正确正确答案:A24.下列软件属性中,软件产品首要满足的应该是()A、容错纠错能力B、功能需求C、性能需求D、可扩展性和灵活性正确答案:B25.黑盒测试是从()观点出发的测试,而白盒测试是从()观点出发的测试A、用户、开发人员B、用户、管理人员C、开发人员、管理人员D、开发人员、用户正确答案:A26.坚持在软件的各个阶段实施下列哪种质量保障措施,才能在开发过程中尽早发现和预防错误,把出现的错误克服在早期()A、管理评审B、技术评审C、改正程序错误D、程序测试正确答案:B27.SQL语言中删除一个表的语句是()A、Drop tableB、Delete tableC、destroy tableD、remove table正确答案:A28.以下哪一种选项不属于软件缺陷()A、软件实现了产品规格说明所要求的功能但因受性能限制而未考虑可移植性问题B、软件中出现了产品规格说明不应该出现的功能C、软件没有实现产品规格说明所要求的功能D、软件实现了产品规格没有提到的功能正确答案:A29.下面有关测试原则的说法正确的是()A、程序最好由编写该程序的程序员自己来测试B、使用测试用例进行测试是为了检查程序是否做了它该做的事C、测试用例应由测试的输入数据和预期的输出结果组成D、测试用例只需选取合理的输入数据正确答案:C30.对程序的测试最好由谁来做,对程序的调试最好由谁来做()A、程序开发组/程序开发组B、程序开发组/程序员C、第三方测试机构/程序员D、程序员/第三方测试机构正确答案:C31.为了提高测试的效率,正确的做法是()A、随机选取测试用例B、使用测试用例测试是为了检查程序是否做了应该做的事C、在完成程序的编码之后再制定软件的测试计划D、选择发现错误可能性大的数据作为测试用例正确答案:D32.集成测试对系统内部的交互以及集成后系统功能检验了何种质量特性()A、正确性B、可靠性C、可维护性D、可使用性正确答案:A33.黑盒测试法是根据产品的()来设计测试用例的A、功能B、内部逻辑C、输入数据D、应用范围正确答案:A34.单元测试中用来模拟被测模块调用者模块是()A、子模块B、父模块C、桩模块D、驱动模块正确答案:D35.大多数实际情况下,性能测试的实现方法是()A、白盒测试B、静态分析C、黑盒测试D、可靠性测试正确答案:C36.正式的技术评审FTR(Formal Technical Review)是软件工程师组织的软件质量保证活动,下面关于FTR指导原则中错误的是()A、要有严格的评审计划,并遵守日程安排B、限制参与者人数,并要求评审会之前做好准备C、评审产品,而不是评审生产者的能力D、对评审中出现的问题要充分讨论,以求彻底解决正确答案:D37.在进行单元测试时,常用的方法是()A、只使用白盒测试B、采用白盒测试,辅之以黑盒测试C、只使用黑盒测试D、采用黑盒测试,辅之以白盒测试正确答案:A38.单元测试中设计测试用例的依据是()A、用户需求规格说明书B、详细设计规格说明书C、项目计划说明书D、概要设计规格说明书正确答案:B39.下列项目中不属于测试文档的是()A、测试报告B、程序流程图C、测试用例D、测试计划正确答案:B40.测试ATM取款功能,已知取款数只能输入正整数,每次取款数要求是100的倍数且不能大于500,下面哪个是正确的无效等价类()A、<li>(0,100)、(100,200)、(200,300)、(300,400)、(400,500)、(500,+∞)</pre></li>B、<li>(500,+∞)</pre></li>C、<li>(500,+∞)、任意大于0小于500的非100倍数的整数</pre></li>D、<li>(-∞,100)、(100,200)、(200,300)、(300,400)、(400,500)、(500,+∞)</pre></li>正确答案:C41.在数据结构中,从逻辑上可以把数据结构分成()A、内部结构和外部结构B、线性结构和非线性结构C、紧凑结构和非紧凑结构D、动态结构和静态结构正确答案:B42.经验表明,在程序测试中,某模块与其他模块相比,若该模块已发现并改正的错误较多,则该模块中残存的错误数目与其他模块相比,通常应该()A、较少B、相似C、较多D、不确定正确答案:C43.通常可分为白盒测试和黑盒测试。

软件测试技术基础教程(第2版)习题答案

软件测试技术基础教程(第2版)习题答案

软件测试技术基础教程(第2版)习题答案第一章软件测试理论一、选择题1、C2、A3、D4、B5、D6、D7、B8、B二、简答题1.参考答案:软件测试是伴随着软件的产生而产生的。

在软件行业发展初期,没有系统意义上的软件测试,更多的是一种类似调试的测试,测试用例的设计和选取也都是根据测试人员的经验随机进行的,大多数测试的目的是为了证明系统可以正常运行。

到了20世纪70年代以后,很多测试理论和测试方法应运而生,逐渐形成了一套完整的体系。

在产业界,从20世纪70年代后期到20世纪80年代中期,很多软件企业成立了QA 或者SQA部门。

后来QA 的职能转变为流程监控(包括监控测试流程),而测试(Testing)则从QA 中分离出来成为独立的组织职能。

到了20世纪80年代初期,一些软件测试的基础理论和实用技术开始形成,软件测试作为软件质量保证(SQA)的主要职能,包含软件质量评价的内容。

软件测试已有了行业标准(IEEE/ANSI )。

在我国,软件测试目前还没有形成一个真正的产业,尚处于起步阶段。

但是,在国内,现在在软件测试行业中各种软件测试的方法、技术和标准都还在探索阶段。

总之,国内软件测试行业与一些发达国家相比还存在一定的差距。

2.参考答案:软件缺陷造成的修复费用随着时间的推移呈指数级地增长,如下图所示。

3.参考答案:软件测试的复杂性体现在:不可能对程序实现完全测试。

杀虫剂现象,即为了克服被测试软件的免疫力,软件测试员必须不断编写新的测试程序,对程序的各个部分进行不断测试,以避免被测试软件对单一的测试程序具有免疫力而使软件缺陷不被发现。

软件测试的代价不容易掌握,因为随着测试量的增加,测试成本将呈几何数级上升,而软件缺陷数量降低到某一数值之后将没有明显的变化,寻求最优测试点,掌握好测试工作量是至关重要的。

在实际操作过程中,测试人员要进行正确的判断,合理的取舍,根据风险分析来决定哪些故障需要修复,哪些故障可以不修复,即并不是所有的软件缺陷都需要被修复。

(完整word版)软件测试习题集及答案(详细版)(word文档良心出品)

(完整word版)软件测试习题集及答案(详细版)(word文档良心出品)

一、判断分析题1.软件测试的目的是尽可能多的找出软件的缺陷。

(Y)2.软件测试的目的是证明软件没有错误。

(N)3.测试组负责软件质量。

(N )4.程序的效率与程序的复杂性相关。

(N )5.软件是一种逻辑实体,而不是具体的物理实体,因而它具有抽象性。

(Y )6.测试程序仅仅按预期方式运行就行了。

(N )7.好的测试员不懈追求完美。

( Y)8.不存在质量很高但可靠性很差的产品。

(N )9.测试是为了验证该软件已正确地实现了用户的要求。

( N)10.发现错误多的程序模块,残留在模块中的错误也多。

(Y )11.程序效率的提高主要应通过选择高效的算法来实现。

( Y)12.测试人员要坚持原则,缺陷未修复完坚决不予通过。

(N)13.项目立项前测试人员不需要提交任何工件。

(Y)14.缺陷跟踪系统只针对对测试人员来使用。

(N )15.从用户软件开发者的角度出发,普遍希望通过软件测试暴露软件中隐藏的错误和缺陷,以考虑是否可接受该产品。

(N )16.软件项目在进入需求分析阶段,测试人员应该开始介入其中。

( Y)17.测试是提高产品质量根本手段。

()18.代码评审员一般由测试员担任。

(N)19.代码评审是检查源代码是否达到模块设计的要求。

(N)20.软件测试员可以对产品说明书进行白盒测试。

(N )21.静态白盒测试可以找出遗漏之处的问题。

(Y )22.总是首先设计白盒测试用例。

(N)23.用黑盒法测试时,测试用例是根据程序内部逻辑设计的。

(N)24.黑盒测试方法中最有效的是因果图法。

(Y )25.软件测试按照测试过程分类为黑盒、白盒测试。

(N)26.白盒测试又称结构测试、逻辑驱动测试或基于程序的测试。

(Y)27.白盒测试时一般由开发人员兼任测试人员的角色。

(Y)28.黑盒测试是从用户观点出发的测试。

(Y)29.白盒测试是从用户观点出发的测试。

(N)30.白盒测试根据程序外部特征进行测试,黑盒测试根据程序内部逻辑结构进行测试。

软件测试 课后习题答案

软件测试 课后习题答案

软件测试课后习题答案软件测试课后习题答案在软件开发过程中,软件测试是一个至关重要的环节。

通过测试,开发人员可以发现并修复软件中的错误,确保软件的质量和稳定性。

然而,软件测试并非一项简单的任务,需要测试人员具备一定的技能和知识。

下面是一些关于软件测试的课后习题及其答案,希望对大家有所帮助。

习题一:什么是软件测试?为什么软件测试如此重要?答案:软件测试是指通过运行软件系统或应用程序,以发现并评估其功能、性能、安全性等方面的问题的过程。

软件测试的目的是确保软件的质量和稳定性,以满足用户的需求和期望。

软件测试之所以重要,主要有以下几个原因:1. 发现错误:软件中可能存在各种错误和缺陷,通过测试可以发现并修复这些问题,提高软件的质量。

2. 提高可靠性:软件测试可以验证软件的可靠性和稳定性,确保软件在各种条件下都能正常运行。

3. 保证用户满意度:通过软件测试,可以确保软件符合用户的需求和期望,提高用户的满意度。

4. 节省成本和时间:及早发现和修复软件中的问题,可以避免后期修复的成本和时间浪费。

5. 增强竞争力:软件测试可以提高软件的质量和稳定性,增强企业的竞争力。

习题二:软件测试的基本原则是什么?答案:软件测试的基本原则包括以下几点:1. 全面性:测试应该覆盖软件的各个功能和模块,以确保所有可能的错误都能被发现。

2. 独立性:测试应该独立于开发过程,以确保测试结果的客观性和准确性。

3. 可重复性:测试应该能够被重复执行,以验证软件在不同环境和条件下的稳定性和可靠性。

4. 及早测试:测试应该尽早开始,以便在软件开发过程中及时发现和修复问题。

5. 风险导向:测试应该根据软件的重要性和风险程度进行优先级排序,以确保关键功能的测试覆盖率。

习题三:软件测试的常用方法有哪些?答案:软件测试的常用方法包括以下几种:1. 黑盒测试:测试人员只关注软件的输入和输出,不考虑内部实现细节,以验证软件的功能是否符合需求。

2. 白盒测试:测试人员了解软件的内部实现细节,以验证软件的逻辑正确性和代码覆盖率。

软件测试习题集及答案(详细版)解答

软件测试习题集及答案(详细版)解答

1.什么是软件测试?软件测试的目的和作用是什么?答:软件测试是在受控制的条件下对系统或应用程序进行操作并评价操作的结果。

软件测试的目的是以最少的时间和人力,系统地找出软件中潜在的各种错误和缺陷。

测试是为了证明程序有错,而不是证明程序无错。

一个成功的测试是发现了至今未发现的错误的测试。

软件测试的原则包括:所有的测试都应追溯到用户的需求;尽早地和不断地进行软件测试;不可能完全的测试,因为输入量太大,执行路径太多;注意测试中的群集现象;避免测试自己的程序;设计周密的测试用例。

2.软件缺陷产生的原因?答: A.软件需求说明书编写的不全面,不完整,不准确,而且经常更改 B.软件设计说明书 C.软件操作人员的水平 D.开发人员不能很好的理解需求明书和沟通不足3.软件测试的意义?意义:1.对产品质量完成全面的评估,为软件产品发布(如验收测试)、软件系统部署(如性能规划测试)、软件产品鉴定(第三方独立测试)委托方和被委托方纠纷仲裁(第三方独立测试)和其它决策提供信息;2.通过持续的测试(包括需求评审、设计评审、代码评审等)可以对产品质量提供持续的、快速的反馈,从而在整个开发过程中不断地、及时地改进产品的质量,并减少各种返工,降低软件开发的成本;3.通过测试发现所要交付产品的缺陷,特别是尽可能地发现各种严重的缺陷,降低或消除产品质量风险,提高客户的满意度,扩大市场份额,提高客户的忠诚度。

4.通过对缺陷进行分析,找出缺陷发生的根本原因(软件过程中的问题,包括错误的行为方式)或总结出软件产品的缺陷模式,避免将来犯同样的错误或产生类似的产品问题,达到缺陷预防的目的4.软件测试与软件开发的关系?答:软件开发是一个系统的工程。

包括需求分析,设计,编码,测试,维护等等几个环节。

测试是整个软件开发流程中的一个环节。

5.简述软件测试过程v模型和w模型的主要区别:V模型是软件开发完了之后才开始测试活动。

而W模型则是软件测试活动伴随着软件开发活动。

软件测试技术 课后习题答案

软件测试技术 课后习题答案

软件测试技术课后习题答案1. 什么是软件测试?软件测试是指在软件开发过程中,通过执行软件系统或组件,来评估其是否满足特定的需求和预期的质量标准的过程。

其目的是发现软件中的错误、缺陷和风险,从而提高软件的可靠性和质量。

2. 为什么需要进行软件测试?软件测试的目的是为了确保软件的可靠性和质量。

软件开发过程中难免会出现错误和缺陷,而这些错误和缺陷如果没有被及时发现和纠正,可能会导致软件运行时出现错误,甚至导致系统崩溃。

软件测试的目的是发现这些错误和缺陷,从而在软件发布之前将其修复,确保软件能够按照预期功能和质量要求运行。

3. 软件测试的基本原则有哪些?软件测试的基本原则包括:•完整性:测试应该尽可能覆盖软件的所有功能和执行路径。

•相互独立性:各个测试用例之间应该相互独立,一个测试用例的执行不应该影响到其他测试用例。

•可追踪性:每个测试用例都应该能够追溯到一个需求或一个特定的功能点,以确保测试的覆盖程度。

•可重复性:测试用例应该能够重复执行,以确保测试结果的一致性。

•及时性:测试应该在合适的时间进行,例如在开发过程中及时进行单元测试,而不是等到软件开发完成再进行集成测试或系统测试。

•客观性:测试应该客观地评估软件的质量,不受个人主观因素的影响。

4. 软件测试的基本步骤是什么?软件测试的基本步骤包括:1.需求分析:分析软件的需求,明确软件的功能和质量要求。

2.测试计划:制定测试计划,明确测试的目标、范围、方法和进度。

3.测试设计:设计测试用例,覆盖软件的各个功能和执行路径。

4.测试执行:执行测试用例,记录测试结果和错误信息。

5.错误修复:开发团队根据测试结果修复错误和缺陷。

6.重复测试:重新执行经过修复的测试用例,确认错误是否被修复。

7.测试报告:根据测试结果生成测试报告,评估软件的质量。

8.测试完成:经过多轮测试和修复后,确认软件达到预期的质量要求。

5. 什么是黑盒测试和白盒测试?黑盒测试是一种测试方法,测试人员只关注软件的输入和输出,而不考虑软件的内部结构和实现细节。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第1章软件测试概述1.简述软件测试的意义。

解:随着计算机技术的迅速发展和广泛深入的应用,软件质量问题已成为开发和使用软件人员关注的焦点。

而由于软件本身的特性,软件中的错误是不开避免的。

不断改进的开发技术和工具只能减少错误的发生,但是却不可能完全避免错误。

因此为了保证软件质量,必须对软件进行测试。

软件测试是软件开发中必不可少的环节,是最有效的排除和防治软件缺陷的手段,是保证软件质量、提高软件可靠性的最重要手段。

2.什么是软件缺陷?它的表现形式有哪些?解:从产品内部看,软件缺陷是软件产品开发或维护过程中所存在的错误、毛病等各种问题;从外部看,软件缺陷是系统所需实现的某种功能的失效或违背。

它的表现形式主要有以下几种:(1)软件未达到产品说明书中已经标明的功能;(2)软件出现了产品说明书中指明不会出现的错误;(3)软件未达到产品说明书中虽未指出但应当达到的目标;(4)软件功能超出了产品说明书中指出的范围;(5)软件测试人员认为软件难以理解、不易使用,或者最终用户认为该软件使用效果不良。

3.简单分析软件缺陷产生的原因,其中那个阶段引入的缺陷最多,修复成本又最低?解:软件缺陷产生的主要原因有:需求规格说明错误;设计错误;程序代码有误;其他。

其中在需求分析阶段引入的缺陷最多,修复的成本又最低。

4.当用户登录某网站购物完毕并退出后,忽然想查查购物时付账的总金额,于是按了浏览器左上角的“退回”按钮,就又回到了退出前的网页,你认为该购物软件有缺陷吗?如果有,属于哪一类?解:有缺陷。

其所属类别与软件产品说明书的要求有关。

5.什么是软件测试?简述其目的与原则。

解:软件测试是为了尽快尽早地发现在软件产品中所存在的各种软件缺陷而展开的贯穿整个软件开发生命周期,对软件产品(包括阶段性产品)进行验证和确认的活动过程。

测试目的:(1)证明:获取系统在可接受风险范围内可用的信心;尝试在非正常情况和条件下的功能和特性;保证一个工作产品是完整的并且可用或可被集成。

(2)检测:发现缺陷、错误和系统不足;定义系统的能力和局限性;提供组件、工作产品和系统的质量信息。

(3)预防:澄清系统的规格和性能;提供预防或减少可能制造错误的信息;在过程中尽早检测错误;确认问题和风险,并且提前确认解决这些问题和风险的途径。

测试过程中应注意和遵循的原则:(1)测试不是为了证明程序的正确性,而是为了证明程序不能工作。

(2)测试应当有重点。

(3)事先定义好产品的质量标准。

(4)软件项目一启动,软件测试也就开始,而不是等到程序写完才开始进行测试。

(5)穷举测试是不可能的。

(6)第三方进行测试会更客观,更有效。

(7)软件测试计划是做好软件测试工作的前提。

(8)测试用例是设计出来的,不是写出来的。

(9)对发现错误较多的程序段,应进行更深入的测试。

(10)重视文档,妥善保存一切测试过程文档。

6.件测试阶段是如何划分的?解:软件测试的阶段划分为:规格说明书审查;系统和程序设计审查;单元测试;集成测试;确认测试;系统测试;验收测试。

7.简述软件开发的几个模式,并说明每种模式对软件测试的影响。

解:大棒模式简单,计划、进度安排和正规开发过程几乎没有,其开发过程是非工程化的。

大棒模式的软件测试通常在开发任务完成后进行,很难回头修复存在的问题,测试工作只是向客户报告软件经过测试后发现的情况。

边写边改模式通常最初只有粗略的想法就进行简单的设计,然后开始较长的反复编写、测试和修复过程,在认为无法更精细地描述软件产品要求时就发布产品。

该模式下,软件测试人员将和程序员一起陷入可能是长期的循环往复过程。

瀑布模式将软件生命周期的各项活动规定为按照固定顺序相连的若干个阶段性工作,形如瀑布流水,最终得到软件产品。

软件测试在后期展开,使得开发中出现的问题直到开发后期才显露,失去了及早纠正的机会。

快速原型模式首先构造一个功能简单的原型系统,然后通过对原型系统逐步求精,不断扩充完善得到最终的软件系统。

原型系统在扩充完善过程中不断被检查、测试和修改。

螺旋模式是瀑布模式与边写边改模式演化结合的形式,并加入了风险评估所建立的软件开发模式,其主要思想是在开始时不必详细定义所有细节,而是从小开始,定义重要功能,尽量实现,接受客户反馈,进入下一阶段并重复上述过程,直到获得最终产品。

测试在每个阶段都要进行,并从最初就参与。

8.简述软件测试过程。

解:软件测试过程主要包括如下6个活动:测试计划;测试需求分析;测试设计;测试规程实现;测试执行;总结生成报告。

9.“软件测试能够保证软件的质量”这句话对吗?软件测试和软件质量之间是什么关系?解:不对。

软件测试是保障软件质量的手段之一,但不是唯一手段。

测试是产品高质量的必要非充分条件,软件测试不能决定软件质量。

10.判断以下说法是否正确。

(1)软件测试和软件调试是同一回事。

(2)软件测试是可以无穷尽的。

(3)测试是为了证明软件的正确性。

(4)测试过程中应重视测试的执行,可以轻视测试的设计。

(5)测试不能修复所有的软件故障。

(6)因为测试工作简单,对软件产品影响不大,所以可以把测试作为新员工的一个过渡工作,或安排不合格的开发人员做测试。

解:(1)(2)(3)(4)(6)错误,(5)正确。

11.简述软件开发进程与测试进程的关系。

解:软件测试是一个贯穿软件开发生命周期的活动,它可以是一个与开发并行的过程,也可以是在开发完成某个阶段任务之后的活动。

第2章软件测试方法与过程1.对软件测试的复杂性进行归纳分析。

解:软件测试的复杂性在于:无法对程序进行完全的测试;测试无法保证被测程序中无遗留错误;不能修复所有的软件故障。

2.分别解释什么是静态测试、动态测试、黑盒测试、白盒测试、人工测试和自动化测试。

解:所谓静态测试是指不运行被测软件,仅通过分析或检查等其他手段达到检测的目的。

所谓动态测试是指通过运行被测软件,检查运行结果与预期结果的差异,并分析运行效率和健壮性等性能。

黑盒测试是指在对程序进行的功能抽象的基础上,将程序划分成功能单元,然后对每个功能单元生成测试数据进行测试。

用这种方法进行测试时,被测程序被当作打不开的黑盒,因而无法了解其内部构造,因此又称为功能测试。

白盒测试又称为结构测试或逻辑驱动测试,它是知道产品内部工作过程,可通过测试来检测产品内部动作是否按照规格说明书的规定正常进行,按照程序内部的结构测试程序,检验程序中的每条通路是否都有能按预定要求正确工作,而不顾它的功能。

广义上,人工测试是人为测试和手工测试的统称。

人为测试的主要方法有桌前检查,代码审查和走查。

手工测试指的是在测试过程中,按测试计划一步一步执行程序,得出测试结果并进行分析的测试行为。

自动化测试指的是利用测试工具来执行测试,并进行测试结果分析的测试行为。

3.如果没有软件规格说明或需求文档,可以进行动态黑盒测试吗?为什么?解:不行。

因为黑盒测试是基于软件规格说明的测试。

4.在单元测试中,所谓单元是如何划分的?解:单元测试的对象通常是软件设计的最小逻辑单元,单元的划分在面向过程的结构化程序中一般是函数或子过程,在面向对象的程序中可以是类或类的成员函数。

5.简述单元测试的主要任务。

解:单元测试的主要任务是:模块接口测试;局部数据结构测试;路径测试;错误处理测试;边界测试。

6.如果开发时间紧迫,是否可以跳过单元测试而直接进行集成测试?为什么?解:不可以。

因为没有经过单元测试的模块会遗留大量的缺陷到集成测试阶段,而在集成测试阶段对这些缺陷定位困难,导致后续工作展开困难,修复缺陷成本成指数级增长。

7.什么是驱动模块和桩模块?为下面的函数构造一个驱动模块。

int divide(int a, int b){int c;if (b==0) {printf("除数不能为0"); return 0;}c=a/b;return c;}解:驱动模块是用以模拟被测模块的上级模块,它接收测试数据,传送数据给被测模块,启动被测模块,最后输出实测结果。

桩模块用以模拟被测模块工作过程中所调用的子模块。

函数驱动模块:void main( ){int x,y,z;scanf(“%d%d”,&x,&y);z=divide(x,y);printf(“%d”,z);}8.什么是回归测试?什么时候进行回归测试?解:回归测试就是重新运行现有测试用例测试原有功能,以便确定变更是否达到了预期的目的,检查变更是否损害了原有的正常功能。

每当软件发生变化时就应进行回归测试。

9.集成测试有哪些不同的集成方法?简述不同方法的特点。

解:集成测试通常有一次性集成、自顶向下集成、自底向上集成和混合集成4种集成方法。

一次性集成方法需要的测试用例数目少,测试方法简单、易行。

但是由于不可避免存在模块间接口、全局数据结构等方面的问题,所以一次运行成功的可能性不大;如果一次集成的模块数量多,集成测试后可能会出现大量的错误,给程序的错误定位与修改带来很大的麻烦;即使集成测试通过,也会遗漏很多错误进入系统测试。

自顶向下集成在测试的过程中,可以较早地验证主要的控制和判断点;一般不需要驱动程序,减少了测试驱动程序开发和维护的费用;可以和开发设计工作一起并行执行集成测试,能够灵活的适应目标环境;容易进行故障隔离和错误定位。

但是在测试时需要为每个模块的下层模块提供桩模块,桩模块的开发和维护费用大;桩模块不能反映真实情况,重要数据不能及时回送到上层模块,导致测试不充分;涉及复杂算法和真正I/O的底层模块最易出问题,在后期才遇到导致过多的回归测试。

自底向上集成可以尽早的验证底层模块的行为;提高了测试效率;一般不需要桩模块;容易对错误进行定位。

但是直到最后一个模块加进去之后才能看到整个系统的框架;驱动模块的设计工作量大;不能及时发现高层模块设计上的错误。

混合集成具有自顶向下和自底向上两种集成策略的优点,但是在被集成之前,中间层不能尽早得到充分的测试。

10.系统测试主要包括哪些内容?解:系统测试主要包括强度测试、性能测试、恢复测试、安全测试、可靠性测试、安装测试、容量测试和文档测试。

11.验收测试是由谁完成的?通常包含哪些过程?解:验收测试是以用户为主的测试,软件开发人员和QA(质量保证)人员也应参加。

通常包含α测试和β测试过程。

12.分析比较面向对象的软件测试与传统的软件测试的异同。

解:传统的单元测试的对象是软件设计的最小单位——模块。

当考虑面向对象软件时,单元的概念发生了变化,此时最小的可测试单位是封装的类或对象,而不再是个体的模块。

传统单元测试主要关注模块的算法实现和模块接口间数据的传递,而面向对象的单元测试主要考察封装在一个类中的方法和类的状态行为。

面向对象软件没有层次的控制结构,因此传统的自顶向下和自底向上集成策略就不再适合,它主要有以下两种集成策略:基于类间协作关系的横向测试;基于类间继承关系的纵向测试。

相关文档
最新文档