软件测试期末必胜版

软件测试期末必胜版:

软件缺陷是由很多方面造成的,以下哪个方面是造成软件缺陷的最多

的地方( A ) A. 规格说明书 B. 系统设计结果 C. 编写代码 D. 其他

覆盖准则最强的是( D )

A. 语句覆盖 B. 判定覆盖 C. 条件覆盖 D. 路径覆盖

实际的逻辑覆盖测试中,一般以(C )为主设计测试用例。

A. 条件覆盖 B. 判定覆盖 C. 条件组合覆盖 D. 路径覆盖

发现错误能力最弱的覆盖准则是( A )。

A. 语句覆盖 B. 判定覆盖 C. 条件覆盖 D. 路径覆盖

单元测试所使用的主要测试方法是( B )

A. 黑盒测试 B. 白盒测试 C. 集成测试

D. 验收测试

6. 对于软件缺陷的修复费用,在哪个阶段的费用花费最小( A )

A. 分析阶段 B. 设计阶段 C. 编码阶段 D. 发布阶段

7. 静态测试的主要对象是(AB )

A. 代码检查 B. 代码风格与规范 C. 软件的功能 D. 设计的合理性

8. 单元测试主要测试是模块在(ABC )上的错误。

A. 语法 B. 格式 C. 逻辑 D. 功能

9. 单元测试主要由( C )完成?其中( A )起主要作用。

A. 开发人员 B. 测试人员

C. 开发人员和测试人员 D. 以上都不对

10. 集成测试所使用的主要测试方法是( A )。

A. 黑盒测试 B. 静态测试 C. 动态测试

D. 白盒测试

11. 系统测试主要包括包含了多种测试活动,主要分为( AB )。

A. 功能性测试 B. 非功能性测试 C. 回归测试 D. 单元测试

12. 系统集成测试常见的有哪几种不同模式( AB )。

A. 非渐增式测试模式 B. 渐增式测试模式 C. 独立测试模式 D. 非独立测试模式

13. 软件的兼容性测试包括( AD )。

A. 向前和向后兼容 B. 多语言测试 C. 多版本测试 D. 横向测试

14. 软件的缺陷通常集中在( AB )阶段。

A. 需求分析 B. 系统设计 C. 编写代码 D. 软件测试

15. 对于一些关键代码或新人写的代码,主要采取( B )方式。

A. 走查 B. 会议审查 C. 代码互评

D. 自查

16. 在集成测试中,主要的集成方法有( ABCD )。

A.自顶向下 B.自底向上 C.大爆炸 D.三明治

17. 文档测试主要检查文档的(ABCD )。

A. 正确性 B. 完备性 C. 易理解性 D. 一致性

18. 验收测试完成后还需要提交(AC ),才可交付用户使用。

A. 验收报告 B. 项目完成报告 C. 交付报告

D. 无需提供任何报告

19. 软件本地化工作中除了翻译之外还应该( ABCD )。

A. 处理字符集问题 B. 数据格式 C. 页面显示和布局 D. 配置和兼容性等问题

20. 造成软件的主要原因可从( ABC)方面来查找。

A. 技术问题 B. 软件本身 C. 团队工作

D. 资金问题

21. 代码评审有哪些方法(ABCD )。

A. 代码走查 B. 正式会议审查 C. 代码会审 D. 代码咨询

22. 软件产品的质量中的非功能需求包括( ABCD )等。

A. 适用性 B. 有效性 C. 可靠性 D. 性能

23. 当程序有修改,并且要求保证原有功能正常的情况下,必须采用( D )

方法。 A. 单元测试 B. 集成测试 C. 系统测试 D. 回归测试

24. 对于整个软件的本地化过程来说,需要解决的技术问题主要有(AC)。

A. 数据格式 B. 页面显示和布局 C. 配置和兼容性问题 D. 翻译问题

25. 测试团队的基本责任应该是( ABCD )。

A. 发现软件程序、系统或产品中的所有问题 B. 尽早地发现问题

C. 督促开发人员尽快地解决程序中的缺陷 D. 帮助团队解决资金问题

26. 驱动程序,用以模拟被测模块的( A )模块。

A. 上级模块 B. 下级模块 C. 同级模块 D. 其他

27. 整体测试用例的质量要求包括( ABCD )。

A. 覆盖率 B. 易用性 C. 易维护性 D. 粒度适中

28. 易用性、兼容性、安装、文档测试等主要在( A )阶段完成。

A. 单元测试 B. 集成测试 C. 功能测试 D. 验收测试

二、判断题(分值)

1.

能够尽可能早的发现软件缺陷,就能够尽可能地节约修复缺陷的成本,因此,因

            此在软件的设计阶段修复缺陷的费用最低。( F ) 2.

1

根据著名的瀑布模型,软件测试应该处在“编程”的下游、在“软件维护”的上游,先有编程,后有测试,测试的位置很清楚。( T ) 3. 为了能更多测试出软件的缺陷,测试用例的一般要求越复杂越好。( F ) 4. 因为软件开发人员不止一人,因此在测试时候,只能进行松散地实施测试。(F ) 5.

每一种测试方法都必须执行程序,才能得到最好的效果。( F )

单元测试的主要人员构成是开发人员。( T ) 7. 集成测试就是系统测试。( F )

在进行系统测试的时候,当发现有错误时候,应该及时修正,紧接着修正下一个错误。( T )

9. 有的时候因为时间紧迫,可以临时安排几个程序员或者行业新手做测试工作。(F)

10. 在实际的运用中,无论对于白盒测试和黑盒测试,通常使用其中一种方法就可以

完成对某一软件的测试工作。( F )

11. 验收测试是测试的最后一个环节,该测试完成后,马上可以交付用户使用。( F ) 12. 软件质量的要求是要满足软件的功能性需求。( F )

13. 系统测试的目的是检查已经通过单元测试的单元之间的接口是否存在问题。(T) 14. 在软件的开发中,每次回归测试都要重新运行完整的测试包。( F )

15. 在整个软件团队中,对软件测试人员的要求比较低,会操作计算机、有一定的软

件使用经验就可以。(F )

16. 在对软件缺陷的描述中,测试人员可以对有个人的观点,也可以对开发人员进行

评价,有利于开发人员提高开发质量。(F )

17. 在整个软件生命周期中的每个阶段、每个时刻都存在着软件测试活动,软件测试

伴随着软件开发。( T ) 18. 验收测试是由用户完成的。( F )

19. 在一个规范的软件的开发中,开发人员的人数一般大于测试人员的人数。( F ) 20. 在整个开发周期中要对测试用例进行有效的跟踪和维护。( T ) 21. 功能测试也可以采用白盒测试的方法。(F )

在软件测试过程中,应该遵循的原则是?(1)、尽早可能展开预防性测试;(2)、可追溯性;(4)、投入/产出原则;(5)、80/20原则;(6)、独立的软件测试机构或委托第三方测试,即避免开发人员一边开发,一边测试的情况的出现。

 2. 测试用例的设计的步骤一般包括?(1)、测试需求分析;(2)、业务流程分析;(3)、测试用例设计;(4)、测试用例评审;(5)、测试用例更新完善。

3. 测试用例的原则?(1)测试用例的代表性;(2)测试结果的可判断性;(3)测试结果的可再现性。

4. 常用到的软件质量模型有哪些?并简述一下。(1)软件测试瀑布模型:分为测试计划、需求分析、概要设计、详细设计、软件测试、运行和维护7个阶段,自顶向下执行。强调阶段划分及顺序性、各阶段工作及其文档的完备性。(2)软件测试V模型:也称为RAD模型,即快速应用开发模型。属于线性顺序一类的软件开发模型。

5. 什么是软件测试计划?是指导测试过程的纲领性文件,包含产品概述、测试策略、测试方法、测试区域、测试配置、测试周期、测试资源、测试交流和风险分析等内容。

 6.制定软件测试的计划的原则有?(1)制定测试计划应尽早开始;(2)保持测试计划的灵活性;(3)保持测试计划简洁和易读;(4)尽量争取多渠道评审测试计划;(5)计算测试计划的投入。

7.制定软件测试的技术的步骤有?(1)产品基本情况调研;(2)测试需求说明;(3)测试的策略和记录;(4)测试资源配置;(5)计划表;(6)问题跟踪报告;(7)测试计划的评审 8. 什么是静态测试、动态测试?静态测试:是一种不通过执行程序而进行测试的技术,只是检测和评审。动态测试:直接执行被测试程序以提供测试支持。

9.

什么是白盒测试、黑盒测试?二者的关系是什么?一、(1)黑盒测试:又称功能测试、数据驱动测试和行为测试,是一种从用户观点出发的测试,被测程序为黑盒子,通过测试来检测每个功能是否能够正常使用(2)白盒测试:又称结构测试和逻辑驱动测试,是知道产品内部工作过程,通过测试来检测产品内部动作是否按照规格说明书的规定去正常运行。二、白盒测试偏重实现方式,注重局部;黑盒测试偏重业务方面,注重整体。有着本质区别,又是相互联系、相辅相成。

10. 软件测试的过程是什么?(1)测试一致性;(2)可持续改进测试过程;(3)便于管理;

(4)系统测试;(5)验收测试;

11. 软件测试与软件开发的过程的关系是什么?(1)测试工程师与开发工程师目标一致、

行为对立、并行工作,有生产就必然有质检,二者的工作相辅相成,开发人员和测试人员的主要矛盾就集中在对bug的定义上。(2)软件测试工程师:查找bug、管理bug、质量保证。软件开发:系统设计、编码、修改bug

12. 白盒测试的覆盖准则有哪些?(1)语句覆盖 ;(2)判定覆盖;(即分支覆盖); (3)

条件覆盖 ;(4)判定-条件覆盖 ;(5)条件组合覆盖 ;(6)路径覆盖 。

白盒测试的常用工具有哪些?各适用于什么情况?(1)静态白盒测试:在不执行的条

件下有条理地仔细审查软件设计、体系结构和代码,从而找出软件缺陷的过程。(2)动态白盒测试:需要对各个模块功能、模块间的接口、局部数据结构、主要执行路径、错误处理等反面的测试

单元测试是什么?单元测试是在软件开发过程中要进行的最低级别的测试活动,起目

的在于发现每个模块内部可能存在的差距。

单元测试的原则有哪些?(1)单元测试越早进行越好;(2)单元测试应该根据《软件

详细设计规格说明》进行;(3)对于修改过的代码应该重做单元测试,以保证对已发现错误的修改没有引入新的错误;(4)当测试用例的测试结果与设计规格说明书的预期结果不一致时,测试人员应该如实记录实际的测试结果;(5)单元测试应注意选择好被测试软件单元的大小;(6)一个完整的单元测试说明应该包含软件证明测试和负面测试;(7)注意使用单元测试工具。

单元测试的重要性及目的是什么?一、(1)提前发现问题并解决可以节约时间(2)是

测试阶段的基础,为后期的集成测试和系统测试做好准备;(3)对单元独立测试,容易发现问题,减少成本。二、目的:是暴漏出失败和错误。失败的可能性是可预期的,并且可以使用断言来进行检查。而错误则是不可预期的问题

简述单元测试的过程?(1)准备阶段;(2)编制阶段(3)代码审查阶段;(4)单元

测试阶段;(5)评审、提交阶段。

什么是插桩程序设计?是在保证被测程序原有逻辑完整性的基础上在程序中插于一些

探针,通过探针的执行抛出程序运行的特征数据,通过这些数据的分析,可以获得程序的控制流和数据信息,进而得到逻辑覆盖等动态信息,从而实现测试目标的方法。 

19. 集成测试是什么?是在假定各个软件单元已经通过了单元测试的前提下,检测各个软

件单元之间相互接口是否正确。

集成测试的主要任务是什么?(1)将各个模块连接起来,检查模块相互调用时,数据

结构接口是否丢失;(2)将各个子功能组合起来,检查能否达到预期要求的各项功能;(3)一个模块的功能是否会对另一个模块的功能产生不利的影响;(4)全局数据结构是否有问题,会不会被异常修改;(5)单个模块的误差积累起来,是否被放大,从而达到不可接受的程度。

集成测试与单元测试,系统测试的区别是什么?一、集成测试与单元测试的区别:(1)

集成测试关注的是模块间的接口、接口之间的数据传递关系、单元组合后是否实现预计的功能;(2)集成测试组装的对象比单元测试的对象级别要高。二、集成测试与系统测试的区别:(1)系统测试对象是整个系统以及与系统交互的硬件和软件平台;(2)集成测试所测试的对象是模块间的接口,其目的是在找出在模块接口上面,包括整体体系结构上的问题;(3)软件的集成测试工作最好由不属于该软件开发组的软件设计人员承担,以提高集成测试的效果。

集成测试的内容有哪些?(1)制定集成测试计划;(2)设计集成测试;(3)实施集成

测试;(4)执行集成测试;(5)评估集成测试。

如何进行集成测试的用例设计?(1)为系统运行设计用例;(2)为正向测试设计用例;

(3)为逆向测试设计用例;(4)为满足特殊需求设计用例;(5)为高覆盖设计用例;(6)测试用例补充;(7)注意事项。

集成测试的方法有哪些?分别适用于哪些情况?一、非曾式集成;将所有经过单元测

试的模块一次性组装到被测系统中进行测试,不考虑模块之间的依赖性和可能的风险;二、自顶向下集成;从控制模块开始,沿着程序的控制层向下移动,逐渐把各个模块结合起来。三、自底向上集成;从最底层的模块开始,按结构图自下而上和自底向上的集成方法;四、混合集成。对高风险模块优先进行重点测试,保证系统稳定性。 25. 系统测试是什么?是指测试整个系统已确定其是否能够提供应用的所有需求行为,包

含了多种测试活动,主要分为功能性测试和非功能测试。

系统测试与用户测试有何不同?系统测试是测试整个系统已确定其是否能够提供应用

的所有需求行为;用户测试分为体验、界面、验收、用户测试报告组成

简述系统测试的主要内容?(1)功能测试。即测试软件系统的功能是否正确,其

依据是需求文档,如《产品需求规格说明书》。(2)健壮性测试。即测试软件系统在异常情况下能否正常运行的能力。健壮性有两层含义:一是容错能力,二是恢复能力

容量测试与压力测试的区别有哪些?(1)压力测试是在给系统不断加压,增加并发量,

直到崩溃,找到系统所能承受的极限值。(2)容量测试是在预先分析的极限值下,系统能否正常运行。

什么是性能测试?通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对

系统的各项性能指标进行测试。负载测试和压力测试都属于性能测试,两者结合进行。 30. 什么是回归测试?它有什么好处?一般如何进行回归测试?一、回归测试是指修改了

旧代码后,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误。二、大幅降低系统测试、维护升级等阶段的成本。三、(1)为每个项目创建用例基线库;(2)标识每个用例的重要性及有线级;(3)建立用例直接的关系。

验收测试是什么?是在软件产品完成了功能测试和系统测试之后,产品发布之前所进

行的软件测试活动,它是技术测试的最后一个阶段,是将程序与其最初的需求及最终用户当前的需要进行比较的过程,也叫交付测试。

验收测试的主要内容是什么?(1)文档审查(2)安装测试(3)功能测试(4)性能

测试(5)界面测试(6)加载测试(7)配置测试(8)恢复测试(9)安全性测试。 33. α测试和β测试有什么不同?a 测试是在公司内部由用户组织与的测试;a 测试对发

现缺陷是可控的,但缺陷是人数有限、地域限制。b测试是在外部有用户进行的测试;b测试不会认真地去发现缺陷,有时仅仅是为了抢占市场。

如何组织软件测试团队?(1)建立合理、高效的组织结构(2)建立正确的分工体系,

即角色与职责;(3)培养合格的测试人员。

如何进行软件测试人员的培养?(1)人员选择要求;(2)人员培训与培养;(3)测试

人员职业发展规划;

软件测试 A卷(11+18+12+19+40=100分)

一、单项选择(每空1分,共11分)

1、执行函数测试时,当多次调用底层函数,底层模拟器的"模拟值"输入栏可设定多个模拟值,一次最多可设置( C )个模拟值。

A、1 B、3 C、6 D、11

2、当函数测试存在失败断言时,在白盒覆盖率信息窗口中VU会显示一个( B )的条块来提示,没有失败断言时,会显示一个( A )的条块来显示;在逻辑结构窗口中,未覆盖的路径用( B )画出,已覆盖的路径用( A )画出,未覆盖的分支是( D )的条块。

A、深绿色 B、深红色 C、浅蓝色 D、粉红色 E、浅绿色

3、VU导出的测试报告文件格式为:( C ),表格化测试用例数据导出的文件格式为:( E )

A、.pdf B、.txt C、.htm D、.csv E、.xls F、.doc

4、在软件生命周期中的任何一个阶段,只要软件发生了改变,就可能给该软件带来新的问题。软件的改变可能是源于发现错误并做好了修改,可能是因为在集成或维护阶段加入了新的模块,为了验证软件修改后的正确性需要进行( E )。

A、白盒测试 B、黑盒测试 C、单元测试 D、性能测试

E、回归测试 F、验收测试

5、当用底层模拟器去模拟被测单元调用的底层函数的输出函数,并且此输出参数为指针数据类型,应该设置此参数的模拟值为( D )。

A、指针值 B、引用的地址 C、指针指向的数据类型的值 D、NULL

6、当用底层模拟器去模拟被测单元调用的底层函数的返回值,并且此输出参数为指针数据类型,应该设置此参数的模拟值为( C )。

A、指针值 B、引用的地址 C、指针指向的数据类型的值 D、NULL

二、多项选择(每空2分,共18分)

1、底层模拟能很好的解决( BCF )。

A、集成测试问题 B、装代码和数据失真 C、测试不可控

D、性能测试问题 E、内部输出的模拟

F、模拟参数为复杂数据类型,单元测试时难以初始化

2、底层模拟器能够模拟( ABCEH)。

A、底层函数的参数 B、底层函数的返回值 C、全局变量

D、函数改写文件中的数据 E、成员变量 F、函数改写数据库中的数据

G、内部输出 H、调用次数

3、执行函数测试后,源代码窗口能够标识出未覆盖的(BCD)。逻辑结构图窗口能够标识出未覆盖的( AF)。

A、路径 B、条件 C、MC/DC D、语句 E、C/DC F、分支

4、VU与按自动的边界测试,用于边界测试的边界值是由菜单项"数据"→定义边界值来维护的。VU提供的int类型的默认值有( ACHJM ),bool类型的默认边界值有( I L),double类型的默认类型边界值有( DFGKN )。

A、0 B、99999.9 C、0x80000000 D、0.0 E、-99999.9

F、1.0 G、9999.99 H、1 I、true J、0x7FFFFFFF

K、-9999.99 L、false M、-1 N、-1.0 O、0x80000000

P、0x7FFFFFFF

5、在利用VU进行单元测试的过程中,针对同一个测试用例集合,以下()类的白盒覆盖情况是可能会出现的。( A E//ac )

补:分支覆盖达到100%则语句覆盖也一定是达到了100%。

语句覆盖是最弱的覆盖

A、语句覆盖:100% 分支覆盖:100% 路径覆盖:100%

B、语句覆盖:32% 分支覆盖:100% 路径覆盖:98% X

C、语句覆盖:100% 分支覆盖:18% 路径覆盖:100%

D、语句覆盖:30% 分支覆盖:50% 路径覆盖:47%

E、语句覆盖:100% 分支覆盖:95% 路径覆盖:15%

6、在利用VU单元测试(ac//a)的过程中,可能会出现"语句:95%,分支:100%,路径:15%"的情况。

A、_01_pow() B、_11_Mcdc1() C、_12_Mcdc2()

三、判断题(每空2分,共12分)

注:正确的打钩,错误的打叉,并说明错误原因

1、一个测试用例只允许有一个底层模拟,而一个函数可以有多个底层模拟。(T)

错误原因:

2、底层模拟器可用于控制测试。( T )

错误原因:

3、底层模拟器模拟的内部输入能够实现用例数据的表格化。( T )

错误原因:

4、包含有空指针的测试用例能够实现用例数据的表格化。(F)

错误原因:空指针会被认为没有输入买自动设置为null,所以不能表格化

5、VU在单元测试时,设计的每个测试用例都必须设置其预期输出。( T )

错误原因:

6、在测试用例集中,测试用例的数量等于断言的数量。( F )

错误原因:错误,一个测试用例中可以出现多个断言

四、简述题(1、2、3题各3分,4题6分,5题4分,共19分)

1、简述在VU的单元测试中,提高路径覆盖率的3种方法。

1:添加测试用例

2:删除分支

3:删除不可达路径

2、简述在VU的源代码窗口中,当前测试用例未覆盖的语句,VU如何标识测试用例集未覆盖的语句。VU如何标识测试用例集未覆盖的条件和Mc/Dc,VU如何标识。

答: 未覆盖语句:淡红色背景的红色字体 表示

未覆盖的条件和Mc/Dc:淡红色背景的红色字体 [ T F M ] 表示

T 表示真值未覆盖,F 表示假值未覆盖 ,M 表示 MC/DC未覆盖

3、简述C/Dc和Mc/Dc的定义。

C/DC :条件/判定覆盖:判断中每个条件的所有可能取值至少执行一次,同时每个判断本身所有可能结果也至少执行一次。

MC/DC :修正的条件/判定覆盖,是一种软件结构覆盖率的测试准则。

修正条件判定覆盖要求:单元的入口和出口必须被调用一次,程序中判断的每一个分支必须至少被执行一次。对于程序中通过逻辑运算组成判断的基本布尔条件,每个条件必须取遍所有可能的值,且每一个条件对判断的结果具有独立的作用。

**掌握理论和实际情况下白盒覆盖准则相互间包含的关系,如下

第六个成员函数

源代码

白盒覆盖率信息:均为100%

测试用例

4、分别设计出最少数量的测试用例,构成两套测试用例集,使CMyClass2的成员函数_11_Mcdc1(BOOL,BOOL,BOOL)被100% C/DC和Mc/Dc ,

_12_Mcdc2(BOOL,BOOL,BOOL,BOOL,BOOL,BOOL,BOOL,BOOL,BOOL,BOOL,BOOL) 被100% C/DC,

并为每个测试用例列出它在函数执行时所覆盖的条件的判定。

int CMyClass2::_11_Mcdc1(BOOL A,BOOL B,BOOL C) (100%C/DC 和 MC/DC)

{

if(A && (B || C))

return 1;

return 0;

}

测试用例如下 :

条件判定如下 :

int CMyClass2::_12_Mcdc2(BOOL A,BOOL B,BOOL C,BOOL D,BOOL E,BOOL F,BOOL G,BOOL H,BOOL I,BOOL J,BOOL K) ( 100%C/DC)

{

if(A && ( (B||C) && (D&&E) ) && ((F||G) && (H||I||J)||K) )

return 1;

return 0;

}

测试用例如下 :

条件判定如下 :

5、为成员函数_01_Pow()设计测试用例,使其被100%语句,条件和C/DC覆盖,统计出失败断言数,如果存在失败断言,列出失败断言(即测试用例的输入,预期输出和实际输出),指出软件曲线位置,并修复缺陷,保证测试结束,失败断言为0。

unsigned int CMyClass::_01_Pow(unsigned int g,unsigned int e){

unsigned int result = 0;

if(g0)

result = 0;

else if(g1)

result = 1;

else if(e0)

result = 1;

else if(e1)

result = g;

else{

for(unsigned int i=0; i<e; i++)

result *=g;

}

return result;

}

失败断言数:1

失败断言为:case3

软件曲线位置:

修复缺陷:unsigned int result = 0; ——>> unsigned int result = 1;

五、程序测试题(1、3题各15分,2题10分,共40分)

1、单元测试CMyClass2的成员函数_07_DeleteComment(char *,char *),补充给定的测试用例集的预期输出和实际输出,统计失败断言的数量,如果失败断言数大于0,则说明软件存在缺陷,找到缺陷的具体位置,并修复它。/函数说明:

名称:CMyClass2::_07_DeleteComment

功能:删除C++代码中的注释

参数:pSrc:源代码

pDes:保存删除注释后的代码

返回:无/

void CMyClass2::_07_DeleteComment(char * pSrc,char * pDes){

int len = strlen(pStr);

if(len == 0)

return;

bool cmmSin = false;//由//开始\n结束的单行注释

bool cmmMul = false;//由/开始/结束的多行注释

char ch = *pSrc++;

char next = 0;

while(ch){

if(!cmmSin && (cmmMul)){//非注释

if(ch==‘/’){//注释开始的第一个字符

next = *pSrc;

if(next ‘\0’)//结束

break;

else if(next’/‘)

cmmSin = true;

if(cmmMUl || cmmSin){

pSrc++;//忽略/后的一个字符

ch = *pStr++;

continue;

}

}

*pDes++ = ch;

ch = *pSrc++;

}else if(cmmSin){//单行注释

if(ch==’\n’){//单行注释结束

cmmSin = false;

*pDes++ = ch;//\n是不能丢的

}

ch = pSrc++;

}else if(cmmMul){//多行注释

if(ch=='‘){//开始多行注释

next = *pSrc;

if(next==’/'){

cmmMul = false;

*pSrc++;//忽略后面的/

}

}

ch = *pSrc++;

}

}

}

Name Case1 Case2 Case3

pSrc “int a;//comment\n” “int a:/comment/\n” “int /Comment/a;//comment\n”

pDes

实际输出

Name Case4 Case5 Case6 Case7 Case8

pSrc “int a;/” “int a=c/d;” “int a;/a = bc*/\n” “” “int a”

pDes

实际输出

Case9:输入(char *pSrc = 0;char *pDes = 0;)(注:Case9不能表格化)

失败断言2个,有两处缺陷:1,没有判断空指针 2,测试用例4未得到正确结果。

1

修改:

1,在函数开始处加

if(pSrc0||pDes0)

return;

2,2,在if(next==’\0’) 里加上*pDes=ch;

3、单元测试triml()C函数,设计测试用例集(包括能表格化的普通测试用例和不能表格化的特殊测试用例),使语句、分支、条件、C/DC、MC/DC和路径的覆盖率达到100%,统计出失败断言的数量,列出包含失败断言的测试用例的实际输出,找出软件缺陷的位置,并修复它,使失败断言数为0。

/*

体验可视化编程:删除字符串左边的空格

参数:str,源字符串

返回:返回结果字符串指针

*/

char *triml(char *str){

char *i,*j;

i = str;

j = str;

while(*i==32)

++i;

while(*i!=‘\0’){

*j = *i;

++i;

++j;

}

*j = ‘\0’;

return str;

}

失败断言1个,缺陷是没有判断空指针,修复在char *i,*j;后面加上if(str==0) return;

测试用例

NAME CASE1 CASE2 CASE3 CASE4 CASE5

str “aa” “ aa” “aa ” “” “ ”

ret “aa” “aa” “aa ” “” “”

4、单元测试findr()C函数,设计出测试用例集(包括能表格化的普通测试用例和不能表格化的特殊测试用例),使语句覆盖、C/DC覆盖和路径覆盖的覆盖率达到100%。统计失败断言的数量,列出包含失败断言的测试用例的实际输出,找出软件缺陷的位置,并修复它,使失败断言数为0。

/*

体验可视化编程:在一个字符串中反向查找子串

参数:str,源字符串

stub,需查找的子串

返回:如果找到返回子串的位置,否则返回-1

*/

int findr(char *str,char *sub){

char *i,*j,*k,*n;

int l,m;

int len_str,len_sub;

( if(str0 | | sub0) 要改的地方

return -1;

if(*str==’\0’ | | *sub==’\0’)

return -1;

)

len_str = 0;

len_sub = 0;

i = str;

j = sub;

while(*i!='\0'){

i++;

len_str++;

}

i--;

while(*j!='\0'){

j++;

len_sub++;

}

j--;

n = j;

for(l=len_str;l>len_str - len_sub+1; l--){    //for(l=len_str;l>len_str-1;l--)

k = i;

for(m=l;m<=len_sub;m++){      // for(m=1;m<=len_sub;m++)  这是 m 一

if(*k==*j){

k--;

j--;

}else

break;

}

if(m>len_sub)

break;

i--;

j = n;

}

if(l<len_str - len_sub+1)      //if(l<len_sub-1)

return -1;

else

return (l-len_sub+1);

}

缺陷有5个

int findr(char* str, char* sub)

{

char *i,*j,*k,*n;

int l,m;

int len_str,len_sub;

if(str0 || sub0)return -1;//有误

if(*str==‘\0’ || *sub==‘\0’)return -1;

len_str = 0;

len_sub = 0;

i = str;

j = sub;

while(*i!=‘\0’)

{

i++;

len_str++; //有几个字符

}

i–; //计算字符串长度

while(*j!=‘\0’)

{

j++;

len_sub++;

}

j–;

n = j;

for(l=len_str;l>len_sub-1; l–) //有误

{

k = i;

for(m=1;m<=len_sub;m++) //有误

{

if(*k==*j)

{

k–;

j–;

}else

break;

}

if(m>len_sub) //完全匹配时

break;

i–;

j = n;

}

if(l<=len_sub-1) //有误

return -1;

else

return (l-len_sub+1);

}

之前测试失败断言10个

测试用例

特殊测试用例

软件测试期末试题及答案

1、判定覆盖设计足够多的测试用例,使得被测试程序中的每个判断的“真”、“假”分支_至少被执行一次。

2、黑盒测试的具体技术方法 、 、 、。

等价类划分法,边界值分析法,决策表法,因果图法

3、黑盒测试又称之为___________测试。

功能

4、等价类划分有两种不同的情况:和。

有效等价类,无效等价类

5、根据覆盖目标的不同,逻辑覆盖又可分为:,,,,条件组合覆盖,判断/条件覆盖。

语句覆盖,判定覆盖,条件覆盖,路径覆盖

6、根据软件生命周期中的定义,可以把自动化测试工具划分3大类,和。

白盒测试工具、黑盒测试工具、测试管理工具

7、软件测试是为发现程序中的______________而执行程序的______________。

错误,过程

8、测试用例是由______________和预期的______________两部分组成。

测试输入数据 ,输出数据

9、白盒测试又称为______________,可以分为______________和______________两大类。

结构测试,静态测试,动态测试

10、软件是包括____________﹑﹑的完整集合。

程序,数据,相关文档

11、边界值分析法属于。

黑盒测试

12、单元测试是以____________说明书为指导,测试源程序代码。

详细设计

13、集成测试以____________说明书指导,测试软件结构。

概要设计

14、确认测试以____________说明书为指导。

需求分析

15、软件开发的基本过程,,,,__,。

需求分析、概要设计、详细设计,编码,测试、维护

16、代码复审属于,不实际运行程序。

静态测试

17、集成测试把模块组成成系统的测试方式:和。

一次性集成测试,增量式集成测试

18、黑盒测试有两种基本方法,即:和。

通过测试,失败测试

二、选择题(每题3分,共10题,分数为30分)

下列哪一项不是白盒测试?(C)

A.单元测试 B.集成测试 C.系统测试 D.回归测试

属于黑盒测试的方法?©

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)

A. 语句覆盖 B.判定覆盖 C.条件覆盖 D.路径覆盖

在Assert类中断言测试失败是_____。(D)

A.assertEquals B.assertTrue C.assertSame D.fail

8.软件测试的目的是___________。(C)

A.表明软件的正确性  B.评价软件质量  

C.尽可能发现软件中的错误    D.判定软件是否合格

9.关于白盒测试与黑盒测试的最主要区别,正确的是___________。(A)

A.白盒测试侧重于程序结构,黑盒测试侧重于功能 

B.白盒测试可以使用测试工具,黑盒测试不能使用工具   

C.白盒测试需要程序参与,黑盒测试不需要   

D.黑盒测试比白盒测试应用更广泛

10.软件测试类型按开发阶段划分___________。(B)

A.需要测试﹑ 单元测试﹑集成测试 

B.单元测试﹑集成测试﹑确认测试﹑系统测试﹑验收测试   

C.单元测试 ﹑集成测试﹑确认测试  

D.调试﹑单元测试﹑功能测试

11.在Junit中,testXXX()方法就是一个测试用例,测试方法是______。(B)

A. private void testXXX() B.public void testXXX()

C. public float testXXX() D.public int testXXX()

12.在下面所列举中的逻辑测试覆盖中,测试覆盖最强的是__________。(B)

A.条件覆盖  B.条件组合覆盖

C.语句覆盖     D.判定覆盖

13.在下面所列举中的逻辑测试覆盖中,测试覆盖最弱的是__________。(C)

A.条件覆盖  B.条件组合覆盖  

C.语句覆盖   D.判定覆盖

14.软件测试是软件质量保证的重要手段,下述哪种测试是软件测试的最基础环节?(B)

A.集成测试 B.单元测试 

C.目的测试 D.确认测试

15.增量式集成测试有3种方式:自顶向下增量测试方法, 和混合增量测试方式。(B)

A.自中向下增量测试方法 B.自底向上增量测试方法

C.多次性测试 D.维护

16.Junit的TestCase类提供 和tearDown()方法,分别完成对测试环境的建立和拆除。(A)

A.setUp()

B.set()

C.setap()

D.setDown()

方法根据输出对输入的依赖关系设计测试用例。(C)

A.路径测试 B.等价类

C.因果图 D.归纳测试

18.Junit测试在单元测试阶段测试,主要用于。(A)

A. 白盒测试 B.灰盒测试

C. 黑盒测试 D.确认测试

19.不属于白盒测试的技术是________。(C)

A.路径覆盖 B.判定覆盖

C.边界值分析 D.条件覆盖

20.软件测试过程中的集成测试主要是为了发现___________阶段的错误码。(B)

A.需求分析 B.概要设计

C.编码 D.维护

21.增量式集成测试有3种方式: ,自底向上增量测试方法和混合增量测试方式。(A)

A.自顶向下增量测试方法 B.一次性集成测试

C.多次性测试 D.维护

22.Junit适用于java开发人员在______阶段,进行单个方法实现功能或者类本身的测试,主要用于白盒测试。(C)

A.集成测试 B.验收测试

C.单元测试 D.确认测试

23.软件测试是按照特定的规程,的过程。(A)

A.发现软件错误 B. 说明程序正确

C.证明程序没有错误 D.设计并运行测试用例

24.一个成功的测试是。(B)

A.发现错误码 B. 发现了至今尚未发现的错误

C.没有发现错误码 D.证明发现不了错误

25.按照测试组织划分,软件测试可分为:开发方测试,第三方测试, ___________。(C)

A.集成测试 B.确认测试

C.用户测试 D.灰盒测试

26.下列模型哪个软件测试过程模型 ___________。(A)

A.W模型 B.漠布模型

C.L模 型 D.G模型

27.Junit有两个包:和Junit.extensions。(B)

A.Junit.frametest B. Junit.framework

C.Junit.amework D.Junit.assert

28.单元测试一般以__________为主。(A)

A.白盒测试 B. 黑盒测试

C.系统测试 D.分析测试

29.编码阶段产生的错误由__________检查出来的。(A)

A.单元测试 B. 集成测试

C.系统测试 D.有效性测试

30.代码检查法有桌面检查法,走查和。(B)

A.静态测试 B. 代码审查

C.动态测试 D.白盒测试

三﹑简答题(每题10分,共4题,分数为40分)

1.计算环路复杂度方法有哪三种?

答:(1)V(G)=判定节点数+ 1 ;

(2)V(G) = E-N+2 ;

(3)V(G)=区域数+ 1

2.白盒测试有几种方法?

答:白盒测试方法分为两大类:静态测试方法和动态测试方法。

静态测试方法:检查软件的表示和描述是否一致,没有冲突或者没有歧义。

动态测试方法:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖、路径覆盖。

3.什么是软件测试,软件测试分为哪几个阶段。

答:软件测试是为了发现程序中的错误而执行程序的过程。

软件测试一般分为单元测试、集成测试和系统测试。

4.比较白盒测试和黑盒测试?

答:使用白盒测试方法时,测试根据程序的内部逻辑和指定的覆盖标准;

黑盒测试法是通过分析程序的接口功能设计测试用例的。

5. 为以下程序段设计一组测试用例,要求分别满足语句覆盖、判定覆盖、条件覆盖。

int test(int A,int B)

{

if((A>1) AND (B<10)) then

X=A-B;

if((A=2) OR (B>20)) then

X=A+B;

return x;

}

答:语句覆盖测试用例:A=2,B=0;

判定覆盖测试用例:A=3,B=0;A=2,B=20;

条件覆盖测试用例:A=2,B=0;A=0,B=21;

为以下程序段设计一组测试用例,要求分别满足语句覆盖、判定覆盖、条件覆盖。

void DoWork (int x,int y,int z)

{

int k=0,j=0;

if ( (x>3)&&(z<10) )

{ k=xy-1;

j=sqrt(k);

} //语句块1

if ( (x==4)||(y>5) )

{ j=xy+10; } //语句块2

j=j%3; //语句块3

}

答:语句覆盖测试用例:x=4、y=5、z=5;

判定覆盖测试用例::x=4、y=5、z=5;x=2、y=5、z=5;

条件覆盖测试用例:x=4、y=6、z=5 ;x=2、y=5、 z=15 ;

7.某公司人事软件的工资计算模块的需求规格说明书中描述:

(1)年薪制员工:严重过失,扣当月薪资的4%;过失,扣年终奖的2%.

(2)非年薪制员工:严重过失,扣当月薪资的8%;过失,扣当月薪资的4%.

根据题目内容列出条件和结果,给出决策表。

答:条件:C1:年薪制

     C2:严重过失

结果:e1:扣月4%

e2: 扣月8%

e3: 扣年2%

1 2 3 4

条件: C1

C2 1 1 0 0

1 0 1 0

动作 e1

e2

e3 √ √

8.看代码程序:

void Sort ( int iRecordNum, int iType )

1 {

2 int x=0;

3 int y=0;

4 while ( iRecordNum> 0 )

5 {

6 If ( iType0 )

7 x=y+2;

8 else

9 If ( iType1 )

10 x=y+10;

11 else

12 x=y+20;

13}

14}

要求(1)给以上代码画出控制流图(2)控制流图的环复杂度V(G),写出独立路径。

(1)控制流图:

(2)V(G)= 4

路径1:4→14

路径2:4→6→7→13 → 4 → 14

路径3:4→6→9→10→13→4→14

路径4:4→6→9→12→13→4→14

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.从供选择的答案中选出同下列关于软件测试的各条叙述关系最密切的字句。

A.对可靠性要求很高的软件,例如操作系统,由第三者对源代码进行逐行检查。

B.已有的软件被改版时,由于受到变更的影响,改版前正常的功能可能发生异常,性能也可能下降。因此,对变更的软件进行测试是必要的。

C.在意识到被测试模块的内部结构或算法的情况下进行测试。

D.为了确认用户的需求,先做出系统的主要部分,提交给用户试用。

E.在测试具有层次结构的大型软件时,有一种方法是从上层模块开始,由上到下进行测试。此时,有必要用一些模块替代尚未测试过的下层模块。

供选择的答案:

AE: ① 仿真器 ② 代码审查 ③ 模拟器 ④ 桩 ⑤ 驱动器

⑥ 域测试 ⑦ 黑盒测试 ⑧ 原型 ⑨ 白盒测试 ⑩ 退化测试

三、判断题:共10小题,每小题1分,满分10分;请将答案以“√”、“×”形式填入题后括号中。

1.好的测试员不懈追求完美。( F )

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

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

4.在没有产品说明书和需求文档的条件下可以进行动态黑盒测试。( T )

5.静态白盒测试可以找出遗漏之处和问题。( T )

6.测试错误提示信息不属于文档测试范围。( F )

7.单元测试能发现约80%的软件缺陷。( T )

8.代码评审是检查源代码是否达到模块的要求。( T )

9.自顶向下集成需要测试员编写程序。( F )

10.总是首先设计黑盒测试用例。( T )

一、名词解释(5×3=15分)

1.验收测试

是软件产品完成了功能测试和系统测试之后,在产品发布之前所进行的软件测试活动。

2.失败测试

纯粹为了破坏软件而设计和执行的测试案例,被称为失败测试。

3.驱动模块

驱动模块就是用来代替主模块,用它来调用子模块

4. 桩模块

集成测试前要为被测模块编制一些模拟其下级模块功能的“替身”模块,以代替被测模块的接口,接受或传递被测模块的数据,这些专供测试用的“假”模块称为被测模块的桩模块。

5.白盒测试

也称为结构化测试、基于代码的测试,是一种测试用例设计方法,它从程序的控制结构导出测试用例。

六.综合题(1×20=20分)

输入条件 有效等价类 无效等价类

开头字符 由0x或0X开头 (1) 以字母开头 以非0数字开头 (2)(3)

数值字符 数字或A—F的字母 (4) A—F以外的字母 (5)

数值字符个数 ≥1个 (6) 0个 (7)

数值 ≥-7f且≤7f (8) <-7f

>7f (9)(10)

用例1:0x7F, 覆盖等价类(1)(4)(6)(8)

用例2:-0Xb, 覆盖等价类(1)(4)(6)(8)

用例3:0X0, 覆盖等价类(1)(4)(6)(8)

用例4:0x, 覆盖等价类(1)(7)

用例5:A7, 覆盖等价类(2)

用例6:-1A, 覆盖等价类(3)

用例7:0X8h, 覆盖等价类(1)(5)

用例8:0x80, 覆盖等价类(1)(4)(10)

用例9:-0XaB, 覆盖等价类(1)(4)(9)

-------------------------------------------------------------------------------------------综合题:

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

答案:

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

判定覆盖 A>1, B=0 A=2, B=0 执行S1

A>1, B0或

A1, B=0或

A1, B0 A=2, B=1或

A=1, B=0或

A=1, B=1

执行S2

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

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

A1 B0 A=1,B=1 执行S2

1

2

条件组合

覆盖 A>1, B=0 A=2, B=0 执行S1

A>1, B0 A=2, B=1 执行S2

A1, B=0 A=1, B=0 执行S2

A1, B0 A=1, B=1 执行S2

2、有二元函数f(x,y),其中x∈[1,21],y∈[1,31];请写出该函数采用基本边界值分析法设计的测试用例。(10分)

答:{ <1,15>, <2,15>, <20,15>, <21,15>, <10,15>, <10,1>, <10,2>, <10,30>, <10,31> }

3.设一个控制流图如下,请给出环形复杂度和基本测试路径。(20分)

答案:(1) 根据程序环形复杂度的计算公式,求出程序路径集合中的独立路径数目。

公式1:V(G)=11-9+2,其中10是控制流图G中边的数量,8是控制流图中节点的数目。

公式2:V(G)=3+1,其中3是控制流图G中判断节点的数目。

公式3:V(G)=4,其中4是控制流图G中区域的数目。

因此,控制流图G的环形复杂度是4。

(2) 根据上面环形复杂度的计算结果,源程序的基本路径集合中有4条独立路径:

路径1:5->22

路径2:5->7, 8->11, 12->21->5->22

路径3:5->7, 8->16->17->19->21->5->22

路径4:5->7, 8->16->18->19->21->5->22

4、设有一个档案管理系统,要求用户输入以年月表示的日期。假设日期限定在1999年1月~2029年12月,并规定日期由6位数字字符组成,前4位表示年,后2位表示月。现用等价类划分法设计测试用例,来测试程序的"日期检查功能"。(20分)

1)划分等价类并编号,下表等价类划分的结果

输入等价类 有效等价类 无效等价类

日期的类型及长度 ①6位数字字符 ②有非数字字符

③少于6位数字字符

④多于6位数字字符

年份范围 ⑤在1999~2029之间 ⑥小于1999

⑦大于2029

月份范围 ⑧在01~12之间 ⑨等于00

⑩大于12

2)设计测试用例,以便覆盖所有的有效等价类在表中列出了3个有效等价类,编号分别为①、⑤、⑧,设计的测试用例如下:

测试数据 期望结果 覆盖的有效等价类

200211 输入有效 ①、⑤、⑧

为每一个无效等价类设计一个测试用例,设计结果如下:

测试数据 期望结果 覆盖的无效等价类

99June 无效 ②

20036 无效 ③

2001006 无效 ④

199712 无效 ⑥

203001 无效 ⑦

200100 无效 ⑨

200113 无效 ⑩

四 简答题(30分)

1.试描述软件测试的定义?(3分)

答:利用手工或者自动化的方式,按照测试方案对系统执行测试用例的过程叫做软件测试。

2.什么是软件缺陷?(4分)

答:满足以下条件的问题都叫缺陷:

软件未达到产品说明书中已标明的功能

软件出现了产品说明书中指明不会出现的错误

软件功能超出了产品说明书指明的范围

软件未达到产品说明书虽未指出但应达到的目标

软件测试员认为软件难以理解,不易使用,运行速度缓慢,或者最终用户认为该软件使用效果不好。

3.常见的黑盒测试用例的设计方法?并分别简单介绍一下各自的思想。(8分)

答:等价类划分:等价类划分法是一种重要的、常用的黑盒测试方法,它将不能穷举的测试过程进行合理分类,从而保证设计出来的测试用例具有完整性和代表性。

边界值分析:对输入输出的边界值进行测试的一种黑盒测试方法。

决策表法:决策表是分析和表达多逻辑条件下执行不同操作的情况的工具

因果图分析法:是一种利用图解法分析输入的各种组合情况,从而设计测试用例的方法,它适合于检查程序输入条件的各种组合情况。

错误推测法:基于经验和直觉推测程序中所有可能存在的各种错误,从而有针对性的设计测试用例的方法。

4. 列举常见的系统测试方法。答出来5个即可。(5分)

答:恢复测试安全测试强度测试性能测试正确性测试可靠性测试兼容性测试Web测试

5.文档测试主要测试哪些内容?答出来5点即可(5分)

答:(1)检查产品说明书属性(2)检查是否完整(3)检查是否准确(4)检查是否精确(5)检查是否一致(6)检查是否贴切(7)检查是否合理(8)检查代码无关(9)检查可测试性

6. 单元测试主要测试那几方面的问题?(5分)

答:模块接口、局部数据结构、边界条件、独立的路径和错误处理。

五,设计题

1.

输入条件 有效等价类 无效等价类

是否三角形的三条边 A>0 (1) A≤0 (7)

B>0 (2) B≤0 (8)

C>0 (3) C≤0 (9)

A+B>C (4) A+B≤C (10)

A+C>B (5) A+C≤B (11)

B+C>A (6) B+C≤A (12)

是否等腰三角形 A=B (13) A≠B AND A≠B AND B≠C (16)

B=C (14)

C=A (15)

是否等边三角形 A=B AND A=C AND B=C(17) A≠B (18)

A≠B (19)

A≠B (20)

编号 【A B C 】 覆盖等价类 输出

1 【3、4、5】 (1)、 (2)、 (3)、 (4)、 (5)、 (6) 一般三角形

2 【0、1、2】 (7)、 不能构成三角形

3 【1、0、2】 (8)、

4 【1、2、0】 (9)、

5 【1、2、3】 (10)、

6 【1、3、2】 (11)、

7 【3、1、2】 (12)、

8 【3、3、4】 (1)、 (2)、 (3)、 (4)、 (5)、 (6)、(13) 等腰三角形

9 【3、4、4】 (1)、 (2)、 (3)、 (4)、 (5)、 (6)、(14)

10 【3、4、3】 (1)、 (2)、 (3)、 (4)、 (5)、 (6)、(15)

11 【3、4、5】 (1)、 (2)、 (3)、 (4)、 (5)、 (6)、(16) 非等腰三角形

12 【3、3、3】 (1)、 (2)、 (3)、 (4)、 (5)、 (6)、(17) 等边三角形

13 【3、4、4】 (1)、 (2)、 (3)、 (4)、 (5)、 (6)、(18) 非等边三角形

14 【3、4、3】 (1)、 (2)、 (3)、 (4)、 (5)、 (6)、(19)

15 【3、3、4】 (1)、 (2)、 (3)、 (4)、 (5)、 (6)、(20)

一、单项选择题:共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、语句覆盖

10、( a )是设计足够多的测试用例,使得程序中每个判定包含的每个条件的所有情况(真/假)至少出现一次,并且每个判定本身的判定结果(真/假)也至少出现一次。

A、判定-条件覆盖 B、组合覆盖

C、判定覆盖 D、条件覆盖

11.软件测试是软件质量保证的重要手段,下述哪种测试是软件测试的最基础环节?( b )

A.功能测试

B.单元测试

C.结构测试

D.验收测试

12、单元测试的主要任务不包括( b )。

A.出错处理 B.全局数据结构

C.独立路径 D.模块接口

13、如下图所示的N-S图,至少需要( b )个测试用例完成逻辑覆盖。

A.12 B.48

C.27 D.18

14、单元测试中用来模拟实现被测模块需调用的其他功能模块的是( b )。

A.驱动模块 B.桩模块

C.主控模块 D.真实的被调用模块

15、集成测试计划应该在( b )阶段末提交。

A、需求分析 B、概要设计

C、详细设计 D、单元测试完成

16、下列关于程序效率的描述错误的是( c )。

A.提高程序的执行速度可以提高程序的效率

B.降低程序占用的存储空间可以提高程序的效率

C.源程序的效率与详细设计阶段确定的算法的效率无关

D.好的程序设计可以提高效率

17、下列( b )是对程序流程图进行简化后得到的,它可以更加突出的表示程序控制流的结构,且不包含复合条件。

A.DD-路径图 B. 控制流图

C.MM-路径图 D. 模块调用图

18、自底向上增量式集成测试中,下面( c )描述是正确的。

A.测试由桩模块控制

B.最上面的模块最先测试

C.父单元用测试过的子单元测试

D.包含树的深度优先或广度优先遍历过程

19、测试后程序中残存的错误数目与该程序中已发现的错误数目成( d )。

A.未知 B.反比

C.相等 D.正比

20、针对是否对无效数据进行测试,可以将等价类测试分为(b )

1)标准(一般)等价类测试

2)健壮等价类测试

3)弱等价类测试

4)强等价类测试

A.3)4) B.1)2)

C.1)3) D.2)4)

二、判断题:共20小题,每题1分,满分20分)

1、一个程序中所含有的路径数与程序的复杂程度有着直接的关系。( ∨ )

2、结构性测试是根据软件的规格说明来设计测试用例。( x )

3、错误推测法是根据输出对输入的依赖关系来设计测试用例的。(x )

4、软件缺陷属性包括缺陷标识、缺陷类型、缺陷严重程度、缺陷产生可能性、缺陷优先级、缺陷状态、缺陷起源、缺陷来源、缺陷原因。(∨ )

5、对于一个含有n个变量的程序,采用边界值健壮性测试方法来测试程序会产生6n+1个测试用例。(∨)

6、数据流测试是主要用作路径测试的真实性检查。两种形式分别为定义/使用测试、基于程序片的测试。(∨ )

7、软件只要经过严格严谨的内部测试之后,可以做到没有缺陷。(x )

8、测试用例应由测试输入数据和对应的实际输出结果这两部分组成。( x )

9、测试是可以穷尽的。( x )

10、测试自动化是万能的。( x )

11、软件缺陷可能会被修复,可能会被保留或者标识出来。( ∨ )

12、每一个软件项目都有一个最优的测试量。( ∨ )

13、黑盒测试往往会造成测试用例之间可能存在严重的冗余和未测试的功能漏洞。(∨ )

14、代码审查工作属于静态测试。( ∨ )

15、软件测试是一个过程,包含若干活动,运行软件进行测试只是活动之一。(∨ )

16、回归测试是在软件修改后再次运行以前为查找错误而执行程序曾用过的测试用例. ∨

17、集成测试是为确定软件系统是否满足验收标准以及使客户决定是否接受而进行的正式测试. ( x )

18、测试按照测试层次可以划分成为单元测试、集成测试和系统测试。( ∨ )

19、只要能够达到100%的逻辑覆盖率,就可以保证程序的正确性。( x )

20、永远有缺陷类型会在测试的一个层次上被发现,并且能够在另一个层次上逃避检测。(∨ )

三、简答题:共4小题,每题5分,满分20分。

1、优秀的软件测试工程师应具备哪些素质?

答:具有探索精神、具有良好的计算机编程基础、故障排除能手、坚持不懈的精神、具有创新精神和超前意识、追求完美、判断准确、具有整体观念,对细节敏感、团队合作精神,沟通能力

2、有二元函数f(x,y),其中x∈[1,12],y∈[1,31];请写出该函数采用基本边界值分析法设计的测试用例。

答:{ <1,15>, <2,15>, <11,15>, <12,15>, <6,15>,

<6,1>, <6,2>, <6,30>, <6,31> }

3、黑盒测试与白盒测试各有哪些优缺点,应该如何结合才能解决漏洞和冗余问题?

答:功能性测试具有两大优点:功能性测试与软件如何实现无关;测试用例开发可以与实现并行进行,因此可以压缩总的项目开发时间。缺点:测试用例之间可能存在严重的冗余,还会有位测试的软件漏洞。结构性测试局限于已经完成的代码行为当中,离代码太近。因此可以结构性测试指标去解决冗余和漏洞问题。如果发现同一条程序路径被多个功能性测试用例遍历,就可以怀疑这种冗余不会发生新的缺陷,如果没有达到一定的DD—路径覆盖,则可知在功能性测试用力中存在漏洞。因此路径测试可以提供作为功能性测试交叉检查的一组指标。

4、有一段程序如下,请设计测试用例以满足语句覆盖要求。

void DoWork (int x,int y,int z)

{

int k=0,j=0;

if ( (x>3)&&(z<10) )

{ k=xy-1;

j=sqrt(k);

} //语句块1

if ( (x==4)||(y>5) )

{ j=xy+10; } //语句块2

j=j%3; //语句块3

}

答:要实现DoWork函数的语句覆盖,只需设计一个测试用例就可以覆盖程序中的所有可执行语句。

四、综合题:共2小题,每题10分,满分20分。

1、使用基本路径测试方法,为以下程序段设计测试用例。

(1)画出程序的控制流图,编号已经给出。

(2)计算程序的循环复杂度,导出程序基本路径集中的独立路径条数。

(3)导出基本路径集,确定程序的独立路径。

(4)根据(3)中的独立路径,设计测试用例(确保基本路径集中的每一条路径的执行)的输入数据和预期输出。

void Do (int X,int A,int B)

{

1 if ( (A>1)&&(B=0) )

2 X = X/A;

3 if ( (A=2)||(X>1) )

4 X = X+1;

5 }

由于控制流图假设的是单条件,因此对于复合条件,可将其分解为多个单个条件,并映射成控制流图。

1: A>1;2: B=0 ;3: X = X/A ;4: A=2 ;5:X>1 ;6: X = X+1;7: }

2、场景要求:”……对功率大于50马力的机器、维修记录不全或已运行10年以上的机器,应给予优先的维修处理……” 。这里假定,“维修记录不全”和“优先维修处理”均已在别处有更严格的定义 。请建立决策表。

(1) 确定规则的个数。

(2) 列出所有的条件桩和动作桩。

(3) 填入条件项。

(4) 填入动作项,得到初始决策表。

(5) 简化决策表,合并相似规则。

二、简答题(4×5=20分)

1.答:具有探索精神、具有良好的计算机编程基础、故障排除能手、坚持不懈的精神、具有创新精神和超前意识、追求完美、判断准确、具有整体观念,对细节敏感、团队合作精神,沟通能力。

1.具有良好的计算机编程基础,有一定的软件开发经验;有逆向思维的能力

2.善于同软件开发人员沟通;善于同领导沟通

3.掌握一些自动化测试工具;善于学习的能力

4.提高自己的表达能力 ; 了解业务知识

5.具有探索精神;故障排除能手

6.坚持不懈的精神;具有创新精神和超前意识

7.追求完美;判断准确;具有整体观念,对细节敏感;团队合作精神

2.答:{ <1,15>, <2,15>, <11,15>, <12,15>, <6,15>,

<6,1>, <6,2>, <6,30>, <6,31> }

3.答:功能性测试具有两大优点:功能性测试与软件如何实现无关;测试用例开发可以与实现并行进行,因此可以压缩总的项目开发时间。缺点:测试用例之间可能存在严重的冗余,还会有位测试的软件漏洞。结构性测试局限于已经完成的代码行为当中,离代码太近。因此可以结构性测试指标去解决冗余和漏洞问题。如果发现同一条程序路径被多个功能性测试用例遍历,就可以怀疑这种冗余不会发生新的缺陷,如果没有达到一定的DD—路径覆盖,则可知在功能性测试用力中存在漏洞。因此路径测试可以提供作为功能性测试交叉检查的一组指标。

4.答:要实现DoWork函数的语句覆盖,只需设计一个测试用例就可以覆盖程序中的所有可执行语句。

Ø测试用例输入为:{ x=4、y=5、z=5 }

三、综合题(每题10分,共计20分)

1、画出控制流图: 如右图所示

·计算环形复杂度:

10(条边)- 7(个节点)+ 2 = 5

·导出独立路径(用语句编号表示)

路径1:1→2→3→4→5→6→7

路径2:1→4→5→6→7

路径3:1→2→4→6→7

路径4:1→2→4→5→7

路径5:1→2→3→4→5→7

测试用例

用例号 路径 输入数据

A B X 预期输出

X

TC1 1→2→3→4→5→6→7 3 0 6 3

TC2 1→4→5→6→7 0 1 3 4

TC3 1→2→4→6→7 2 1 1 2

TC4 1→2→4→5→7 3 1 0 0

TC5 1→2→3→4→5→7 3 0 3 1

2.解答:

①确定规则的个数:这里有3个条件,每个条件有两个取值,故应有222=8种规则。

②列出所有的条件桩和动作桩:

③填入条件项。可从最后1行条件项开始,逐行向上填满。

如第三行是: Y N Y N Y N Y N

第二行是: Y Y N N Y Y N N

等等。

④填入动作项。这样便得到形如图的初始判定表。

⑤化简。合并相似规则后得到结果图。

一、单选题

1、软件测试的目的是( )
A、试验性运行软件
B、发现软件错误
C、证明软件正确
D、找出软件中全部错误
【答案】B

2、下面说法正确的是( )
A、经过测试没有发现错误说明程序正确
B、测试的目标是为了证明程序没有错误
C、成功的测试是发现了迄今尚未发现的错误的测试
D、成功的测试是没有发现错误的测试
【答案】C

3、软件测试中白盒法是通过分析程序的( )来设计测试用例的。
A、应用范围
B、内部逻辑
C、功能
D、输入数据
【答案】B

4、软件测试中黑盒法是根据程序的( )来设计测试用例的。
A、应用范围
B、内部逻辑
C、功能
D、输入数据
【答案】C

5、提高软件测试的效率,应该( )
A、随机地选取测试数据
B、取一切可能的输入数据作为测试数据
C、在完成编码以后制定软件的测试计划
D、选择发现错误可能性最大的数据作为测试用例
【答案】D

6、与设计测试用例无关的文档是( )
A、项目开发计划
B、需求规格说明书
C、设计说明书
D、源程序
【答案】A
【解析】在各个时期进行的软件测试,其依据都是不同的,测试用例的设计应该与各个时期的文档有关,故测试用例的设计与需求规格说明书、程序复杂程度、源程序都是有关的。而项目的开发计划是为程序的开发做准备的,与测试无关。

7.软件测试用例主要由输入数据和( )两部分组成。
A、测试计划
B、测试规则
C、预期输出结果
D、以往测试记录分析
【答案】C

8.成功的测试是指运行测试用例后( )
A、未发现程序错误
B、发现了程序错误
C、证明程序正确性
D、改正了程序错误
【答案】B

9.下列几种逻辑覆盖标准中,查错能力最强的是( )
A、语句覆盖
B、判定覆盖
C、条件覆盖
D、条件组合覆盖
【答案】D

10.在黑盒测试中,着重检查输入条件组合的方法是( )
A、等价类划分法
B、边界值分析法
C、错误推测法
D、因果图法
【答案】D
【解析】在黑盒测试中,等价类测试法和边界值分析法,都是着重考虑输入条件,但是对于输入条件之间的联系则讨论不多。因果图法是着重检查输入条件组合的一种测试方法。

11.单元测试主要针对模块的几个基本特征进行测试,该阶段不能完成的测试是( )
A、系统功能
B、局部数据结构
C、重要的执行路径
D、错误处理
【答案】A
【解析】单元测试主要从下面五个基本特征进行测试,分别是:模块接口、局部数据结构、独立路径和出错处理。故不能完成的测试是系统功能,这通常是在系统测试时进行的。

12、版本管理是对系统不同版本进行的( )过程
A、标识与跟踪
B、标识变更
C、发布变更
D、控制变更
【答案】A

13、在设计人机界面时,应主要考虑的因素有( )
A、系统响应时间 
B、错误处理 
C、用户求助机制 
D、以上都是
【答案】D

14、软件测试是保证软件质量的重要措施,它的实施应该在( )
A、程序编程阶段
B、软件开发全过程
C、软件允许阶段
D、软件设计阶段
【答案】B

15、对软件是否能达到用户所期望的要求的测试称为( )
A、集成测试
B、有效性测试
C、系统测试
D、验收测试
【答案】D

16、某软件公司在招聘软件评测师,应聘者作出如下保证:( )
① 经过自己测试的软件今后不会再出现问题;
② 在工作中对所有程序员一视同仁,不会因为某个程序员编写对程序中发现较多问题,就重点审查改程序,以免不利于团结;
③ 承诺不需要其他人员,自己就可以独立进行测试工作;
④ 发扬咬定青山不放松的精神,不把所有问题都找出来,决不罢休。
A、①④正确
B、②③正确
C、都正确
D、都不正确
【答案】D

17、在进行软件测试时,首先应当进行( ),然后再进行组装测试,最后再进行有效性测试。
A、单元测试
B、集成测试
C、确认测试
D、组合测试
【答案】A

18、软件测试活动主要包括( )。
A、测试设计
B、测试执行
C、都是
D、测试总结
【答案】C

19、从下列叙述中选出能够与软件开发需求分析、设计、编码相对应的软件测试( )。
A、组装测试、确认测试、单元测试
B、单元测试、组装测试、确认测试
C、单元测试、确认测试、组装测试
D、确认测试、组装测试、单元测试
【答案】D

20、( )不是易用性测试包括的内容
A、安装测试
B、菜单测试
C、界面测试
D、文档测试
【答案】D

21、软件测试的目的是尽可能发现软件中的错误,通常( )是代码编写阶段可进行的测试,它是整个测试工作的基础。
A、系统分析
B、安装测试
C、验收测试
D、单元测试
【答案】D

22、用黑盒技术设计测试用例的方法之一为( )
A、因果图
B、逻辑覆盖
C、循环覆盖
D、基本路径测试
【答案】A

23、下列软件属性中,软件产品首要满足的应该是( )
A、功能需求
B、性能需求
C、可扩展性和灵活性
D、容错纠错能力
【答案】A

24、下列哪个不是测试环境组成要素( )
A、软硬件
B、技术文档
C、测试工具
D、网络环境
【答案】B

25、在进行单元测试时,常用的方法是( )
A、采用白盒测试,辅之以黑盒测试
B、采用黑盒测试,辅之以白盒测试
C、只使用白盒测试
D、只使用黑盒测试
【答案】A
【解析】本题考查软件测试方法的应用。白盒测试是测试程序内部的逻辑结构及有关信息,黑盒测试只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明。从程序内部的逻辑结构对系统进行测试才是测试的根本,即是比较深层次的测试,更容易发现和解决程序中的问题,因此单元测试时应该以白盒测试为主,而黑盒测试只能作辅助。

26、单元测试中设计测试用例的依据是( )
A、概要设计规格说明书
B、用户需求规格说明书
C、项目计划说明书
D、详细设计规格说明书
【答案】D

27、软件生存周期过程中,修改错误成本最大的阶段是( )
A、需求阶段
B、设计阶段
C、编程阶段
D、发布运行阶段
【答案】D

28、经验表明,在程序测试中,某模块与其他模块相比,若该模块已发现并改正的错误较多,则该模块中残存的错误数目与其他模块相比,通常应该( )
A、较少
B、较多
C、相似
D、不确定
【答案】B

29、下面有关软件缺陷的说法中错误的是( )
A、缺陷就是软件产品在开发中存在的错误
B、缺陷就是软件维护过程中存在的错误、毛病等各种问题
C、缺陷就是导致系统程序崩溃的错误
D、缺陷就是系统所需要实现某种功能的失效和违背
【答案】C

30、在某大学学籍管理信息系统中,假设学生年龄的输入范围为16—40,则根据黑盒测试中的等价类划分技术,下面划分正确的是( )
A、可划分为2个有效等价类,2个无效等价类
B、可划分为1个有效等价类,2个无效等价类
C、可划分为2个有效等价类,1个无效等价类
D、可划分为1个有效等价类,1个无效等价类
【答案】B

31、根据软件需求规格说明书,在开发环境下对已经集成的软件系统进行的测试是( )
A、系统测试
B、单元测试
C、集成测试
D、验收测试
【答案】A

32、下面有关测试原则的说法正确的是( )
A、测试用例应由测试的输入数据和预期的输出结果组成
B、测试用例只需选取合理的输入数据
C、程序最好由编写该程序的程序员自己来测试
D、使用测试用例进行测试是为了检查程序是否做了它该做的事
【答案】A

33、下列关于测试策略的叙述中不正确的是( )
A、从某种角度上讲,白盒测试与黑盒测试都属于动态测试
B、功能测试属于黑盒测试
C、对功能的测试通常是要考虑程序的内部结构
D、结构测试属于白盒测试
【答案】C

34、下列可以作为软件测试对象的是( )
A、需求规格说明书
B、软件设计规格说明
C、源程序
D、以上全部
【答案】D

35、功能或特性没有实现,主要功能部分丧失,次要功能完全丧失,或致命的错误声明,这属于软件缺陷级别中的( )
A、致命的缺陷
B、严重的缺陷
C、一般的缺陷
D、微小的缺陷
【答案】B

36、下面有关软件质量保证活动目标的说法中不正确的是( )
A、客观的验证软件产品和各项任务是否遵循适用的标准规程和需求
B、用最少的时间和人力,找出软件中潜在的各种错误和缺陷
C、高层管理能够参与,并帮助解决项目中不能解决的不相容问题
D、制定和规划软件质量保证的任务
【答案】B
【解析】软件质量保证活动的目标为:制定和规划软件质量保证的任务,客观地验证软件产品和各项任务是否遵循适用的标准、规程和需求,相关小组和个人保持良好的沟通,及时通知他们在软件质量保证方面的认识和结果,高层管理人员能够参与并帮助解决项目中不能解决的不相容问题。而选项B(用最少的时间和人力,找出软件中潜在的各种错误和缺陷)应为软件测试的目标,两者要区分开来。

37、软件测试工作应该开始于( )
A、项目立项之后
B、需求分析阶段
C、概要设计阶段
D、详细设计阶段
【答案】B

38、确认系统是否按照预期工作,从而在系统是否满足系统需求方面获取信心。这样的测试目的最可能适用下面的哪个测试阶段( )
A、组件测试
B、集成测试
C、系统测试
D、回归测试
【答案】C

39、回归测试的目的是( )
A、验证修改的成功
B、预防功能编写的不完善或疏漏
C、确保修正过程中没有引入新的缺陷
D、帮助程序员更好地进行单元测试
【答案】C

40、下关于测试原则的描述,正确的是( )
A、所有的软件测试不需要追溯到用户需求;
B、完全测试是不可能的;
C、测试可以显示软件潜在的缺陷;
D、程序员不需要避免检查自己的程序。
【答案】B

41、关于软件质量保证和软件测试的描述,不正确的是( )
A、软件质量保证和软件测试是软件质量工程的两个不同层面的工作
B、在软件质量保证的活动中也有一些测试活动
C、软件测试是保证软件质量的一个重要环节
D、软件测试人员就是软件质量保证人员
【答案】D

42、关于测试充分性的描述,正确的是( )
A、只有进行完全的测试才充分
B、在有限的时间和资源条件下,找出所有的软件的错误,若使软件趋于完美,是不可能的
C、当继续测试没有发现新缺陷时
D、当全部测试用例都执行完后
【答案】B

43、以下关于软件测试目的的描述,不正确的是( )
A、测试以发现故障或缺陷为目的
B、测试可以找出软件中存在的所有缺陷和错误
C、执行有限测试用例并发现错误
D、检查软件是否满足定义的各种需求
【答案】B

44、软件测试是为了检查出并改正尽可能多的错误,不断提高软件的( )
A、功能和效率
B、设计和技巧
C、质量和可靠性
D、质量和效能
【答案】C

45、软件测试的对象包括( )
A、目标程序和相关文档
B、源程序、目标程序、数据及相关文档
C、目标程序、操作系统和平台软件
D、源程序和目标程序
【答案】B

46、瀑布模型表达了一种系统的、顺序的软件开发方法。以下关于瀑布模型的叙述中,正确的是( )
A、瀑布模型能够非常快速地开发大规模软件项目
B、只有很大的开发团队才使用瀑布模型
C、瀑布模型已不再适合于现今的软件开发环境
D、瀑布模型适用于软件需求确定,开发过程能够釆用线性方式完成的项目
【答案】D

47、软件质量的定义是( )
A、 软件的功能性、可靠性、易用性、效率、可维护性、可移植性
B、 满足规定用户需求的能力
C、 最大限度达到用户满意
D、 软件特性的总和,以及满足规定和潜在用户需求的能力
【答案】D

48、下列哪种不属于兼容性测试的范围( )
A、软件在不同操作系统环境下运行的表现
B、软件在不同类型的数据库环境下进行数据交换的表现
C、软件在不同类型的人员使用时的运行表现
D、软件在不同类型硬件配置环境下运行的表现
【答案】C

49、关于软件测试对软件质量的意义,有以下观点:
①度量与评估软件的质量;②保证软件质量;③改进软件开发过程;④发现软件错误。其中正确的是( )
A、 ①②③
B、 ①②④
C、 ①③④
D、 ①②③④
【答案】C

50、软件能力成熟度模型(CMM)将软件能力成熟度自低到高依次划分为5级。目前,达到CMM第3级(已定义级)是许多组织努力的目标,该级的核心是( )
A、建立基本的项目管理和实践来跟踪项目费用、进度和功能特性
B、使用标准开发过程(或方法论)构建(或集成)系统
C、管理层寻求更主动地应对系统的开发问题
D、连续地监督和改进标准化的系统开发过程
【答案】B

51、下列选项中叙述错误的是( )
A、每个开发活动都有相对应的测试行为
B、每个测试级别都有其特有的测试目标
C、软件测试的工作重点应该集中在系统测试上
D、对每个测试级别,需要在相应的开发活动过程中进行相应的测试分析和设计
【答案】C

52、对于软件的β测试,下列描述正确的是( )
A、β测试是在软件公司内部展开的测试,由公司专业的测试人员执行的测试
B、β测试是在软件公司内部展开的测试,由公司的非专业测试人员执行的测试
C、β测试是在软件公司外部展开的测试,由专业的测试人员执行的测试
D、β测试是在软件公司外部展开的测试,可以由非专业的测试人员执行的测试
【答案】D

53、下列选项中不属于黑盒测试特点的是( )
A、黑盒测试与软件具体实现无关
B、黑盒测试可用于软件测试的各个阶段
C、黑盒测试可以检查出程序外部结构的错误
D、黑盒测试用例设计可与软件实现同步进行
【答案】B
【解析】黑盒测试着眼于软件的外部特征,通过上述方面的检测,确定软件所实现的功能是否按照软件规格说明书的预期要求正常工作。两个显著的优点: ① 黑盒测试与软件具体实现无关,所以如果软件实现发生了变化,测试用例仍然可以使用; ② 设计黑盒测试用例可以和软件实现同时进行,因此可以压缩项目总的开发时间。主要应用于集成测试、确认测试、系统测试、验收测试。

54、下述说法正确的是( )
A、白盒测试又称为“逻辑驱动测试”
B、穷举路径测试可以查出程序中因遗漏路径而产生的错误
C、一般而言,黑盒测试对结构的覆盖比白盒测试高
D、必须根据软件需求说明文档生成用于白盒测试的测试用例
【答案】A

55、系统测试关注的是( )
A、某个独立的功能是否实现
B、组件间的接口的一致性
C、某个单独的模块或类是否满足设计要求
D、项目或产品范围中定义的整个系统或产品的行为
【答案】D

56、设计功能测试用例的根本依据是( )
A、用户需求规格说明书
B、用户手册
C、被测产品的用户界面
D、概要设计说明书
【答案】A

57、以下不属于界面元素测试的是( )
A、窗口测试
B、文字测试
C、功能点测试
D、鼠标操作测试
【答案】C
【解析】界面元素测试包括:窗口测试、菜单测试、图标测试、文字测试、鼠标测试。

58、以下各项中,( )属于安装测试应关注的内容。
①安装手册的评估
②安装选项和设置的测试
③安装顺序测试
④修复安装测试与卸载测试
A、①②③
B、③④
C、②③④
D、①②③④
【答案】D

59、下面关于回归测试叙述正确的是( )
A、回归测试只能在系统测试这个级别进行,不能用于单元测试和集成测试
B、回归测试都是自动化执行的
C、回归测试必须重新测试整个系统
D、回归测试是对已被测过的程序实体在修改缺陷或变更后进行的重复测试,以此来确认在这些变更后是否有新的缺陷引入系统
【答案】D

60、有一个系统巳经在市场上运行了,这种情况对系统进行修改,然后进行的测试属于( )
A、维护测试
B、验收测试
C、组件测试
D、系统测试
【答案】A

61、下面对静态测试和动态测试的区别描述正确的是( )
A、静态测试并没有真正的运行软件,而动态测试需要运行软件
B、静态测试需要借助于专门的测试工具,而动态测试不需要
C、静态测试是由开发人员执行的,而动态测试是由专门的测试人员完成
D、静态测试是主要是为了增加测试人员对软件的理解,而动态测试是为了发现缺陷
【答案】A

62、下面那个不属于静态分析( )
A、编码规则的检查
B、程序结构分析
C、程序复杂度分析
D、内存泄漏
【答案】D
【解析】运行程序

63、对于评审的描述错误的是( )
A、评审是对软件工作产品(包括代码)进行测试的一种方式。
B、评审可以降低消除缺陷的成本。
C、由于在评审时软件并没有运行,所以发现缺陷很难。
D、评审可以在需求文档中发现一些冗长的不需要的内容,这在动态测试中很难发现
【答案】C

64、下面关于动态测试的描述错误的是( )
A、动态测试必须运行被测试程序
B、动态测试需要对输入与输出的对应关系进行分析
C、动态测试适用于软件开发过程的各个阶段
D、动态测试必须由专门的测试人员完成
【答案】D

65、下面( )不属于动态测试的内容。
A、检查程序编码规则
B、检查各个组件功能
C、检査内存使用情况
D、评估系统性能
【答案】A

66、系统测试阶段动态测试的目标是( )
A、检测组件中的不合格品
B、动态检测模块与接口
C、功能和非功能的动态测试
D、对提交的软件进行验证性测试
【答案】C

67、动态测试用例规格说明的内容包括( )
①前置条件
②输入数据
③预期结果
④后置条件
A、①②
B、②③
C、①②③
D、①②③④
【答案】C

68、下面对基于直觉的动态测试方法的描述错误的是( )
A、此方法的基础是测试人员的技术、经验和知识
B、使用此方法时需要需求规格说明书和源代码
C、既不是黑盒测试也不属于白盒测试
D、可以发现运用系统化方法进行测试时无法发现的问题
【答案】B

69、通过黑盒测试无法发现( )
A、程序功能使用异常
B、程序内部结构错误
C、程序初始化错误
D、外部数据访问异常
【答案】B

70、不属于软件测试实施步骤的是( )
A、集成测试
B、单元测试
C、回归测试
D、确认测试
【答案】C

71、技术评审的目的是( )
A、保证软件在独立的模式下进行开发
B、发现软件业务错误
C、与项目管理无关
D、确认软件符合预先定义的开发规范和标准
【答案】D

72、下面对等价类划分法描述错误的是( )
A、将测试对象的输入域划分成若干部分
B、从每个部分中选取少数具有代表性的数据作为测试用例
C、只需要考虑程序中合理的、有意义的输入数据
D、等价类划分的主要依据是需求规格说明书
【答案】C

73、什么是等价类划分( )
①将测试对象的输入或输出域划分成若干部分
②从每一个子集中选取少数具有代表性的数据
③是一种白盒测试方法
④有效值的等价类
⑤无效值的等价类
A、①②③④⑤
B、①②③
C、①②④⑤
D、④⑤
【答案】C

74、某学校的成绩管理系统中,学生成绩的输入范围为0~100,根据等价类划分法,学生成绩可划分为( )
A、2个有效等价类和2个无效等价类
B、1个有效等价类和2个无效等价类
C、2个有效等价类和1个无效等价类
D、1个有效等价类和1个无效等价类
【答案】B

75、某程序输入X取值于一个固定的枚举类型{1,4,9,16},并且程序要对这4个输入值分别进行处理,根据等价类划分法,这种情况下对输入X划分正确的是( )
A、划分为4个有效等价类、1个无效等价类
B、划分为1个有效等价类、4个无效等价类
C、划分为1个有效等价类、2个无效等价类
D、划分为1个有效等价类、1个无效等价类
【答案】A

76、下面说法错误的是( )
A、标准等价类测试不考虑无效数据值
B、健壮等价类测试会同时考虑有效等价类和无效等价类
C、各个等价类的代表值至少要在一个测试用例中出现
D、使用无效数据值的测试用例可以不用定义预期结果???
【答案】A

77、等价类划分法设计6位长度的数字类型用户名(即不能包含数字以外的其它字符)登录操作的测试用例,应该分成( )个等价区间。
A、 2
B、 3
C、 4
D、 6
【答案】C

78、下面关于边界值分析的说法不正确的是( )
A、边界值分析采用定义域或等价区间的边界值设计测试用例
B、边界值分析是一种补充等价划分的黑盒测试技术
C、边界值分析法考虑了输入变量之间的依赖关系
D、程序在处理大量屮间数值时不易出错,但容易在边界值处出现错误
【答案】C

79、如果采用边界值分析法进行健壮性测试,需要对程序的每个输入变量选取( )来设计测试用例。
A、最小值、正常值、最大值
B、最小值、略大于最小值、正常值、略小于最大值、最大值
C、略小于最小值、最小值、正常值、最大值、略大于最大值
D、略小于最小值、最小值、略大于最小值、正常值、略小于最大值、最大值、
略大于最大值
【答案】D

80、某程序输入X为整数类型变量,1<=X<=10,如果用边界值分析法设计测试用例,则X应该取( )边界值。
A、 0, 1, 10, 11
B、 1, 10
C、 1, 11
D、 1, 5, 10, 11
【答案】A

81、某程序的一个输入变量的取值范围是正整数,那么这个变量的有效边界值的数目是( )
A、1个
B、2个
C、3个
D、4个
【答案】A
【解析】0

82、在某汽车销售管理系统中,销售员可以根据当时的实际情况允许给客户0-15%的折扣,折扣精确到小数后两位。现在要对系统的折扣项用边界值分析法进行测试,则折扣项的边界值应该取( )
A、 (-2, -1, 0, 1, 99, 100, 101)
B、 (-Max, 0, 20, Max)
C、 (-0.01, 0, 0.01, 14.99, 15.00, 15.01)
D、 (-0.01, 0, 0.01, 99.99, 100.00, 100.01)
【答案】C

83、下列哪一个是ISTQB术语表中缺陷(Defect)的同义词( )
A、Incident
B、Bug
C、Mistake
D、Error
【答案】B

84.基本的测试过程主要由下面哪些活动组成( )
①计划和控制(control)
②分析和设计
③实现和执行
④评估出口准则和测试报告
⑤测试结束活动
A、①②③
B、①③④
C、除⑤以外所有选项
D、所有选项
【答案】D

85、通常情况下基本功能测试和性能测试的执行顺序是( )
A、基本功能的测试和性能测试同时进行
B、先执行性能测试,然后再进行基本功能的测试
C、先进行基本功能的测试,然后再执行性能测试
D、基本功能测试和性能测试哪个先执行都无所谓
【答案】C

86、在规格说明不完全的情况,最适合采用的测试技术是( )
A、基于结构的测试技术(白盒测试)
B、基于经验的测试技术
C、基于规格说明的测试技术
D、以上都适合
【答案】B

87、下面有关基于风险的方法的描述哪个是不正确的?( )
A、识别的风险经常用于决定哪些需要更多测试,哪些可以减少测试
B、识别的风险经常用于决定多少测试服务
C、识别的风险经常用于决定使用何种测试工具
D、识别的风险经常用于决定使用何种测试技术
【答案】C

88、下列风险中,属于产品风险的是( )
A、软件需求不明确
B、由于使用软件产品而导致人员伤亡
C、软件测试人员和软件开发人员沟通不畅
D、软件源代码质量低下
【答案】B

89、测试报告不包含的内容有( )
A、测试时间、人员、产品、版本
B、测试环境配置
C、测试结果统计
D、测试通过/失败的标准
【答案】D

90、软件的六大质量特性包括( )
A、功能性、可靠性、可用性、效率、可维护、可移植
B、功能性、可靠性、可用性、效率、稳定性、可移植
C、功能性、可靠性、可扩展性、效率、稳定性、可移植
D、功能性、可靠性、兼容性、效率、稳定性、可移植
【答案】A

91、黑盒测试技术包括( )
A、边界值分析、因果图、等价类划分、状态转换
B、决策表、状态转换、条件覆盖、基本路径测试 
C、边界值分析、等价类划分、因果图、路径覆盖
D、判定覆盖、语句覆盖、决策表、正交实验
【答案】A

92、黑盒测试属于基本穷举输入的测试方法,但通常输入所有可能的测试将要受到较大客观条件限制,无法实现穷尽,其原因是( )
①输入的组合太多
②输出的结果太多
③软件实现的途径太多
④软件规格说明没有客观标准
A、①②③
B、①②③④
C、①②
D、②③
【答案】A

93、以下的测试方法中,允许对源代码进行操作的是( )
A、函数覆盖
B、路径测试
C、程序插桩
D、条件覆盖
【答案】C

94、广义的软件测试包括( )
A、需求测试、单元测试、集成测试和验证测试
B、需求评审、设计评审、单元测试和综合测试
C、确认、验证和测试
D、单元测试、集成测试、系统测试和用户测试
【答案】C

95、组件测试类别可以包括( )
①静态测试
②动态测试
③手工测试
④自动化测试
A、①②③④
B、①③
C、①②③
D、②③④
【答案】A

96、走查主要包括以下哪些内容( )
①检查代码和设计的一致性
②标准的遵循和可读性
③评审对象主要是软件代码
④不安全、不明确和模糊的部分
A、②③
B、①②③④
C、①②③
D、②③④
【答案】B

97、若某软件系统的关键模块是在结构图的底部,那么最适合采用的集成测试策略是( )
A、随意集成测试
B、自底向上集成测试
C、中枢集成测试
D、自项向下集成测试
【答案】B

98、集成测试时,能够较早发现高层模块接口错误的测试方法是( )
A.自底向上渐增式测试方法
B.自顶向下渐增式测试方法
C.非渐增式测试方法
D.系统测试方法
【答案】B

二、多选题

1、测试管理工具能够具有哪些功能( )
A.管理软件需求
B.管理测试计划
C.缺陷跟踪
D.测试过程中各类数据地统计和汇总
【答案】ABCD

  • 25
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

m0_54152049

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值