软件测试技术复习题(1104)
一、基本要求
1、软件与软件危机
(1)软件的定义
(2)软件具有的和硬件不同的特点,软件同传统工业产品相比具有的特性 (3)软件的分类,软件危机定义,原因,表现形式
(4)软件工程的具体含义,软件工程的四条基本原则,软件工程活动和常用的软件开发方法
(5)软件生命周期包括的内容,软件生命周期的定义、软件生命周期的阶段划分和几种典型的软件生命周期模型及各自的特点 2、软件缺陷与缺陷管理
(1)软件缺陷的定义和分类,软件缺陷产生的原因。 (2)缺陷管理的流程,软件缺陷管理的目标
(3)缺陷报告的主要内容,报告软件缺陷的基本原则
(4)缺陷管理工具的含义,几款国际、国内比较知名的缺陷管理工具 3、软件测试基本概念
(1)软件测试的定义 (2)软件测试的目的
(3)软件测试的一般原则和具体原则
(4)软件测试人员的工作内容和应具备的素质 (5)软件测试与软件开发各阶段的关系 (6)软件测试的就业前景
(7)有关软件测试的几个误区 4、生命周期软件测试方法
(1)生命周期测试方法的定义,此方法相关的测试要素,测试风险,测试计划,测试种类,软件生命周期中的各类软件测试的定义和概念
(2)需求阶段测试的目标、测试要素分析、测试活动
(3)设计阶段的测试任务和测试活动
(4)编码阶段的测试需解决的问题和达到的目标
(5)典型的测试类型和测试用例的含义 (6)安装阶段的测试活动 5、软件测试过程
(1)软件测试过程的定义,主要的软件测试过程模型,以及它们之间的关系 (2)测试计划的编写内容,软件测试设计与开发的主要内容
(3)软件测试过程改进的具体方法 6、基于软件配置项的测试种类
(1)软件配置项、软件配置管理、基线的概念;软件配置的主要任务 (2)软件配置项测试的测试对象、测试目的和具体测试内容 (3)计算机软件配置项测试种类及测试种类的选择 7、软件静态测试
(1)静态测试的定义和特点
(2)编程规范的定义及确定和遵循编程规范的意义
(3)程序理解的方法和相关技术
精选
.
(4)代码检查的含义,代码检查方法
(5)软件复杂性度量方法,McCache复杂度 (6)软件质量概念、软件质量属性包括内容 8、动态测试
(1)动态测试的含义及测试步骤
(2)逻辑覆盖法和路径测试法的测试用例设计
(3)黑盒测试法、等价类划分法、边界值分析法、因果图法、随机测试法和猜错法的概念及应用
(4)等价类划分法、边界值分析法、因果图法、随机测试法和猜错法的测试用例设计
(5)灰盒测试法的概念和特性 (6)测试用例的原则和要素
(7)单元测试的概念、作用及内容,单元测试方法和步骤
(8)集成测试的概念、作用及内容,增量测试和非增量测试的执行过程及比较
(9)确认测试的概念、作用及内容的执行过程,α和β测试 (10)系统测试的概念、作用及内容,典型测试类型 9、软件测试自动化
(1)软件测试自动化概念 (2)常用的自动化测试框架
(3)常用的软件自动化测试工具 10、面向对象软件测试
(1)面向对象程序设计语言的特征对软件测试的影响
(2)面向对象的测试模型,OOA、OOD、OOP、面向对象的单元测试、面向对象的集成测试、面向系统测试的测试内容 11、C/S应用软件测试
(1)C/S系统测试的特点及对传统测试的影响 (2)C/S系统测试的目标
(3)C/S系统测试的内容、常见测试点和步骤 12、基于B/S架构的Web应用软件测试
(1)B/S应用和C/S应用的比较 (2)基于B/S架构的Web测试与传统的软件测试相比的不同之处,Web应用测试的主要内容
(3)Web应用性能测试方法 (4)Web应用的测试模型
(5)信息系统的概念、构成要素、分类
二、基本概念
1、软件危机是指在计算机软件的开发与维护过程中所遇到的一系列严重问题,这些问题不仅仅是不能正常运行的软件才具有的。
2、软件生命周期又称为软件生存周期或系统开发生命周期,是软件从开始产生直到报废的生命周期。周期内有问题定义、可行性分析、总体描述、系统设计、编码、调试和测试、验收与运行、维护升级到废弃等阶段。
3、软件测试就是在软件投入运行前,对软件需求分析、设计规格说明和编码的最终复查,是软件质量保证的关键步骤。
精选
.
4、代码检查,主要是由检验人员仔细地进行代码分析,检查代码和设计的一致性,代码对标准的遵循、可读性,代码的逻辑表达正确性,代码结构的合理性。
5、内存泄漏是一种典型的程序缺陷,导致应用程序不断消耗系统内存,使程序运行出现响应变慢、某些功能无法实现、甚至整个系统瘫痪等问题。
6、单元测试又称模块测试,是针对软件设计的最小单位——程序模块或功能模块,进行正确性检验的测试工作。
7、静态测试是软件测试中的一个术语,通常是指不运行程序的情况下检查程序的运行情况,只是检查和审核。
8、功能测试主要对软件需求规格说明中的功能需求进行测试,找到被测软件实现与要求不一致的地方,确认一致的地方。
9、性能测试是通过测量响应时间、CPU使用和其他量化的操作特征,评估软件系统的事务处理能力。
10、自动化测试是执行由某种程序设计语言编制的自动测试程序控制被测软件的行为,模拟手工测试步骤,完成全自动或半自动测试。
11、基线即软件技术状态基线,指需要受到配置管理控制的某个研制阶段的终点时,软件成分的技术状态,是已经经过正式审核和同意,是下一步软件开发的基础。
三、简答题
1、软件测试的目的有:
(1)软件测试是为了发现错误而执行程序的过程。 (2)一个好的测试用例能够发现至今尚未发现的错误。 (3)一个成功的测试是发现了至今尚未发现的错误。
软件测试的目标定义为只是发现错误,原因是软件测试可以有两个目标,一个是预防错误,另一个是发现错误。由于软件开发是人的创造性劳动,人的活动不可能完美无缺,错误可能发生在任何一个阶段,因此预防错误这一目标几乎是不可实现的,所以软件测试的目标定义为只是发现错误。 2、软件测试的具体原则如下:
(1) 测试活动要有组织、有计划、有选择 (2) 选择最佳的测试策略
(3) 测试设计决定了测试的有效性和效率,测试工具只能提高测试效率,测试用例设计师软件测试的关键
(4) 严格执行测试计划,排除测试的随意性
(5) 妥善保存测试计划,测试用例,出错统计和最终分析报告,以方便维护。 3、报告软件缺陷的基本原则如下: (1)尽快报告软件缺陷 (2)有效地描述软件缺陷
精选
.
(3)在报告缺陷时不做任何评价 (4)确保缺陷可以重现
4、在软件开发过程中常用的软件开发方法 (1) 面向数据流的结构化程序开发方法 (2)面向数据结构的开发方法Jackson方法
(3)支持程序开发的形式化方法(基于模型的方法 )——维也纳方法 (4)面向对象开发方法
5. 设计测试用例时应遵循的原则。 (1)基于测试需求的原则 (2)基于测试方法的原则 (3)兼顾测试充分性和效率的原则 (4)测试执行的可再现原则 6、软件测试计划的编写内容如下: (1)测试环境
(2)测试基本原理和策略 (3)测试计划阶段划分 (4)测试计划要点 (5)功能描述和功能覆盖说明
(6)测试用例清单,说明每个测试用例所测试的内容 (7)测试开始准则和退出准则 7、自顶向下组装测试的具体步骤如下:
(1)以主控模块作为测试驱动模块,把对主控模块进行单元测试时引入的所有桩模块用实际模块替代。
(2)依据所选的集成策略,以及新模块的选择原则,每次用一个实际单元替换一个被调用的桩模块,并开发该单元可能需要的桩模块
(3)每集成一个模块的同时立即进行测试,排除组装过程中可能引进的错误,如果测试发现错误,则要在修改后进行回归测试。
(4)判断系统的组装测试是否完成,若没有完成则转到第二步循环进行,直到集成结束。 8、动态测试是指通过运行被测程序,检查运行结果与预期结果的差异,并分析运行效率和健壮性等性能。这种方法主要由三部分组成:构造测试实例、执行程序、分析程序的输出结果。动态测试可分为以下几个步骤:单元测试、集成测试、组装测试、确认测试、系统测试、验收测试和回归测试。
9、单元测试的主要目标在于检验程序各模块中是否有各种差错,是否能正确地实现其功能,满足其性能和接口要求。 单元测试的内容如下:
精选
.
(1)模块接口测试 (2)局部数据结构测试 (3)路径测试 (4)错误处理测试 (5)边界测试
10、导致软件产生缺陷有如下9类原因:
(1)需求的不完善定义 (2)客户-开发者通信失败 (3)对软件需求的故意偏离 (4)逻辑设计错误 (5)编码错误
(6)不符合文档编制和编码规定 (7)测试过程不足 (8)规程错误 (9)文档编制错误
11、 基于B/S架构的Web测试与传统的软件测试的不同点表现在: (1)需要检查和验证是否按照设计的要求运行
(2)还要测试系统在不同用户的浏览器端的显示是否合适 (3)重要的是还要从最终用户的角度进行安全性和可用性测试 (4)Internet和Web媒体的不可预见性使测试Web应用变得困难 12、对被测软件进行白盒测试时,主要对程序进行以下检查: (1)输入合法性检查 (2)路径测试 (3)事务测试 (4)导入导出测试 (5)安全性测试 (6)Login/Logoff测试 (7)日志测试
13、使用基本路径测试方法设计测试用例的步骤: (1)根据过程设计结果画出相应的流图 (2)计算控制流图的圈复杂度 (3)确定线性独立路径的基本集合
(4)设计可强制执行基本集合中每条路径的测试用例
四、设计题
1、NextDate函数问题说明:输入一个日期,求从输入日期算起的第三天日期。例如,输
入为2008年8月8日,则该程序的输出为2008年8月10日。NextDate函数包含三个整数变量month、day和year,并且满足下列条件:1≤ month ≤12和1≤ day ≤31。
精选
.
(1)分析各种输入情况,列出为输入变量month、day、year划分的有效等价类 等价类划分格式示例如下: 输入 ID 1 有效等价类 day 1 ≤day≤31 (2)根据划分的等价类,再考虑month边界值,设计健壮等价类测试用例。 测试用例格式示例如下:
用例ID 1 day 5 month year 5 2008 预期输出 20080505 覆盖等价类 1,2
(1)输入等价类
输入 ID 1 2 3 4 5 6 有效等价类 day 1 ≤day≤26 day=27 day=28 day=29 day=30 day=31 month=4,6,9,11 month=1,3,5,7,8,10 month=2 month=12 闰年 非闰年 month 7 8 9 10 year
(2)设计测试用例 用例ID 1 2 3 4 5 6 7 8 9 10 11 11 12 day 5 27 28 29 30 31 5 5 5 5 5 month year 1 5 5 5 5 5 -1 2 11 12 13 2008 2008 2008 2009 2009 2009 2008 2008 2008 2008 2008 预期输出 20080107 20080529 20080530 20090531 20090601 20090602 覆盖等价类 1,8,11 2,8,11 3,8,11 4,8,12 5,8,12 6,8,12 1,9,11 1,7,11` 1,10,11 无效月份 20080207 20081107 20081207 2、 三角形问题说明:输入三个正整数a、b、c,分别作为三角形的三条边,现通过程序判断由三条边构成的三角形的类型是否为等边三角形、等腰三角形、直角三角形、普通三角形以及非三角形。假设要求输入的a、b、c数据满足的条件是:
a>0∧b>0∧c>0 并且 a根据问题的规格说明,可从输出域划分5种等价类:
R1:等边三角形
精选
无效月份 .
R2:等腰三角形 R3:直角三角形
R4:普通三角形 R5:非三角形
可由输出等价类求输入等价类:
例如输出的等边三角形等价类R1对应的输入等价类S1表示为
R1: S1 = { | a=b∧b=c∧a=c∧a>0∧b>0∧c>0} (1)按上述表示,将输出等价类变换为对应的输入等价类。 (2)假设1≤a,b,c≤10,根据划分的等价类,设计健壮等价类测试用例,再使用必 要的边界值用例补充。 测试用例格式示例如下: 用例ID 1 a 5 b 5 c 5 预期输出 等边三角形 覆盖等价类 S1,S2 (1)输入等价类 R1: S1 = { | a=b∧b=c∧a=c∧a>0∧b>0∧c>0} R2: S2 = { |(a=b∨b=c∨a=c)∧(a+b>c∧b+c>a∧a+c>b)∧a>0∧b>0∧c>0} R3: S3 = { | a>0∧b>0∧c>0∧(a+b>c∧b+c>a∧a+c>b)∧(a2+b2=c2∨b2+c2=a2∨ a2+c2=b2)} R4: S4 = { |a≠b∧b≠c∧a≠c∧a>0∧b>0∧c>0∧(a+b>c∧b+c>a∧a+c>b)} R5: S5 = { |(a+b≤c∨b+c≤a∨a+c≤b)∧a>0∧b>0∧c>0∨a≤0∨b≤0∨c≤0} (2)设计测试用例 用例ID 1 2 3 4 5 6 7 8 a 5 3 3 4 10 2 11 -1 b 5 3 4 6 6 4 7 3 c 5 4 5 5 7 6 8 4 预期输出 等边三角形 等腰三角形 直角三角形 普通三角形 普通三角形 非三角形 非三角形 非三角形 覆盖等价类 S1,S2 S2 S3 S4 S4 S5 S5 S5 3、某软件规格说明书对某二位编码的定义如下:编码的第一个字符必须是A或B,第二个 字符必须是一位数字,此情况下给出信息:编码正确;如果第一个字符不是A或B,则给出信息:编码错误;如果第一个字符是A或B,第二个字符不是数字,则给出信息:修改编码。 (1)根据问题的规格说明,列出原因和结果。 因果表格式示例如下: ID ① 原因(输入) a=b=c ID A 结果(输出) 等边三角形 (2)画出因果图。 (3)将因果图转换成简化的决策表,并设计出测试用例。 精选 . 决策表格式示例如下: 规则 条件 ① (原因)… 动作 A (结果)… 测试用例 1 Y … √ … 3,3,3 2 3 … n (1)列出原因和结果 ID ① ② ③ 原因(输入) 第一个字母是A 第一个字母是B 第二个字母是数字 ID A B C 结果(输出) 显示编码错误 显示编码正确 显示修改编码 (2)画出因果图 ① ~ A E ∨ ⑩ ② ∧ B ③ ~ C 中间状态⑩,表示已接受第一个字符。 (3)将因果图转换成简化的决策表,并设计出测试用例。 规则 ① 条件 ② (原因) ③ ⑩ A 动作 B (结果) C 测试用例 A3 1 Y Y - 2 Y N Y Y √ 3 Y N N Y √ AA B6 4 N Y Y Y √ 5 N Y N Y √ BB 11 6 N N - N √ 不可能 √ 4、阅读下面的一段程序, void Test2(int X,int A,int B) 1 { 2 int k=0,j=0; 3 if((A>1)&&(B==0)) 4 { 5 X=X/A; 6 k=A*B-1; 7 } 8 if((A==2)||(X>1)) 9 X=X+1; 10 j=X+3; 精选 . 11 }// Test2 试求: (1)画出程序的流程图及控制流图(可用语句标号表示),计算程序的环形复杂度。 (2)确定程序的独立路径,并根据独立路径,设计测试用例。 测试用例格式示例如下: 用例ID 1 X 5 A 3 B 2 预期输出k,j 2,5 覆盖路径 1-2-3 (1)程序的流程图及控制流图如下: 123T4,5,6,783F4,5,6,78T9F91010 1111 程序的环形复杂度为: V(G)=P+1=2+1=3 (2)确定该程序的独立路径如下: 路径1:1→2→3→8→10→11 路径2:1→2→3→4→5→6→7→8→10→11 路径3:1→2→3→4→5→6→7→8→9→10→11 根据独立路径,设计测试用例。 用例ID 1 2 3 X 0 5 4 A 0 4 2 B 0 0 0 预期输出k,j 0,3 -1,4 -1,6 覆盖路径 1→2→3→8→10→11 1→2→3→4→5→6→7→8→10→11 1→2→3→4→5→6→7→8→9→10→11 5、如图显示某程序的逻辑结构。试为它设计足够的测试用例,分别实现对程序的判定覆盖、条件覆盖和条件组合覆盖。 精选 . 测试用例格式如下: 覆盖种类 判定覆盖 覆盖种类 判定覆盖 需满足的条件 A>0, B=0 A>0, B¹0或 A£0, B=0或 A£0, B¹0 测试数据 A=2, B=0 A=2, B=1或 A=0, B=0或 A=0, B=1 A=2,B=0 A=0,B=1 A=2, B=0 A=2, B=1 A=0, B=0 A=0, B=1 期望结果 执行S1 执行S2 需满足的条件 A<5, B>8 测试数据 A=4, B=9 期望结果 执行S1 条件覆盖 以下四种情况各出现一次 A>0 A£0 B¹0 B=0 执行S1 执行S2 执行S1 执行S2 执行S2 执行S2 条件组合覆盖 A>0, B=0 A>0, B¹0 A£0, B=0 A£0, B¹0 6、阅读下面的程序, void Test1( int n, int i ) 1 { 2 int x=0; 3 int y=0; 4 while ( n-- > 0 ) 5 { 6 if ( i==0 ) 7 x=y+2; 8 else 9 if ( i==1 ) 10 y=y+10; 11 else 12 x=y+20; 13 }// while 14 }// Test1 精选 . 试求: (1)画出程序的流程图及控制流图(可用语句标号表示),计算程序的环形复杂度。 (2)确定程序的独立路径,并根据独立路径,设计测试用例。 测试用例格式示例如下: 用例ID 1 n 5 i 1 预期输出x,y 2,5 覆盖路径 1-2-3 (1)程序的流程图及控制流图如下: 12,346F4T10T6F9FT1079127121414 程序的环形复杂度为: V(G)=E-N+2=9-7+2=4 或 V(G)=P+1=3+1=4 (2)确定程序的独立路径。 路径1:4→14 路径2:4→6→7→14 路径3:4→6→9→10→4→14 路径4:4→6→9→12→4→14 根据独立路径,设计测试用例。 用例ID 1 2 3 4 n 0 1 1 1 i 0 0 1 2 预期输出x,y 0,0 0,2 0,10 20,0 覆盖路径 4→14 4→6→7→14 4→6→9→10→4→14 4→6→9→12→4→14 7、用等价类划分法设计下面的测试用例:有一个报表系统,要求用户输入要处理的报表的日期,假设日期的范围为2000年1月到2020年12月。如果用户输入的日期不在这个范围内,则显示错误码信息,并且此系统规定日期由年月六位数字组成,前4为代表年,后两位代表月 (1)请列出等价类表(包括有效和无效的等价类)。 (2)根据(1)中的等价类表,设计能覆盖所有等价类的测试用例。要求包括输入数据和预 精选 . 期输出,并指出各个测试用例所能覆盖的等价类编号。 测试用例格式示例如下: 测试用例编号 1 (1)等价类表 输入条件 报表日期 编号 1 有效等价类 6位数字字符 编号 2 3 4 6 7 9 10 预期输出 201006 有非数字字符 少于6个数字字符 多于6个数字字符 年份小于2000 年份大于2020 月份小于1 月份大于12 无效等价类 有非数字字符 少于6个数字字符 多于6个数字字符 小于2000 大于2020 小于1 大于12 覆盖等价类编号 1,5,8 2 3 4 6 7 9 10 输入数据 201108 预期输出 201108 覆盖等价类编号 1,2,3 年份范围 月份范围 5 8 在2000-2020 在1-12 (2)设计测试用例 测试用例编号 1 2 3 4 5 6 7 8 输入数据 201006 200a0b 20102 2012012 198802 203011 200000 202013 五、单选题 1. 单元测试主要针对模块的几个基本特征进行测试,该阶段不能完成的测试是 [ ] A. 系统功能 B. 局部数据结构 C. 重要的执行路径 D. 错误处理 2. 下面是有关基本路径测试方法的描述: (1)计算程序的环形复杂度,导出程序基本路径集中的独立路径条数。 (2)导出基本路径集,确定程序的独立路径。 (3)画出程序的控制流图。 (4)根据图中的独立路径,设计测试用例的输入数据和预期输出。 正确的执行基本路径测试方法的步骤是 [ ] A. (1)(2)(3)(4) B. (3)(1)(2)(4) C. (3)(4)(2)(1) D. (4)(3)(2)(1) 3. 针对软件的可维护性,目前业界主要存在三种度量参数:Line复杂度、Halstead复杂度和McCabe复杂度。其中McCabe复杂度表示 [ ] A. 以代码的行数作为计算的基准 B. 以程序中使用到的运算符与运算元数量作为计数目标 C. 以软件的流程图来衡量软件的质量 精选 . D. 以软件的功能结构图来评价软件的可维护性 4. 下列测试方法中,测试目的是对最终软件系统进行全面的测试,确保最终软件系统满足产品需求的是 [ ] A. 系统测试 B. 集成测试 C. 单元测试 D. 功能测试 5. 自底向上法集成测试方法需要对每个被测试模块构造 [ ] A. 驱动模块 B. 桩模块 C. 驱动模块和桩模块 D. 关键模块 6. 在集成测试策略的环境中,对某些已经进行过的测试的某些子集再重新进行一遍,以保证上述改变不会传播无法预料的副作用或引发新的问题,这一测试称为 [ ] A. 集成测试 B. 确认测试 C. 系统测试 D. 回归测试 7. 在软件测试阶段,测试步骤按次序可以划分为以下几步 [ ] A. 验收测试、单元测试、系统测试、集成测试 B. 单元测试、集成测试、验收测试、系统测试 C. 单元测试、集成测试、系统测试、验收测试 D. 系统测试、单元测试、集成测试、验收测试 8. 下列关于单元测试的说法错误不正确的是 [ ] A. 单元测试允许对许多个单元的测试并行展开 B. 单元测试是在编码阶段进行的,因此只能使用白盒测试手段,不能使用黑盒测试方法 C. 为了检验程序对异常或错误的处理是否正确,在设计单元测试用例时需要准备可能导致模块失效的无效数据 D. 在单元测试前通常需要构造一个测试模型,该模型中往往会使用到驱动模块和桩模块 9. 下列关于等价类划分方法的描述中不正确的是 [ ] A. 有效数据等价类指的是对程序的规格说明有意义的、合理的输入数据所构成的集合 B. 如果等价类中的一个测试不能捕获缺陷,那么应尝试选择该等价类中的其他测试来捕获该缺陷 C. 正确的划分等价类会使测试更加准确有效,避免发生遗漏测试或测试冗余的情况 D. 只要从等价区间中选择一到两个有代表性的值作为测试数据来执行就等同于测试了区 间中所有的值 10. 大量的事实表明,导致软件缺陷的最大原因是 [ ] A. 软件产品说明书 B. 软件设计手册 C. 软件用户操作手册 D. 软件维护手册 11. 一个好的测试用例在于发现了还未曾发现过的错误。这句话描述的是 [ ] A. 软件测试目的 B. 软件测试原则 C. 软件测试停止的依据 D. 软件测试基本问题 精选 . 12. 从宏观上说,C/S体系结构的软件测试通常是从单个客户端开始,然后再逐步集成客户端、服务器和网络系统进行集成测试,最后进行系统的整体测试。下面不属于整体测试的主要内容是 [ ] A. 事务测试 B. 网络通信测试 C. 数据库的测试 D. 对应用服务器(中间件)的测试 13. 实际的逻辑覆盖测试中,设计测试用例时主要基于 [ ] A. 条件覆盖 B. 判定覆盖 C. 条件组合覆盖 D. 路径覆盖 14. 软件测试不需要了解软件设计的 [ ] A. 功能 B. 内部结构 C. 处理过程 D. 条件 15. 根据输出对输入的依赖关系设计测试用例的测试方法是 [ ] A. 路径测试 B. 等价类 C. 因果图 D. 边界值分析 16. 必须要求用户参与的测试阶段是 [ ] A. 单元测试 B. 集成测试 C. 确认测试 D. 验收测试 17. 在软件测试工具中,下面属于静态测试工具类型的是 [ ] A. 代码检查 B. 内存分析 C. 功能确认 D. 接口测试 18. 下列关于α测试的描述中正确的是 [ ] A.α测试不需要用户代表参加 B.α 测试需要用户代表参加 C.α测试是系统测试的一种 D.α测试是集成测试的一种 19. 关于软件测试、软件过程和软件质量关系的描述中,下列说法不正确的是 [ ] A. 软件质量是由软件测试保证的 B. 软件测试是提高软件质量的一种手段 C. 软件过程包括软件测试 D. 软件质量是软件过程中逐步建立起来的 20. 对于下面的逻辑覆盖法的有关描述:选择足够多的测试用例,使得程序中的每个可执行语句至少执行一次。该逻辑覆盖属于 [ ] A. 条件覆盖 B. 判定覆盖 C. 语句覆盖 D. 组合覆盖 21. 下面说法正确的是 [ ] A. 经过测试没有发现错误说明程序正确 B. 测试的目标是为了证明程序没有错误 精选 . C. 成功的测试是发现了迄今尚未发现的错误的测试 D. 成功的测试是没有发现错误的测试 22. 测试的关键问题是 [ ] A. 如何组织软件评审 B. 如何选择测试用例 C. 如何验证程序的正确性 D. 如何采用综合策略 23. 如果某测试用例集实现了某软件的路径覆盖,那么它一定同时实现了该软件的 [ ] A. 判定覆盖 B. 条件覆盖 C. 判定/条件覆盖 D. 组合覆盖 24. 下列关于白盒测试的说法中正确的是 [ ] A. 白盒测试仅限于检查代码的规范性问题 B. 白盒测试中的所有策略都需要运行被测试的程序 C. 白盒测试适用于软件测试的各个阶段 D. 白盒测试是软件的逻辑和内部结构为基础的测试技术 25. 侧重于观察资源耗尽情况下的软件表现的系统测试被称为 [ ] A. 强度测试 B. 压力测试 C. 容量测试 D. 性能测试 26. 下列几种逻辑覆盖标准中,查错能力最强的是 [ ] A. 语句覆盖 B. 判定覆盖 C. 条件覆盖 D. 条件组合覆盖 27. 使用白盒测试方法时,确定测试数据应根据指定的覆盖标准和 [ ] A. 程序内部逻辑 B. 程序的复杂度 C. 使用说明书 D. 程序的功能 六、题型举例 一、单项选择题(本大题共15小题,每小题1分,共15分) 1. 在用白盒测试中的逻辑覆盖法设计测试用例时,有语句覆盖、分支覆盖、条件覆盖、判定-条件覆盖、条件组合覆盖和路径覆盖等,其中最弱的覆盖准则是 [ ] A. 语句覆盖 B. 条件覆盖 C. 判定-条件覆盖 D. 路径覆盖 2. 对Web网站进行的测试中,属于功能测试的是 [ ] A. 连接速度测试 B. 链接测试 C. 平台测试 D. 安全性测试 3. 下列选项中,不属于软件自动化测试的优点的是 [ ] A. 速度快、效率高 B. 准确度和精确度高 精选 . C. 可实现无人照料测试 D. 能充分测试软件 4. 软件测试技术可以分为静态测试和动态测试,下列说法中不正确的是 [ ] A. 静态测试是指不运行实际程序,通过检查和阅读等手段来发现程序中的错误。 B. 动态测试是指实际运行程序,通过运行的结果来发现程序中的错误。 C. 动态测试包括黑盒测试和白盒测试。 D. 白盒测试是静态测试,黑盒测试是动态测试。 5. 下列项目中不属于测试文档的是 [ ] A. 测试计划 B. 测试用例 C. 程序流程图 D. 测试报告 6. 与确认测试阶段有关的文档是 [ ] A. 需求规格说明书 B. 概要设计说明书 C. 详细设计说明书 D. 源程序 7. 用等价类划分法设计对所有实数进行开平方运算的程序的测试用例,可以将输入域进行划分为 [ ] A. 正整数、0 和 负整数 B. 正实数、0和负实数 C. 有理数和无理数 D. 实数和虚数 8. 假设一个软件的数据输入要求是4位整数,则利用边界值分析法,输入的有效等价类和无效等价类的边界值分别为 [ ] A. 1000,9999;1000,10000 B. 999,9999;999,10000 C. 1000,9999;999,10000 D. 999,9999;1000,100000 二、填空题(本大题共10小题,每小题1分,共10分) 1. 等价类划分法是典型的 黑盒 测试方法,该方法设计测试用例时完全不必考虑软件结构,只需考虑需求规格说明书中的功能要求。 2. 压力测试也叫 负荷测试 ,即获取系统能正常运行的极限状态。 3. 软件缺陷的等级描述软件缺陷的严重程度,一般分为 致命 、严重、一般、建议4种。 4. 面向对象的开发模型突破了传统的瀑布模型,将开发分为面向对象分析、面向对象设计和 面向对象编程 三个阶段。 5. 面向对象编程的测试重点集中在类功能的实现和相应的面向对象的程序架构上,主要表现之一为数据成员是否满足 数据封装 的要求。 6. 软件测试是为了 发现错误 而执行程序的过程。 7. 渐增式测试有三种不同的组装模块的方法: 自顶向下集成测试方法 、自底向上集成测试方法和混合渐增式集成测试方法。 8. 在编码阶段,测试需要解决的首要问题是编码是否和 设计 一致,其次是系统是否可维护,系统的规格说明是否正确地实现,编码是否按照既有的标准进行。 9. 用等价类划分法设计一个测试用例时,使其覆盖 尽可能多的 尚未被覆盖的合理等 精选 . 价类。 10. 选择测试用例,使得被测程序中每个判定的每个分支至少执行一次,这种逻辑覆盖标准称为 判定覆盖 。 11. 用等价类划分法设计测试用例时,如果被测程序的某个输入条件规定了取值范围,则可确定一个合理的等价类和 两个不合理的等价类 。 12. 面向对象的 集成 测试能够检测出相对独立的单元测试无法检测出的那些类相互作用时才会产生的错误。 13. 一个好的测试用例在于能发现 至今未发现 的错误。 14. 动态测试包括黑盒测试、白盒测试以及 灰盒测试 等。 15. 缺陷管理工具用于几种管理软件测试过程中发现的错误,是添加、修改、排序、查询、存储软件测试错误的 数据库程序 。 16. 生命周期测试方法意味着测试与软件开发平行,在软件开发的所有阶段进行测试,确保在 尽可能早 的阶段点去修正缺陷,用来减少测试成本。 17. 软件测试过程模型中的V模型是软件开发 瀑布 模型的变种,它描述了各个测试阶段和开发过程期间各阶段的对应关系。 18. 性能测试工具是一种预测系统行为和性能的自动化测试工具,性能测试工具的代表有Mercury公司的 LoadRunner 、Segue的SilkPerfomer,以及开源的Apache JMeter。 19. 典型的几种软件生命周期模型包括 瀑布模型 、快速原型模型和迭代模型。 20. α测试是指软件开发公司组织内部人员模拟各类用户对即将发布的软件产品进行测试,试图发现错误并修正。经过α测试调整的软件产品称为 β版 。 21. 如果一个产品中,次严重缺陷基本完成修复且通过复测,这个阶段的成品是 β版 。 22. 基线即 软件技术状态基线 ,指需要受配置管理控制的某个研制阶段的结束点时,此时软件成分的技术状态,它是下一步软件开发的基础。 23. 面向对象技术所独有的多态、继承、 封装 等特性,产生了传统程序设计所不存在的错误的可能性。 24. 常用的代码质量检查方法有代码检查、桌面检查、 代码走查 和技术评审。 三、名词解释(本大题共5小题,每小题3分,共15分) 1. 回归测试 回归测试是指对某些已经被测试过的内容进行重新测试,其目的是对验收测试的结果进行验证和修改。 2. 软件配置项 为独立的软件配置管理而设计的且能满足最终用户要求的一组软件,简称软件配置项。 精选 . 四、简答题(本大题共6小题,共30分) 1. 简述C/S系统测试的常见测试点。 (1)输入合法性检查 (2)路径测试 (3)事务测试 (4)导入导出测试 (5)安全性测试 (6)Login/Logoff测试 (7)日志测试 2. 简述单元测试、集成测试和确认测试各自的主要目标。 (1)单元测试的主要目标是检查各个模块是否正确实现规定的功能,从而发现模块在编码中或算法中的错误。 (2)集成测试的主要目标是检查与设计相关的软件体系结构的有关问题。 (3) 确认测试的主要目标是检查已实现的软件是否满足需求规格说明书中确定的各种需求。 五、设计题(每题10分,共30分) 1、NextDate函数问题说明:输入一个日期,求从输入日期算起的第三天日期。例如,输入 为2009年8月8日,则该程序的输出为2009年8月10日。NextDate函数包含三个整数变量month、day和year,并且满足下列条件:1≤ month ≤12和1≤ day ≤31。 (1)根据问题的规格说明,将输入变量month、day、year划分的有效等价类作为原 因,列出原因和结果(假设不考虑闰年)。 因果表格式示例如下: ID ① 原因(输入) a=b=c ID A 结果(输出) 等边三角形 (2)根据因果表,分析因果关系,画出简化的决策表,并设计测试用例。 决策表格式示例如下: 规则 条件 ① (原因)… 动作 A (结果)… 测试用例 (a,b,c) 1 Y … √ … 3,3,3 2 3 … n (1)列出原因和结果 ID ① 原因(输入) ID A 结果(输出) day+2 month=4,6,9,11 精选 . ② ③ ④ ⑤ ⑥ ⑦ ⑧ ⑨ ⑩ month=1,3,5,7,8,10 month=2 month=12 1 ≤day≤26 day=27 day=28 day=30 day=31 year B C D E F day=2 day=1 month+1 month=1 year+1 (2)画出简化的决策表,并根据决策表,设计测试用例。 规则 条件 ① (原因)② ③ ④ ⑤ ⑥ ⑦ ⑧ ⑨ ⑩ 动作 A (结果)B C D E F 不可能 测试用例 (mouth,day, year) 6, 16, 2009 6, 30, 2009 1 Y Y Y Y Y Y - √ 2 Y Y - √ √ 3 Y Y - √ 9, 31, 2009 3, 16, 2009 5, 31, 2009 2, 16, 2009 2, 27, 2009 4 Y Y - √ √ 5 Y Y - √ √ 6 Y Y - √ 7 Y Y - √ √ 8 Y Y - √ √ 2, 28, 2009 9 Y Y Y - √ 2, 30, 2009 10 Y Y - √ √ √ 12, 30, 2009 12, 31, 2009 11 Y Y - √ √ √ 精选 因篇幅问题不能全部显示,请点此查看更多更全内容