当前位置:文档之家› 软件测试技术复习题(1104)li

软件测试技术复习题(1104)li

软件测试技术复习题(1104)li
软件测试技术复习题(1104)li

软件测试技术复习题(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划分的有效等价类

(2

测试用例格式示例如下:

(1)输入等价类

(2

2、

断由三条边构成的三角形的类型是否为等边三角形、等腰三角形、直角三角形、普通三角形以及非三角形。假设要求输入的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,根据划分的等价类,设计健壮等价类测试用例,再使用必要的边界值用例补充。

测试用例格式示例如下:

(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)设计测试用例

3、某软件规格说明书对某二位编码的定义如下:编码的第一个字符必须是A或B,第二个

字符必须是一位数字,此情况下给出信息:编码正确;如果第一个字符不是A或B,则给出信息:编码错误;如果第一个字符是A或B,第二个字符不是数字,则给出信息:修改编码。

(1)根据问题的规格说明,列出原因和结果。

(2

(3)将因果图转换成简化的决策表,并设计出测试用例。

决策表格式示例如下:

(1)列出原因和结果

(2

① ~ A

E ∨ ⑩

② ∧ B ③ ~ C

中间状态⑩,表示已接受第一个字符。

(34void 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)确定程序的独立路径,并根据独立路径,设计测试用例。

(1)程序的流程图及控制流图如下:

程序的环形复杂度为: 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

5、如图显示某程序的逻辑结构。试为它设计足够的测试用例,分别实现对程序的判定覆盖、条件覆盖和条件组合覆盖。

覆盖种类需满足的条件测试数据期望结果

判定覆盖A<5, B>8A=4, B=9执行S1

覆盖种类需满足的条件测试数据期望结果判定覆盖A>0, B=0A=2, B=0执行S1

A>0, B10或A£0, B=0或A£0, B10

A=2, B=1

A=0, B=0

A=0, B=1

执行S2

条件覆盖以下四种情况各出现

一次

A>

B=0A=2,B=0执行S1

A£

B10A=0,B=1执行S2条件组合覆盖A>0, B=0A=2, B=0执行S1

A>0, B10A=2, B=1执行S2

A£0, B=0A=0, B=0执行S2

A£0, B10A=0, B=1执行S2

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)确定程序的独立路径,并根据独立路径,设计测试用例。 测试用例格式示例如下:

(1)程序的流程图及控制流图如下:

程序的环形复杂度为:

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

7、用等价类划分法设计下面的测试用例:有一个报表系统,要求用户输入要处理的报表的日期,假设日期的范围为2000年1月到2020年12月。如果用户输入的日期不在这个范围内,则显示错误码信息,并且此系统规定日期由年月六位数字组成,前4为代表年,后两位代表月

(1)请列出等价类表(包括有效和无效的等价类)。

(2)根据(1)中的等价类表,设计能覆盖所有等价类的测试用例。要求包括输入数据和预

期输出,并指出各个测试用例所能覆盖的等价类编号。

(1)等价类表

五、单选题

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划分的有效等价类作为原因,列出原因和结果(假设不考虑闰年)。

(2

(1

软件测试工程师高级视频教程

软件测试工程师高级视频教程 什么是软件测试?为什么有这么多人选择学习软件测试?软件测试有超强的预判能力,拯救用户,拯救软件,避免未来软件被用户无情卸载的命运。2018年软件测试将延续近两年火爆的发展势头,千锋出品的软件测试工程师高级视频教程,将为广大软件测试爱好者的高效自学提供可能。 下面就来说说千锋教育软件测试教学团队全新录制的5章视频教程都涵盖哪些内容。 软件测试工程师高级视频教程:https://www.doczj.com/doc/8d8931401.html,/s/1dFm5wbR 软件测试工程师高级视频教程第一章:在本章中,老王详细向学生们介绍了软件测试的历史,软件测试的目的,软件测试的对象、软件测试概念等具体知识。

让学生一方面逐步熟悉软件测试的一些经典理论和思想,另一方面结合知识概念从根本的角度理解软件测试是什么,以及软件测试的重要性。 软件测试工程师高级视频教程第二章:本章课程主要是向学生讲解软件测试过程模型。但为了让学生们更好的理解这个知识点,我们需要先去了解什么是软件的生命周期,软件生命周期都包含哪些具体活动?什么是软件开发的过程,软件开发团队的工作过程模型都有哪些。只有充分了解了这些内容,我们在学习软件测试过程模型的时候,才会更好的掌握相关的知识与概念。 软件测试工程师高级视频教程第三章:本集视频主要介绍了从开发角度划分的5类测试方法 软件测试工程师高级视频教程第四章:本章主要讲解软件测试计划的内容。测试计划是一切软件测试活动开始前的准备工作,通过对测试计划的分析与编写,实际是让相关参与者提前了解未来软件测试过程中应该重点关注的各项内容。所以所有软件测试工程师必备的一项技能。 软件测试工程师高级视频教程第五章:本章的内容主要带领各位同学去一起关注了解关于需求的各项知识。需求是测试工程师工作过程中的行动纲领,需要测什么,为什么需要测都是与需求中的具体要求相关。同时,需求过程中引入缺陷的几率很大,而发现后修复其的成本却很低,所以了解需求,掌握需求分析方法,熟练编写测试需求也是软件测试工程师的重要技能之一。 目前软件测试人才的缺口在30万人以上,IT行业国内外巨头正在加紧争夺软件测试人才,华为一次抛出50名软件测试人员的招聘大单,而联想、用友、

软件测试基础课程—慕课网

软件测试基础教程——慕课网 第一课时:软件测试概要 一、软件测试的定义 软件测试是使用人工或自动的手段来运行或测量软件系统的过程,以检验软件系统是否满足规定的要求,并找出与预期结果之间的差异。 二、软件测试的测试的对象 需求、概要设计、详细设计、运行环境、可运行程序、源代码。(软件测试≠程序测试) 三、软测的五大要素及两大目标 五大要素: 质量(最为核心),人员(决定因素),技术(实现手段)【测试技术,方法,测试工具】,资源【测试所需的硬件,网络环境,测试生命周期,测试时间】,流程(测试标准)【测试计划,测试执行,报告】目标:提升测试覆盖率及测试效率 四、软件测试所遵循的原则: 1.测试显示缺陷的存在,但不能证明系统不存在缺陷。 2.穷尽测试是不可能的,应设定及时终止的条件。 3.测试应该尽早进行。

4.缺陷具备群集特性。越是发现问题多的模块,就是我们重点关注的对象。 5.测试的杀虫剂悖论。在测试当中,我们采用同样的测试用例、同样的测试方法,多次、重复的来测试某一个模块,那最后我们就不能够再发现新的缺陷。所以我们的测试用例和测试方法应该不定期的评审和修改,并增加不同的测试方法或测试用例来测试软件或系统的不同部分,从而发现更多的缺陷。 6.测试的二八原则。就是我们应该把80%的时间或资源用在20%的重点模块上,重点测试这款软件中20%的重要模块,来达到我们测试的效率和资源配置最佳的比例。 7.测试活动依赖于测试背景。 第二课时:软件测试阶段、手段、模式 一、软件测试阶段 软件测试按测试阶段来分类:单元测试、集成测试、系统测试、验收测试。 (一)单元测试 是各个阶段测试的基础,是对软件中的最小可测试单元进行检查和验证。单元是人为规定的可测试的最小的模块。(java面向对象语言来说,最小可测试单元是每一个类) 单元测试是对代码进行测试 测试框架:junit针对JAVA nunit针对.net phpunit针对PHP CppUnit针对C++ 原则: 1.尽可能的保证各个测试用例是互相独立的。尽量避免使用依赖的方法。编写一个模拟的方法来取代使用外部依赖。 2.一般由代码的开发人员来实施,用以检验所开发的代码功能符合自己的设计要求。 益处: 1.能尽早发现缺陷。 2.有利于重构。 3.简化集成。 4.文档。简化文档作用 5.用于设计。 限制: 1.不可能覆盖所有的执行路径,所以不可能保证捕捉到所有路径的错误。 2.每一行代码,一般需要3~5行测试代码才能完成单元测试。所以存在投入和产出的一个平衡。 (二)集成测试(偏于技术角度验证)

《软件测试基础》期末试卷及参考答案

期末试卷先锋学院2011-2012学年第二学期 《软件测试技术》试题库答案 一、填空题(每空2分,共15空,分数为30分) 1、判定覆盖设计足够多的测试用例,使得被测试程序中的每个判断的“真”、“假”分支至少被执行一次。 2、黑盒测试的具体技术方法等价类划分法、边界值分析法、决策表法、因果图法。 3、黑盒测试又称之为功能测试。 4、等价类划分有两种不同的情况:有效等价类和无效等价类。 5、根据覆盖目标的不同,逻辑覆盖又可分为:语句覆盖,判定覆盖,条件覆盖,路径覆盖条件组合覆盖,判断/条件覆盖。 6、根据软件生命周期中的定义,可以把自动化测试工具划分3大类白盒 测试工具、黑盒测试工具和测试管理工具。 7、软件测试是为发现程序中的错误而执行程序的过程。 8、测试用例是由测试输入数据和预期的输出数据两部分组成。 9、白盒测试又称为结构测试,可以分为静态测试和动态测试两大类。 10、软件是包括程序、数据、相关文档的完整集合。 11、边界值分析法属于黑盒测试。 12、单元测试是以详细设计说明书为指导,测试源程序代码。 13、集成测试以概要设计说明书指导,测试软件结构。 14、确认测试以需求分析说明书为指导。 15、软件开发的基本过程需求分析、概要设计、详细设计、编码、测试、 维护。

16、代码复审属于静态测试,不实际运行程序。 17、集成测试把模块组成成系统的测试方式:一次性集成测试和。 18、黑盒测试有两种基本方法,即:通过测试和失败测试。增量式集成测试 20、Junit是一个开放源代码的 java 测试框架,用于编写和运行可重复的测试。 21、在Junit中3.8中testXXX()测试方法必须满足几个条件:public , void 和无方法参数。 二、选择题(每题3分,共10题,分数为30分) 1. 下列哪一项不是白盒测试?(C) A.单元测试 B.集成测试 C.系统测试 D.回归测试 2. 属于黑盒测试的方法?(C) A.基于基本路径 B.控制流 C.基于用户需求测试 D.逻辑覆盖3.在Assert类中断言对象为NULL是_____。(C) A.assertEquals B.assertTrue C.assertNull D.fail 4.___________的目的是对最终软件系统进行全面的测试确保最终软件系统产品满足需求。(A) A.系统测试B.集成测试 C.单元测试D.功能测试 5.在Assert类中断言两个对象相等是_____。(A) A.assertEquals B.assertTrue C.assertSame D.fail 6.有一组测试用例使得每一个被测试用例的分支覆盖至少被执行一次,它满足的覆盖标准___________。(B)

软件测试技术经典教程笔记(修).docx

第一章基础知识 1.1、软件 1)、软件=程序+文档 2)、分类 功能:系统+应用 架构:单机+C/S+B/S 用户:产品+项目 规模:小型+中型+大型 1.2、Bug 1)、类型一(广义上,软件生命周期,与用户需求不符的问题): 完全没有实现的功能 基本实现功能,但有功能上或性能上的问题 实现了用户不需要的功能 2)、类型二(测试执行阶段的问题) Defect---------Requirements&Design Error-----------Development Bug------------Testing Failure---------Post production 1.3、测试 1)、概念: 测试是为了检验实际的软件是否符合用户需求,所以不能为了发现错误而发现错误。使用人工或自动手段,来运行或测试某个系统的过程。 2)、测试环境:硬件+软件+网络 要求:真实(项目、产品)+干净+无毒+独立(测试与开发) 1.4、测试用例 测试用例=输入+输出+测试环境 便于团队交流,便于重复测试,便于跟踪统计,比纳与用户自测 开发生命周期 需求分析→概要设计→详细设计→编码→维护 测试生命周期 测试计划→测试设计→测试执行→测试评估 需求分析和测试计划完成后,根据《系统需求规格说明书》和软件原型(DEMO)写测试用例 1.5 其他 1)、测试人员素质要求:细心、耐心、信心、服务意识、团队合作意识、沟通能力 2)、如何成为优秀的测试工程师:1、不断学习充电2、阅读原版书籍3、阅读缺陷管理系 统中的缺陷报告4、阅读高手写的测试用例5、学习产品相关 的业务知识

1.6 软件测试的基本规则 1) Zero Bug 与Good Enough Good Enough原则:不充分测试是不负责任,过分的测试是一种资源浪费。 参考:*遗留bug不超过10个,严重的不超过5个 *测试用例执行率为100%,通过率为95% *单元测试,关键模块语句覆盖率达到100%,分支覆盖率达到85% 2) 不要视图穷举法 3) 开发人员不能既是运动员又是裁判员 4) 软件测试要尽早执行 一般情况下,软件80%的缺陷集中在20%的模块中。 7) 缺陷具有免疫性 缺陷具有免疫性,需要根据新版本修改维护测试用例,另外,有一个值得注意的经验:没修复3-4个bug,可能会产生一个新bug。 第二章测试分类 2.1、是否运行程序 Static Testing------------代码规范、界面、文档 Dynamic Testing--------运行程序 2.2、根据阶段分类 Unit Testing(单元测试)----------10% 最小模块,依据源程序和《详细设计》 白盒测试人员||开发人员 编译代码→静态测试→动态测试 桩模块(Stub)、驱动模块(Driver) Integration Testing(集成测试)----------20% 模块间的接口,依据单元测试的模块和《概要设计》 白盒测试人员||开发人员 一般单元和集成同步进行 System Testing(系统测试)----------40% 整个系统(功能、性能、软硬件环境),依据《需求规格说明书》 黑盒测试工程师 Acceptance Testing(验收测试)----------20% 整个系统(功能、性能、软硬件环境),依据《需求规格说明书》和验收标准

软件测试入门教程

软件测试入门教程 软件测试(Software Testing),描述一种用来促进鉴定软件的正确性、完整性、安全性和质量的过程。换句话说,软件测试是一种实际输出与预期输出之间的审核或者比较过程。软件测试的经典定义是:在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。 软件测试是使用人工操作或者软件自动运行的方式来检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别的过程。 它是帮助识别开发完成(中间或最终的版本)的计算机软件(整体或部分)的正确度(correctness) 、完全度(completeness)和质量(quality)的软件过程;是SQA(software quality assurance)的重要子域。 Glenford J.Myers曾对软件测试的目的提出过以下观点:

(1)测试是为了发现程序中的错误而执行程序的过程。 (2)好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案。 (3)成功的测试是发现了至今为止尚未发现的错误的测试。 (4)测试并不仅仅是为了找出错误。通过分析错误产生的原因和错误的发生趋势,可以帮助项目管理者发现当前软件开发过程中的缺陷,以便及时改进。 (5)这种分析也能帮助测试人员设计出有针对性的测试方法,改善测试的效率和有效性。 (6)没有发现错误的测试也是有价值的,完整的测试是评定软件质量的一种方法。 (7)另外,根据测试目的的不同,还有回归测试、压力测试、性能测试等,分别为了检验修改或优化过程是否引发新的问题、软件所能达到处理能力和是否达到预期的处理能力等。 测试原则

2010级软件工程本科《软件测试技术》试卷B - 答案

第 页 共 6 页 1 考试方式: 闭卷 太原理工大学 软件测试技术 试卷B (答案) 适用专业: 2010级软件工程 考试日期: 2012.12.7 时间: 120 分钟 共 8 页 一、 填空题(每空1分,10分) 1._________ _______的定义:软件产品具有满足规定的或隐含要求能力要求有关的特征与特征总和。(软件质量) 2.软件缺陷生命周期有_________ _______状态、_________ _______状态、_________ _______状态等三种基本状态。(“新打开的”、“已修正”和“已关闭”) 3.____________________是将一个软件产品按特定国家和语言市场的需要进行全面定制的过程。 (软件本地化) 4.软件评审的对象分为:__________ _______、________ _________、_________ _________和__________ _______。(管理评审,技术评审,文档评审和流程评审) 5.__________________是模拟实际应用的软硬件环境及用户使用过程的系统负荷,长时间或超大负荷地运行测试软件,来测试被测系统的性能、可靠性、稳定性等。(压力测试,也称为强度测试、负载测试) 二、 判断题(每题1分,10 分,正确的√,错误的╳) 1.代码评审员不完全由测试员担任。( √ ) 2.测试人员要坚持原则,缺陷未修复完坚决不予通过。( ╳ ) 3.在软件开发的过程中,若能推迟暴露其中的错误,则为修复和改正错误所花费的代价就会降低。( ╳ ) 4.好的测试是用少量测试用例运行程序,发现被测程序尽可能多的错误。( √ ) 5.等价类划分方法将所有可能的输入数据划分成若干部分,然后从每一部分中选取少数有代表性的

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

第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.件测试阶段是如何划分的? 解:软件测试的阶段划分为:规格说明书审查;系统和程序设计审查;单元测试;集成测试;确认测试;系统测试;验

最全软件测试基础教程(2011版)

软件测试基础教程 测试的基本概念 测试是软件生存周期中十分重要的一个过程,是产品发布、提交给最终用户前的稳定化阶段。 1、测试的分类: 从测试方法的角度可以分为手工测试和自动化测试。 手工测试:不使用任何测试工具,根据事先设计好的测试用例来运行系统,测试各功能模块。 自动化测试:利用测试工具,通过编写测试脚本和输入测试数据,自动运行测试程序。目前最常用的自动化测试工具是基于GUI的自动化测试工具,基本原理都是录制、回放技术。 从整体的角度可以分为单元测试、集成测试、系统测试、确认测试。 单元测试:是针对软件设计的最小单位—程序模块,进行正确性检验的测试工作。一般包括逻辑检查、结构检查、接口检查、出错处理、代码注释、输入校验、边界值检查。 单元测试的依据是系统的详细设计;一般由项目组开发人员自己完成。 集成测试:在单元测试的基础上,将所有模块按照设计要求组装进行测试。一般包括逻辑关系检查、数据关系检查、业务关系检查、模块间接口检查、外部接口检查。 系统测试:系统测试是在所有单元、集成测试后,对系统的功能及性能的总体测试。 确认测试:模拟用户运行的业务环境,运用黑盒测试方法,验证软件系统是否满足用户需求或软件需求说明书中指明的软件特性(功能、非功能)上的。 从测试原理上分为:白盒测试、黑盒测试和灰盒测试。 白盒测试:是通过程序的源代码进行测试而不使用用户界面。这种类型的测试需要从代码句法发现内部代码在算法,溢出,路径,条件等等中的缺点或者错误,进而加以修正。 黑盒测试:是通过使用整个软件或某种软件功能来严格地测试, 而并没有通过检查程序的源代码或者很清楚地了解该软件的源代码程序具体是怎样设计的。测试人员通过输入他们的数据然后看输出的结果从而了解软件怎样工作。在测试时,把程序看作一个不能打开的黑盆子, 在完全不考虑程序内部结构和内部

软件测试技术考题A卷

《软件测试技术》试卷(A) 1.软件测试的目的:() A. 避免软件开发中出现的错误 B. 发现软件开发中出现的错误 C. 尽可能发现并排除软件中潜藏的错误,提高软件的可靠性 D. 修改软件中出现的错误 2.软件测试按照测试层次可以分为( ) A.黑盒测试、白盒测试 B. 功能性测试和结构性测试 C.单元测试、集成测试和系统测试 D.动态测试和静态测试 3.软件测试是采用()执行软件的活动。 A.测试用例 B.输入数据 C.测试环境 D.输入条件 4.软件测试是软件开发过程的重要阶段,是软件质量保证的重要手段,下列哪个(些)是软件测试的任务?答案:() 1预防软件发生错误 2发现程序错误 3提供诊断错误信息 A.只有1 B.只有2 C.只有3 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、()是选择若干个测试用例,运行被测程序,使得程序中的每个可执行语句至少执行一次。 A、条件覆盖 B、组合覆盖 C、判定覆盖 D、语句覆盖 13、下列___不属于软件缺陷() (A) 测试人员主观认为不合理的地方 (B) 软件未达到产品说明书标明的功能 (C)软件出现了产品说明书指明不会出现的错误 (D)软件功能超出产品说明书指明范围 14.软件测试是软件质量保证的重要手段,下述哪种测试是软件测试的最基础环节?()A.功能测试 B.单元测试 C.结构测试 D.验收测试 15、单元测试的主要任务不包括()。 A.出错处理B.全局数据结构 C.独立路径D.模块接口 二、判断题(共30分,每小题2分。把最恰当的答案题号填入括号内) 1、一个程序中所含有的路径数与程序的复杂程度有着直接的关系。(对) 2、结构性测试是根据软件的规格说明来设计测试用例。(错) 3、错误推测法是根据输出对输入的依赖关系来设计测试用例的。(错) 4、软件缺陷属性包括缺陷标识、缺陷类型、缺陷严重程度、缺陷产生可能性、缺陷优先级、 缺陷状态、缺陷起源、缺陷来源、缺陷原因。(对)

软件测试技术-软件测试管理试题

软件测试技术-软件测试管理试题

第三章软件测试管理 简答题 1.你是如何理解测试的层次和主要的管理活 动? 在软件测试的管理中,以下内容的定义反映测试工作的组织策略: a、软件测试遵循的标准; b、软件测试的工作范畴; c、软件测试环境; d、软件测试产品; e、适用于软件测试活动的软件资源标识规则; f、软件测试的进度安排。 软件测试遵循的标准 组织者在指定范围内选择软件测试遵循的标准,并结合本软件系统的具体要求,使之贯彻到整个软件测试的计划、实现和管理过程之中。根据标准,需要被明确的内容包括:测试阶段和测试文档类型。 可以从三个角度来划分测试阶段:面向测试操作类型的阶段划分、面向测试操作对象的阶段划分、面向测试实施者的阶段划分。测试操作类型包括:调试、集成、确认、验证、组装、验收、操作等。测试操作对象可以是:单元、部件、配置项、子系统、系统等。测试实施者可以是:开发者、测试者、使用者、验收者等。各类标准从不同角度定义测试评审阶段,而测试组织者可以在符合所选标准的同时,结合多个划分因素规定本系统的测试阶段。

各标准规定的测试文档类型也不尽相同。如国标《软件产品开发文件编制指南》规定了两类测试文档:测试计划、测试分析报告;国标《计算机软件测试文件编制规范》定义了八类测试文档:测试计划、测试设计说明、测试用例说明、测试规程说明、测试项传递报告、测试日志、测试事件报告、测试总结报告;《XXXX软件工程化技术文件》定义了三类测试文档:测试计划、测试说明、测试报告。我们认为最后这种规定较易操作:因为,太少的测试文档类型不利于有步骤有层次地定义测试内容,也不利于测试用例和测试例程的良好表达;太多的测试文档类型易使测试组织陷入到繁杂的文档规范和编制中去;而第三种定义较为适中。其中:测试计划在系统分析/设计阶段提交,着重定义测试的资源、范围、内容、安排、通过准则等;测试说明在测试计划明确后开始编制,针对软件需求和设计要求具体定义测试用例和测试规程;测试报告分析和总结测试结果,测试日志是其必要附件。 2.在实际项目中,如何对软件测试进行有效管 理? 我们的项目的生命周期大致分为以下几个阶段:需求阶段、设计阶段、编码阶段、系统测试阶段和客户测试阶段,规定各阶段的流程并指定责任人。按照规程和项目实际情况确定个项目的里程碑,设置多个检验点,由QA监督个检验点评审过程。 通过CMM2的六个关键域职称项目管理以CMM为目标和支撑进行项目的管理。在国内软件开发行业一片混乱中,决定走国际化的标准轨

软件测试技术基础教程

软件测试技术基础教程 软件测试技术基础教程。近来,软件测试行业发展迅速,企业越来越重视测试了。越来越多的人加入了测试大军中,很多人也想通过自学来学习软件测试技术加入这个行业,更多的人开始关注软件测试案例教程,那么软件测试案例教程哪里好呢?软件测试案例教程内容有什么?软件测试案例教程学什么?下面我为大家简要介绍一下软件测试案例教程——黑盒测试和白盒测试 黑盒测试:已知产品的功能设计规格,可以进行测试证明每个实现了的功能是否符合要求。 白盒测试:已知产品的内部工作过程,可以通过测试证明每种内部操作是否符合设计规格要求,所有内部成分是否以经过检查。 软件的黑盒测试意味着测试要在软件的接口处进行。这种方法是把测试对象看做一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明。因此黑盒测试又叫功能测试或数据驱动测试。黑盒测试主要是为了发现以下几类错误: 1、是否有不正确或遗漏的功能? 2、在接口上,输入是否能正确的接受?能否输出正确的结果? 3、是否有数据结构错误或外部信息(例如数据文件)访问错误?

4、性能上是否能够满足要求? 5、是否有初始化或终止性错误? 软件的白盒测试是对软件的过程性细节做细致的检查。这种方法是把测试对象看做一个打开的盒子,它允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。通过在不同点检查程序状态,确定实际状态是否与预期的状态一致。因此白盒测试又称为结构测试或逻辑驱动测试。白盒测试主要是想对程序模块进行如下检查: 1、对程序模块的所有独立的执行路径至少测试一遍。 2、对所有的逻辑判定,取“真”与取“假”的两种情况都能至少测一遍。 3、在循环的边界和运行的界限内执行循环体。 4、测试内部数据结构的有效性,等等。

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

太原理工大学软件测试技术 适用专业:软件工程2011级考试日期:2014.1 时间:120 分钟 一、判断题 1. 测试是调试的一个部分(╳) 2. 软件测试的目的是尽可能多的找出软件的缺陷。(√) 3. 程序中隐藏错误的概率与其已发现的错误数成正比(√) 4. Beta 测试是验收测试的一种。(√) 5. 测试人员要坚持原则,缺陷未修复完坚决不予通过。(√) 6. 项目立项前测试人员不需要提交任何工件。(╳) 7. 单元测试能发现约80%的软件缺陷。(√) 8. 测试的目的是发现软件中的错误。(√) 9. 代码评审是检查源代码是否达到模块设计的要求。(√) 10. 自底向上集成需要测试员编写驱动程序。(√) 11. 测试是证明软件正确的方法。(╳) 12. 负载测试是验证要检验的系统的能力最高能达到什么程度。(√) 13. 测试中应该对有效和无效、期望和不期望的输入都要测试。(√)验收测试是由最 终用户来实施的。(√) 14. 测试人员要坚持原则,缺陷未修复完坚决不予通过。(√)黑盒测试也称为结构测试。(╳)集成测试计划在需求分析阶段末提交。(╳) 15. 软件测试的目的是尽可能多的找出软件的缺陷。(√) 16. 自底向上集成需要测试员编写驱动程序。(√) 17. 负载测试是验证要检验的系统的能力最高能达到什么程度。(╳) 18. 测试程序仅仅按预期方式运行就行了。(╳) 19. 不存在质量很高但可靠性很差的产品。(╳) 20. 软件测试员可以对产品说明书进行白盒测试。(╳) 21. 静态白盒测试可以找出遗漏之处和问题。(√) 22. 总是首先设计白盒测试用例。(╳) 23. 可以发布具有配置缺陷的软件产品。(√) 24. 所有软件必须进行某种程度的兼容性测试。(√) 25. 所有软件都有一个用户界面,因此必须测试易用性。(╳) 26. 测试组负责软件质量。(╳) 27. 按照测试实施组织划分,可将软件测试分为开发方测试、用户测试和第三方测试。(√) 28. 好的测试员不懈追求完美。(× ) 29. 测试程序仅仅按预期方式运行就行了。( × ) 30. 在没有产品说明书和需求文档的条件下可以进行动态黑盒测试。( √) 31. 静态白盒测试可以找出遗漏之处和问题。( √) 32. 测试错误提示信息不属于文档测试范围。( × )

软件测试基础知识整理

软件测试基础教程 测试是软件生存周期中十分重要的一个过程,是产品发布、提交给最终用户前的稳定化阶段。 一、测试的分类: 从测试方法的角度分为: (1)手工测试:不使用任何测试工具,根据事先设计好的测试用例来运行系统,测试各功能模块。 (2)自动化测试:利用测试工具,通过编写测试脚本和输入测试数据,自动运行测试程序。目前最常用的自动化测试工具是基于GUI的自动化测试工具,基本原理都是录制、回放技术。 > 从整体的角度分为: (1)单元测试:是针对软件设计的最小单位—程序模块,进行正确性检验的测试工作。一般包括逻辑检查、结构检查、接口检查、出错处理、代码注释、输入校验、边界值检查。单元测试的依据是系统的详细设计;一般由项目组开发人员自己 完成。 (2)集成测试:在单元测试的基础上,将所有模块按照设计要求组装进行测试。一般包括逻辑关系检查、数据关系检查、业务关系检查、模块间接口检查、外部接口检查。 (3)系统测试:系统测试是在所有单元、集成测试后,对系统的功能及性能的总体测试。 (4)确认测试:模拟用户运行的业务环境,运用黑盒测试方法,验证软件系统是否满足用户需求或软件需求说明书中指明的软件特性(功能、非功能)上的。 从测试原理上分为: . (1)白盒测试:是通过程序的源代码进行测试而不使用用户界面。这种类型的测试需要从代码句法发现内部代码在算法,溢出,路径,条件等等中的缺点或者错误,进而加以修正。 (2)黑盒测试:是通过使用整个软件或某种软件功能来严格地测试,而并没有通过检查程序的源代码或者很清楚地了解该软件的源代码程序具体是怎样设计的。测试人员通过输入他们的数据然后看输出的结果从而了解软件怎样工作。在测试时, 把程序看作一个不能打开的黑盆子,在完全不考虑程序内部结构和内部特性的情况下,测试者在程序接口进行测试,它 只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收和正确的输出。 黑盒测试方法主要有等价类划分、边界值分析、因—果图、错误推测法。 A、等价类划分:是把所有可能的输入数据,即程序的输入域划分成若干部分(子集),然后从每一个子 集中选取少数具有代表性的数据作为测试用例。该方法是一种重要的,常用的黑盒测试 用例设计方法。 B、边界值分析:长期的测试工作经验告诉我们,大量的错误是发生在输入或输出范围的边界上,而不是 发生在输入输出范围的内部。因此针对各种边界情况设计测试用例,可以查出更多的错 误。 C、错误推测法:基于经验和直觉推测程序中所有可能存在的各种错误,从而有针对性的设计测试用例的 方法。错误推测方法的基本思想:列举出程序中所有可能有的错误和容易发生错误的特 殊情况,根据他们选择测试用例。例如,在单元测试时曾列出的许多在模块中常见的 错误。以前产品测试中曾经发现的错误等,这些就是经验的总结。还有,输入数据 和输出数据为0的情况。输入表格为空格或输入表格只有一行。这些都是容易发生错 误的情况。可选择这些情况下的例子作为测试用例。

软件测试期末试题B卷及答案最终版

2008 说明:本试卷共四大题,试卷满分100分。 注意:请将所有答案填写在最后一页答题卡上。..................... 一、单项选择题:共20小题,每小题2 分,满分40分。 1.软件测试的目的:( c ) A. 避免软件开发中出现的错误 B. 发现软件开发中出现的错误 C. 尽可能发现并排除软件中潜藏的错误,提高软件的可靠性 D. 修改软件中出现的错误 2、软件测试是采用( a )执行软件的活动。 A.测试用例 B.输入数据 C.测试环境 D.输入条件 3、导致软件缺陷的最大原因是:( a ) A.软件需求说明书 B.设计方案 C.编码 D.维护 4、在下列描述中,关于一个软件缺陷状态完整变化的错误描述是( d ) A、打开——修复——关闭 B、打开——关闭 C、打开——保留 D、激活——修复——重新打开 5、在下列描述中,关于测试与调试的说法错误的是( d ) A、测试是显示错误的行为;而调试是推理的过程; B、测试显示开发人员的错误。调试是开发人员为自己辩护; C、测试能预期和可控。调试需要想象、经验和思考; D、测试必须在详细设计已经完成的情况下才能开始;没有详细设计的信息调试不可能进行。 6、某次程序调试没有出现预计的结果,下列( b )不可能是导致出错的原因。 A.变量没有初始化B.编写的语句书写格式不规范 C.循环控制出错D.代码输入有误 7、软件缺陷修复的代价最高的阶段为( a ) A、发布阶段 B、需求阶段 C、设计阶段 D、编码阶段 8、不属于逻辑覆盖方法的是(d )。 A.组合覆盖B.判定覆盖 C.条件覆盖D.接口覆盖 9、( d )是选择若干个测试用例,运行被测程序,使得程序中的每个可执行语句至少执行一次。 A、条件覆盖 B、组合覆盖 C、判定覆盖 D、语句覆盖

《软件测试技术基础教程》习题解答

第一章软件测试理论 一、选择题 1. 软件测试的目的是 C 。 A.表明软件的正确性B.评价软件质量 C.尽可能发现软件中的错误D.判定软件是否合格 2. 下面关于软件测试的说法, A 是错误的。 A.软件测试是程序测试 B.软件测试贯穿于软件定义和开发的整个期间 C.需求规格说明、设计规格说明都是软件测试的对象 D.程序是软件测试的对象 3. 某软件公司在招聘软件评测师时,应聘者甲向公司做如下保证: ①经过自己测试的软件今后不会再出现问题; ②在工作中对所有程序员一视同仁,不会因为在某个程序员编写的程序中发现的问题多,就重点审查该程序,以免不利于团结; ③承诺不需要其他人员,自己就可以独立进行测试工作; ④发扬咬定青山不放松的精神,不把所有问题都找出来,决不罢休; 你认为应聘者甲的保证 B 。 A.①、④是正确的B.②是正确的 C.都是正确的D.都不正确 4. 软件测试的对象包括 B 。 A.目标程序和相关文档B.源程序、目标程序、数据及相关文档C.目标程序、操作系统和平台软件D.源程序和目标程序 5. 导致软件缺陷的原因有很多,①-④是可能的原因,其中最主要的原因包括 D 。 ①软件需求说明书编写的不全面,不完整,不准确,而且经常更改②软件设计说明书③软件操作人员的水平④开发人员不能很好的理解需求说明书和沟通不足 A.①、②、③B.①、③C.②、③D.①、④ 二、简答题 1.简述软件测试发展的历史及软件测试的现状。 参考答案: 软件测试是伴随着软件的产生而产生的。在软件行业发展初期,没有系统意义上的软件测试,更多的是一种类似调试的测试,测试用例的设计和选取也都是根据测试人员的经验随机进行的,大多数测试的目的是为了证明系统可以正常运行。 到了20世纪70年代以后,很多测试理论和测试方法应运而生,逐渐形成了一套完整的体系。在产业界,从20世纪70年代后期到20世纪80年代中期,很多软件企业成立了QA 或者SQA部门。后来QA的职能转变为流程监控(包括监控测试流程),而测试(Testing)则从QA中分离出来成为独立的组织职能。 到了20世纪80年代初期,一些软件测试的基础理论和实用技术开始形成,软件测试作为软件质量保证(SQA)的主要职能,包含软件质量评价的内容。软件测试已有了行业标准(IEEE/ANSI )。 在我国,软件测试目前还没有形成一个真正的产业,尚处于起步阶段。 但是,在国内,现在在软件测试行业中各种软件测试的方法、技术和标准都还在探索阶段。

软件测试学习课程全集

软件测试学习课程全集 最近,IT人才市场在软件测试工程师方面的人才缺口逐渐扩大,很多朋友也瞄准机会,想要学习软件测试,有很多朋友喜欢自学,那么笔者就必须提醒各位一句了,软件测试这个行业,常学常新,由于市场的不断发展,软件测试要学习的东西也在不断更新,所以下载软件测试培训视频一定尽量找最新最近的。另外,往远了说,软件测试这个行业又博又深,因此,在大家看软件测试学习课程学习软件测试之前,有这么三个问题有必要搞明白: 1、一定要懂代码吗? 很多公司对一般测试员的要求很低;而且现在铺天盖地的培训机构都在宣传"零基础入门软件测试,培训三个月包找工作",所以导致很多人误以为测试很简单。其实测试不是简单的,当开发人员将软件提交到测试人员那里以后,测试人

员最好要迅速透彻的理解软件的功能。如果你有一定的编码基础,就能更好的了解所要测软件的功能及测试需要的软硬件环境,和开发沟通遇到的问题。 2、软件测试人员如何成长? 现在网络这么发达,学习编程可以去CSDN、开源中国等论坛,学习测试可以去千锋教育这样的老牌培训机构了。 可以多去浏览,总会看到很多行业资讯、学习资料等,比较高效的是参与其中,分享一些自己的学习心得,参与一些自己感兴趣的活动,这样你会成长的更快更好。如果坚持自学的话,也完全可以去千锋教育的网站要软件测试学习课程,比较系统,适合新手学。 3、工作技能要广还是精? 软件测试种类很多:功能测试、性能测试、自动化测试等等;但其实很多人能接触的可能只是某一个方面。最好能广泛接触下各个方面的测试,比如自动化测试网上有很多免费资料、视频及工具,刚开始可以下载已成型的工具试用,跟着相关资料不断学习,等到后期可以研究下各个自动化测试框架,再厉害的就可以自己编写自动化测试工具了。通过广泛接触各个方面的知识,了解清楚行业发展及自己兴趣爱好,选择自己喜欢的一个方面不断深入,学到精通,你就应该已经成为一名优秀的测试员了。 随着时代的不断发展,每个行业都会不断的整合、改变,我们能做的就是选择好自己喜欢的行业,不断学习,自学是枯燥的,不管是下载软件测试学习课程

软件测试技术_软件测试管理试题

第三章软件测试管理 简答题 1.你是如何理解测试的层次和主要的管理活动? 在软件测试的管理中,以下容的定义反映测试工作的组织策略: a、软件测试遵循的标准; b、软件测试的工作畴; c、软件测试环境; d、软件测试产品; e、适用于软件测试活动的软件资源标识规则; f、软件测试的进度安排。 软件测试遵循的标准 组织者在指定围选择软件测试遵循的标准,并结合本软件系统的具体要求,使之贯彻到整个软件测试的计划、实现和管理过程之中。根据标准,需要被明确的容包括:测试阶段和测试文档类型。 可以从三个角度来划分测试阶段:面向测试操作类型的阶段划分、面向测试操作对象的阶段划分、面向测试实施者的阶段划分。测试操作类型包括:调试、集成、确认、验证、组装、验收、操作等。测试操作对象可以是:单元、部件、配置项、子系统、系统等。测试实施者可以是:开发者、测试者、使用者、验收者等。各类标准从不同角度定义测试评审阶段,而测试组织者可以在符合所选标准的同时,结合多个划分因素规定本系统的测试阶段。 各标准规定的测试文档类型也不尽相同。如国标《软件产品开发文件编制指南》规定了两类测试文档:测试计划、测试分析报告;国标《计算机软件测试文件编制规》定义了八类测试文档:测试计划、测试设计说明、测试用例说明、测试规程说明、测试项传递报告、测试日志、测试事件报告、测试总结报告;《XXXX软件工程化技术文件》定义了三类测试文档:测试计划、测试说明、测试报告。我们认为最后这种规定较易操作:因为,太少的测试文档类型不利于有步骤有层次地定义测试容,也不利于测试用例和测试例程的良好表达;太多的测试文档类型易使测试组织陷入到繁杂的文档规和编制中去;而第三种定义较为适中。其中:测试计划在系统分析/设计阶段提交,着重定义测试的资源、围、容、安排、通过准则等;测试说明在测试计划明确后开始编制,针对软件需求和设计要求具体定义测试用例和测试规

软件测试技术经典教程

第一章软件测试基本概念 1.1软件是计算机中与硬件相结合的一部分,包括程序和文档 软件=程序+文档 1.2软件的分类 1.2.1按功能划分 系统软件 应用软件 1.2.2按技术架构划分 单机版软件 C/S结构软件 B/S结构软件 1.2.3按用户划分 产品软件 项目软件 1.4什么事软件测试 使用人工或自动手段,来运行或测试某个系统的过程。其目的在于检查它是否满足规定的需求或弄清预期结果与实际结果之间的差别。 1.5.1什么是测试环境 测试环境=软件+硬件+网络 1.5.2怎样搭建测试环境 搭建测试环境的要点: 1.真实尽量模拟用户的真实使用环境 2.干净测试环境中尽量不要安装其他与被测试软件无关的软件 3.无毒测试环境没有中毒 4.独立测试环境和开发环境独立 1.5.3软件环境的分类 软件开发环境 软件生产运行环境 1.6.1什么是测试用例 测试用例=输入+输出+测试环境 输入包括测试数据和操作步骤 输出期望结果 测试环境系统环境设置 1.6.3编写测试用例的注意事项

开发生命周期 需求分析= 〉概要设计=〉详细设计=〉编码=〉维护 测试生命周期 测试计划=〉测试设计==============〉测试执行=〉测试评估

第二章软件测试分类 2.1黑盒测试和白盒测试 2.2静态测试和动态测试 静态测试,不实际运行被测软件,而只是静态的检查程序代码、界面或文档中可能存在的错误的过程。即静态测试包括代码测试、界面测试和文档测试。 2.3单元测试、集成测试、系统测试和验收测试 桩模块,指模拟被测模块所调用的模块 驱动模块,指模拟被测模块的上级模块,驱动模块用来接收测试数据,启动被测模块并输出结果。 2.3.3系统测试和验收测试 单元、集成、系统、验收测试比较 单元测试最小模块,如函数、类等《详细设计》白盒测试工程师或开发人员主要采用白盒测试 集成测试模块间的接口,如参数传递《概要设计》白盒测试工程师或开发人员黑盒和白盒测试相结合 系统测试整个系统,包括软硬件《需求规格说明书》黑盒测试工程师黑盒测试验收测试整个系统,包括软硬件《规格需求说明书》,验收标准主要为用户,还可能有测试工程师等黑盒测试 2.4.1功能测试 功能测试,是黑盒测试的一方面,它检查实际软件的功能是否符合用户的需求。 1.逻辑功能测试 2.界面测试 3.易用性测试 4.安装测试 5.兼容性测试 2.4.2性能测试 性能测试是软件测试的高端领域,性能测试工程师的待遇和白盒测试工程师不相上下,通常我们所说的高级软件测试工程师一般就指性能测试工程师或是白盒测试工程师。 1.一般性能测试让被测系统在正常的软硬件环境下运行,不向其施加任何压力的性能测试。 2.稳定性测试也叫可靠性测试,是指连续运行被测系统,检查系统运行时的稳定程度。 3.负载测试是性能测试的一种,通常是指让被测系统在其能忍受的压力的极限范围之内连续运行,来测试系统的稳定性。 4.压力测试是性能测试的一种,通常是指连续不断地给被测系统增加压力,直到将被测系统压垮为止,用来测试系统所能承受的最大压力。 2.5回归测试、冒烟测试、随机测试 回归测试,是指对软件的新的版本测试时,重复执行上一个版本测试时的用例。 冒烟测试,是指对一个新版本进行系统大规模的测试之前,先验证一下软件的基本功能是否实现,是否具备可测性。

相关主题
文本预览
相关文档 最新文档