慕课软件质量保证与测试(习题集)

慕课资源 专栏收录该内容
5 篇文章 2 订阅

慕课金陵科技学院.软件质量保证与测试.期末复习.习题汇总

0 总目录

1 绪论

1.1 软件质量保证与测试的产生与发展

第一类测试方法与第二类测试方法的本质区别体现在:
A.执行测试的人员不同
B.执行测试的时间不同
C.执行测试的目的不同
D.执行测试的效果不同

正确答案:C

1.2 软件缺陷,软件错误,软件故障

1 下列那种不属于软件缺陷:
A.银行POS机在用户取款时翻倍吐钱,取100,吐200
B.计算机病毒发作,屏幕出现熊猫烧香画面
C.网上售票软件反应迟钝,用户难以正常买票
D.某软件在进行修改升级之后,原来正常的功能现在出错了

正确答案:B

1.3 软件质量保证与测试的意义,原则和挑战

软件质量保证与测试人员需要的的基本素质有( )
A.计算机专业技能
B.测试专业技能
C.行业知识
D.以上都是

正确答案:D

1 有一个武器控制软件,请问它的质量成本中,哪部分成本变化范围最大?
A.预防成本B.评估成本C.销售成本D.失败成本

正确答案:D

1.4 单元测试

1单选(1分)为了提高软件测试的效率,应该 ( )。
A.选择发现错误可能性大的数据作为测试数据1.00/1.00
B.取一切可能的输入数据作为测试数据
C.随机地选取测试数据
D. 选取最常见的数据作为测试数据

正确答案:A

2单选(1分)以下哪一类人员与软件质量保证与测试工作无关?
A.软件销售人员1.00/1.00B.软件需求分析人员C.软件设计人员D.代码开发人员

正确答案:A

3单选(1分)经验表明,在程序测试中,某模块与其他模块相比,若该模块已发现并改正的错误较多,则该模块中残存的错误数目与其他模块相比,通常应该( )。
A.相似B.较少C.较多1.00/1.00D.不确定

正确答案:C

4单选(1分)软件测试的目的是 ( )。
A.发现并修改程序中的错误
B.证明程序是正确的
C.尽可能多地发现程序中的错误1.00/1.00
D.发现程序中的所有错误

正确答案:C

5单选(1分)以下那一种选项不属于软件缺陷( )。
A.软件没有实现产品规格说明所要求的功能
B.软件实现了产品规格没有提到的功能
C.软件中出现了产品规格说明不应该出现的功能
D.软件满足用户需求,但测试人员认为用户需求不合常理。

正确答案:D

6判断(1分)单元测试通常由开发人员进行。
A.1.00/1.00B.
正确答案:对

7判断(1分)测试是为了验证软件已正确地实现了用户的要求。
A.B.1.00/1.00
正确答案:错

8判断(1分)好的测试员不懈追求完美,保证通过测试的软件不会再有缺陷。
A.B.1.00/1.00
正确答案:错

9填空(2分)软件质量保证的英文缩写是( )。
正确答案:SQA

10填空(2分)IEEE对软件测试的定义是:使用人工或自动的手段来运行或测定某个软件系统的过程,其目的在于检验它是否满足( )或弄清预期结果与实际结果之间的差别 。
正确答案:规定的需求

1.5 课后作业

1(40分)软件缺陷产生的原因有哪些?

答:针对软件开发过程的主体和对象,软件缺陷的产生,主要是由软件产品的特点和开发过程决定的.从软件自身的特点,团队工作和技术问题等角度分析软件缺陷产生的原因分为以下四点:
软件自身的特点:1软件自身的实际需求不清晰,导致设计目标偏离实际需求,从而引起功能或产品特征上的缺陷.2系统结构非常复杂,而又无法设计成一个很好的层次结构或组件结构,结果导致意想不到的问题或系统维护,扩充上的困难.即使设计成良好的面向对象的系统,由于对象,类太多,很难完成对各种对象,类相互作用的组合测试,而隐藏着一些参数传递,方法调用,对象状态变化等方面问题.
3对一些实时应用,需要进行精心设计和技术处理,保证精确的时间同步,否则容易引起时间上不协调.不一致所带来的问题.4系统运行环境的复杂,不仅用户使用的计算机环境千变万化,包括用户的各种操作方式或各种不同的输入数据,容易引起一些特定用户环境下的问题.5.由于通信端口多.存取和加密手段的矛盾性等,会造成系统的安全性或适用性等问题.
团队合作:1系统需求分析时对客户的需求理解不清楚,或者和用户的沟通存在一些困难.
2不同阶段的开发人员相互理解不一致.
3对于设计或编程上的一些假定或依赖性,相关人员没有充分沟通.
4项目组成员技术水平参差不齐,新员工较多,或培训不够等原因也容易引起问题.
设计和实现问题
1系统结构设计不合理.算法选择不科学,造成系统性能低下.
2没有考虑系统崩溃后的自我恢复或数据的异地备份,灾难性恢复等问题,从而存在系统安全性.可靠性的隐患.
3对程序逻辑路径或数据范围的边界考虑不够周全,漏掉某些边界条件,造成容量或边界错误.
4算法错误:在给定条件下没能给出正确或准确的结果.
5语法错误:对于编译性语言程序,编译器可以发现这类问题;但对于解释性语言程序,只能在测试运行时发现.
6计算和精度问题:计算的结果没有满足所需要的精度.
7接口参数传递不匹配,导致模块集成出现问题.
管理问题
1缺乏质量文化,不重视质量计划,对质量.资源.任务.成本等的平衡性把握不好,容易挤掉需求分析.评审.测试.等时间,遗留的缺陷会比较多.
2开发流程不够完善和规范,存在太多的随机性和缺乏严谨的内审或评审机制,容易产生问题.
例如对需求变化,设计更改,代码修正等因素缺乏严格规范的管理机制,导致开发过程难以稳步推进.
3开发周期短,需求分析.设计.编程.测试等各项工作不能完全按照定义好的流程来进行,工作不够充分,结果也就不完整.不准确,错误较多;周期短,还给各类开发人员造成太大的压力,引起一些人为的错误.
4文档不完善,风险估计不足等.

2(60分)哪些情况属于软件缺陷?

答:软件出现以下情况属于软件缺陷包括:
1软件出现了产品说明书指明不会出现的错误.
2软件未达到产品说明书的功能.
3软件功能超出产品说明书指明范围.
4软件未达到产品说明书虽未指出但应达到的目标.
5软件难以理解,不易使用,运行速度缓慢,最终用户认为不好.

2 软件测试策略

2.1 软件测试的模型,过程和生命周期

在软件生命周期的哪一个阶段,软件缺陷修复费用最低 ( )
A.需求分析(编制产品说明书)B.设计C.编码D.产品发布

正确答案:A

2.2 软件测试的方法和技术

下列哪项不属于黑盒测试的优点( )。
A.不需要源代码B.测试简单易行
C.可以对代码进行有针对性的测试
D.可以发现软件功能上的问题

正确答案:C

2.3 单元测试

1单选(1分)在软件生命周期的哪一个阶段,软件缺陷修复的成本最高 ( )
A.需求分析(编制产品说明书)B.产品发布1.00/1.00C.编码D.设计

正确答案:B

2单选(1分)下列中不属于测试原则的是( )。
A.找到的缺陷越多,软件遗留的缺陷就越少1.00/1.00
B.完全测试程序是不可能的
C.软件测试是有风险的行为
D.测试无法找出所有的软件缺陷

正确答案:A

3单选(1分)较实用的软件测试停止标准是( )。
A.根据查出的缺陷总数量决定是否停止测试。
B.分析发现的缺陷数量和测试投入成本曲线图,确定应继续测试还是停止测试。1.00/1.00
C.测试成本超过了预期计划,则停止测试。
D.测试超过了预定时间,则停止测试。

正确答案:B

4单选(1分)软件测试的局限性不包括( )
A.有的缺陷与特定的环境条件有关。
B.巧合性有时会导致错误的代码得到正确的结果,掩盖了问题。
C.软件测试会导致成本增加,项目总体效益降低。1.00/1.00
D.因为输入/状态空间的无限性,测试不可能完全彻底。

正确答案:C

5单选(1分)划分软件测试属于白盒测试还是黑盒测试的依据是 ( )
A.是否能看到软件文档
B.是否能看到被测源程序
C.是否执行程序代码0.00/1.00
D.运行结果是否确定

正确答案:B

6判断(1分)软件测试针对的是初级程序员编写的程序,资深程序员编写的程序无需测试。( )
A.B.1.00/1.00

正确答案:错

7判断(1分)一个软件存在哪些缺陷,开发者和用户的立场是一致的。( )
A.1.00/1.00B.

正确答案:错

8判断(1分)发现错误多的模块,残留在模块中的错误也多。( )
A.0.00/1.00B.

正确答案:对

9填空(2分)动态测试的两个基本要素是____________、_______________。
正确答案:
被测试程序
测试用例

10填空(2分)按照是否需要知道被测试程序的内部结构,测试方法可以分为:
正确答案:
黑盒测试
白盒测试

2.4 课后作业

1(1分)软件测试技术可以分为静态测试和动态测试,下列说法中错误的是( )。
A、静态测试是指不运行程序,通过检查和阅读等手段来发现程序中的错误。
B、动态测试是指实际运行程序,通过运行的结果来发现程序中的错误。
C、动态测试包括黑盒测试和白盒测试。
D、白盒测试是静态测试,黑盒测试是动态测试。
参考答案:D

2(1分)划分软件测试属于白盒测试还是黑盒测试的依据是 ( )
A、是否执行程序代码
B、是否能看到软件设计文档
C、是否能看到被测源程序
D、运行结果是否确定
参考答案:C

3(1分)( )把黑盒测试和白盒测试的界限打乱了。
A、灰盒测试 B、动态测试 C、静态测试 D、失败测试
参考答案:A

4(1分)在软件测试用例设计的方法中,最常用的方法是黑盒测试和白盒测试,其中不属于白盒测试所关注的是( )
A、程序结构 B、软件外部功能 C、程序正确性 D、程序内部逻辑
参考答案:B

5(1分)下列哪项不属于黑盒测试的优点( )。
A. 不需要源代码
B. 测试简单易行
C. 可以对代码进行有针对性的测试
D. 可以发现软件功能上的问题
参考答案:C

6(2分)动态测试的两个基本要素是_______________、__________________。
参考答案:
被测试程序 测试用例

7(2分)软件测试的 W 模型由两个 V 字组成,分别代表_________与_________过程。
参考答案:
软件质量验证,确认,测试 软件开发

8(2分)按照是否需要知道被测试程序的内部结构,测试方法可以分为:
参考答案:
黑盒测试 白盒测试

9(1分)(判断题)黑盒测试的测试用例是根据程序内部逻辑设计的。( )
参考答案:错

10(1分)(判断题) 软件测试是有效的发现软件缺陷的手段。( )
参考答案:对

11(1分)(判断题)集成测试计划在需求分析阶段末提交。( )
参考答案:错

12(4分) 请分析黑盒测试、白盒测试、静态测试、动态测试之间的关系。
参考答案:

答:四者之间的关系:
1黑盒测试一定都是动态测试, 因为黑盒测试都需要运行被测试程序;
2白盒测试既有静态测试, 如代码检查, 静态结构分析等, 也有动态测试, 如逻辑覆盖测试等;
3动态测试有可能是黑盒测试, 如根据软件规格说明书进行功能测试,也有可能是白盒测试,如针对源程序做逻辑覆盖测试;
4静态测试只可能是白盒测试, 因为黑盒测试一定都是动态测试, 都需要运行被测试程序.​

13(8分)试对比分析黑盒测试、白盒测试各自的优缺点。
参考答案:

答:1. 黑盒测试的优点有 : 	
1)比较简单,不需要了解程序的内部的代码及实现
2)与软件的内部实现无关
3)从用户的角度出发,能很容易的知道用户会用到哪些功能,会遇到哪些问题
4)基于软件开发文档,所以也能知道软件实现了文档中的哪些功能
5)在做软件自动化测试时较为方便
缺点 :
1)不可能覆盖所有的代码, 覆盖率较低,大概只能达到总代码量的30%
2)自动化测试的复用性较低。

2. 白盒测试的优点有 :
1)帮助软件测试人员增大代码的覆盖率。 提供代码的质量,发现代码中隐藏的问题
缺点 :
1)程序运行会有很多不同的路径,不可能测试所有的运行路径
2)测试基于代码,只能测试开发人员做的对不对,而不能知道设计是否正确,可能会漏掉一些功能需求
3)系统庞大时,测试开销会非常大。

14(6分) 你认为应如何对一个软件实施测试,试结合你所参与过的软件项目,阐述软件测试工作的一般过程。
参考答案:

答:结合我参与的课程设计和软件开发项目,采用的基本如V模型一样的测试过程.
过程:需求分析->概要设计->详细设计->编码->单元测试->集成测试->系统测试->验收测试
测试贯穿者整个软件开发活动的始终,前期恰到其时的测试可以为后期节约大量的时间成本​

15(4分) 黑盒测试是动态测试,请分析动态白盒测试与黑盒测试的区别。
参考答案:

答:动态白盒测试: 利用查看代码功能和实现方式得到的信息来设计和执行测试, 也叫结构测试;测试程序接口与结构, 测试依据软件程序, 对程序内部特定部位进行覆盖测试, 无法检验程序外部特性.
黑盒测试: 已知产品的功能设计规格, 可以进行测试证明每个实现了的功能是否符合要求, 测试功能, 测试依据需求规格说明书, 能站在用户的立场上进行测试, 不能测试程序内部特定部位, 如程序有误, 则无法发现.

3 黑盒测试

3.1 黑盒测试概述

黑盒测试技术,使用最广的用例设计技术是( )
A.等价类划分B.边界值分析C.错误推测法D.逻辑覆盖

正确答案:A

3.2 等价类划分测试

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

正确答案:B

3.3 边界值测试

用边界值分析法,假定“1<=X<=100”,那么整数X在测试中应取的边界值不包括( )。
A.X=1,X=100;
B.X=0,X=101;
C.X=2,X=99;
D.X=3,X=98;

正确答案:C

3.4 错误推测法

凭经验或直觉推测可能的错误,列出程序中可能有的错误和容易发生错误的特殊情况,选择测试用例的测试方法叫( )。
A.等价类划分B.边界值分析C.错误推测法D.逻辑覆盖测试

正确答案:C

3.5 判定表驱动法

判定表中一个特定的条件取值组合及其相应要执行的动作称为一条( )。
A.规则B.变换C.运算D.测试

正确答案:A

3.6 因果图法

( )方法根据输出对输入的依赖关系设计测试用例。
A.路径测试B.等价类C.因果图D.归纳测试

正确答案:C

3.7 场景法

对于业务流清晰的系统可以利用( )贯穿整个测试用例设计过程并在用例中综合使用各种测试方法。 A.等价类划分 B.因果图法 C.正交试验法 D.场景法
正确答案:D

3.8 正交实验法

对于参数配置类的软件,要用( )选择较少的组合方式达到最佳效果。
A.等价类划分 B.因果图法 C.正交试验法 D.场景法
正确答案:C

3.9 单元测试

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

2单选(1分)在确定黑盒测试策略时,优先选用的方法是 ()
A.决策表方法 B.边界值分析法 C.等价类划分 D.错误推断法
正确答案:C

3单选(1分)凭经验或直觉推测可能的错误,列出程序中可能有的错误和容易发生错误的特殊情况,选择测试用例的测试方法叫( )。
A.逻辑覆盖测试 B.边界值分析 C.等价类划分 D.错误推测法
正确答案:D

4单选(1分)黑盒测试技术中不包括( )。
A.逻辑覆盖1.00/1.00 B.边界值分析 C.等价类划分 D.错误推测法
正确答案:A

5单选(1分)对于业务流清晰的系统可以利用( )贯穿整个测试用例设计过程并在用例中综合使用各种测试方法。
A.正交试验法 B.场景法 C.因果图法 D.等价类划分
正确答案:B

3.10 课后作业

1(1分)凭经验或直觉推测可能的错误,列出程序中可能有的错误和容易发生错误的特殊情况,选择测试用例的测试方法叫( )
A等价类划分 B边界值分析 C错误推测法 D逻辑覆盖测试
参考答案:D

2(1分)黑盒测试技术中不包括( )。
A等价类划分 B边界值分析 C错误推测法 D逻辑覆盖
参考答案:D

3(1分)黑盒测试技术,使用最广的用例设计技术是( )
A等价类划分 B边界值分析 C错误推测法 D逻辑覆盖
参考答案:A

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

5(1分)有一组测试用例使得被测程序的每一个分支至少被执行一次,它满足的覆盖标准是( )。
A语句覆盖 B判定覆盖 C条件覆盖 D路径覆盖
参考答案:B

6(1分)在确定黑盒测试策略时,优先选用的方法是 ()
A边界值分析法 B等价类划分 C错误推断法 D决策表方法
参考答案:B

7(1分)( )方法根据输出对输入的依赖关系设计测试用例。
A路径测试 B等价类 C因果图 D归纳测试
参考答案:C

8(1分)对于参数配置类的软件,要用( )选择较少的组合方式达到最佳效果。
A等价类划分 B因果图法 C正交试验法 D场景法
参考答案:C

9(1分)对于业务流清晰的系统可以利用( )贯穿整个测试用例设计过程并在用例中综合使用各种测试方法。
A等价类划分 B因果图法 C正交试验法 D场景法
参考答案:D

10(1分)下列不属于黑盒测试方法的是( )。
A等价类划分 B因果图 C边界值分析 D变异测试
参考答案:D

11(1分)用边界值分析法,假定1<X<100,那么整数X在测试中应取的边界值不包括( )。
A、X=1,X=100;
B、X=0,X=101;
C、X=2,X=99;
D、X=3,X=98;
参考答案:C

12(2分)等价类划分有两种不同的情况:
参考答案:有效等价类 无效等价类

13(1分)如果有多个输入条件,并且各个条件之间存在关联,那么仅仅只是覆盖所有的等价类还不够,还需要考虑等价类之间的____________。
参考答案:组合

14(2分)各个被测变量的等价类总数等于其____________ 加上 ____________。
参考答案:有效等价类数 无效等价类数

15(1分)(判断)一个测试用例可覆盖多个有效等价类和无效等价类。( )
参考答案:错

16(1分)(判断)不同的等价类划分得到的测试用例的质量不同。( )
参考答案:​对

17(1分)(判断)强健壮等价类测试中测试用例个数为各个被测变量的等价类总数的和。( )
参考答案:错 注:还有各个被测变量的无效等价类数之和

18(18分)某种信息加密代码由三部分组成,这三部分的名称和内容分别是加密类型码:空白或三位数字;前缀码 :非’0’或’1’开头的三位数;后缀码 :四位数字。假定被测试的程序能接受一切符合上述规定的信息加密代码,拒绝所有不符合规定的信息加密代码,
试用等价类划分法,分析它所有的等价类,并设计测试用例。
参考答案:
在这里插入图片描述

19(10分)某“银行网站系统”登录界面如下图所示,
在这里插入图片描述
试采用错误推测法,举出10种常见问题或错误,并设计10个测试用例。
参考答案:
在这里插入图片描述

20(20分)有一个在线购物网站系统,主要功能包括登录、商品选购、在线支付完成购物等。用户在使用这些功能时可能会出现各种情况,如账号不存在、密码错误、账户余额不足等。设目前该系统中仅有一个账号abc;密码为123;账户余额200;仅有商品A,售价均为50元,库存为15,商品B售价为50元,库存为0。
试采用场景法:分析画出事件流图,标注出基本流和备选流;分析生成测试场景。对每一个场景设计相应的测试用例。
参考答案:
在这里插入图片描述
在这里插入图片描述

21(10分)有一个“用户信息输入”界面如下图,输入项有3个:姓名、昵称、手机号码,状态有两个:填与不填。请采用正交实验法对其进行测试。
(1)请选择一个合适的正交表
(2)根据选定的正交表进行变量映射
(3)写出测试用例
参考答案:
在这里插入图片描述

22(20分)有一个处理单价为5角钱的饮料自动售货机软件,其规格说明如下:若投入5角钱或1元钱的硬币,押下〖橙汁〗或〖啤酒〗的按钮,则相应的饮料就送出来。若售货机没有零钱找,则一个显示〖零钱找完〗的红灯亮,这时在投入1元硬币并押下按钮后,饮料不送出来而且1元硬币也退出来;若有零钱找,则显示〖零钱找完〗的红灯灭,在送出饮料的同时退还5角硬币。
(1)分析软件规格说明,列出原因和结果。
(2)画出因果图。
(3)列出简化后的判定表
参考答案:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

23(24分)某程序功能为输出某个输入日期明天的日期,例如输入2020年2月2日,则该程序的输出为2020年2月3日。该程序有三个输入变量 year、month、day,分别表示输入日期的年、月、日。
(1) 请根据程序规格,分别为输入变量year、month、day划分有效等价类。
(2) 分析程序的规格说明,并结合以上等价类划分的情况,给出程序所有可能采取的操作。
(3) 根据(1)和(2),画出简化后的决策表,并为每条规则设计测试用例。
参考答案:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4 白盒测试

4.1 白盒测试概述

分软件测试属于白盒测试还是黑盒测试的依据是 ( )
A.是否执行程序代码
B.是否能看到软件设计文档
C.是否能看到被测源程序
D.运行结果是否确定
正确答案:C

4.2 程序静态测试

件测试技术可以分为静态测试和动态测试,下列说法中错误的是( )。
A.静态测试是指不运行程序,通过检查和阅读等手段来发现程序中的错误。
B.动态测试是指实际运行程序,通过运行的结果来发现程序中的错误。
C.动态测试包括黑盒测试和白盒测试。
D.白盒测试是静态测试,黑盒测试是动态测试。
正确答案:D

4.3 逻辑覆盖

列不属于白盒测试中逻辑覆盖标准的是( )。
A.语句覆盖B.条件覆盖C.分支覆盖D.边界值覆盖
正确答案:D

在以下有关逻辑覆盖的说法中错误的说法是( )A.所有满足条件组合覆盖标准的测试用例集,也满足路径覆盖的覆盖标准
B.条件覆盖能够查出条件中包含的错误,但有时达不到判定覆盖的覆盖率要求
C.路径覆盖的查错能力很强,但有时达不到条件组合覆盖的覆盖率要求
D.包含了语句覆盖,但它不能保证每个错误条件都能检查得出来
正确答案:A

4.4 基本路径覆盖

一个程序进行基本路径覆盖测试,所需测试用例的最少个数为( )。
A.程序中的路径总数
B.程序中判定节点的个数
C.程序中的模块数
D.程序的环路复杂度
正确答案:D

4.5 循环测试

Z路径覆盖把循环结构简化为了( )结构来进行测试。
A.分支B.顺序C.嵌套D.随机
正确答案:A

4.6 程序变异测试

变异测试是一种( )驱动测试。
A.问题B.目标C.路径D.错误
正确答案:D

4.7 符号测试

符号测试允许程序的输入不仅仅是具体的数值数据,而且包括( )。
A.逻辑数据B.浮点数据C.符号值D.特殊值
正确答案:C

4.8 程序插桩和调试

( )是一种特殊的插桩,是在程序的特定部位插入语句用来检查变量的特性。
A.赋值B.显示C.比较D.断言
正确答案:D

4.9 单元测试

1单选(1分)下列不属于白盒测试的技术是 ( ) 。
A.判定覆盖 B.边界值分析 C.语句覆盖 D.基本路径测试
正确答案:B

2单选(1分)代码检查法有桌面检查法,走查和( )。
A.白盒测试 B.动态测试 C.静态测试 D.代码审查
正确答案:D

3单选(1分)如果某测试用例集实现了判定覆盖,那么它一定同时实现了该软件的 ( )
A.条件组合覆盖 B.语句覆盖 C.条件覆盖 D.判定/条件覆盖
正确答案:B

4单选(1分)一个程序中所含有的路径数与( )有着直接的关系。
A.程序模块数 B.程序的复杂程度 C.程序指令执行时间 D.程序语句行数
正确答案:B

5单选(1分)针对下面一个程序段:
If ((M>0) && (N = = 0))
FUCTION1;
If ((M = = 10)|| (P > 10))
FUCTION2;
其中,FUCTION1、FUCTION2均为语句块。现在选取测试用例:M=10 N=0 P=3 ,该测试用例满足了( )。
A.路径覆盖 B.判定覆盖 C.语句覆盖 D.条件组合覆
正确答案:C

4.10 课后作业

习题四

1(1分)下列不属于白盒测试的技术是 ( ) 。
A、语句覆盖 B、判定覆盖 C、边界值分析 D、基本路径测试
正确答案:C

2(1分)某次程序调试没有出现预计的结果,下列( )不可能是导致出错的原因。
A、变量没有初始化
B、编写的语句书写格式不规范
C、循环控制出错
D、代码输入有误
正确答案:B

3(1分)代码检查法有桌面检查法,走查和( )。
A、静态测试 B、 代码审查 C、动态测试 D、白盒测试
正确答案:B

4(1分)如果某测试用例集实现了某软件的路径覆盖,那么它一定同时实现了该软件的 ( )
A、判定覆盖 B、条件覆盖 C、判定/条件覆盖 D、组合覆盖
正确答案:A

5(1分)软件测试的局限性不包括( )
A、因为输入/状态空间的无限性,测试不可能完全彻底。
B、巧合性有时会导致错误的代码得到正确的结果,掩盖了问题。
C、软件测试会导致成本增加,效益降低。
D、软件缺陷的不确定性。
正确答案:C

6(1分)以下哪种测试方法不属于白盒测试技术( )
A、基本路径测试 B、边界值分析测试 C、程序插桩 D、逻辑覆盖测试
正确答案:B

7(1分)调试是( )
A、发现与预先定义的规格和标准不符合的问题
B、发现软件错误征兆的过程
C、有计划的、可重复的过程
D、消除软件错误的过程
正确答案:D

8(1分)使用白盒测试方法时,确定测试数据的依据是指定的覆盖标准和 ( )
A、程序的注释 B、程序的内部逻辑C、用户使用说明书 D、程序的需求说明
正确答案:B

9(1分)数据流覆盖关注的是程序中某个变量从其声明、赋值到引用的变化情况,它是下列哪一种覆盖的变种( )。
A、语句覆盖 B、控制覆盖 C、分支覆盖 D、路径覆盖
正确答案:D

10(1分)如果一个判定中的复合条件表达式为(A > 1)or(B <= 3),则为了达到100%的条件覆盖率,至少需要设计多少个测试用例( )。
A、1 B、2 C、3 D、4
正确答案:B

11(1分)一个程序中所含有的路径数与( )有着直接的关系。
A、程序的复杂程度 B、程序语句行数C、程序模块数 D、程序指令执行时间
正确答案:A

12(1分)条件覆盖的目的是 ( )
A、使每个判定中的每个条件的可能取值至少满足一次
B、使程序中的每个判定至少都获得一次"真"值和"假"值。
C、使每个判定中的所有条件的所有可能取值组合至少出现一次。
D、使程序中的每个可执行语句至少执行一次。
正确答案:A

13(1分)软件调试的目的是( )
A、发现软件中隐藏的错误
B、解决测试中发现的错误
C、尽量不发现错误以便早日提交软件
D、证明软件的正确性
正确答案:B

14(1分)针对下面一个程序段:
其中,FUCTION1、FUCTION2均为语句块。现在选取测试用例:M=10 N=0 P=3 ,该测试用例满足了( )。

If ((M>0) && (N = = 0))
	FUCTION1;
If ((M = = 10)|| (P > 10))
	FUCTION2;

A、路径覆盖 B、条件组合覆盖 C、判定覆盖 D、语句覆盖
正确答案:D

15(1分)对下面的计算个人所得税程序中,满足判定覆盖的测试用例是( )。

if (income<800)    taxrate=0;
else if (income<=1500)    taxrate=0.05;
else if (income<2000)     taxrate=0.08;
else taxrate=0.1;

A、income=(799, 1500, 1999, 2000)           B、income=(799, 1501, 2000, 2001)
C、income=(800, 1500, 2000, 2001)           D、income=(800, 1499, 2000, 2001)

正确答案:A

16(1分)设有一段程序如下:

if (a==b  and c==d or e==f)  do  S1
    else  if (p==q  or s==t) do  S2
        else do S3

若要达到“判定—条件覆盖”的要求,最少的测试用例数目是( )
A、6 B、8 C、3 D、4
正确答案:C

17(1分)下列不属于白盒测试中逻辑覆盖标准的是( )。
A、语句覆盖 B、条件覆盖 C、分支覆盖 D、边界值覆盖
正确答案:D

18(1分)在某学校的综合管理系统设计阶段,教师实体在学籍管理子系统中被称为"教师",而在人事管理子系统中被称为"职工",这类冲突描述正确的为( )。
A、语义冲突 B、命名冲突 C、属性冲突 D、结构冲突
正确答案:B

19(3分)代码检查的方式有三种:、_____________。
正确答案:桌面检查 代码审查 代码走查

20(3分)数据流分析就是对程序中数据的__________、__________及其之间的__________等进行分析的过程。
参考答案:定义 引用 依赖关系

21(1分)____________是逻辑覆盖标准的一种,它要求选取足够多的测试数据,使得每个判定表达式中条件的各种可能组合都至少出现一次。
正确答案:条件组合覆盖

22(1分)(判断)所有满足条件组合覆盖标准的测试用例集,也分支覆盖标准。 ( )
参考答案:对

23(1分)(判断)软件测试的目的在于发现错误、改正错误。 ( )
正确答案:错

24(1分)(判断)条件覆盖能够查出条件中包含的错误,但有时达不到判定覆盖的覆盖率要求。 ( )
正确答案:对

25(1分)(判断)在白盒测试中,如果某种覆盖率达到100% ,就可以保证把所有隐藏的程序缺陷都已经揭露出来了。 ( )
正确答案:错

26(1分)(判断)白盒测试的条件覆盖标准强于判定覆盖。 ( )
正确答案:错

27(1分)(判断)判定覆盖包含了语句覆盖,但它不能保证每个错误条件都能检查出来。 ( )
正确答案:对

28(13分)请为以下程序段设计测试用例集,要求分别满足语句覆盖、判定覆盖、条件覆盖、条件/判定覆盖覆盖、条件组合覆盖。

public int do_work(int A,int B){          
       int x=0;
       if((A>4) && (B<9)) 
        { x = A-B;}
       if( A==5 && B>28 )  
        { x= A+B;}
        return x;    
     }          

参考答案:
在这里插入图片描述
在这里插入图片描述

29(11分)请为以下程序段设计测试用例集,要求满足条件组合覆盖

public class Triangle {  
   protected long lborderA = 0;
   protected long lborderB = 0;
   protected long lborderC = 0;

   // Constructor
   public Triangle(long lborderA, long lborderB, long lborderC) {
      this.lborderA = lborderA;
      this.lborderB = lborderB;
      this.lborderC = lborderC;   
   } 

   public boolean isTriangle(Triangle triangle) {
      boolean isTriangle = false;
 
      // check boundary
      if (triangle.lborderA > 0 && triangle.lborderB > 0 && triangle.lborderC > 0 )
        // check if subtraction of two border larger than the third
      if ((triangle.lborderA-triangle.lborderB) < triangle.lborderC
              && (triangle.lborderB-triangle.lborderC) < triangle.lborderA
                 && (triangle.lborderC-triangle.lborderA) < triangle.lborderB) 
      {isTriangle = true; }
      return isTriangle;
   }
}

正确答案:
在这里插入图片描述
在这里插入图片描述

30(13分)请为程序模块Function1
(1)画出程序控制流图,计算控制流图的环路复杂度
(2)导出基本路径
(3)设计基本路径覆盖测试用例
程序模块Function1代码如下:

1     public  int  Function1(int num, int cycle, boolean flag)
2     {
3            int ret = 0;
4            while( cycle > 0 )
5            {
6                  if( flag == true )
7                  {
8                          ret = num - 10;
9                          break;
10                 }
11                 else
12                 {
13                        if( num%2 ==0 )
14                        {
15                               ret = ret * 10;
16                        }
17                        else
18                        {
19                               ret = ret + 1;
20                        }
21                 }
22                 cycle--;
23          }
24          return ret;
25   }

正确答案:
在这里插入图片描述
在这里插入图片描述

31(6分)请对以下程序进行插桩,显示循环执行的次数

public class GCD {
     public int getGCD(int x,int y){
          if(x<1||x>100)
          {
              System.out.println("参数不正确!");
              return -1;
          }

          if(y<1||y>100)
          {
              System.out.println("参数不正确!");
              return -1;
          }

          int max,min,result = 1;
          if(x>=y)
          {
              max = x;
              min = y;
          }
          else
          {
              max = y;
              min = x;
          }

          for(int n=1;n<=min;n++)
          {
              if(min%n==0&&max%n==0)
              {
                  if(n>result)
                  result = n;
              }
          }

          System.out.println("最大公约数为:"+result);
          return result;
       }
 }

正确答案:

package com.mozhimen.test;

public class ceshi4_31 {

	int count=0;
	
	public static void main(String[] args) {
		// TODO Auto-generated method stub

		ceshi4_31 ceshi=new ceshi4_31();
		
		int x=4;
		int y=10;
		ceshi.getGCD(x,y);
	}

	public int getGCD(int x,int y){
		
        if(x<1||x>100)
        {
            System.out.println("参数不正确!");
            return -1;
        }

        if(y<1||y>100)
        {
            System.out.println("参数不正确!");
            return -1;
        }

        int max,min,result = 1;
        if(x>=y)
        {
            max = x;
            min = y;
        }
        else
        {
            max = y;
            min = x;
        }

        for(int n=1;n<=min;n++)
        {
        	count++;
            if(min%n==0&&max%n==0)
            {
                if(n>result)
                result = n;
            }
        }

        System.out.println("最大公约数为:"+result);
        System.out.println("count:"+count);
        return result;
     }
}

32(10分)请对以下代码段进行变异,变异规则为将 “++” 替换为 “–”,然后设计测试数据,能够测试发现所有的变异点。

public class zhengchu {
       public   String  iszhengchu(int n) { 
			if(n<0||n>500) { 
				return "error";
			}
			int flag=0;
			String note="";
			if(n%3==0) {
			flag++;
			note=note+" 3";
		}

		if(n%5==0) {
			flag++;
			note+=" 5";
		}

		if(n%7==0) {
			flag++;
			note+=" 7";
		}

		return "能被"+flag+"个数整除,"+note;      
    }     
}

正确答案:
在这里插入图片描述

5 软件测试过程

5.1 单元测试

软件测试是软件质量保证的重要手段,下述哪种测试是软件测试的最基础环节?( )
A.集成测试B.单元测试C.目的测试D.确认测试
正确答案:B

单元测试一般以( )为主。
A.白盒测试B.黑盒测试C.系统测试D.分析测试
正确答案:A

5.2 集成测试1-简介和相依性分析+集成测试的原因

集成测试对系统内部的交互以及集成后系统功能检验了何种质量特性( )
A.正确性B.可靠性C.可使用性D.可维护性
正确答案:A

软件测试过程中的集成测试主要是为了发现( )阶段的错误码。
A.需求分析B.概要设计C.编码D.维护
正确答案:B

5.2 集成测试2-方法和分析+自顶向下和自顶向上集成

集成测试的测试用例是根据( )的结果来设计。
A.需求分析B.源程序C.概要设计D.详细设计
正确答案:C

增量式集成测试有3种方式:自顶向下增量测试方法,( )和混合增量测试方式。
A.从小到大增量测试方法
B.自底向上增量测试方法
C.从大到小增量测试
D.自上向底增量测试方法
正确答案:B

5.2 集成测试3-核心系统先行集成+基于调用图的集成

核心系统先行集成每次加入一个外围软件部件都产生一个产品( ),直至最后形成稳定的软件产品。
A.基线B.副本C.分支D.升级
正确答案:A

基于调用图的集成主要有相邻集成和( )。
A.成对集成B.相对集成C.自底向上集成D.自顶向下集成
正确答案:A

5.2 集成测试4-高频集成+其他集成测试方法

( )测试方法频繁不断地将新代码加入到一个已经稳定的基线中,这样可以尽早地发现代码中的问题,同时控制可能出现的基线偏差,而不至于等到最后阶段各种问题、缺陷和偏差集中暴露,甚至于发现整个软件根本就不是我们所需要的。
A.高频集成B.成对集成C.三明治集成D.大棒集成
正确答案:A

以下关于集成测试的内容正确的表述有( )。
①集成测试也叫组装测试或者联合测试;
②在把各个模块连接起来的时候,穿越模块接口的数据是否会丢失;
③一个模块的功能是否会对另一个模块的功能产生不利的影响;
④各个子功能组合起来,能否达到预期要求的父功能;
⑤全局数据结构是否有问题;
⑥单个模块的误差累积起来,是否会放大,从而达到不能接受的程度;
A.②④⑤⑥B.③④⑤⑥C.①②③⑤⑥D.以上全部正确
正确答案:D

5.3 系统测试1-概述

系统测试完全采用( )技术,因为这时已不需要考虑组件模块的实现细节,而主要是根据需求分析时确定的标准检验软件是否满足功能、性能和安全等方面的要求。
A.黑盒测试B.白盒测试C.静态测试D.手工测试
正确答案:A

5.3 系统测试项目

对Web网站进行的测试中,属于功能测试的是 ( )
A.连接速度测试B.链接测试C.平台测试D.安全性测试
正确答案:B

几乎所有的性能测试都会涉及( )。
A.并发测试B.压力测试C.容量测试D.安装测试
正确答案:A

以下哪种软件测试属于软件性能测试的范畴( )。
A.接口测试B.压力测试C.单元测试D.易用性测试
正确答案:B

5.4 验收测试

下列关于alpha测试的描述中正确的是:( )。
A.alpha测试一定要真实的最终软件用户参加
B.alpha测试是集成测试的一种
C.alpha测试是系统测试的一种
D.alpha测试是验收测试的一种
正确答案:D

5.5 回归测试

( )的目的是为了检查验证修改的正确性以及修改对其它部分的影响。
A.回归测试B.单元测试C.集成测试D.系统测试
正确答案:A

5.6 单元测试

1单选(1分)单元测试中用来模拟被测模块调用者的模块是 ( )
A.父模块 B.驱动模块 1.00/1.00C.桩模块D.子模块
正确答案:B

2单选(1分)在软件底层进行的测试称为 ( )
A.集成测试B.功能测试C.系统测试 D.单元测试 1.00/1.00
正确答案:D

3单选(1分)增量式集成测试有3种方式:自顶向下增量测试方法,( )和混合增量测试方式。
A.从小到大增量测试方法
B.自底向上增量测试方法 1.00/1.00
C.从大到小增量测试方法
D.自上向底增量测试方法
正确答案:B

4单选(1分)用于考察当前软硬件环境下软件系统所能承受的最大负荷并帮助找出系统瓶颈所在的是( )。
A.容量测试 B.疲劳测试C.负载测试 D.压力测试 1.00/1.00
正确答案:D

5单选(1分)下列关于alpha测试的描述中正确的是:( )。
A.alpha测试是系统测试的一种
B.alpha测试是验收测试的一种1.00/1.00
C.alpha测试是集成测试的一种
D.alpha测试一定要真实的最终软件用户参加
正确答案:B

5.7 课后作业

习题5

1(1分)软件测试是软件质量保证的重要手段,下述哪种测试是软件测试的最基础环节?( )
A.集成测试 B.单元测试  C.系统测试 D.验收测试
参考答案:B

2(1分)增量式集成测试有3种方式:自顶向下增量测试方法,( )和混合增量测试方式。
A.自下向顶增量测试方法
B.自底向上增量测试方法
C.自顶向上增量测试方法
D.自下向顶增量测试方法
参考答案:B

3(1分)在软件测试步骤按次序可以划分为以下几步:( )。
A、单元测试、集成测试、系统测试、验收测试
B、验收测试、单元测试、系统测试、集成测试
C、单元测试、集成测试、验收测试、系统测试
D、系统测试、单元测试、集成测试、验收测试
参考答案:A

4(1分)软件验收测试合格通过的标准不包括( )
A.软件需求分析说明书中定义的所有功能已全部实现,性能指标全部达到要求。
B.至少有一项软件功能超出软件需求分析说明书中的定义,属于软件特色功能。
C.立项审批表、需求分析文档、设计文档和编码实现一致。
D.所有在软件测试中被发现的严重软件缺陷均已被修复。
参考答案:B

5(1分)下列关于alpha测试的描述中正确的是:( )
A.alpha测试一定要真实的最终软件用户参加
B.alpha测试是集成测试的一种
C.alpha测试是系统测试的一种
D.alpha测试是验收测试的一种
参考答案:D

6(1分)编码阶段产生的错误主要由( )检查出来的。
A、单元测试 B、集成测试 C、系统测试 D、有效性测试
参考答案:A

7(1分)单元测试一般以( )为主。
A、白盒测试 B、黑盒测试 C、系统测试 D、分析测试
参考答案:A

8(1分)单元测试的测试用例主要根据( )的结果来设计。
A、需求分析 B、源程序 C、概要设计 D、详细设计
参考答案:D

9(1分)集成测试的测试用例是根据( )的结果来设计。
A、需求分析 B、源程序 C、概要设计 D、详细设计
参考答案:C

10(1分)集成测试对系统内部的交互以及集成后系统功能检验了何种质量特性( )
A、正确性 B、可靠性 C、安全性 D、可维护性
参考答案:A

11(1分)( )的目的是对即将交付使用的软件系统进行全面的测试,确保最终软件产品满足用户需求。
A、系统测试   B、集成测试   C、单元测试   D、验收测试
参考答案:A

12(1分)单元测试中用来模拟被测模块调用者的模块是 ( )
A、父模块 B、子模块 C、驱动模块 D、桩模块
参考答案:C

13(1分)在自底向上测试中,要编写( )。
A、测试存根 B、驱动模块 C、桩模块 D、 底层模块。
参考答案:B

14(1分)以下哪种软件测试属于软件性能测试的范畴( )。
A、接口测试 B、压力测试 C、单元测试 D、正确性测试
参考答案:B

15(1分)下列关于α测试的描述中,正确的是( )
A.α测试采用白盒测试技术;
B.α测试不需要从用户角度考虑问题;
C.α测试是系统测试的一种;
D.α测试是验收测试的一种;
参考答案:D

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

17(1分)按照测试组织划分,软件测试可分为:开发方测试,第三方测试,( )。
A.集成测试 B.单元测试 C.用户测试 D.灰盒测试
参考答案:C

18(1分)软件可靠性是指在指定的条件下使用时,软件产品维持规定的性能级别的能力,其子特性( )是指在软件发生故障或者违反指定接口的情况下,软件产品维持规定的性能级别的能力。
A、成熟性 B、易恢复性 C、容错性 D、稳定性
参考答案:C

19(1分)下面哪项对验收测试的描述不正确?( )
A、与系统测试不同的是以客户业务需求为标准来进行测试
B、测试人员多由客户方担任,也可以客户委托第三方来进行验收测试
C、由资深的开发和测试人员来进行测试
D、不仅仅要验收程序,还要验收相关的文档
参考答案:C

20(1分)对于软件的β测试,下列哪些描述是正确的? ( )
A. β测试就是在软件公司内部展开的测试,由公司专业的测试人员执行的测试。
B. β测试就是在软件公司内部展开的测试,由公司的非专业测试人员执行的测试。
C. β测试就是在软件公司外部展开的测试,由非专业的测试人员执行的测试。
D. β测试就是在软件公司外部展开的测试,由专业的测试人员执行的测试。
参考答案:C

21(1分)在程序测试中,用于检查程序模块或子程序之间的调用是否正确的静态分析方法是 ( )
A、操作性分析 B、可靠性分析 C、引用分析 D、接口分析
参考答案:C

22(1分)用于考察当前软硬件环境下软件系统所能承受的最大负荷并帮助找出系统瓶颈所在的是( )。
A、压力测试 B、容量测试 C、负载测试 D、疲劳测试
参考答案:A

23(2分)集成测试以_______________说明书为指导,验收测试以_______________说明书为指导。
参考答案:概要设计 软件规格

24(2分)软件验收测试可分为 2 类:__________________、__________________。
参考答案:α+β测试 正式验收测试

25(1分)____________指软件系统被修改或扩充后重新进行的测试。
参考答案:回归测试

26(1分)____________是在软件开发公司内模拟软件系统的运行环境下的一种验收测试。
参考答案:α测试

27(1分)____________的依据是软件规格说明书。
参考答案:验收测试

28(1分)(判断)单元测试通常由开发人员进行。 ( )
参考答案:对

29(1分)(判断)测试应从"大规模"开始,逐步转向"小规模"。 ( )
参考答案:错

30(1分)(判断)负载测试是验证要检验的系统的能力最高能达到什么程度。 ( )
参考答案:错

31(1分)(判断)为了快速完成集成测试,采用一次性集成方式是适宜的。 ( )
参考答案:错

32(1分)(判断)验收测试是站在用户角度的测试。 ( )
参考答案:对

33(1分)(判断)自底向上集成需要测试员编写桩模块。 ( )
参考答案:错

34(1分)(判断)β测试是集成测试的一种。 ( )
参考答案:错

35(1分)(判断)如何看待软件产品内部的缺陷,开发者和用户的立场是一致的。 ( )
参考答案:错

36(13分)试针对如下程序代码设计测试脚本。

public class GCD {   
	public int getGCD(int x,int y) {
		if(x<1||x>100) {   
			System.out.println("数据超出范围!");        
			return -1;    
		}      
		if(y<1||y>100) {   
			System.out.println("数据超出范围!");      
			return -1;        
		}      
		int max,min,result = 1;      
		if(x>=y) {  
			max = x;         
			min = y;     
		}      
		else {  
			max = y;         
			min = x;     
		}      
		for(int n=1;n<=min;n++) {   
			if(min%n==0&&max%n==0) {       
				if(n>result)              
					result = n;
			}     
		}      
		System.out.println("因数:"+result);      
		return result;
	}
}

参考答案:

(1)设计测试脚本,对GCD类的getGCD方法实现语句覆盖测试。

public class GCD {   
	public void testDemo_yuju(){
  		int test1=getGCD(-1,100);
  		int test2=getGCD(2,1);
  		System.println.out(test1+ test2);
 	}
	public int getGCD(int x,int y) {
  		if(x<1||x>100) {   
   			System.out.println("数据超出范围!");        
   			return -1;    
  		}      
  		if(y<1||y>100) {   
   			System.out.println("数据超出范围!");      
   			return -1;        
  		}      
  		int max,min,result = 1;      
  		if(x>=y) {  
   			max = x;         
   			min = y;     
  		}      
  		else {  
   			max = y;         
   			min = x;     
  		}      
  		for(int n=1;n<=min;n++) {   
   			if(min%n==0&&max%n==0) {       
    				if(n>result)              
     				result = n;
   			}     
  		}      
  		System.out.println("因数:"+result);      
  		return result;
 	}
}

(2)设计测试脚本,对GCD类的getGCD方法实现条件覆盖测试。

public class GCD {  
	public void testDemo_tiaojian(){
		int test1=getGCD(-1,-1);
		int test2=getGCD(100,100);
		int test3=getGCD(2,1);
		int test4=getGCD(1,2);
		System.println.out(test1+ test2+ test3+ test4);
	}
 	public int getGCD(int x,int y) {
   		 if(x<1||x>100) {   
		        System.out.println("数据超出范围!");        
		        return -1;    
    		}      
    		if(y<1||y>100) {   
      			System.out.println("数据超出范围!");      
      			return -1;        
    		}      
    		int max,min,result = 1;      
    		if(x>=y) {  
      			max = x;         
      			min = y;     
    		}      
    		else {  
      			max = y;         
      			min = x;     
    		}      
    		for(int n=1;n<=min;n++) {   
      			if(min%n==0&&max%n==0) {       
        			if(n>result)              
         			result = n;
      			}     
    		}      
    		System.out.println("因数:"+result);      
    		return result;
  	}
}

37(8分)设有程序段ModuleA和 ModuleB如下,

public class ModuleA {       
	public static double operate(double x) {              
		// 模块A内部进行处理              
		// ...              
		double r = x/2;              
		// 调用模块B              
		double y = ModuleB.operate(r);              
		// 继续处理              
		// ...              
		return y;       
	}
} 
public class ModuleB {       
	public static double operate(double r) {              
		// 模块B内部进行处理              
		// ...              
		double temp = Pi*r * r * r *4/3;              
		// 继续处理              
		// ...              
		double y = temp;              
		return y;       
	}
}

参考答案:

(1)阅读程序,请说明这两段程序合起来的功能是什么?

输入直径,求圆球的体积

(2)已知变量x一开始就有一定的误差△x,请分析 ModuleA.operate(x)执行完毕后,返回结果y的相对误差有多大?
在这里插入图片描述

38(6分) 设有两段代码ModuleA和 ModuleB如下,它们由不同的程序员开发。

public class ModuleA {       
	/*** 实现把 str1 中包含的 str2 去掉后的内容返回的功能        
	* @param str1 字符串1
	* @param str2 字符串2        
	* @param 返回处理的结果        
	*/       
	public String operate(String str1, String str2) {              
		return str1.replace(str2, "");       
	}
}

public class ModuleB {       
	private ModuleA moduleA;              
	public void setModuleA(ModuleA moduleA) {              
		this.moduleA = moduleA;       
	}       
	/**        
	* 模块B的具体处理操作中,调用了模块A的接口        
	*/       
	public String operate(String str1, String str2) {              
		// str1 待替换的目标串       
		// str2 原串              
		return moduleA.operate(str1, str2);       
	}
}  

参考答案:
(1)试分析对这两段代码进行集成测试时会出现什么问题?

ModuleB的目标是将str2中包含str1的字符串替换(去除),而ModuleA提供的接口是将str1中包含str2的字符串替换或删除
两者接口颠倒,将会出现字符串替换错乱的问题

(2)试设计两个测试数据,一个能发现这一问题,另一个则不能发现这一问题。
在这里插入图片描述

39(7分)某连锁机构网站有注册账号5万个,平均1天大约有12000个用户要访问该系统,用户一般在7点——22点使用该系统,在一天的时间内,用户使用系统的平均时长约为0.5小时。假设用户登录访问该系统符合泊松分布,为进行并发测试,请估算系统的平均并发用户数C_avg和并发用户峰值数C_max。

参考答案:

系统的平均并发用户数C_avg=nL/T=12000*0.5/(22-7)=400
并发用户峰值数C_max~=400+3*400^1/2=460

6 白盒测试

6.1 面向对象测试

以下哪句话是不正确的( )?
A.测试过的软件就没有缺陷
B.测试的目的是尽可能多的发现程序中的缺陷
C.成功的测试在于发现了迄今尚未发现的缺陷
D.测试是为了验证程序是否符合需求
正确答案:A

6.2 单元测试

1单选(1分)封装这一特征简化了对对象的使用,但同时也给测试结构的()、测试路径的选取、测试数据的生成等带来了困难。
A.分析1.00/1.00B.定义C.合成D.提取
正确答案:A

2单选(1分)通过继承机制,子类可以继承父类的特点和功能,这一特征为( )的扩散提供了途径。
A.缺陷1.00/1.00B.代码C.数据D.消息
正确答案:A

3单选(1分)如果父类带有缺陷,派生出的( )也会带有缺陷。继承使代码的重用率得到了提高,但同时也使缺陷的传播几率增加。
A.函数B.代码C.子类1.00/1.00D.软件
正确答案:C

4单选(1分)面向对象软件测试是根据面向对象的软件开发过程结合面向对象的特点提出的。它不包括:
A.对象封装测试1.00/1.00B.类测试技术C.对象交互测试技术D.分析与设计模型测试技术
正确答案:A

5单选(1分)应该在软件的其它部分使用该类之前来执行对类的测试。防止因未经测试的类被使用而导致( )。
A.执行失败B.代码出错C.缺陷传导和扩散1.00/1.00D.测试异常
正确答案:C

6.3 课后作业

习题六

1(1分)以下哪句话是不正确的:
A、测试过的软件就没有缺陷
B、测试的目的是尽可能多的发现程序中的缺陷
C、成功的测试在于发现了迄今尚未发现的缺陷
D、测试是为了验证程序是否符合需求
正确答案:A

2(1分)下列项目中不属于测试文档的是 ( )
A、测试计划 B、测试用例 C、 被测程序 D、测试报告
正确答案:C

3(1分)软件测试管理不包括: ( )
A、测试团队管理 B、缺陷管理 C、软件需求管理 D、测试用例管理
正确答案:C

4(1分)软件测试风险管理包含( )和风险控制两方面内容。
A、风险排序 B、风险识别 C、风险评估 D、风险分析
正确答案:C

5(1分)编写测试计划的目的不包括( )
A、使测试工作顺利进行
B、使项目参与人员沟通更舒畅
C、使测试工作更加系统化
D、使测试内容更少,完成更快
正确答案:D

6(1分)下面哪项内容不包含在测试计划文档中? ( )
A. 测试策略 B. 测试用例 C. 测试时间安排 D. 测试标准
正确答案:B

7(2分)软件测试项目的生命周期包括测试需求分析、_________、_________、测试开发、测试执行、评估(或总结)等阶段。
正确答案:测试计划 测试设计

8(2分) 软件测试中,________描述测试的整体方案,________描述依据测试用例找出的问题。
正确答案:测试计划 缺陷报告

9(1分)________________________就是以测试项目为管理对象,通过一个临时性的专门的测试组织,运用专门的软件测试知识、技能、工具和方法,对测试项目进行计划、组织、执行和控制,并在时间成本、软件测试质量等方面进行分析和管理活动。
正确答案:测试项目管理

10(1分)软件测试文档为测试项目的组织、规划和管理提供了一个____________。
正确答案:规范化的架构

11(1分)(判断)测试人员要坚持原则,缺陷未完全修复坚决不予通过。 ( )
正确答案:错

12(1分)(判断)在软件测试中, 预设输出结果是检验待测系统在特定执行下是否正确的方法。 ( )
正确答案:对

13(1分)(判断)发现缺陷越多的模块隐藏的缺陷可能也越少。 ( )
正确答案:对

14(10分)什么是软件测试文档,测试项目中,主要的测试文档有哪些?
正确答案:

软件测试文档(Testing Documentation)记录和描述了整个测试流程,它是整个测试活动中非常重要的文件。测试过程实施所必备的核心文档是:测试计划、测试用例和软件测试报告。
主要的测试文档有:1、软件测试计划 2、软件测试说明 3、软件测试报告

15(10分)软件测试工作和软件开发工作相比,有哪些特点。
正确答案:

软件测试的目标在于,以最小的工作量和成本,尽可能多地发现软件系统中存在的各种错误和缺陷,以确保软件系统的正确性和可靠性。其主要特点是:
(1) 软件测试的开销大。按照 Boehm 的统计,软件测试的开销大约占总成本的 30% ~ 50% 。 
(2) 不能进行“穷举”测试。只有将所有可能的情况都测试到,才有可能检查出所有的错误,但这是不可能的。
(3) 软件测试难度大。既然不能进行 “穷举”测试,又要查出尽可能多的错误,随着软件的规模和复杂度不断增加,软件测试工作的难度越来越大。 测试也是一种开发活动,但鉴于软件测试的以上特点,它比其他软件开发活动更加复杂、困难和重要,且无论怎样强调它的重要性都不过分。

16(6分)试分析测试用例为什么需要更新?
参考答案:

第一,存在较多冗余的测试用例,在测试执行过程中执行此类用例浪费时间而且没有价值;  
第二,存在较多与当前系统实现不一致的用例,此类用例严重误导测试执行人员,并容易造成新加入项目的测试人员对系统理解的混乱;  
第三,存在一些重复的测试用例,此类用例的反复执行虽然可能可以确保某一功能实现的正确性,但确可能造成严重的资源浪费,特别是当此类功能并非系统的主要功能时这样的时间浪费在项目时间非常紧迫的情况下是非常不值得的。  
虽然一再要求测试人员及时更新测试用例,一再强调测试用例的重要性,但仍存在大量的测试用例未能得到有效的维护。

7 自动化测试

7.1 自动化测试概述

下列( )不是软件自动化测试的优点。
A.速度快、效率高
B.准确度和精确度高
C.能提高测试的质量
D.能充分测试软件
正确答案:D

7.2 自动化黑盒测试

过JUnit提供的API可以编写出测试结果明确、可重用的单元测试( )
A.计划B.脚本C.数据D.方案
正确答案:B

7.3 单元测试

1单选(1分)( )可以让并不熟悉脚本语言的软件测试人员也可以方便的得到测试脚本。
A.录制技术 1.00/1.00B.数据验证点技术C.数据驱动技术 D.回放技术
正确答案:A

2单选(1分)在自动化黑盒测试工具中,通过录制来得到( ),可以减少工作量。
A.测试文件 B.测试脚本 1.00/1.00C.测试数据D.测试设计
正确答案:B

3单选(1分)自动化黑盒测试工具中,脚本录制好后,只要执行脚本,就可以把测试过程重做一遍,这被称为( )。
A.录制B.回放 1.00/1.00C.复制 D.重播
正确答案:B

4单选(1分)在自动化黑盒测试工具中,通过录制来得到( ),可以减少工作量。
A.测试文件 B.测试设计 C.测试脚本1.00/1.00D.测试数据
正确答案:C

5单选(1分)关于自动化测试局限性的描述,以下描述错误的是( )。
A.自动测试不能提高测试覆盖率
B.自动测试比手工测试发现的缺陷少
C.自动化测试不能取代手工测试
D.自动化测试对测试设计依赖性极大
正确答案:B

7.4 课后作业

1(1分)对软件文档的要求不包括( )。
A、完整性 B、美观性 C、一致性 D、易理解性。
正确答案:B

2(1分)软件设计阶段的质量控制主要采取的方式是( )。
A、评审 B、白盒测试 C、黑盒测试 D、动态测试
正确答案:A

3(1分)以下不属于软件评审内容的是( )。
A、管理评审 B、技术评审 C、文档评审 D、人员评审
正确答案:D

4(1分)以下不是评审工具的是( )。
A、Gerrit B、Jupiter C、JaCoCo D、SourceMonitor
正确答案:C

5(1分)评审会议结束后,应当整理得到________作为存档材料。
参考答案:评审表单

6(2分)对评审会议发现的问题和缺陷要进行分析和跟踪,有的缺陷将________,有的缺陷则必须________。
正确答案:被有条件的接受 修正

7(3分)验收评审的内容主要是:开发的软件系统是否已达到________________规定的各项技术指标;________是否完整、正确;________是否齐全,是否符合有关标准等。
正确答案:软件需求说明书 使用手册 文档

8(1分)按照 IEEE 的定义,________是软件开发组之外的人员或小组,对软件需求、设计或代码,进行详细检查的一种正式评价方法。
正确答案:评审

9(1分)除软件测试之外,________是另一种软件质量控制和软件质量保证的有效方法。
正确答案:评审

10(2分)大中型软件的质量更多的取决于________和________质量,而不仅仅是编码质量。
正确答案:分析 设计(不确定)

11(1分)正式评审一般以___________的形式进行。
参考答案:会议

12(1分)(判断)技术评审既是一种技术手段,也是一种质量管理手段。 ( )
正确答案:对

13(1分)(判断)详细设计评审是所有的评审活动中最难的一个。 ( )
正确答案:错 需求

14(1分)(判断)评审的主要目标在于检测错误、核对与标准的偏离。 ( )
正确答案:对

15(1分)(判断)数据库设计一般要求遵循4NF。 ( )
正确答案:错

16(1分)(判断)应选择那些最复杂和最危险的部分进行评审。 ( )
正确答案:对

17(1分)(判断)应该将发现缺陷的工作推后,最后来处理,这样效率高。 ( )
正确答案:错

18(8分)什么是软件评审,主要的分阶段软件评审活动有哪些?
参考答案:

软件评审是对软件元素或者项目状态的一种评估手段,以确定其是否与计划的结果保持一致,并使其得到改进。 
主要的分阶段软件评审活动有管理评审、技术评审、文档评审和流程评审。

19(12分)试分析通过评审可以有哪些收效?
参考答案:

1提高项目的生产率。这是由于早期发现了错误,因而减少了返工时间,还可能减少测试时间
2改善软件的质量。
3在评审过程中,使开发团队的其他成员更熟悉产品和开发过
程。
4通过评审,标志着软件开发的一个阶段的完成。
5生产出更容易维护的软件。主要原因是:对于被评审的软件,评审者必须是非常熟悉的;同时,在评审过程中,一定会产生并利用很多证明文档,于是评审就迫使开发者产生出许多有用的文档,而这些文档如果不是因为评审,则在整个项目期间可能都不会生产。此外,评审过程也将增加对所开发软件的理解。

9 软件质量与质量保证

9.1 软件错误及分类

软件测试是按照特定的规程,( )的过程。
A.发现软件错误B.说明程序正确C.证明程序没有错误D.设计并运行测试用例
正确答案:A

9.2 程序中隐藏错误数量估计

采用Hyman分别测试法,两个测试员同时互相独立地对同一程序的两个副本测试了 3 天时间,如果两人发现的缺陷重合度低,则( )。
A.说明软件中尚未发现的缺陷多
B.说明软件中尚未发现的缺陷少
C.说明两名测试员工作都很不尽责
D.说明两名测试员工作都很尽责
正确答案:A

9.3 软件质量

软件验证和确认是保证软件质量的重要措施,它的实施应该针对( )
A.程序编写阶段
B.软件开发的所有阶段
C.软件调试阶段
D.软件设计阶段
正确答案:B

9.4 软件质量模型

McCall 质量模型使用 3 种视角来定义和识别软件产品的质量,其中不包括的是( )。
A.产品修正B.产品转移C.产品运行D.产品设计
正确答案:D

9.5 软件质量管理

软件确认就是要证实我们是不是制造了正确的产品,要保证( )。
A.程序代码正确B.设计方案正确C.做的东西正确D.做的过程正确
正确答案:C

9.6 软件质量管理体系

CMMI中文全称为( )
A.软件能力成熟度模型
B.软件能力成熟度模型集成
C.质量管理体系
D.软件工程研究所
正确答案:B

9.7 单元测试

1单选(1分)软件验证和确认是保证软件质量的重要措施,它的实施应该针对( )
A.软件开发的所有阶段 1.00/1.00
B.软件调试阶段
C.程序编写阶段
D.软件设计阶段
正确答案:A

2单选(1分)软件的六大质量特性包括( )。
①功能性、可靠性 ②可用性、效率
③稳定性、可移植 ④多语言性、可扩展性
A.①②③ 1.00/1.00B.①②④C.①③④ D.②③④
正确答案:A

3单选(1分)软件可靠性是指在指定的条件下使用时,软件产品维持规定的性能级别的能力,其子特性( )是指在软件发生故障或者违反指定接口的情况下,软件产品维持规定的性能级别的能力。
A.可靠性依从性B.易恢复性 C.容错性 1.00/1.00D.成熟性
正确答案:C

4单选(1分)对Web网站进行的测试中,属于功能测试的是 ( )
A.链接测试 1.00/1.00B.连接速度测试 C.平台测试D.安全性测试
正确答案:A

5单选(1分)CMMI中文全称为( )。
A.软件能力成熟度模型集成 1.00/1.00B.软件工程研究所C.软件能力成熟度模型 D.质量管理体系
正确答案:A

10 软件测试组织和管理

10.1 人员和资源组织

软件测试人员的工作职责不包括:( )
A.制定测试计划
B.设计测试用例
C.执行测试过程
D.对软件缺陷进行修复
正确答案:D

10.2 过程和进度管理

下列各项中( )不是一个测试计划所应包含的内容。
A.测试资源、进度安排
B.测试预期输出
C.测试范围
D.测试策略
正确答案:B

10.3 文档、用例和缺陷管理

文档测试不包括测试文档的( )。
A.完整性B.美观性C.一致性D.易理解性。
正确答案:B

10.4 单元测试

1单选(1分)软件测试人员的工作职责不包括:( )
A.设计测试用例
B.执行测试过程
C.制定测试计划
D.对软件缺陷进行修复
正确答案:D

2单选(1分)软件质量保证与测试人员需要的的基本素质有( )
A.计算机专业技能
B.行业知识
C.以上都是1.00/1.00
D.测试专业技能
正确答案:C

3单选(1分)软件测试是按照特定的规程,( )的过程。
A.证明程序没有错误
B.设计并运行测试用例
C.说明程序正确
D.发现软件错误
正确答案:D

4单选(1分)( )是对要执行的软件测试及测试的结果进行描述、定义、规定和报告的任何书面或图示信息。
A.软件测试脚本
B.软件测试文档
C.软件测试用例
D.软件测试结果
正确答案:B

5单选(1分)缺陷跟踪就是要确保每个被发现的缺陷最终都能够被( ),而不是不了了之 。
A.隐藏B.改正C.发现D.关闭
正确答案:D

10.5 课后作业

1(1分)
软件质量保证与测试人员需要的的基本素质有( )
A、计算机专业技能 B、测试专业技能 C、行业知识 D、以上都是
参考答案:D

2(1分)CMM中文全称为( )
A、软件能力成熟度模型
B、软件能力成熟度模型集成
C、质量管理体系
D、软件工程研究所
参考答案:A

3(1分)CMM将软件组织的软件能力成熟度描述为( )
A、二级 B、三级 C、四级 D、五级
参考答案:D

4(1分)软件的六大质量特性包括( )。
①功能性、可靠性 ②可用性、效率 ③稳定性、可移植 ④多语言性、可扩展性
A、①②③ B、②③④ C、①③④ D、①②④
参考答案:A

5(1分)软件验证和确认是保证软件质量的重要措施,它的实施应该针对( )
A、程序编写阶段 B、软件开发的所有阶段
C、软件调试阶段 D、软件设计阶段
参考答案:B

6(3分)软件缺陷按严重程度被分为6个等级,分别是:_________、_________、_________、一般错误、较小错误、测试建议。
参考答案:严重错误 主要错误 次要错误

7(1分)软件对属于各种质量因素的需求的符合性是由____________来测量的。
参考答案:软件质量度量

8(1分)Burnstein博士提出了________,它描述了测试过程,是软件测试得到良好计划和控制的基础。
参考答案:​Test Maturity Model(TMM即软件能力成熟度模型)

9(2分)按照时间点来区分,软件质量特性度量有两类_________和_________。
参考答案:预测型 验收型

10(2分)CMM内容包含初始级、_________、_________、可重复级和可优化级五个等级。
参考答案:定义级 定量管理级

11(3分)McCall模型划分了_________、_________、_________三个纬度的11个软件质量因素。
参考答案:软件运行 软件转移 软件修改

12(1分)_________是指软件产品中能满足给定需求的性质和特性的总体。
参考答案:软件质量

13(1分)(判断)软件质量保证的独特性是由软件产品不同于其他制造产品的本质决定的。( )
参考答案:对

14(1分)(判断)TMM 分解为3个级别,在最高级中,测试不是行为,而是一种自觉的约束,不用太多的测试投入,即可产生低风险的软件。( )
参考答案:对

15(1分)(判断)CMMI并不包括CMM,更加适用于企业的过程改进实施。( )
参考答案:错

16(1分)(判断)只有客户才会有兴趣透彻定义软件需求以确保他约定的软件产品的质量。( )
参考答案:错

17(16分)某软件公司为某电影院设计开发了一款票务系统,包括票务管理、账号管理、在线购票、统计分析等功能,该软件计划长期使用,部分模块将用于其他类似软件,软件在使用时应能接入数字化城市平台。试结合软件质量模型分析应从哪些特性来分析评价这一软件的质量。
参考答案:
在这里插入图片描述

11 本科目完结

©️2021 CSDN 皮肤主题: 数字20 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值