软件测试三四章作业-冯时雨
- 格式:doc
- 大小:118.50 KB
- 文档页数:6
2005年●在系统转换的过程中,旧系统和新系统并行工作一段时间,再由新系统代替旧系统的策略称为___(20)____;在新系统全部正式运行前,一部分一部分地代替旧系统的策略称为_____(21)_____。
(20)A.直接转换B.位置转换C.分段转换D.并行转换(21)A.直接转换B.位置转换C.分段转换D.并行转换●采用瀑布模型进行系统开发的过程中,每个阶段都会产生不同的文档。
以下关于产生这些文档的描述中,正确的是_____(25)____。
(25)A.外部设计评审报告在概要设计阶段产生B.集成测评计划在程序设计阶段产生C.系统计划和需求说明在详细设计阶段产生D.在进行编码的同时,独立的设计单元测试计划●关于软件测试对软件质量的意义,有以下观点:①度量与评估软件的质量;②保证软件质量;③改进软件开发过程;④发现软件错误。
其中正确的是_____(41)____。
(41)A.①、②、③B.①、②、④C.①、③、④D.①、②、③、④●软件质量的定义是_____(42)____。
(42)A.软件的功能性、可靠性、易用性、效率、可维护性、可移植性B.满足规定用户需求的能力C.最大限度达到用户满意D.软件特性的总和,以及满足规定和潜在用户需求的能力●某软件公司在招聘软件评测师时,应聘者甲向公司做如下保证:①经过自己测试的软件今后不会再出现问题;②在工作中对所有程序员一视同仁,不会因为在某个程序员编写的程序中发现的问题多,就重点审查该程序,以免不利于团结;③承诺不需要其他人员,自己就可以独立进行测试工作;④发扬咬定青山不放松的精神,不把所有问题都找出来,决不罢休;你认为应聘者甲的保证___(43)___。
(43)A.①、④是正确的B.②是正确的C.都是正确的D.都不正确●软件测试的对象包括_____(44)____。
(44)A.目标程序和相关文档B.源程序、目标程序、数据及相关文档C.目标程序、操作系统和平台软件D.源程序和目标程序●软件测试类型按开发阶段划分是_____(45)____。
ZWQ_ISTQBFL模拟题_2015_NO.1ISTQB FL初级认证模拟题(2013版V1.5)作者:郑⽂强个⼈声明1.本模拟题完全依据ISTQB初级认证⼤纲学习⽬标⽽编写,感谢ISTQB组织及作者提供的ISTQB知识体系;2.本模拟题只代表作者本⼈对ISTQB的理解,作者不对使⽤该模拟题⽽造成的任何后果负责;3.本模拟题只供软件测试爱好者个⼈学习使⽤,不能⽤于任何商业⽤途;ISTQB FL初级认证考题分布章节 K1 K2 K3 K4 Total1. 软件测试基础 4 3 0 0 72. 软件⽣命周期中的测试 4 2 0 0 63. 静态技术 210 0 34. 测试设计技术 4251125. 测试管理 3320 86. 软件测试⼯具 310 0 4Total 20 12 7 1 40ISTQB FL初级认证考题总共40道,每道题⽬的分值是1分,满分40分。
考试通过的要求是26及以上,即65%及以上的通过率。
作者简介:郑⽂强ISTQB认证讲师,CSTQB资深专家,⾸批ISTQB⾼级证书获得者, ISO 29119镜像⼯作组专家。
超过14年的软件测试、测试管理和测试能⼒改进实践经验。
先后在中兴通讯、阿尔卡特、朗讯科技等⼤型通讯/软件企业从事软件测试、测试管理、质量管理以及测试能⼒改进等⼯作。
擅长测试⽤例设计、测试过程监控和管理、探索性测试、基于风险的测试、测试过程分析和改进、根本原因分析RCA和缺陷预防等。
联系⽅式:1.测试QQ群:217 032 0222.个⼈⽹站:/doc/6bc52db3be23482fb5da4c02.html /主要课程:1.问题驱动的软件测试设计/⾼效测试:测试设计与执⾏的敏捷化2.全⽅位的软件测试管理/软件测试知识体系实战3.ISTQB认证考试培训(ISTQB认证讲师)主要作品:1.《软件测试管理》,郑⽂强、马均飞,电⼦⼯业出版社(2010年)2.《软件测试设计》,马均飞、郑⽂强,电⼦⼯业出版社(2011年)3.《软件测试基础教程》(第2版),郑⽂强等译,⼈民邮电出版社(2009年)4.《⾼级软件测试 - 卷1:⾼级软件测试分析员》,郑⽂强等译,清华⼤学出版社(2011年)5.《⾼级软件测试 - 卷2:⾼级软件测试经理》,郑⽂强等译,清华⼤学出版社(2012年)6.《软件测试基础教程》,郑⽂强等编著,清华⼤学出版社(2015年)第⼀章软件测试基础1. (K1) 下列关于错误、缺陷和失效的观点正确的是:A) ⼈都会犯错误,因此由⼈设计的程序也会引⼊缺陷;B) 只要软件中存在缺陷,那么就会产⽣失效;C) 失效主要是由⼈的错误造成的,和环境条件没有关系;D) 当存在缺陷的代码被执⾏时,才可能引发软件错误;2.(K1) 以下不属于软件测试的作⽤的是:A) 可以减少软件系统在运⾏环境中的风险;B) 可以提⾼软件系统的质量;C) 可能是为了满⾜合同或法律法规的要求;D) 可以⽤于评价开发团队的能⼒;3.(K1) 在判断测试是否⾜够时,下列哪些⽅⾯是不需要考虑的?A) 风险;B) 项⽬在时间上的限制;C) 项⽬在预算上的限制;D) 投⼊测试⼈员的数量;4. (K1) 以下哪个不是软件测试的⽬标?A) 发现缺陷;B) 增加对质量的信⼼;C) 为决策提供信息;D) 改进测试流程;5. (K2) 下列关于不同的测试阶段的描述错误的是:A) 维护测试通常是为了验证缺陷是否被正确修复;B) 组件测试的主要⽬标是尽可能的发现失效,从⽽识别和修正尽可能多的缺陷;C) 验收测试的主要⽬标是确认系统是否按照预期⼯作,从⽽增加信⼼;D) 不同测试阶段,其测试⽬标是不同的;6. (K2) 软件测试基本过程有哪些主要阶段组成?(1) 计划和控制(2) 分析和设计(3) 实施和执⾏(4) 评估出⼝准则和报告(5) 测试结束活动A) 1,3,5B) 1,2,3C) 2,3,4,5D) 1,2,3,4,57. (K2) “规划测试环境的搭建和确定测试需要的基础设施和⼯具”,属于下⾯的哪个阶段?(A) 计划和控制(B) 分析和设计(C) 实施和执⾏(D) 评估出⼝准则和报告第⼆章软件⽣命周期中的测试8. (K1) 典型V模型的测试级别分别是什么?(1) 组件测试(2) 集成测试(3) 系统测试(4) 系统集成测试(5) 验收测试(A) 1,2,3(B) 2,3,4,5(C) 1,2,3,5(D) 1,2,3,4,59. (K1) 下列关于迭代-增量开发模型描述错误的是?(A) 在每次迭代过程中,对迭代产⽣的系统可能需要在不同的测试级别上进⾏测试;(B) 迭代-增量开发模型由于发布周期更短,所以要优于V模型;(C) 在完成第⼀次迭代后,对所有迭代进⾏回归测试会变得越来越重要;(D) 验证和确认可以在每个增量模块中进⾏;10. (K1) 以下哪个不属于良好的测试应该具有的特点?(A) 每个开发活动都有相对应的测试活动;(B) 每个测试级别都有其特有的测试⽬标;(C) 对于每个测试级别,需要在相应的开发活动过程中进⾏相应的测试分析和设计;(D) 在开发⽣命周期中,测试员应该在⽂档正式发布后马上参与⽂档的评审;11. (K1) 对于每个测试级别,都需要明确哪些内容?(1) 测试的总体⽬标(2) 测试⽤例设计需要参考的⼯作产品(即测试的依据)(3) 测试的对象(即测试什么)(4) 发现的典型缺陷和失效(5) 对测试⽤具的需求(6) 测试⼯具的⽀持(7)专门的⽅法和职责(A) 1,2,3,4(B) 1,3,5,6,7(C) 2,3,4,5,6(D) 1,2,3,4,5,6,712. (K2) 下⾯哪个通常不作为组件/单元测试的测试依据?(A) 组件需求说明(B) 详细设计⽂档(C) 代码(D) 软件和系统设计⽂档13. (K2) 下⾯关于验收测试的观点错误的是?(A) 系统操作验收测试由系统管理员来进⾏(B) 验收测试主要应⽤于系统测试级别(C) Alpha 测试通常在开发组织现场进⾏,但测试并⾮由开发团队执⾏。
1.2.3.4.5.6.7.8.9.10.11.12.13.14.15. 一、判断分析题软件测试的目的是尽可能多的找出软件的缺陷。
软件测试的目的是证明软件没有错误。
( N)测试组负责软件质量。
(N )程序的效率与程序的复杂性相关。
(N )Y)软件是一种逻辑实体,而不是具体的物理实体,因而它具有抽象性。
测试程序仅仅按预期方式运行就行了。
(N )好的测试员不懈追求完美。
( Y)不存在质量很高但可靠性很差的产品。
(N )测试是为了验证该软件已正确地实现了用户的要求。
发现错误多的程序模块,残留在模块中的错误也多。
程序效率的提高主要应通过选择高效的算法来实现。
测试人员要坚持原则,缺陷未修复完坚决不予通过。
项目立项前测试人员不需要提交任何工件。
缺陷跟踪系统只针对对测试人员来使用。
从用户软件开发者的角度出发,以考虑是否可接受该产品。
(N )16. 软件项目在进入需求分析阶段,17. 测试是提高产品质量根本手段。
18.代码评审员一般由测试员担任。
19.20.21.22.23.24.25.26.27.28.29.30.31.Y)(N )( N)(Y)( Y)N)(Y )普遍希望通过软件测试暴露软件中隐藏的错误和缺陷,测试人员应该开始介入其中。
( Y)N)代码评审是检查源代码是否达到模块设计的要求。
软件测试员可以对产品说明书进行白盒测试。
静态白盒测试可以找出遗漏之处的问题。
总是首先设计白盒测试用例。
(N)N)(N ) (Y )用黑盒法测试时,测试用例是根据程序内部逻辑设计的。
黑盒测试方法中最有效的是因果图法。
(Y )软件测试按照测试过程分类为黑盒、白盒测试。
(N) 白盒测试又称结构测试、逻辑驱动测试或基于程序的测试。
白盒测试时一般由开发人员兼任测试人员的角色。
黑盒测试是从用户观点出发的测试。
( Y)白盒测试是从用户观点出发的测试。
( N) (N)Y)白盒测试根据程序外部特征进行测试,黑盒测试根据程序内部逻辑结构进行测试。
初中生软件测试题及答案1. 软件测试的目的是什么?A. 修复软件中的所有错误B. 证明软件不存在任何错误C. 验证软件是否满足需求规格说明D. 确保软件在所有情况下都能正常运行答案:C2. 黑盒测试和白盒测试的主要区别是什么?A. 黑盒测试关注软件的内部结构,白盒测试关注软件的功能B. 黑盒测试关注软件的功能,白盒测试关注软件的内部结构C. 黑盒测试和白盒测试都是关注软件的内部结构D. 黑盒测试和白盒测试都是关注软件的功能答案:B3. 以下哪个是软件测试的类型?A. 单元测试B. 集成测试C. 系统测试D. 所有选项答案:D4. 什么是回归测试?A. 测试软件的新功能B. 测试软件的旧功能C. 在软件修改后重新测试以确保修改没有引入新的错误D. 测试软件的安全性答案:C5. 软件测试的基本原则包括哪些?A. 测试显示存在缺陷B. 穷尽测试是不可能的C. 早期测试D. 所有选项答案:D6. 什么是性能测试?A. 测试软件是否符合用户界面的要求B. 测试软件在不同硬件和软件配置下的行为C. 测试软件在正常和峰值负载下的行为D. 测试软件的安全性答案:C7. 软件测试过程中,哪个阶段通常涉及用户参与?A. 单元测试B. 集成测试C. 系统测试D. 验收测试答案:D8. 什么是兼容性测试?A. 测试软件在不同操作系统下的行为B. 测试软件在不同硬件配置下的行为C. 测试软件与其他软件的交互D. 所有选项答案:D9. 什么是压力测试?A. 测试软件在正常工作条件下的行为B. 测试软件在极端工作条件下的行为C. 测试软件在用户界面方面的表现D. 测试软件的安全性答案:B10. 什么是冒烟测试?A. 测试软件的所有功能B. 测试软件的基本功能以确保主要功能正常工作C. 测试软件的安全性D. 测试软件的性能答案:B。
—、基本概念软件测试的基本任务动态测试与静态测试驱动模块与桩模块程序的三种基本控制结构程序效率软件软件工程软件生存周期非入侵式工具与入侵式工具二、判断题( )1.语句构造的原则是简单直接,不能因为追求效率而使代码复杂化( )2.文档是软件产品的一部分,没有文档的软件就不称其为软件。
( )3.好的测试是用少量的测试用例运行程序,发现被测程序尽可能多的错误。
( )4.边界值分析方法是取输入/输出等价类的边界值作为测试用例。
( )5.在软件开发的过程中,若能推迟暴露其中的错误,则为修复和改正错误所花费的代价就会降低。
( )6.好的测试用例应能证明软件是正确的。
( )7.白盒测试仅与程序的内部结构有关,可以不考虑程序的功能要求。
( )&当软件开发项目的进度有可能拖延时,增加开发人员并不能加快进度。
( )9.不完善的系统定义往往是导致软件项目失败的主要原因。
( )10. 一个成功的项目唯一提交的就是运行程序。
( )11. 一个好的测试用例在于能发现至今未发现的错误。
( )12.软件工程的考虑范围主要是程序设计和实现。
( )13.等价类划分方法将所有可能的输入数据划分成若干部分,然后从每一部分中选取少数有代表性的数据作为测试用例。
( )14.在结构化程序设计中,应尽量采用复合的条件测试,以避免嵌套的分支结构( )15. GOTO语句概念简单,使用方便,在某些情况下,保留GOTO语句反能使写出的程序更加简洁。
( )16.发现错误多的程序模块,残留在模块中的错误也多。
( )17.程序效率的提高主要应通过选择高效的算法来实现。
( )1&模块化程序设计中,在主存储器能够容纳得下的前提下,应使模块尽可能大,以便减少模块的个数。
( )19.作为一个好的程序,不仅处理速度要快,而且易读易修改等等也都是重要的条件。
( )20.为了快速完成集成测试,采用一次性集成方式是适宜的。
( )21.自底向上集成需要测试员编写驱动程序。
计算机四级《软件测试工程师》模拟试题三答案及解析2015计算机四级《软件测试工程师》模拟试题(三)答案及解析一、选择题1.分析:缺陷处于激活状态,即是问题还没有解决,测试人员新报告的缺陷,或验证后缺陷仍然存在。
2.分析:白盒测试是对程序的逻辑结构进行的测试,而黑盒测试将程序视为一个黑盒子,仅仅是测试人员提供数人数据,观察输出数据,并不了解程序是如何运行的。
结构测试属于白盒测试,关注的是如何选择合适的程序或子程序路径来执行有效的检查。
功能测试则属于黑盒测试,对功能的测试通常通过提供输入数据,检查实际输出的结果,很少考虑程序的内部结构。
静态测试是不必执行程序,仅是收集有关程序代码的结构信息。
3.分析:在极限测试中,软件测试通常要在编程之前先设计测试用例。
需求规格说明、概要设计规格说明、详细设计规格说明、源程序这些都是属于软件测试的对象。
错误改正代价与发现的时间是呈现指数增长的趋势。
而选项B说法是完全正确的。
4.分析:在题目所述逻辑覆盖中,路径覆盖是最强的覆盖准则。
5.分析:因果图方法是根据输入和输出之间的因果关系设计测试用例的。
6.分析:考察软件测试的目的。
7.分析:仅根据规格说明书描述的程序功能来设计测试用例的方法称为黑盒测试法。
8.分析:黑盒测试主要用于测试软件的外部功能。
9.分析:软件开发需求分析对应的是测试阶段的确认测试,软件设计对应的是集成测试,编码阶段对应的是单元测试。
10.分析:考察白盒测试中逻辑覆盖的关系。
11.分析:由于自顶向下测试的特点可知,该集成测试方法是能够较早发现高层模块接口错误的。
12.分析:考察软件测试的信息流输入,软件配置、测试配置和测试工具都属于测试流的输入信息。
13.分析:A选项B和选项D颠倒,而确认测试与编码是没有关系的,故选项C也不正确,只有A说法是正确的。
14.分析:在软件质量特性中,可复用的软件部件所占的比例一般不会作为系统测试的重点。
15.分析:通常来说,软件缺陷大多数是来自软件开发项目的需求和设计阶段的。
西北师范大学软件测试课后作业作者:刘恩学号:201371020117班级:13届软件一班软件测试课程作业姓名:刘恩学号:201371020117习题一1.选择题(1)C 下列关于导致软件质量缺陷的原因描述中不正确的是(程序员编码水平低下是导致软件缺陷的最主要原因)。
(2)D 缺陷产生的原因是(交流不充分及沟通不畅、软件需求的变更、软件开发工具的缺陷;软件的复杂性、软件项目的时间压力;程序开发人员的错误、软件项目文档的缺乏)。
2.判断题(1)缺乏有力的方法学指导和有效的开发工具的支持,往往是产生软件危机的原因之一。
(√)(2)目前的绝大多数软件都不适合于快速原型技术。
(×)(3)在程序运行之前没办法评估其质量。
(×)(4)下列哪些活动是项目?探索火星生命迹象。
(√)向部门经理进行月工作汇报。
(×)开发新版本的操作系统。
(√)每天的卫生保洁。
(×)组织超级女声决赛。
(√)一次集体婚礼。
(√)3.简答题(1)软件:程序+数据+文档软件经历的发展阶段:第一阶段程序设计阶段 20世纪50年代初期至60年代中期;第二阶段程序系统阶段 20世纪60年代中期至70年代末期;第三阶段软件工程阶段 20世纪70年代中期至80年代中期;第四阶段 C/S体系结构,即客户端/服务器体系结构 80年代中期至今。
(2)软件质量与软件测试的关系:软件测试是以评价一个程序或者关系属性为目标的任何一种活动,是对软件质量的度量。
测试是手段,质量是目的。
(3)软件质量框架定义及内容:1>前提:说明了软件框架的适用范围以及适合的环境。
2>价值观:说明了软件质量框架中强调的价值。
3>结构:定义了软件质量框架的组成部分以及软件质量框架和开发过程之间的关系。
4>优秀实践:通过具体、实际的分析、举例,深入阐述了软件质量框架的价值观和结构。
(4)CMM定义:软件能力成熟度模型,用来定义和评价软件公司开发过程的成熟度,为提高软件质量提供指导。
1.什么是软件测试?软件测试的目的和作用是什么?答:软件测试是在受控制的条件下对系统或应用程序进行操作并评价操作的结果。
软件测试的目的是以最少的时间和人力,系统地找出软件中潜在的各种错误和缺陷。
测试是为了证明程序有错,而不是证明程序无错。
一个成功的测试是发现了至今未发现的错误的测试。
软件测试的原则包括:所有的测试都应追溯到用户的需求;尽早地和不断地进行软件测试;不可能完全的测试,因为输入量太大,执行路径太多;注意测试中的群集现象;避免测试自己的程序;设计周密的测试用例。
2.软件缺陷产生的原因?答: A.软件需求说明书编写的不全面,不完整,不准确,而且经常更改 B.软件设计说明书 C.软件操作人员的水平 D.开发人员不能很好的理解需求明书和沟通不足3.软件测试的意义?意义:1.对产品质量完成全面的评估,为软件产品发布(如验收测试)、软件系统部署(如性能规划测试)、软件产品鉴定(第三方独立测试)委托方和被委托方纠纷仲裁(第三方独立测试)和其它决策提供信息;2.通过持续的测试(包括需求评审、设计评审、代码评审等)可以对产品质量提供持续的、快速的反馈,从而在整个开发过程中不断地、及时地改进产品的质量,并减少各种返工,降低软件开发的成本;3.通过测试发现所要交付产品的缺陷,特别是尽可能地发现各种严重的缺陷,降低或消除产品质量风险,提高客户的满意度,扩大市场份额,提高客户的忠诚度。
4.通过对缺陷进行分析,找出缺陷发生的根本原因(软件过程中的问题,包括错误的行为方式)或总结出软件产品的缺陷模式,避免将来犯同样的错误或产生类似的产品问题,达到缺陷预防的目的4.软件测试与软件开发的关系?答:软件开发是一个系统的工程。
包括需求分析,设计,编码,测试,维护等等几个环节。
测试是整个软件开发流程中的一个环节。
5.简述软件测试过程v模型和w模型的主要区别:V模型是软件开发完了之后才开始测试活动。
而W模型则是软件测试活动伴随着软件开发活动。
第四章习题一、选择题1. 从供选择的答案中选出应填入下列< >中的字句.软件测试的目的是〔 A 〕.为了提高测试的效率,应该〔 B 〕.使用白盒测试方法时,确定测试数据应根据〔 C 〕和指定的覆盖标准.与设计测试数据无关的文档是〔 D 〕.软件的集成测试工作最好由〔 E 〕承担,以提高集成测试的效果.供选择的答案:A. ①评价软件的质量②发现软件的错误③找出软件中的所有错误④证明软件是正确的B. ①随机地选取测试数据②取一切可能的输入数据作为测试数据③在完成编码以后制定软件的测试计划④选择发现错误的可能性大的数据作为测试数据C. ①程序的内部逻辑②程序的复杂程度③使用说明书④程序的功能D. ①该软件的设计人员②程序的复杂程度③源程序④项目开发计划E. ①该软件的设计人员②该软件开发组的负责人③该软件的编程人员④不属于该软件开发组的软件设计人员2. 请从供选择的答案中选出应填入下列〔〕中的字句.程序的三种基本控制结构是〔 A 〕.它们的共同点是〔 B 〕.结构化程序设计的一种基本方法是〔 C 〕.软件测试的目的是〔 D 〕.软件调试的目的是〔 E 〕.供选择的答案:A. ①过程,子程序,分程序②顺序,条件,循环③递归,堆栈,队列④调用,返回,转移B. ①不能嵌套使用②只能用来写简单的程序③已经用硬件实现④只有一个入口和一个出口C. ①筛选法②递归法③归纳法④逐步求精法D. ①证明程序中没有错误②发现程序中的错误③测量程序的动态特性④检查程序中的语法错误E. ①找出错误所在并改正之②排除存在错误的可能性③对错误性质进行分类④统计出错的次数3. 从下列关于软件测试的叙述中,选出5条正确的叙述.<1> 用黑盒法测试时,测试用例是根据程序内部逻辑设计的.<2> 尽量用公共过程或子程序去代替重复的代码段.<3> 测试是为了验证该软件已正确地实现了用户的要求.<4> 对于连锁型分支结构,若有n个判定语句,则有2n条路径.<5> 尽量采用复合的条件测试,以避免嵌套的分支结构.<6> GOTO语句概念简单,使用方便,在某些情况下,保留GOTO语句反能使写出的程序更加简洁.<7> 发现错误多的程序模块,残留在模块中的错误也多.<8> 黑盒测试方法中最有效的是因果图法.<9> 在做程序的单元测试时,桩〔存根〕模块比驱动模块容易编写.<10> 程序效率的提高主要应通过选择高效的算法来实现.4. 从供选择的答案中选出同下列关于软件测试的各条叙述关系最密切的字句.<1> 对可靠性要求很高的软件,例如操作系统,由第三者对源代码进行逐行检查.<2> 已有的软件被改版时,由于受到变更的影响,改版前正常的功能可能发生异常,性能也可能下降.因此,对变更的软件进行测试是必要的.<3> 在意识到被测试模块的内部结构或算法的情况下进行测试.<4> 为了确认用户的需求,先做出系统的主要部分,提交给用户试用.<5> 在测试具有层次结构的大型软件时,有一种方法是从上层模块开始,由上到下进行测试.此时,有必要用一些模块替代尚未测试过的下层模块.供选择的答案:A ~ E:①仿真器②代码审查③模拟器④桩模块⑤驱动器⑥域测试⑦黑盒测试⑧原型⑨白盒测试⑩退化测试5. 从供选择的答案中选出应填入下面有关软件测试的叙述的〔〕内的正确答案.软件测试方法可分为黑盒测试法和白盒测试法两种.黑盒测试法是通过分析程序的〔 A 〕来设计测试用例的方法.除了测试程序外,它还适用于对〔 B 〕阶段的软件文档进行测试.白盒测试法是根据程序的〔 C 〕来设计测试用例的方法.除了测试程序外,它也适用于对〔 D 〕阶段的软件文档进行测试.白盒法测试程序时常按照给定的覆盖条件选取测试用例.〔 E 〕覆盖比〔 F 〕覆盖严格,它使得每一个判定的每一条分支至少经历一次.〔 G 〕覆盖既是判定覆盖,又是条件覆盖,但它并不保证使各种条件都能取到所有可能的值.〔 H 〕覆盖比其他条件都要严格,但它不能保证覆盖程序中的每一条路径.单元测试一般以〔 I 〕为主,测试的依据是〔 J 〕.供选择的答案:A, C:①应用X围②内部逻辑③功能④输入数据B, D:①编码②软件详细设计③软件总体设计④需求分析E, F, G, H:①语句②判定③条件④判定/条件⑤多重条件⑥路径I:①白盒法②黑盒法J:①模块功能规格说明②系统模块结构图③系统需求规格说明6. 从供选择的答案中选出应该填入下列关于软件测试的叙述的< >内的正确答案.软件测试中常用的静态分析方法是〔 A 〕和〔 B 〕.〔 B 〕用于检查模块或子程序间的调用是否正确.分析方法〔白盒方法〕中常用的方法是〔 C 〕方法.非分析方法〔黑盒方法〕中常用的方法是〔 D 〕方法和〔 E 〕方法.〔 E 〕方法根据输出对输入的依赖关系设计测试用例.供选择的答案:A ~ B:①引用分析②算法分析③可靠性分析④效率分析⑤接口分析⑥操作分析C ~ E:①路径测试②等价类③因果图④归纳测试⑤综合测试⑥追踪⑦深度优先⑧调试⑨相对图二、简答题1.编程时使用的程序设计语言,对软件的开发与维护有何影响?2.如果一个程序有两个输入数据,每个输入都是一个32位的二进制整数,那么这个程序有多少个可能的输入?如果每微妙可进行一次测试,那么对所有可能的输入进行测试需要多长时间?3.假设有一个由5000行FORTRAN语句构成的程序〔经编译后大约有25000条机器指令〕,你估计在对它进行测试期间将发现多少个错误?为什么?4.设计下列伪码程序的语句覆盖和路径覆盖测试用例:STARTINPUT<A,B,C>IF A>5THEN X=10ELSE X=1END IFIF B>10THEN Y=20ELSE Y=2END IFIF C>15THEN Z=30ELSE Z=3END IFPRINT<A,B,C>STOP5.设计下列伪码程序的分支覆盖和条件组合覆盖测试用例:STARTINPUT<A,B,C,D>IF <A>0> AND <B>0>THEN X=A+BELSE X=A-BENDIF <C>A> OR <DTHEN Y=C-DELSE Y=C+DENDPRINT<X,Y>STOP6.使用基本路径测试方法,设计测试下面列出的伪码程序的测试用例:1:STARTINPUT<A,B,C,D>2:IF <A>0>3: AND <B>0>4:THEN X=A+B5:ELSE X=A-B6:END7:IF <C>A>8: OR <D9:THEN Y=C-D10:ELSE Y=C+D11:END12:PRINT<X,Y>STOP7.设计测试下列函数的测试方案:、函数SEARCH〔somearray,size,value〕的功能是,在一组整数数组somearray中搜索一个值为value的整数,如果数组中有这个数,则函数值等于该数的下标,否则函数值等于-1.数组的长度由参数size指定.假定数组第一个元素的下标为1.8.一个折半查找程序可搜索按字母顺序排列的名字列表,如果查找的名字在列表中则返回真,否则返回假.为了对它进行功能测试,应该使用哪些测试用例?9.某图书馆有一个使用CRT终端的信息检索系统,该系统有下列四个基本检索命令,如表4.1所示.表4.1 检索命令要求:〔1〕设计测试数据以全面测试系统的正常操作;〔2〕设计测试数据以测试系统的非正常操作.10.航空公司A向软件公司B订购了一个规划飞行路线的程序.假设你是软件公司C的软件工程师.A公司已雇用你所在的公司对上述程序进行验收测试.你的任务是,根据下述事实设计验收测试的输入数据.领航员向程序输入出发地点和目的地,以与根据天气和飞行型号而初步确定的飞行高度.程序读入途中的风向风力等数据,并且制定出三套飞行计划〔高度,速度,方向与途中的五个位置校核点〕.所制定的飞行计划应该做到燃料消耗和飞行时间都最少.11.对一个包含10000条机器指令的程序进行一个月集成测试后,总共改正了15个错误,此时MTTF=10h;经过两个月测试后,总共改正了25个错误〔第二个月改正了10个错误〕,MTTF=15h.要求:<1>根据上述数据确定MTTF与测试时间之间的函数关系,画出MTTF与测试时间t的关系曲线.在画这条曲线时你做了什么假设?<2>为做到MTTF=100h,必须进行多长时间的集成测试?当集成测试结束时总共改正了多少个错误,还有多少个错误潜伏在程序中?12.在测试一个长度为48000条指令的程序时,第一个月由甲、乙两名测试员各种独立测试这个程序.经一个月测试后,甲发现并改正了20个错误,使MTTF达到8h.与此同时,乙发现24个错误,其中的6个甲也发现了.以后由甲一个人继续测试这个程序.问:<1>刚开始测试时程序中总共有多少潜藏的错误?<2>为使MTTF达到240h,必须再改正多少个错误?第四章习题解答一、选择题1. A. ② B. ④ C. ① D. ④ E. ④软件测试的目的是软件中的错误.因为不可能把所有可能的输入数据都拿来测试〔时间花费不起〕,为了提高测试的效率,应该选择发现错误的可能性大的数据作为测试数据.使用白盒测试方法时,确定测试数据应根据程序的内部逻辑和指定的覆盖标准,可以不考虑程序的功能.与设计测试数据无关的文档是项目开发计划.软件的集成测试工作最好由不属于该软件开发组的软件设计人员承担,以提高集成测试的效果.2. A. ② B. ④ C. ④ D. ② E. ①1966年,Bohm与Jacopini提出任何单入口单出口的没有"死循环〞的程序都能由三种最基本的控制结构构造出来.这三种基本控制结构就是"顺序结构〞、"选择IF-THEN-ELSE 结构〞、"重复DO-WHILE或DO-UNTIL结构〞. 它们的共同点是只有一个入口和一个出口.E.W.Dijkstra提出了程序要实现结构化的主X,并将这一类程序设计称为结构化程序设计.这种方法的一个重要原则就是采用自顶向下、逐步求精的方法编写程序.N.Wirth曾做过如下说明:"我们对付一个复杂问题的最重要的方法就是抽象. 因此,对于一个复杂的问题,不要急于马上用计算机指令、数字和逻辑符号来表示它,而应当先用较自然的抽象的语句来表示,从而得到抽象的程序.抽象程序对抽象的数据类型进行某些特定的运算,并用一些合适的记号〔可以是自然语言〕来表示.下一步对抽象程序再做分解,进入下一个抽象的层次.这样的细化过程一直进行下去,直到程序能被计算机接受为止.此时的程序已经是用某种高级语言或机器指令书写的了.〞软件调试则是在进行了成功的测试之后才开始的工作.它与软件测试不同,软件测试的目的是尽可能多地发现软件中的错误,但进一步诊断和改正程序中潜在的错误,则是调试的任务.调试活动由两部分组成:①确定程序中可疑错误的确切性质和位置.②对程序〔设计,编码〕进行修改,排除这个错误.3. 正确的叙述有<4>、<5>、<6>、<7>、〔10〕.黑盒测试主要是根据程序的有关功能规格说明和覆盖准则来设计测试用例,进行测试的,不是根据程序的内部逻辑来设计测试用例,这是白盒测试做的事情.在所有黑盒测试方法中,最有效的不是因果图法,而是边界值分析方法.测试的目的是尽可能多地发现软件中的错误,其附带的收获才是验证该软件已正确地实现了用户的要求.测试的一条重要原则是:发现错误多的程序模块,残留在模块中的错误也多.软件可靠性模型〔Shooman〕就是依据这个原则建立它的公式的.对于连锁型分支结构,若有n个判定语句,则有2n条路径.因此,随着n的增大,路径数增长非常快.单元测试时,因为桩模块要模拟子模块的功能,这不是一件容易的事情,而驱动模块只是控制被测模块的执行,所以桩模块的编写比驱动模块的编写要难得多.在程序设计风格方面,如果重复的代码段没有明显的功能,不可以抽取出来形成独立的公共过程或子程序,只有在这些代码段表现出独立的功能时,才可把它们抽取出来形成独立的公共过程或子程序.另外,程序效率的提高主要应通过选择高效的算法或使用高效的语言编译器来实现.GOTO语句概念简单,使用方便,在某些情况下,保留GOTO语句反能使写出的程序更加简洁,这句话是正确的.4. <1> ② <2> ⑩ <3> ⑨ <4> ⑧ <5> ④<1> 对可靠性要求很高的软件,由第三者对源代码进行逐行检查,这是代码审查.<2> 软件变更时可能发生退化现象:原来正常的功能可能发生异常,性能也可能下降.因此,对变更的软件要进行退化测试.<3> 基于被测试模块的内部结构或算法设计测试用例进行测试,这是白盒测试.<4> 为了确认用户的需求,先做出系统的原型,提交给用户试用.<5> 自顶向下对具有层次结构的大型软件进行集成测试时,需要设计一些虚拟模块来替代尚未测试过的下层模块,这些模块叫做桩模块.5. A. ③ B. ④ C. ② D. ② E. ② F. ① G. ④ H. ⑤I.① J. ①软件测试方法可分为黑盒测试法和白盒测试法两种.黑盒测试法是基于程序的功能来设计测试用例的方法.除了测试程序外,它还适用于对需求分析阶段的软件文档进行测试.白盒测试法是根据程序的内部逻辑来设计测试用例的方法.除了测试程序外,它也适用于对软件详细设计阶段的软件文档进行测试.白盒法测试程序时常按照给定的覆盖条件选取测试用例.判定覆盖比语句覆盖严格,它使得每一个判定的每一条分支至少经历一次.判定/条件覆盖既是判定覆盖,又是条件覆盖,但它并不保证使各种条件都能取到所有可能的值.多重条件覆盖,也叫组合条件覆盖,比其他条件都要严格,但它不能保证覆盖程序中的每一条路径.单元测试一般以白盒法为主,测试的依据是系统的模块功能规格说明.6. A. ① B. ⑤ C. ① D. ② E. ③软件测试中常用的静态分析方法是引用分析和接口分析.接口分析用于检查模块或子程序间的调用是否正确.分析方法〔白盒方法〕中常用的方法是路径测试方法.非分析方法〔黑盒方法〕中常用的方法是等价类〔划分〕方法和因果图方法.因果图方法根据输出对输入的依赖关系设计测试用例.二、简答题1.答:程序设计语言是人用计算机解决问题的基本工具,因此,它将影响软件开发人员的思维方式和解题方式.程序设计语言是表达具体的解题方法的工具,它的语法是否清晰易懂,阅读程序时是否容易产生二义性,都对程序的可读性和可理解性有较大影响.程序设计语言所提供的模块化机制是否完善,编译程序差错能力的强弱等,对程序的可靠性有明显影响.程序设计语言实现设计结果的难易程度,是否提供了良好的独立编译机制,可利用的软件开发工具是否丰富而且有效,都对软件的开发效率有影响.编译程序优化能力的强弱,程序设计语言直接操纵硬件设施的能力等,将明显地影响程序的运行效率.程序设计语言的标准化程度,所提供的模块封装机制,源程序的可读性和可理解性等,将影响软件的可维护性.2.答:每个32位的二进制整数具有232个可能的值,因此,具有两个整数输入的程序应该具有264个可能的输入.每微妙可进行一次测试,即每秒可进行106个测试,因此,每天可进行的测试数为60*60*24*106=8.64*1010这等于每年大约可进行3.139*1013个测试.因为210=1024≈103 ,所以264=〔210 〕6.4≈1019.2.1019.2/〔3.139*1013〕>105,所以做完全部测试将至少需要105年〔即10万年〕.3.答:经验表明,在类似的程序中,单位长度里的错误数ET/IT近似为常数.美国的一些统计数字告诉我们,通常0.5*10-2≤ET/IT≤2*10-2也就是说,在测试之前每1000条指令中大约有5~20个错误.假设在该程序的每1000条指令中有10个错误,则估计在对它进行测试期间将发现的错误数为25000*〔10/1000〕=2504.答:<1>语句覆盖的测试用例因为每个判定表达式为真或为假时均有赋值语句,为了使每个语句都至少执行一次,总共需要两组测试数据,以便使得每个判定表达式取值为真或为假各一次.下面是实现语句覆盖的典型测试用例:1〕使3个判定表达式之值全为假输入:A=1, B=1, C=1预期的输出:X=1, Y=2,Z=32〕使3个判定表达式之值全为真输入:A=20, B=40, C=60预期的输出:X=10, Y=20,Z=30<2>路径覆盖的测试用例本程序共有8条可能的执行通路,为做到路径覆盖总共需要8组测试数据.下面是实现路径覆盖的典型测试用例:1〕3个判定表达式之值全为假输入:A=1, B=1, C=1预期的输出:X=1, Y=2, Z=32〕3个判定表达式依此为假、假、真输入:A=1, B=1, C=60预期的输出:X=1, Y=2, Z=303〕3个判定表达式依此为假、真、假输入:A=1, B=40, C=1预期的输出:X=1, Y=20, Z=34〕3个判定表达式依此为假、真、真输入:A=1, B=40, C=60预期的输出:X=1, Y=20, Z=305〕3个判定表达式依此为真、假、假输入:A=20, B=1, C=1预期的输出:X=10, Y=2, Z=36〕3个判定表达式依此为真、假、真输入:A=20, B=1, C=60预期的输出:X=10, Y=2, Z=307〕3个判定表达式依此为真、真、假输入:A=20, B=40, C=1预期的输出:X=10, Y=20, Z=38〕3个判定表达式全为真输入:A=20, B=40, C=60预期的输出:X=10, Y=20, Z=305.答:<1>分支覆盖〔即判定覆盖〕标准为,不仅使每个语句至少执行一次,而且使每个判定表达式的每个分支都至少一次.为做到分支覆盖,至少需要两组测试数据,以使每个判定表达式之值为真或为假各一次.下面是典型的测试用例:1〕使两个判定表达式之值全为假输入:A=-1, B=-2, C=-3,D=1预期的输出:X=1, Y=-22〕使两个判定表达式之值全为真输入:A=1, B=2, C=3,D=1预期的输出:X=3, Y=2<2>条件组合覆盖标准为,使得每个判定表达式中条件的各种可能组合都至少出现一次.本题程序中共有两个判定表达式,每个判定表达式中有两个简单条件,因此,总共有8种可能的条件组合,它们是:1〕A>0,B>02〕A>0,B≤03〕A≤0,B>04〕A≤0,B≤05〕C>A,D6〕C>A,D≥B7〕C≤A,D8〕C≤A,D≥B下面的4个测试用例,可以使上面列出的8种条件组合每种至少出现一次:1〕实现1,5两种条件组合输入:A=1, B=1, C=2,D=0预期的输出:X=2, Y=22〕实现2,6两种条件组合输入:A=1, B=0, C=2,D=1预期的输出:X=1, Y=13〕实现3,7两种条件组合输入:A=0, B=1, C=-1,D=0预期的输出:X=-1, Y=-14〕实现4,8两种条件组合输入:A=0, B=0, C=-1,D=1预期的输出:X=0, Y=06.答:用基本路径测试方法设计测试用例的过程,有下述4个步骤:<1>根据过程设计的结果画出流图与本题给出的伪码程序相对应的流图如图4.1所示.<2>计算流图的环形复杂度使用下述3种方法中的任一种都可以算出图4.1所示流图的复杂度为5. 1〕该流图共有15条边,12个结点,所以环形复杂度为15-12+2=52〕该流图共有5个区域,因此环形复杂度为5.3〕该流图中共有4个判定结点,因此环形复杂度为4+1=5〔3〕确定线性独立路径的基本集合所谓线性独立路径是指至少引入程序的一个新语句集合或一个新条件的路径,用流图术语来描述,独立路径至少包含一条在定义该路径之前不曾用过的边.使用基本路径测试法设计测试用例时,程序的环形复杂度决定了程序中独立路径的数量,而且这个数值是确保程序中所以语句至少被执行一次所需的测试数量的上界.对于图4.1所示流图来说,由于它的环形复杂度为5,因此共有5条独立路径.下面列出了5条独立路径:路径1:1-2-3-4-6-7-9-11-12路径2:1-2-5-6-7-9-11-12路径3:1-2-3-5-6-7-9-11-12路径4:1-2-3-4-6-7-8-9-11-12路径5:1-2-3-4-6-7-8-10-11-12图4.1 与第6题伪码程序对应的流图<4>设计可强制执行基本路径集合中每条路径的测试用例1〕执行路径1〔两个判定表达式全为真〕输入:A=1, B=1, C=2,D=2〔任意〕预期的输出:X=2, Y=02〕执行路径2〔第一个判定表达式为假,第二个判定表达式为真〕输入:A=0, B=1〔任意〕, C=2,D=0〔任意〕预期的输出:X=-1, Y=23〕执行路径3〔第一个判定表达式为假,第二个判定表达式为真〕输入:A=1, B=0, C=2,D=0〔任意〕预期的输出:X=1, Y=24〕执行路径4〔两个判定表达式全为真〕输入:A=1, B=1, C=0,D=-1预期的输出:X=2, Y=15〕执行路径5〔第一个判定表达式为真,第二个判定表达式为假〕输入:A=1, B=1, C=0,D=2预期的输出:X=2, Y=27.答:题中并没有给出实现函数SEARCH的算法,仅仅描述了它的功能,因此,只能用黑盒测试技术设计测试它的测试方案.为了用等价划分法设计测试用例,首先需要划分输入数据的等价类.根据该函数的功能,可以把它的输入数据划分成以下等价类:〔1〕有效输入的等价类●数组有偶数个元素,第1个元素是所要找的数.●数组有偶数个元素,最后一个元素是所要找的数.●数组有偶数个元素,数组中没有所要找的数.●数组有奇数个元素,第1个元素是所要找的数.●数组有奇数个元素,最后一个元素是所要找的数.●数组有奇数个元素,数组中没有所要找的数.●数组有多个元素,其中一个正整数是所要找的数.●数组有多个元素,其中一个负整数是所要找的数.●数组有多个元素,其中一个0是所要找的数.〔2〕无效输入的等价类数组实际长度不等于变元size的值.为了使用边界值分析法设计测试方案,应该再考虑下述几种边界情况:●数组长度为1,其元素是所要找的数.●数组长度为1,其元素不是所要找的数.●数组为空〔长度为0〕.根据上面划分出的等价类与边界情况,可以设计出下述测试方案:1〕数组长度为1,其正整数元素是所要找的数输入:somearray={6},size=1,value=6预期的输出:12〕数组长度为1,其负整数元素是所要找的数输入:somearray={-20},size=1,value=-20预期的输出:13〕数组长度为1,其元素0是所要找的数输入:somearray={0,size=1,value=0预期的输出:14〕数组长度为1,其元素不是所要找的数输入:somearray={6},size=1,value=8预期的输出:-15〕数组为空输入:somearray={ },size=0,value=6预期的输出:-16〕数组有偶数个元素,第1个元素是正整数且是所要找的数输入:somearray={1,2,3,4},size=4,value=1预期的输出:17〕数组有偶数个元素,最后一个元素是负整数且是所要找的数输入:somearray={1,2,3,-4},size=4,value=-4预期的输出:48〕数组有偶数个元素,其中一个元素0是所要找的数输入:somearray={1,2,0,3},size=4,value=0预期的输出:39〕数组有偶数个元素,元素中没有所要找的数输入:somearray={1,2,3,4},size=4,value=5预期的输出:-110〕数组有奇数个元素,第1个元素是0且是要找的数输入:somearray={0,1,2},size=3,value=0预期的输出:111〕数组有奇数个元素,最后一个元素是负整数且是所要找的数输入:somearray={1,2,-3},size=3,value=-3预期的输出:312〕数组有奇数个元素,没有要找的数输入:somearray={1,2,3},size=3,value=-3预期的输出:-113〕数组实际长度不等于size输入:somearray={1,2,3},size=3,value=1预期的输出:"无效的size值〞8.答:为了对这个折半查找程序进行功能测试,应该使用下述测试用例:1〕查找列表中第一个名字预期的输出:TRUE2〕查找列表中最后一个名字预期的输出:TRUE3〕查找第一个名字后的名字预期的输出:TRUE4〕查找最后一个名字前的名字预期的输出:TRUE5〕查找位于列表中间的一个名字预期的输出:TRUE6〕查找不在列表中但按字母顺序恰好在第一个名字后的名字预期的输出:FALSE7〕查找不在列表中但按字母顺序恰好在最后一个名字前的名字预期的输出:FALSE9.答:<1>测试系统正常操作的测试数据1〕顺序执行下列3个命令:b〔KEYWORD〕s <L>d <N>其中,KEYWORD是正确的关键字;L是执行命令b后在屏幕上显示的约20个行号中的一个〔至少应该使L分别为第一个、最后一个和中央一个行号〕;N是执行命令s后列出的索引号中的一个〔至少应该使N分别为第一个、最后一个和中央一个索引号〕.针对若干个不同的KEYWORD重复执行上述命令序列.2〕顺序执行下列2个命令:f <NAME>d <N>其中,NAME是已知的作者##;N是执行命令f后列出的索引号中的一个〔至少应该使N 分别为第一个、最后一个和中央一个索引号〕.针对若干个不同的NAME重复执行上述命令序列.<2>测试系统非正常操作的测试数据1〕用过长的关键字作为命令b的参数,例如,b〔reliability software and hardware combined〕预期的输出:系统截短过长的关键字,例如,上列命令中的关键字可能被截短为reliability software2〕用不正确的关键字作为命令b的参数,例如,b〔AARDVARK〕预期的输出:显示出最接近的匹配结果,例如,执行上列命令后可能显示1. AARON,JULES<book>3〕用比执行命令b后列出的最大行号大1的数作为命令s的参数预期的输出:"命令s的参数不在行号列表中〞4〕用数字和标点符号作为命令b和命令f的参数预期的输出:"参数类型错〞5〕用字母符号作为命令s和命令d的参数预期的输出:"参数数值错〞6〕用0和负数作为命令s和命令d的参数预期的输出:"参数数值错〞7〕命令顺序错,例如,没执行命令b就执行命令s,或没执行命令s就执行命令d。
《软件测试技术》习题参考答案第1章软件测试基础一、判断题1、验证意味着确保软件正确无误地实现软件的需求,开发过程是沿着正确的方向进行。
(T )2、调试的目的是发现bug。
(F )3、软件缺陷主要来自产品说明书的编写和产品方案设计。
(T )4、在实际的软件测试工作中,不论采用什么方法,由于软件测试情况数量极其巨大,都不可能进行完全彻底的测试。
(T )5、测试人员可以不懂编程。
( F )二、选择题1、软件是程序和(B )的集合。
A、代码B、文档C、测试用例D、测试2、严重的软件缺陷的产生主要源自(A)。
A、需求B、设计C、编码D、测试3、Fixed的意思是指:( C )A、该BUG没有被修复,并且得到了测试人员的确认B、该BUG被拒绝了,并且得到了测试人员的确认C、该BUG被修复了,并且得到了测试人员的确认D、该BUG被关闭了,并且得到了测试人员的确认4、降低缺陷费用最有效的方法是(B )。
A、测试尽可能全面B、尽可能早的开始测试C、测试尽可能深入D、让用户进行测试5、以下不属于应用系统中的缺陷类型的是:( B )。
A、不恰当的需求解释B、用户指定的错误需求C、设计人员的习惯不好D、不正确的程序规格说明三、简答题1、请简述一条软件缺陷(或者叫Bug)记录都包含了哪些内容?2、请简述软件测试的定义?第2章软件测试类型一、判断题1、软件测试的目的是尽可能多的找出软件的缺陷。
( T )2、好的测试方案是极可能发现迄今为止尚未发现的错误。
(T )3、测试人员要坚持原则,缺陷未修复完坚决不予通过。
( F )4、负载测试是验证要检验的系统的能力最高能达到什么程度。
( F )5、V模型不能适应较大的需求变化。
( T )二、选择题1、测试环境中不包括的内容是( A )A、测试所需文档资料B、测试所需硬件环境C、测试所需软件环境D、测试所需网络环境2、某软件公司在招聘软件测试工程师时,应聘者甲向公司做如下保证:(1)经过自己测试的软件今后不会再出现问题(2)在工作中对所有程序员一视同仁,不会因为某个程序编写的程序发现的问题多,就重点审查该程序,以免不利于团结(3)承诺不需要其他人员,自己就可以独立进行测试工作(4)发扬咬定青山不放松的精神,不把所有问题都找出来,绝不罢休根据自己所学的软件测试知识,应聘者甲的保证( D )A、(1)(4)是正确的B、(2)是正确的C、都是正确的D、都是错误的3、用不同的方法可将软件测试分为白盒法和黑盒法,或者(C)和静态测试。
软件测试技术课后习题答案1. 什么是软件测试?软件测试是指用于评估软件质量、发现缺陷并提供有关软件产品的信息的过程。
它涉及检查和验证软件系统的各个方面,以确保其符合预期的功能需求、性能要求和可靠性要求。
2. 为什么软件测试至关重要?软件测试是确保软件质量的重要环节,它可以帮助我们:•发现和纠正软件中的缺陷和错误。
•提高软件的可靠性、效率和稳定性。
•减少软件开发过程中的成本和风险。
•增强用户对软件的信任和满意度。
3. 软件测试的主要原则有哪些?软件测试的主要原则包括:•早期测试:测试应尽早开始,并与开发过程的各个阶段相结合。
•全面测试:测试应涵盖软件的所有功能、性能和边界条件。
•自动化测试:利用合适的测试工具和脚本自动执行测试过程。
•追溯性:测试案例应与需求文档相对应,并追踪测试的进展和覆盖范围。
•重复性:测试应能够重复执行,并提供一致的结果。
4. 软件测试的主要类型有哪些?软件测试的主要类型包括:•功能测试:验证软件的各项功能是否符合需求。
•性能测试:评估软件在不同负载条件下的性能表现。
•安全测试:检查软件的安全漏洞和弱点,以保护数据和用户隐私。
•兼容性测试:测试软件在不同平台、操作系统和浏览器上的兼容性。
•用户界面测试:验证软件的用户界面是否易用和符合设计规范。
5. 软件测试的基本步骤是什么?软件测试的基本步骤包括:1.测试计划:制定测试目标、范围、资源和时间计划。
2.测试设计:根据需求文档制定测试策略和测试案例。
3.测试实施:执行测试案例,记录测试结果和发现的缺陷。
4.缺陷跟踪:跟踪和管理发现的缺陷,确保及时修复。
5.测试评估:评估软件的测试覆盖率和质量,制定测试报告。
6.测试闭环:根据评估结果进行改进,并重复以上步骤。
6. 什么是黑盒测试和白盒测试?•黑盒测试:基于需求规格说明书,通过输入和输出来测试软件的功能是否符合预期。
测试人员不需要了解系统的内部工作原理。
•白盒测试:测试人员需要了解系统的内部结构和代码来设计测试用例,以确保软件在各个代码路径上的正确性。
1. 软件测试的主要目的是:A. 证明软件没有错误B. 发现软件的错误C. 提高软件的性能D. 增加软件的功能答案:B2. 软件测试的分类包括:A. 白盒测试和黑盒测试B. 单元测试和集成测试C. 系统测试和验收测试D. 以上都是答案:D3. 白盒测试主要关注:A. 软件的输入和输出B. 软件的内部结构C. 软件的功能D. 软件的性能答案:B4. 黑盒测试主要关注:A. 软件的输入和输出B. 软件的内部结构C. 软件的功能D. 软件的性能答案:A5. 单元测试通常由谁执行:A. 开发人员B. 测试人员C. 项目经理D. 用户答案:A6. 集成测试通常由谁执行:A. 开发人员B. 测试人员C. 项目经理D. 用户答案:B7. 系统测试通常由谁执行:A. 开发人员B. 测试人员C. 项目经理D. 用户答案:B8. 验收测试通常由谁执行:A. 开发人员B. 测试人员C. 项目经理D. 用户答案:D9. 回归测试的目的是:A. 发现新的错误B. 验证已修复的错误C. 提高软件的性能D. 增加软件的功能答案:B10. 冒烟测试的目的是:A. 发现新的错误B. 验证软件的基本功能C. 提高软件的性能D. 增加软件的功能答案:B11. 性能测试的目的是:A. 发现新的错误B. 验证软件的基本功能C. 评估软件的性能D. 增加软件的功能答案:C12. 压力测试的目的是:A. 发现新的错误B. 验证软件的基本功能C. 评估软件在极端条件下的性能D. 增加软件的功能答案:C13. 负载测试的目的是:A. 发现新的错误B. 验证软件的基本功能C. 评估软件在不同负载下的性能D. 增加软件的功能答案:C14. 安全性测试的目的是:A. 发现新的错误B. 验证软件的基本功能C. 评估软件的安全性D. 增加软件的功能答案:C15. 兼容性测试的目的是:A. 发现新的错误B. 验证软件的基本功能C. 评估软件在不同环境下的兼容性D. 增加软件的功能答案:C16. 安装测试的目的是:A. 发现新的错误B. 验证软件的基本功能C. 评估软件的安装过程D. 增加软件的功能答案:C17. 用户界面测试的目的是:A. 发现新的错误B. 验证软件的基本功能C. 评估软件的用户界面D. 增加软件的功能答案:C18. 可用性测试的目的是:A. 发现新的错误B. 验证软件的基本功能C. 评估软件的易用性D. 增加软件的功能答案:C19. 配置测试的目的是:A. 发现新的错误B. 验证软件的基本功能C. 评估软件在不同配置下的性能D. 增加软件的功能答案:C20. 文档测试的目的是:A. 发现新的错误B. 验证软件的基本功能C. 评估软件的文档D. 增加软件的功能答案:C21. 代码审查的目的是:A. 发现新的错误B. 验证软件的基本功能C. 评估代码的质量D. 增加软件的功能答案:C22. 静态测试的目的是:A. 发现新的错误B. 验证软件的基本功能C. 评估代码的质量D. 增加软件的功能答案:C23. 动态测试的目的是:A. 发现新的错误B. 验证软件的基本功能C. 评估代码的质量D. 增加软件的功能答案:A24. 测试用例的设计方法包括:A. 等价类划分B. 边界值分析C. 决策表测试D. 以上都是答案:D25. 等价类划分的主要思想是:A. 将输入数据划分为有效和无效的等价类B. 将输入数据划分为多个等价类C. 将输入数据划分为有效和无效的等价类,并选择代表性数据进行测试D. 将输入数据划分为多个等价类,并选择代表性数据进行测试答案:C26. 边界值分析的主要思想是:A. 选择输入数据的边界值进行测试B. 选择输入数据的中间值进行测试C. 选择输入数据的有效值进行测试D. 选择输入数据的无效值进行测试答案:A27. 决策表测试的主要思想是:A. 根据输入条件和输出结果设计测试用例B. 根据输入条件设计测试用例C. 根据输出结果设计测试用例D. 根据输入条件和输出结果设计测试用例,并选择代表性数据进行测试答案:A28. 状态转换测试的主要思想是:A. 根据软件的状态转换设计测试用例B. 根据软件的输入条件设计测试用例C. 根据软件的输出结果设计测试用例D. 根据软件的状态转换设计测试用例,并选择代表性数据进行测试答案:A29. 因果图测试的主要思想是:A. 根据输入条件和输出结果设计测试用例B. 根据输入条件设计测试用例C. 根据输出结果设计测试用例D. 根据输入条件和输出结果设计测试用例,并选择代表性数据进行测试答案:A30. 正交实验设计测试的主要思想是:A. 根据输入条件和输出结果设计测试用例B. 根据输入条件设计测试用例C. 根据输出结果设计测试用例D. 根据输入条件和输出结果设计测试用例,并选择代表性数据进行测试答案:A31. 探索性测试的主要思想是:A. 根据输入条件和输出结果设计测试用例B. 根据输入条件设计测试用例C. 根据输出结果设计测试用例D. 根据输入条件和输出结果设计测试用例,并选择代表性数据进行测试答案:A32. 随机测试的主要思想是:A. 根据输入条件和输出结果设计测试用例B. 根据输入条件设计测试用例C. 根据输出结果设计测试用例D. 根据输入条件和输出结果设计测试用例,并选择代表性数据进行测试答案:A33. 基于模型的测试的主要思想是:A. 根据输入条件和输出结果设计测试用例B. 根据输入条件设计测试用例C. 根据输出结果设计测试用例D. 根据输入条件和输出结果设计测试用例,并选择代表性数据进行测试答案:A34. 基于风险的测试的主要思想是:A. 根据输入条件和输出结果设计测试用例B. 根据输入条件设计测试用例C. 根据输出结果设计测试用例D. 根据输入条件和输出结果设计测试用例,并选择代表性数据进行测试答案:A35. 基于经验的测试的主要思想是:A. 根据输入条件和输出结果设计测试用例B. 根据输入条件设计测试用例C. 根据输出结果设计测试用例D. 根据输入条件和输出结果设计测试用例,并选择代表性数据进行测试答案:A36. 基于场景的测试的主要思想是:A. 根据输入条件和输出结果设计测试用例B. 根据输入条件设计测试用例C. 根据输出结果设计测试用例D. 根据输入条件和输出结果设计测试用例,并选择代表性数据进行测试答案:A37. 基于用例的测试的主要思想是:A. 根据输入条件和输出结果设计测试用例B. 根据输入条件设计测试用例C. 根据输出结果设计测试用例D. 根据输入条件和输出结果设计测试用例,并选择代表性数据进行测试答案:A38. 基于需求的测试的主要思想是:A. 根据输入条件和输出结果设计测试用例B. 根据输入条件设计测试用例C. 根据输出结果设计测试用例D. 根据输入条件和输出结果设计测试用例,并选择代表性数据进行测试答案:A39. 基于缺陷的测试的主要思想是:A. 根据输入条件和输出结果设计测试用例B. 根据输入条件设计测试用例C. 根据输出结果设计测试用例D. 根据输入条件和输出结果设计测试用例,并选择代表性数据进行测试答案:A40. 基于变更的测试的主要思想是:A. 根据输入条件和输出结果设计测试用例B. 根据输入条件设计测试用例C. 根据输出结果设计测试用例D. 根据输入条件和输出结果设计测试用例,并选择代表性数据进行测试答案:A41. 基于历史的测试的主要思想是:A. 根据输入条件和输出结果设计测试用例B. 根据输入条件设计测试用例C. 根据输出结果设计测试用例D. 根据输入条件和输出结果设计测试用例,并选择代表性数据进行测试答案:A42. 基于数据的测试的主要思想是:A. 根据输入条件和输出结果设计测试用例B. 根据输入条件设计测试用例C. 根据输出结果设计测试用例D. 根据输入条件和输出结果设计测试用例,并选择代表性数据进行测试答案:A43. 基于流程的测试的主要思想是:A. 根据输入条件和输出结果设计测试用例B. 根据输入条件设计测试用例C. 根据输出结果设计测试用例D. 根据输入条件和输出结果设计测试用例,并选择代表性数据进行测试答案:A44. 基于角色的测试的主要思想是:A. 根据输入条件和输出结果设计测试用例B. 根据输入条件设计测试用例C. 根据输出结果设计测试用例D. 根据输入条件和输出结果设计测试用例,并选择代表性数据进行测试答案:A45. 基于规则的测试的主要思想是:A. 根据输入条件和输出结果设计测试用例B. 根据输入条件设计测试用例C. 根据输出结果设计测试用例D. 根据输入条件和输出结果设计测试用例,并选择代表性数据进行测试答案:A。
软件测试题库及答案一、单选题1. 软件测试的目的是:A. 证明软件是正确的B. 发现软件中的错误C. 确保软件满足需求D. 确保软件没有错误答案:B2. 以下哪项不是黑盒测试的测试用例设计技术?A. 等价类划分B. 边界值分析C. 决策表测试D. 路径测试答案:D3. 单元测试通常由谁执行?A. 测试人员B. 用户C. 开发人员D. 项目经理答案:C4. 以下哪个不是软件测试的阶段?A. 单元测试B. 集成测试C. 系统测试D. 维护测试答案:D5. 软件测试中的错误注入通常发生在哪个阶段?A. 需求分析B. 设计阶段C. 编码阶段D. 测试阶段答案:C二、多选题1. 软件测试的类型包括:A. 功能测试B. 性能测试C. 可用性测试D. 安全测试E. 回归测试答案:ABCDE2. 以下哪些是软件测试的原则?A. 测试可以显示存在缺陷B. 穷尽测试是不可能的C. 早期测试可以节省成本D. 缺陷聚集原则E. 测试应该提供信息以支持决策答案:ABCDE3. 软件测试的目的是:A. 验证软件是否符合需求B. 验证软件是否符合设计C. 验证软件是否符合编码标准D. 验证软件是否符合性能要求E. 验证软件是否符合安全要求答案:ABDE4. 软件测试的文档包括:A. 测试计划B. 测试用例C. 测试报告D. 缺陷报告E. 用户手册答案:ABCD5. 软件测试的自动化工具可以用于:A. 自动化测试用例执行B. 测试用例生成C. 缺陷跟踪D. 性能监控E. 安全扫描答案:ABCDE三、判断题1. 软件测试可以完全替代人工测试。
(错误)2. 软件测试的目的是确保软件没有错误。
(错误)3. 软件测试应该在编码阶段完成后开始。
(错误)4. 测试用例应该包括预期结果。
(正确)5. 回归测试是确认修改后的软件是否引入新缺陷的过程。
(正确)四、简答题1. 请简述软件测试的目的是什么?答案:软件测试的目的是发现软件中的错误,验证软件是否满足需求,确保软件的质量。
《软件工程》形成性考核答案第一、二章一、填空题1. 软件工程学的内容可包括(理论)、结构、(方法)、(工具)、环境、管理、规范等。
2. 软件生存周期一般可分为问题定义、(可行性研究)、(需求分析)、设计、(编码)、测试、运行与维护阶段。
3. 可行性研究的目的是(用最小的代价在尽可能短的时间内确定问题是否能够解决)。
4. 系统流程图是(描绘物理系统)的传统工具。
5. 在可行性研究中,(技术可行性)是系统开发过程中难度最大,最重要的一个环节。
二、判断题1. 软件工程采用的生存周期方法就是从时间角度对软件的开发和维护这个复杂问题进行分解,将软件生存的时期分为若干阶段。
(√)2. 螺旋模型是利用笛卡尔坐标的四个象限上分别代表四个方面的活动来表示。
(√)3. 原型模型适用于嵌入式软件。
(╳)4. 面向对象技术是构件组装模型的基础。
(√)5. 在可行性研究中最难决断和最关键的问题是经济可行性。
(╳)6. 系统流程图表达的是部件的信息流程,还表示对信息进行加工处理的控制过程。
(╳)7. 自底向上成本估计不是从整体开始,而是从任务单元开始。
(√)三、单项选择题1. 下列哪个阶段不是软件生存期三个阶段中的内容( C )。
A.计划阶段B.开发阶段C.编码阶段D.维护阶段2. 下列关于瀑布模型的描述正确的是( C )。
A. 瀑布模型的核心是按照软件开发的时间顺序将问题简化。
B. 瀑布模型具有良好的灵活性。
C. 瀑布模型采用结构化的分析与设计方法,将逻辑实现与物理实现分开。
D. 利用瀑布模型,如果发现问题修改的代价很低。
四、简答题1. 软件的定义与特点。
软件是计算机系统中与硬件相互依存的另一部分,它是包括程序,数据结构及其相关文档的完整集合。
它包括三个方面的内容:⑴程序:在运行时,能提供所希望的功能和性能的指令集。
⑵数据结构:使程序能够正确运行的数据结构。
⑶文档:描述程序研制过程、方法及使用的图文材料。
软件产品具有以下一些特性:①软件是一种逻辑实体,而不是具体的物理实体,因而它具有抽象性。
软件测试习题库+答案一、单选题(共100题,每题1分,共100分)1.以下不属于测试计划设计的工具的是()A、WordB、ExcelC、ProjectD、PPT正确答案:D2.模块是组成软件结构的基本元素,它是( )的集合。
A、变量定义和功能实现B、变量和函数C、数据说明和算法D、软件描述和实现正确答案:C3.软件管理按时间可划分为( )和使用维护管理。
A、开发进度管理B、生产管理C、技术管理D、软件设计管理正确答案:B4.著作权亦称( ),是指著作权人对其作品享有的专有权利。
A、版权B、许可权C、产权D、专利权正确答案:A5.面向对象测试中测试类定义的每种方法,基本上相当于传统软件测试中的( )。
A、验证测试B、单元测试C、系统测试D、模块测试正确答案:B6.十进制数(307)10转换为十六进制数的结果是( )。
A、(226)16B、(133)16C、(281)16D、(186)16正确答案:B7.下列选项中关于软件测试叙述错误的是()A、软件测试可以作为度量软件与用户需求间差距的手段B、软件测试的根本目的是尽可能多地发现问题并排除潜在的错误,最终把一个高质量的软件系统交给用户使用。
C、没有发现错误的测试也是有价值的D、软件测试的目的是暴露问题正确答案:B8.虚拟机好似通用的计算机,有自己的指令系统,但本身没有( )。
A、翻译程序B、实际的硬件C、翻译指令D、操作系统正确答案:B9.( )是采用人—机对话的方式控制作业的运行。
A、实时作业控制B、脱机作业控制C、联机作业控制D、动态作业控制正确答案:C10.在Bugzilla中,如果一个缺陷的处理状态被开发人员置为Wontfix,则表明()A、这个Bug中描述的B、这个Bug 中描述的是问题,但不修改C、根据这个Bug的描述无法查找问题的原因并解决,需要提供更多的关于这个Bug的信息D、这个Bug描述的是问题,但不能确定是否在这个版本中修改正确答案:B11.为了对我们所设计的系统进行测试,我们使用测试工具模拟上万个用户从终端同时登陆,找出因资源不足而导致的错误,你认为现在最有可能进行的测试活动是()A、负载测试B、安全测试C、容量测试D、压力测试正确答案:A12.( )方法的主要优点包括:与人类习惯的思维方法一致、稳定性好、可重用性好、可维护性好。
P63第 6题解:依题意可得出该流程图:M KN J令左边三个向下箭头为 1、 3、 5,两个向右的箭头分别为 2、4,M 到 N 的为 F, M 到 K 的为 T,N 到 J的为 T,否则为 F。
1:语句覆盖的测试用例由上图可以知道,该程序模块有 4 条不同的路径:P1(1-2-4)即 M=.T. 且 N=.T.P2(1-2-5)即 M=.T. 且 N=.F.P3(1-3-4)即 M=.F.且 N=.T.P4(1-3-5)即 M=.F.且 N=.F.P1 包含了所有可执行语句,按照语句覆盖的测试用例设计原则,可以使用 P1 来设计测试用例。
但是令 X=1,Y=12, 会得到输出 X=1,Y=12, 此时满足条件 M ( X>0 AND Y>10 )但不满足条件 N ( X<-10 OR Y<0 ) ,所以测试用例的输入不能覆盖路径P1。
所以还要设计输入,使测试可以覆盖路径P2、 P3、P4。
令 X=1,Y=12, 会得到输出 X=1,Y=12, 所以测试用例的输入能覆盖路径P2;令 X=1,Y=-1, 会得到输出 X=1,Y=0,所以测试用例的输入能覆盖路径P3;令 X=1,Y=1, 会得到输出 X=1,Y=1,所以测试用例的输入能覆盖路径P42:判定覆盖的测试用例测试用例具体取值条件判定条件通过路径输入: X=1,Y=12X>0 AND Y>10M=.T.P2(1-2-5)输出: X=1,Y=12X<-10 OR Y<0N=.F.输入: X=-12,Y=-1X>0 AND Y>10M=.F.P3(1-3-4)输出: X=-12,Y=13X<-10 OR Y<0N=.T.输入: X=1,Y=1X>0 AND Y>10M=.F.P4(1-3-5)输出: X=1,Y=1X<-10 OR Y<0N=.F.3:条件覆盖的测试用例X>0 取真时为 T1,取假时为 F1; Y>10 取真时为 T2,取假时为 F2;X<-10 取真时为 T3, 取假时为F3; Y<0 取真时为 T4,取假时为 F4;所以可得:测试用例取值条件具体取值条件通过路径输入: X=1,Y=-12T1,F2,F3,T4X>0,Y<=10P3(1-3-4)输出: X=1,Y=11X>=-10, Y<0输入: X=-11,Y=12F1,T2,T3,F4X<=0,Y>10P3(1-3-4)输出: X=-11,Y=-1X<-10, Y>=04:路径覆盖的测试用例可得 8 种组合条件组合编号覆盖条件取值判定 -条件取值判定 -条件组合1T1,T2M=.T.X>0, Y>10,M取真2T1,F2M=.F.X>0, Y<=10,M取假3F1,T2M=.F.X<=0, Y>10,M取假4F1,F2M=.F.X<=0, Y<=10,M取假5T3,T4N=.T.X<-10, Y<0,N取真6T3,F4N=.T.X<-10, Y>=0,N取真7F3,T4N=.T.X>=-10, Y<0,N取真8F3,F4N=.F.X>=-10, Y>=0,N取假所以有:测试用例覆盖路径覆盖条件覆盖组合输入: X=1,Y=12P2(1-2-5)T1,T2,F3,F41,8输出: X=1,Y=12输入: X=1,Y=-12P3(1-3-4)T1,F2,F3,T42,7输出: X=1,Y=11输入: X=1,Y=1P4(1-3-5)T1,F2,F3,F42,8输出: X=1,Y=1。