软件测试方法与技术试题二及答案
题 号 得 分 评卷人 一 二 三 四 五 六 七 八 总 分 一、 单选题(本大题共15小题,每小题1分,共15分)
1. 经验表明,在程序测试中,某模块与其他模块相比,若该模块已发现并改正的错误数目
较多,则该模块中残存的错误数目与其他模块相比,通常应该( D )
A)较少
B)较多
C)相似
D)不确定
2. 同行评审,有时称为同级评审,是一种通过作者的同行来确认缺陷和需要变更区域的检
查方法。它主要分为管理评审、技术评审、文档评审和( B )
A)误差评审
B)项目评审
C)过程评审
D)组织体系评审
3. 数据流覆盖关注的是程序中某个变量从其声明、赋值到引用的变化情况,它是下列哪一
种覆盖的变种( A )
A)语句覆盖
B)控制覆盖
C)分支覆盖
D)路径覆盖
4. 如果一个判定中的复合条件表达式为(A > 1)or(B <= 3),则为了达到100%的条件
覆盖率,至少需要设计多少个测试用例( B ) A)1
B)2
C)3
D)4
5. 自底向上单元测试的策略是首先对模块调用图上的哪一层模块进行测试( A )
A)最底层
B)下一层
C)最高层
D)上一层
6. 基本路径测试满足( A )
A)语句覆盖
B)路径覆盖 C)分支覆盖 D)条件覆盖
7. 集成测试对系统内部的交互以及集成后系统功能检验了何种质量特性( B )
A)正确性
B)可靠性
C)可使用性 D)可维护性
8. 在软件性能测试中,下列指标中哪个不是软件性能的指标( D )
A)响应时间
B)吞吐量
C)资源利用率 D)并发进程数
9. 下列关于软件性能测试的说法中,正确的是( B )
A)性能测试的目的不是为了发现软件缺陷
B)压力测试与负载测试的目的都是为了探测软件在满足预定性能需求的情况下所能负担的最大压力
C)性能测试通常要对测试结果进行分析才能获得测试结论
D)在性能下降曲线上,最大建议用户数通常处于性能轻微下降区与性能急剧下降区的交界处
10. 下列关于软件可靠性测试的说法中,错误的是( A )
A)发现软件缺陷是软件可靠性测试的主要目的 B)软件可靠性测试通常用于有可靠性要求的软件
C)在一次软件可靠性测试中,执行的测试用例必须完全符合所定义的软件运行剖面 D)可靠性测试通常要对测试结果进行分析才能获得测试结论 11. 下列关于面向对象软件测试的说法中,正确的是( A )
A)在测试一个类时,只要对该类的每个成员方法都进行充分的测试就完成了对该类充分的测试
B)在存在多态的情况下,为了达到较高的测试充分性,应对所有可能的绑定都进行测试
C)假设类B是类A的子类,如果类A已进行了充分的测试,在测试类B时不必测试任何类B继承类A的成员方法
D)对于一棵继承树上的多个类,只有处于叶节点的类需要测试 12. 下列哪种测试不属于面向对象单元测试考虑的范畴( D )
A)成员方法的测试 C)类树的测试
B)类的测试
D)多个相互协作的类树的测试
13. 下列关于面向对象集成测试的说法中,正确的是( B )
A)大突击集成是面向对象集成测试最常用且最有效的方法 B)自底向上集成和自顶向下集成都需要为集成测试开发大量代码 C)协作集成在任何情况下都优于自底向上集成和自顶向下集成 D)高频集成是以自底向上集成为基础,利用冒烟测试进行的集成测试 14. 下列有关测试过程V模型的说法中,正确的是( C )
A)验收测试应确定程序的执行是否满足软件设计的要求
B)系统测试应确定系统功能和性能的质量特性是否达到系统要求的指标 C)单元测试和集成测试应确定软件的实现是否满足用户需要或合同的要求
D)集成测试在编码结束前就可以开始
15. 计算机软件测试规范规定,软件测试的类别可分为:单元测试、集成测试以及( C )
A)系统测试
B)验收测试
D)配置项测试、系统测试和验收测试
C)系统测试和验收测试
二、 不定项选择题(本大题共15小题,每小题1分,共15分)
1. 实施缺陷跟踪的目的是:( ABCD )
A、软件质量无法控制 B、问题无法量化
C、重复问题接连产生 D、解决问题的知识无法保留 E、确保缺陷得到解决 F、使问题形成完整的闭环处理 2. 使用软件测试工具的目的:( ABCDF )
A、帮助测试寻找问题 C、节省测试时间
B、协助问题的诊断 D、提高Bug的发现率
E、更好的控制缺陷提高软件质量 F、更好的协助开发人员 3. 编写测试计划的目的是:( ABC )
A、使测试工作顺利进行 C、使测试工作更加系统化 E、软件过程规范化的要求
B、使项目参与人员沟通更舒畅 D、软件工程以及软件过程的需要 F、控制软件质量
4. 选出属于黑盒测试方法的选项( B )
A、条件组合覆盖 B、输入覆盖 C、基路径测试 D、分支覆盖 E、语句覆盖 F、条件覆盖 5. 以测试的形态分测试可以分为:( ABC )
A、建构性测试 B、系统测试 C、专项测试 D、单元测试 E、组件测试 F、集成测试 6. 进行软件质量管理的重要性有:( ABCDEF )
A、维护降低成本 B、法律上的要求 C、市场竞争的需要 D、质量标准化的趋势 E、软件工程的需要 F、CMM过程的一部分 G、方便与客户进一步沟通为后期的实施打好基础 7. ( B )可以作为软件测试结束的标志。
A.使用了特定的测试用例 B.错误强度曲线下降到预定的水平
C.查出了预定数目的错误 D.按照测试计划中所规定的时间进行了测试 8. 导致软件缺陷的原因有很多,A—D是可能的原因,其中最主要的原因包括
( ABCD )。
A.软件需求说明书编写的不全面,不完整,不准确,而且经常更改 B.软件设计说明书 C.软件操作人员的水平
D.开发人员不能很好的理解需求说明书和沟通不足 9. 软件验收测试的合格通过准则是:( AD )
A. 软件需求分析说明书中定义的所有功能已全部实现,性能指标全部达到要求。 B. 所有测试项没有残余一级、二级和三级错误。
C. 立项审批表、需求分析文档、设计文档和编码实现一致。 D. 验收测试工件齐全。
10. 软件测试计划评审会需要哪些人员参加?( ABCD )
A.项目经理 C.配置负责人
B.SQA 负责人 D.测试组
11. 下列关于alpha 测试的描述中正确的是:( A D )
A.alpha 测试需要用户代表参加 B.alpha 测试不需要用户代表参加 C.alpha 测试是系统测试的一种 D.alpha 测试是验收测试的一种 12. 测试设计员的职责有:( BC )
A.制定测试计划
B.设计测试用例 D.评估测试活动
C.设计测试过程、脚本
13. 软件实施活动的进入准则是:( ABC )
A.需求工件已经被基线化 B.详细设计工件已经被基线化 C.构架工件已经被基线化 D.项目阶段成果已经被基线化
14. 下面的哪一项测试步骤中需要进行局部数据结构测试: ( A )
A、单元测试
B、集成测试 C、确认测试 D、系统测试
15. 从是否需要执行被测软件的角度,软件测试技术可划分的类型是:(AC )。
A、 静态测试 B、 黑盒测试 C、 动态测试 D、 白盒测试
三、 判断题(本大题共10小题,每小题1分,共10分)
1. 自底向上集成需要测试员编写驱动程序。( √ ) 2. 测试是证明软件正确的方法。( ╳ ) 3. 验收测试是由最终用户来实施的。( √ ) 4. 黑盒测试也称为结构测试。( ╳ ) 5. 代码评审员一般由测试员担任。( ╳ )
6. 软件测试的目的是尽可能多的找出软件的缺陷。( √ ) 7. 验收测试是由最终用户来实施的。( ╳ )
8. 代码评审是检查源代码是否达到模块设计的要求。( ╳ ) 9. 自底向上集成需要测试员编写驱动程序。( √ )
10. 负载测试是验证要检验的系统的能力最高能达到什么程度。(V)
四、 名词解释(本大题共5小题,每小题3分,共15分)
1. α测试
Alpha测试是由选定的用户进行的产品早期性测试,这个测试一般在可控的环境下进行。 2. 负载测试
让被测系统在其能忍受的压力极限范围内连续运行,来测试系统的稳定性。 3. 基路径覆盖
路径覆盖是在组件中被测试执行到的路径的百分比。要求设计若干测试用例,执行被测试程序时,能够覆盖程序中所有的可能路径。
4. 桩模块
桩模块(P105):用于代替所测模块调用的子模块。桩模块可以进行少量的数据操作,不需要实现子模块的所有功能,但要根据需要来实现或代替子模块的一部分功能。
5. 三明治集成
一种混合增量式测试策略,综合了自顶向下和自底向上两种集成方法的优点,因此也属于基于功能分解的集成。这种方法桩和开发工作都比较小,但增加了定位缺陷的难度。
五、 简答题(本大题共5小题,每小题5分,共25分)
1. 为什么要在一个团队中开展软件测试工作?
答:软件测试在整个一个团队中占有非常重要的地位,具体来说就是测试是一个发现软件错误的过程,执行软件测试会以最少的人力和时间,系统的找到软件存在的缺陷和错误,建立起开发人员和使用者对软件的信心。
2. 您是否了解以往所工作的企业的软件测试过程?如果了解,请试述在这个过程中 都有
哪些工作要做?分别由哪些不同的角色来完成这些工作?
答:软件测试部门配合系统分析人员软件需求分析讨论,并根据需求说明书制定《项目测试计划》,编写测试用例,建立测试环境。
软件测试人员负责软件开发部门的新产品测试及原有产品的升级测试,负责软件问题解决过程跟踪,负责软件开发文档开发工作的规范化及管理开发部门的产品文档,制作用户手册及操作手册,负责产品的上线测试,监督软件开发过程的执行,提高产品质量。 3. 请试着比较一下黑盒测试、白盒测试、单元测试、集成测试、系统测试、验收测试的
区别与联系。
黑盒测试:把测试对象当成一个黑盒子,测试人员完全不考虑逻辑结构和内部特性,只依据程式的需求说明书来检查程式的功能是否满足它的功能说明。
白盒测试:把测试对象当成一个透明的盒子,允许测试人员利用程序内部逻辑结构及相关信息,设计或选择测试用例,对程式所有逻辑路径进行测试。 单元测试:白盒测试的一种,对软件设计中的单元模块进行测试。 集成测试:在单元测试的基础上,对单元模块之间的连接和组装进行测试。 系统测试:在所有都考虑的情况下,对系统进行测试。
验收测试:第三方进行的确认软件满足需求的测试。 4. 单元测试策略主要有哪三种方式?分别加以说明。
1)自顶向下的单元测试策略:从顶层调用的单元做成桩模块;对第二层测试,使用上面已测试的单元做驱动模块;依次类推,直到全部单元测试结束。
2)自底向上的单元测试策略:先对模块调用的最底层模块进行测试,模拟调用该模块的模块为驱动模块;其次,对上一层模块进行单元测试,用已经被测试过的模块做桩模块,依次类推,直到全部单元测试结束。
3)孤立测试的单元测试策略:无需考虑每个模块与其他模块之间的关系,分别为每个模块单独设计桩模块和驱动模块,逐一完成所有单元模块的测试。
软件测试和软件测试结束的标准:
5. 什么是恢复性测试,在进行恢复性测试时要考虑的主要问题有哪些?
恢复性测试
也叫容错测试,用来检查系统的容错能力。通常若计算机系统出现错误,就必须在一定时间内从错误中恢复过来,修正错误并重新启动系统。
恢复测试是通过各种手段,让软件强制性地出错,使其不能正常工作,从而检验系统的恢复能力。
在进行恢复性测试时,要考虑的主要问题有: 1) 恢复期间的安全性过程。 2) 恢复处理日志方面的能力。 3) 当出现供电问题时的恢复能力。 4) 恢复操作后系统性能是否下降。
六、 综合题(本大题共2小题,每小题10分,共20分)
1. 常见的黑盒测试方法都有哪些?请分别以具体的例子来说明这些方法在测
试用例设计工作中的应用。
1. 等价类划分
常见的软件测试面试题划分等价类: 等价类是指某个输入域的子集合.在该子集合中,各个输入数据对于揭露程序中的错误都是等效的.并合理地假定:测试某等价类的代表值就等于对这一类其它值的测试.因此,可以把全部输入数据合理划分为若干等价类,在
每一个等价类中取一个数据作为测试的输入条件,就可以用少量代表性的测试数据.取得较好的测试结果.等价类划分可有两种不同的情况:有效等价类和无效等价类.
2. 边界值分析法
边界值分析方法是对等价类划分方法的补充。测试工作经验告诉我,大量的错误是发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部.因此针对各种边界情况设计测试用例,可以查出更多的错误.
使用边界值分析方法设计测试用例,首先应确定边界情况.通常输入和输出等价类的边界,就是应着重测试的边界情况.应当选取正好等于,刚刚大于或刚刚小于边界的值作为测试数据,而不是选取等价类中的典型值或任意值作为测试数据.
3. 错误推测法
基于经验和直觉推测程序中所有可能存在的各种错误, 从而有针对性的设计测试用例的方法.
错误推测方法的基本思想: 列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据他们选择测试用例. 例如, 在单元测试时曾列出的许多在模块中常见的错误. 以前产品测试中曾经发现的错误等, 这些就是经验的总结。还有, 输入数据和输出数据为0的情况。输入表格为空格或输入表格只有一行. 这些都是容易发生错误的情况。可选择这些情况下的例子作为测试用例.
4. 因果图方法
前面介绍的等价类划分方法和边界值分析方法,都是着重考虑输入条件,但未考虑输入条件之间的联系, 相互组合等. 考虑输入条件之间的相互组合,可能会产生一些新的情况. 但要检查输入条件的组合不是一件容易的事情, 即使把所有输入条件划分成等价类,他们之间的组合情况也相当多. 因此必须考虑采用一种适合于描述对于多种条件的组合,相应产生多个动作的形式来考虑设计测试用例. 这就需要利用因果图(逻辑模型). 因果图方法最终生成的就是判定表. 它适合于检查程序输入条件的各种组合情况.
5. 正交表分析法
有时候,可能因为大量的参数的组合而引起测试用例数量上的激增,同时,这些测试用例并没有明显的优先级上的差距,而测试人员又无法完成这么多数量的测试,就可以通过正交表来进行缩减一些用例,从而达到尽量少的用例覆盖尽量大的范围的可能性。
6. 场景分析方法
指根据用户场景来模拟用户的操作步骤,这个比较类似因果图,但是可能执行的深度和可行性更好。
2. 详细的描述一个测试活动完整的过程。
1. 项目经理通过和客户的交流,完成需求文档,由开发人员和测试人员共同完成需求文档的评审,评审的内容包括:需求描述不清楚的地方和可能有明显冲突或者无法实现的功能的地方。项目经理通过综合开发人员,测试人员以及客户的意见,完成项目计划。然后SQA进入项目,开始进行统计和跟踪
2. 开发人员根据需求文档完成需求分析文档,测试人员进行评审,评审的主要内容包括是否有遗漏或者双方理解不同的地方。测试人员完成测试计划文档,测试计划包括的内容上面有描述。
3. 测试人员根据修改好的需求分析文档开始写测试用例,同时开发人员完成概要设计文档,详细设计文档。此两份文档成为测试人员撰写测试用例的补充材料。
4. 测试用例完成后,测试和开发需要进行评审。 5. 测试人员搭建环境
6. 开发人员提交第一个版本,可能存在未完成功能,需要说明。测试人员进行测试,发现BUG后提交给BugZilla。
7. 开发提交第二个版本,包括Bug Fix以及增加了部分功能,测试人员进行测试。
8. 重复上面的工作,一般是3-4个版本后BUG数量减少,达到出货的要求。 9. 如果有客户反馈的问题,需要测试人员协助重现以及回归测试。
因篇幅问题不能全部显示,请点此查看更多更全内容