软件测试综合练习题目-答案

454 阅读5分钟

软件测试综合练习题

  1. 在系统验收测试中,______A___是在一个模拟的环境下使用模拟数据运行系统;______A___是在一个实际环境中使用真实数据运行系统。

A.验证测试B.审计测试C.确认测试D.模块测试

A.验证测试B.审计测试C.确认测试D.模块测试

  1. 采用瀑布模型进行系统开发的过程中,每个阶段都会产生不同的文档。以下关于产生这些文档的描述中,正确的是______D___。

A.外部设计评审报告在概要设计阶段产生

B.集成测评计划在程序设计阶段产生

C.系统计划和需求说明在详细设计阶段产生

D.在进行编码的同时,独立的设计单元测试计划

  1. 正式的技术评审 FTR(Formal Technical      Review) 是软件工程师组织的软件质量保证活动,下面关于 FTR 指导原则中不正确的是 ____C__ 。 A .评审产品,而不是评审生产者的能力 B .要有严格的评审计划,并遵守日程安排 C .对评审中出现的问题要充分讨论,以求彻底解决 D .限制参与者人数,并要求评审会之前做好准备

  2. 对于软件的 β 测试,下列描述正确的是 ______D 。 A . β 测试就是在软件公司内部展开的测试,由公司专业的测试人员执行的测试 B . β 测试就是在软件公司内部展开的测试,由公司的非专业测试人员执行的测试 C . β 测试就是在软件公司外部展开的测试,由专业的测试人员执行的测试 D . β 测试就是在软件公司外部展开的测试,可以由非专业的测试人员执行的测试

  3. ____B__ 可以作为软件测试结束的标志。 (37)A .使用了特定的测试用例 B .错误强度曲线下降到预定的水平 C .查出了预定数目的错误 D .按照测试计划中所规定的时间进行了测试

  4. 下面 ① -- ④      是关于软件评测师工作原则的描述,正确的判断是 _____D_ 。
    ① 对于开发人员提交的程序必须进行完全的测试,以确保程序的质量
    ② 必须合理安排测试任务,做好周密的测试计划,平均分配软件各个模块的测试时间
    ③      在测试之前需要与开发人员进行详细的交流,明确开发人员的程序设计思路,并以此为依据开展软件测试工作,最大程度地发现程序中与其设计思路不一致的错误      
    ④ 要对自己发现的问题负责,确保每一个问题都能被开发人员理解和修改。 A . ① 、 ② B . ② 、 ③ C . ① 、 ③ D .无

  5. 在软件生命周期的不同阶段,需要实施不同类型的测试工作,单元测试是对程序设计进行验证,其中 ____B__ 不是单元测试的主要内容。在进行单元测试过程中,通常测试工程师都需要借助 ____A_ 来代替所测模块调用的子模块:在单元测试的基础上,需要将所有模块按照概要设计和详细设计说明书的要求进行组装,模块组装成系统的方式有两种,分别是 ___A__ 。 A .模块接口测试 B .有效性测试 C .路径测试 D .边界测试 A .桩模块 B .驱动模块 C .桩模块和驱动模块 D .存根模块和驱动模块 A .一次性组装和增殖性组装 B .自顶向下组装和启底向上组装 C .单个模块组装和混合模块组装 D .接口组装和功能组装

  6. 多条件覆盖是一种逻辑覆盖,它的含义是设计足够的测试用例,使得每个判定中条件的各种可能组合都至少出现一次,满足多条件覆盖级别的测试用例也是满足 ___A___ 级别的:针对布尔表达式 A&&(B||C) 执行逻辑覆盖测试,测试用例至少需要 _____C_ 种组合才能满足多条件覆盖的要求。 A .语句覆盖、判定覆盖、条件覆盖、条件判定组合覆盖 B .判定覆盖、条件覆盖;条件判定组合覆盖、修正条件判定覆盖 C .语句覆盖、判定覆盖、条件判定组合覆盖、修正条件判定覆盖 D .路径覆盖、判定覆盖、条件覆盖、条件判定组合覆盖 A . 6 B . 4 C . 8 D . 12

  7. 下述关于错误处理流程管理的原则, ____D__ 的说法是不正确的。 A .为了保证正确地定位错误,需要有丰富测试经验的测试人员验证发现的错误是否是真正的错误,并且验证错误是否可以再现。 B .每次对错误的处理都要保留处理信息,包括处理人姓名、处理时间、处理方法、处理意见以及错误状态 C .错误修复后必须由报告错误的测试人员确认错误已经修复,才能关闭错误 D .对于无法再现的错误,应该由项目经理,测试经理和设计经理共同讨论决定拒绝或者延期。

  8. 用边界值分析法,假定 1<X<100 ,那么 X 在测试中应该取的边界值是 ____B__ 。 A . X=1 , X=100 B . X=0 , X=1 , X=100 , X=101 C . X=2 , X=99 D . X=O , X=101

  9. 对于业务流清晰的系统可以利用 ___D__ 贯穿整个测试用例设计过程广在用例中综合使用各种测试方法,对于参数配置类的软件,要用 ___C___ 选择较少的组合方式达到最佳效果,如果程序的功能说明中含有输入条件的组合情况,则一开始就可以选用 ___B___ 和判定表驱动法。 A .等价类划分 B .因果图法 C .正交试验法 D .场景法 A .等价类划分 B .因果图法 C .正交试验法 D .场景法 A .等价类划分 B .因果图法 C .正交试验法 D .场景法

  10. 关于软件测试,(B)的叙述是正确的。 ①      测试开始越早,越有利于发现软件缺陷 ②      采用正确的测试用例设计方法,软件测试可以做到穷举测试 ③      测试覆盖度和测试用例数量成正比 ④      软件测试的时间越长越好 A.④ B.① C.②、③ D.①、③

  11. 系统功能测试过程中,验证需求可以正确实现的测试用例称为(A) 。 A.业务流程测试用例 B.功能点测试用例 C.通过测试用例 D.失败测试用例

  12. (A)不属于功能测试用例构成元素。 A.测试数据 B.测试步骤 C.预期结果 D.实测结果

  13. 针对电子政务类应用系统的功能测试,为设计有效的测试用例,应(B) 。 A.使业务需求的覆盖率达到100%
    B.利用等价类法模拟核心业务流程的正确执行 C.对一个业务流程的测试用例设计一条验证数据 D.经常使用边界值法验证界面输入值

  14. (C)测试用例设计方法既可以用于黑盒测试,也可以用于白盒测试。 A.边界值法 B.基本路径法 C.正交试验设计法 D.逻辑覆盖法 对“功能测试的回归测试经常要多次重复”的正确理解是(D) 。 A.回归测试应该执行初测时所用的全部测试用例 B.回归测试只要执行发现缺陷的那些测试用例即可 C.通过多次的回归测试可以发现所有缺陷 D.回归测试就是验收测试

  15. 功能测试执行过后一般可以确认系统的功能缺陷,缺陷的类型包括(B) 。 ①      功能不满足隐性需求②功能实现不正确 ④      功能易用性不好③功能不符合相关的法律法规 A.① B.①②③ C.②③④ D.②

  16. 以下关于软件测试的概念,正确的是(D) 。 A.软件测试的目的是想证实在一个给定的外部环境中软件的逻辑正确性,即保证软件以正确的方式来做这个事件 B.软件质量保证的基本措施就是对软件进行确认测试 C.软件测试的对象不仅仅是程序,文档、数据和规程都是软件测试的对象 D.单元测试可检验程序单元或部件的接口关系,应能发现并排除在模块连接中可能发生的问题

  17. 以下不正确的软件测试原则是(B) 。 A.软件测试可以发现软件潜在的缺陷 B.所有的软件测试都可追溯到用户需求 C.测试应尽早不断地执行 D.程序员应避免测试自己的程序

  18. 在编码阶段对系统执行的测试类型主要包括单元测试和集成测试,(A)属于单元测试的内容。 A.接口数据测试 B.局部数据测试 C.模块间时序测试 D.全局数据测试

  19. 以下关于软件测试概念的叙述,不正确的是(A) 。 A.软件失效指软件运行时产生了一种不希望或不可接受的内部行为 B.软件功能实现超出了产品说明书的规定说明软件存在缺陷 C.测试目的是为了发现软件缺陷与错误,也是对软件质量进行度量和评估 D.在软件生命周期各个阶段都可能产生错误

  20. 以下关于软件测试分类定义的叙述,不正确的是(A) 。

A.软件测试可分为单元测试、集成测试、确认测试、系统测试、验收测试

B.确认测试是在模块测试完成的基础上,将所有的程序模块进行组合并验证其是否满足用户需求的过程

C.软件测试可分为白盒测试和黑盒测试

D.系统测试是将被测软件作为整个基于计算机系统的一个元素,与计算机硬件、外设、某些支持软件、数据和人员等其他系统元素结合在一起进行测试的过程

  1. 正确的集成测试描述包括(A) 。 ①集成测试也叫做组装测试,通常是在单元测试的基础上,将模块按照设计说明书要求进行组装和测试的过程。 ②自顶向下的增殖方式是集成测试的一种组装方式,它能较早地验证主要的控制和判断点,对于输入输出模块、复杂算法模块中存在的错误能够较早地发现。 ③集成测试的目的在于检查被测模块能否正确实现详细设计说明中的模块功能、性能、接口和设计约束等要求 ④集成测试需要重点关注各个模块之间的相互影响,发现并排除全局数据结构问题 A.①② B.②③ C.①④ D.②④

  2. (B)不会影响测试质量。 A.用户需求频繁变化 B.测试流程不规范 C.采用背靠背测试方式 D.测试周期被压缩

  3. (C)不属于测试人员编写的文档。 A.缺陷报告 B.测试环境配置文档 C.缺陷修复报告 D.测试用例说明文档

  4. 假设在程序控制流图中,有 12 条边,8 个节点,则确保程序中每个可执行语句至少执行一次所必需的测试用例数目的上限是(B)。 A.12            B.8    C.6           D.4

  5. 关于白盒测试的测试用例设计方法叙述,正确的是(D) 。 A.完成SC(语句判定)所需的测试用例数目一定多于完成DC(逻辑判定)所需的测试用例数目 B.达到100%CC(条件判定)要求就一定能够满足100%SC的要求 C.达到 100%CDC(条件判定组合覆盖)要求就一定能够满足 100%CC的要求 D.任何情况下,都可以达到100%路径覆盖的要求

  6. 针对下列程序段,需要(C)个测试用例可以满足分支覆盖的要求。 int IsLeap(int year)
    {
    if ( year % 4 == 0 )
    {
    if ( ( year % 100 == 0 )
    {
    if ( year % 400 == 0 )
    leap = 1;
    else
    leap = 0;
    }
    else
    leap = 1;
    }
    else
    leap = 0;
    return leap;
    }
    A.3        B.4           C.6           D.7

  7. 黑盒测试中,( B)是根据输出对输入的依赖关系设计测试用例。 A.基本路径法 B.等价类 C.因果图 D.功能图法

  8. Web应用系统负载压力测试中,( A)不是衡量业务执行效率的指标。 A.并发请求数 B.每秒点击率 C.交易执行吞吐量 D.交易执行响应时间

  9. 软件测试的基本方法包括白盒测试和黑盒测试方法,以下关于二者之间关联的叙述,错误的是(C) 。 A.黑盒测试与白盒测试是设计测试用例的两种基本方法 B.在集成测试阶段是采用黑盒测试与白盒测试相结合的方法 C.针对相同的系统模块,执行黑盒测试和白盒测试对代码的覆盖率都能够达到100% D.应用系统负载压力测试一般采用黑盒测试方法

  10. 为验证某音乐会订票系统是否能够承受大量用户同时访问,测试工程师一般采用(B)测试工具。 A.故障诊断 B.代码 C.负载压力 D.网络仿真

  11. 在下列所列举的逻辑测试覆盖中,测试覆盖最强的是(B),最弱的是(A)

A 条件覆盖 B条件组合覆盖 C语句覆盖 D判定/条件覆盖

  1. 测试用例是测试使用的文档化的细则,其规定如何对软件某项功能或功能组合进行测试。测试用例应包括下列( B )内容的详细信息。

① 测试目标和被测功能。

② 测试环境和其他条件。

③ 测试数据和测试步骤。

④ 测试记录和测试结果。

A.① ③ B.① ② ③ C.① ③ ④ D.① ② ③ ④

  1. 关于确认测试,描述正确的是( B)

① 确认测试一般包括有效性测试与软件配置复查,采用黑盒测试为主,白盒测试为辅的测试方法进行测试。

② 确认测试配置项复查时应当严格检查用户手册和操作手册中规定的使用步骤的完整性和正确性。

③ 确认测试需要检测与证实软件是否满足软件需求说明书中规定的要求。

④ 确认测试是保证软件正确实现特定功能的一系列活动和过程,目的是保证软件生命周期中的每一个阶段的成果满足上一个阶段所设定的目标。

A.① ② B.② ③ C.③ ④ D.② ④

  1. 关于软件测试的说法,(D是不正确的。

A.代码审查是代码检查的一种,是由程序员和测试员组成一个审查小组,通过阅读、讨论和争议,对程序进行静态分析的过程

B.软件测试的对象不仅仅是程序,文档、数据和规程都是软件测试的对象

C.白盒测试是通过对程序内部结构的分析、检测来寻找问题的测试方法

D.单元测试是针对软件设计的最小单位--程序模块进行正确性检验的测试工作,它通常需要开发辅助的桩模块作为主程序调用被测模块来完成测试

  1. 关于集成测试的描述中,正确的是( C)

① 集成测试也叫做组装测试或联合测试,通常是在单元测试的基础上,将所有模块按照概要设计说明书和详细设计说明书的要求进行组装和测试的过程。

② 自顶向下的增殖方式是集成测试的一种组装方式,它能较早地验证主要的控制和判断点,对于输入输出模块、复杂算法模块中存在的错误能够较早地发现。

③ 自底向上的增殖方式需要建立桩模块,并行地对多个模块实施测试,并逐步形成程序实体,完成所有模块的组装和集成测试。

④ 在集成测试时,测试者应当确定关键模块,对这些关键模块及早进行测试,比如高层控制模块、有明确性能要求和定义的模块等。

A.① ② B.② ③ C.① ④ D.② ④

  1. 缺陷探测率DDP是衡量一个公司测试工作效率的软件质量成本的指标。在某公司开发一个软件产品的过程中,开发人员自行发现并修正的缺陷数量为80个,测试人员A发现的缺陷数量为50个,测试人员B发现的缺陷数为50个,测试人员A和测试人员B发现的缺陷不重复,客户反馈缺陷数量为50个,则该公司针对本产品的缺陷探测率为(A)

A.56.5% B.78.3% C.43.5% D.34.8%

图片

  1. 下面为C语言程序,边界值问题可以定位在(A )。

int data3,

int i,

for (i=1,i<=3,i++)

data(i)= 100

A. data(0) B. data(1) C. data(2) D. data(3)

  1. 通常测试用例很难100%覆盖测试需求,因为( D )。

① 输入量太大。

② 输出结果太多。

③ 软件实现途径多。

④ 测试依据没有统一标准。

A.① ② B.① ③ C.① ② ③ D.① ② ③ ④

  1. 假定X为整数类型变量,X>=1并且X<=10,如果用边界值分析法,X在测试中应该取(B )值。

A.1,10 B.0,1,10,11 C.1,11 D.1,5,10,11

  1. 以下( D )方法不是黑盒测试用例的设计方法。

A. 场景法 B. 边界值法 C. 因果图法 D. 路径法

  1. 不属于界面元素测试的是( C ) 。

A.窗口测试 B.文字测试 C.功能点测试 D.鼠标测试

  1. 以下说法不正确的是(D ) 。

A.易用性测试不仅是针对应用程序的测试,而且还要包括用户手册等系列文档

B.安装测试就是按照用户安装手册安装软件,来评估安装过程的易用性、正确性

C.辅助系统测试包括帮助测试、向导测试、信息提示测试等

D.界面整体测试是指对界面的规范性、可维护性、整体性等进行测试和评估

  1. 针对下列程序段,需要(C )个测试用例才可以满足语句覆盖的要求。

switch ( value )

{

case 0:

other = 30;

break;

case 1:

other = 50;

break;

case 2:

other = 300;

case 3:

other = other / value;

break;

default:

other = other * value;

}

A.2 B.3 C.4 D.5

  1. 针对程序段: IF(X>10)AND(Y<20)THEN W=W/A,对于(X,Y)的取值,以下(D )组测试用例能够满足判定覆盖的要求。

A.(30,15)(40,10)B.(3,0)(30,30)C.(5,25)(10,20)D.(20,10)(1,100)

  1. 负载压力性能测试需求分析时,应该选择( B )类型的业务作为测试案例。

① 高吞吐量的业务 ② 业务逻辑复杂的业务 ③ 高商业风险的业务 ④ 高服务器负载的业务 ⑤ 批处理的业务

A.① ② ③B.① ③ ④C.① ④D.① ② ③ ④ ⑤

  1. 测试记录包括(B )。

① 测试计划或包含测试用例的测试规格说明。

② 测试期间出现问题的评估与分析。

③ 与测试用例相关的所有结果,包括在测试期间出现的所有失败。

④ 测试中涉及的人员身份。

A.① ② ③B.① ③ ④C.② ③D.① ② ③ ④

  1. 如下流程图描述子程序的处理过程,要求用白盒测试法对其进行测试。

图片

根据判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖、路径覆盖等覆盖标准,从供选择的答案中分别找出满足相应覆盖标准的最小的测试数据组。

  1. x=90,y=90

  2. x=50,y=50

  3. x=90,y=90;x=50,y=50

  4. x=90,y=70;x=40,y=90

  5. x=90,y=90;x=50,y=50;x=90,y=70

  6. x=90,y=70;x=70,y=90;x=50,y=50

  7. x=90,y=90;x=50,y=50;x=90,y=70;x=70,y=90

  8. x=90,y=90;x=50,y=50;x=90,y=50,x=80,y=80

  9. x=90,y=90;x=90,y=70;x=90,y=30;x=70,y=90;x=70,y=70;x=30,y=90;x=50,y=50

  10. x=90,y=90;x=80,y=80;x=90,y=70;      x=90,y=30;x=70,y=90;x=30,y=90,x=70,y=70

答案:

判定覆盖选5)

条件覆盖选4)

判定/条件覆盖选7)

条件组合覆盖选9)

路径覆盖选5)

分析过程:

  1. 首先从较少的测试用例开始,依次分析它所能达到的覆盖判定标准,最好从语句覆盖开始;

  2. 如果它符合语句覆盖标准,应进一步分析它是否符合判定覆盖或条件覆盖;

  3. 如果不符合语句覆盖标准,应考察是否符合条件发覆盖,因为符合条件覆盖的测试用例并不一定保证一定能够符合语句覆盖;

  4. 如果它符合条件覆盖,应进一步分析是否符合条件组合覆盖;

  5. 对于符合判定覆盖或者条件覆盖的测试用例,应进一步分析是否满足路径覆盖;

  6. 本流程图描述了某子程序的处理流程,要求用白盒测试方法对子程序进行测试。

图片

根据判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖、路径覆盖标准,从供选择的答案中选择满足相应覆盖标准的测试数据组。

  1. A=5,b=1

  2. A=5,b=-1

  3. A=5,b=1;a=-5,b=-1

  4. A=5,b=1;a=0,b=-1

  5. A=5,b=-1;a=-5,b=1,a=-5,b=-1

  6. A=5,b=1;a=0,b=0,a=-5,b=-1

  7. A=5,b=1;a=0,b=1;a=0,b=-1,a=-5,b=1

  8. A=5,b=1;a=0,b=-1;a=-5,b=1;a=-5,b=-1

  9. A=5,b=1;a=0,b=-1;a=0,b=1,a=-5,b=1,a=-5,b=-1

  10. A=5,b=1;a=5,b=0;a=5,b=-1;a=0,b=1;a=0,b=0;a=0,b=-1;a=-5,b=1;a=-5,b=0;a=-5,b=-1

判定覆盖选4

条件覆盖选3

判定/条件覆盖选6

条件组合覆盖选8

路径覆盖选7

  1. 逻辑覆盖是通过对程序逻辑结构的遍历实现程序的覆盖,是设计白盒测试用例的主要方法之一。以下代码由C 语言书写,请按要求回答问题。 void cal( int n )
    {
    int g, s, b, q;
    if ( ( n > 1000 ) && ( n < 2000 )      )
    {
    g = n % 10;
    s = n % 100 / 10;
    b = n / 100 % 10;
    q = n / 1000;
    if( ( q + g ) == ( s + b ) )
    {
    printf("%-5d", n);
    }
    }
    printf("\n");
    return;
    }
    [ 问题1]

请找出程序中所有的逻辑判断语句。

[问题 2]

请分析并给出分别满足100%DC(判定覆盖)和100%CC(条件覆盖)时所需的逻辑条件。

[问题3]

假设n的取值范围是0 < n < 3000,请用逻辑覆盖法为n的取值设计测试用例,使用例集满足基本路径覆盖标准。

本文使用 文章同步助手 同步