软件测试相关试题知识点

软件测试相关试题


1. 下面不属于软件测试步骤的是:

  • A: 集成测试
  • B: 回归测试
  • C: 确认测试
  • D: 单元测试

解析:B,回归测试是指修改旧代码后重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误。因此不是软件测试的步骤;

2. Junit单元测试说法正确的是

  • A: @Test注解标注的测试方法只能是public void的,且不能有任何输入参数
  • B: AssertEquals、AssertNotEquals:判断两个对象是否为同一个
  • C: @BeforeClass注解每一个测试方法都要执行一次,且必须为static void
  • D: Junit的底层实现上,是用System.exit退出用例执行

解析:AD

3. 关于自动化测试的说法,错误的是( )

  • A: 自动化测试不一定适合所有的测试
  • B: 自动化测试可以大幅度降低工作量
  • C: 自动化测试不一定比人工测试更能保障系统的可靠性
  • D: 自动化测试不能完全覆盖到所有的测试类型

解析:B,自动化测试在一定程度上是可以减少工作量,但在代码编译阶段还是需要人为操作;

4. 在以下测试阶段中,( )主要依据是 系统设计文档

  • A: 单元测试
  • B: 集成测试
  • C: 系统测试
  • D: 验收测试

解析:C

5. 关于测试驱动开发,描述错误的是()

  • A: 测试驱动开发式是一种敏捷开发方法
  • B: TDD需求开发人员学习测试相关知识
  • C: 测试驱动开发不适合使用CMM/CMMI方法
  • D: 测试驱动开发可以和结对编程结合使用

解析:C,CMM是指“能力成熟度模型”,它是对于软件组织在定义、实施、度量、控制和改善其软件过程的实践中各个发展阶段的描述。CMM的核心是把软件开发视为一个过程,并根据这一原则对软件开发和维护进行过程监控和研究,以使其更加科学化、标准化、使企业能够更好地实现商业目标。此外还是化妆品的名字;
CMMICapability Maturity Model Integration,能力成熟度模型集成)将各种能力成熟度模型(即:Software CMM、Systems Eng-CMM、People CMMAcquisition CMM)整合到同一架构中去,由此建立起包括软件工程、系统工程和软件采购等在内的诸模型的集成,以解决除软件开发以外的软件系统工程和软件采购工作中的迫切需求。这两种方法属于测试驱动开发的方式;

6. 使用语句覆盖对下列代码进行测试用例设计时,需要设计( )个测试用例

public  static void Test(int a, int b, int c)
{
    if ((a > 1) && (c == 0))
        b = b / a;
    if ((a == 1) && (b > 1))
        b = b + 1;
}
  • A: 1
  • B: 2
  • C: 3
  • D: 4

解析:B,语句覆盖:保证程序中的每一个语句至少被执行一次;

7. 下列哪些不是自顶向下增量式集成测试特点( )

  • A: 需要开发桩模块
  • B: 需要开发驱动模块
  • C: 模块集成时首先集成主控模块
  • D: 能及时发现设计上的错误

解析:B,自顶向下增量式集成测试不需要开发驱动模块;

8. 单元测试主要技术手段有()

  • A: 驱动代码
  • B: Stub代码
  • C: Mock代码
  • D: GUI测试手段

解析:ABC

9. 在软件测试中,圈复杂度(Cyclomatic complexity):代码逻辑复杂度的度量,提供了被测代码的路径数量。圈复杂度可通过系统控制流图的判断节点数目算出。
某人事管理系统能管理员工的基本信息、家庭信息、学历信息、职称信息等。其中,家庭信息管理模块导出的控制流图中包含9个判断节点,那么,该模块的圈复杂度为

  • A: 11
  • B: 8
  • C: 10
  • D: 9

解析:C,圈复杂度的计算还有另外一种更直观的方法,因为圈复杂度所反映的是“判定条件”的数量,所以圈复杂度实际上就是等于判定节点的数量再加上1。对应的计算公式为:
V(G) = P + 1

10. 设计系统测试计划需要参考的项目文挡有哪些?

  • A:软件测试计划
  • B: 可行性研究报告
  • C: 软件需求规范
  • D: 迭代计划

解析:ACD

11. 软件测试类型按开发阶段划分是?

  • A: 需求测试、单元测试、集成测试、验证测试
  • B: 单元测试,集成测试,确认测试,系统测试,验收测试
  • C: 单元测试、集成测试、验证测试、确认测试、验收测试
  • D: 调试、单元测试、集成测试、用户测试

解析:B,
(1)单元测试:
单元测试又称为模块测试,是针对软件设计的最小单位程序模块进行正确性检查的测试工作,单元测试需要从程序内部结构出发设计测试用例,多个模块可以平行地独立进行单元测试。
(2)集成测试
又称为组装测试或联合测试,在单元测试的基础上,需要将所有模块按照概要设计说明书和详细设计说明书的要求进行组装。
(3)确认测试
确认测试的目标是验证软件的功能和性能以及其他特性是否与用户的要求一致。确认测试一般包括有效性测试和软件配置复查。一般有第三方测试机构进行。
(4)系统测试
软件作为计算机系统的一部分,与硬件、网络、外设、支撑软件、数据以及人员结合在一起,在实际或模拟环境下,对计算机系统进行测试,
目的在于与系统需求比较,发现问题
(5)验收测试
以用户为主的测试,软件开发人员和质量保证人员参加,由用户设计测试用例。
不是对系统进行全覆盖测试,而是对核心业务流程进行测试;
所以软件测试类型按开发阶段分为单元测试,集成测试,确认测试,系统测试,验收测试

12. AccessViolationException异常触发后,下列程序的输出结果为( )

static void Main(string[] args)  
{  
    try  
    {  
        throw new AccessViolationException();  
        Console.WriteLine("error1");  
    }  
    catch (Exception e)  
    {  
        Console.WriteLine("error2");  
    }  
    Console.WriteLine("error3");  
} 

  • A:error2 error3

  • B: error3

  • C: error2

  • D: error1

解析:A,try..catch,catch捕获到异常,如果没有抛出异常语句(throw),不影响后续程序;

14. 采用等价类划分方法,为手机号码设计测试用例,应该划分( )个等价区间(不考虑非数字情况)
附:手机号码测试标准:手机号码是否为11位即可

  • A: 1
  • B: 2
  • C: 3
  • D: 4

解析:C,小于11位,等于11位,大于11位,三个区间

15. 项目立项前测试人员不需要提交任何工件。请判断这句话的正确与否

  • A:TRUE
  • B: FALSE

解析:A,工件是加工过程中的生产对象。项目立项前,测试人员是不需要提供任何工件的,所以该说法正确;

16. 测试工程师在软件测试计划阶段依据( )制定指定测试进度

  • A:工作说明书
  • B: 概要设计说明书
  • C: 详细设计说明书
  • D: 单元测试用例

解析:A

17. 下面哪些属于静态分析()

  • A:编码规则检查
  • B: 程序结构分析
  • C: 程序复杂度分析
  • D: 内存泄漏

解析:ABC,静态分析不涉及被测软件的动态执行,并且可以在运行程序之前的早期阶段检测可能的缺陷,内存泄漏是在程序运行之后才能得出来。所以D错误;

18. 下列哪项是判定/条件覆盖的特点( )

  • A:判定中每个条件的所有可能结果至少出现一次,每个判定本身所有可能结果也至少出现一次
  • B: 判定中每个条件获得所有可能的结果
  • C: 每个判定所有可能结果至少出现一次
  • D: 覆盖程序中所有可能的路径

解析:A,判定/条件覆盖主要特点:设计足够多的测试用例,使得判定中每个条件的所有可能结果至少出现一次,每个判定本身所有可能结果也至少出现一次

19. 语句if(a>5 && b<0)满足条件组合覆盖需要设计测试用例的个数为

  • A:1
  • B: 2
  • C: 3
  • D: 4

解析:D

20. 为下列代码设计测试用例,要求满足条件组合覆盖,需要设计测试用例的个数为( )

BEGIN
INPUT(A,B)
IF(A>5)AND(B<O)
THEN
X=A+B
ELSE
X=A-B
END

  • A:1
  • B: 2
  • C: 3
  • D: 4

解析:D,条件组合覆盖:在白盒测试法中,选择足够的测试用例,使得每个判定中条件的各种可能组合都至少出现一次。AB都符合,A符合B不符合,A不符合B符合,AB都不符合;

21. 如果某测试用例集实现了某软件的路径覆盖,那么它一定同时实现了该软件的

  • A:条件覆盖
  • B: 判定/条件覆盖
  • C: 组合覆盖
  • D: 判定覆盖

解析:D,判定覆盖是每个判定的真假一次,就会导致所有的结果路径会实现;

22. 自顶向下增量式集成测试的缺点包括( )

  • A:驱动的开发工作量大
  • B: 底层验证被推迟
  • C: 底层组间测试不充分
  • D: 设计上的错误不能及时被发现

解析:BC

23. 项目立项前测试人员不需要提交任何工件。请判断这句话的正确与否

  • A:T
  • B: F

解析:A,工件是加工过程中的生产对象。项目立项前,测试人员是不需要提供任何工件的。 所以该说法正确,故选A。

24. 对手机软件的压力测试通常可以包括【多选】( )

  • A:存储压力
  • B: 响应能力压力
  • C:网络流量压力
  • D: 并发压力

解析:ABC,针对手机应用软件的系统测试,我们通常从如下几个角度开展:功能模块测试,交叉事件测试,压力测试,容量测试,兼容性测试,易用性/用户体验测试等;
对手机可以施加的压力测试类型主要有:存储压力、边界压力、 响应能力压力、网络流量压力

25.哪种测试模型把测试过程作为需求分析、概要设计、详细设计及编码之后的阶段( )

  • A:V模型
  • B: W模型
  • C: H模型
  • D: X模型

解析:A,
V模型:需求分析-验收测试,概要设计-系统测试,详细设计-集成测试,编码-单元测试;

26.下列关于alpha 测试的描述中正确的是哪些?

  • A:alpha 测试需要用户参加
  • B: alpha 测试不需要用户参加
  • C:alpha 测试是系统测试的一种
  • D: alpha 测试是验收测试的一种

解析:AD,alpha 测试需要用户参加进行测试且先于beta测试,属于验收测试;

27.iOS单元测试框架有哪些?

  • A:XCTest
  • B: GHUnit
  • C:OCMock
  • D: NSXML

解析:ABC

28.下面哪些属于动态分析()

  • A:代码覆盖率
  • B: 模块功能检查
  • C:系统压力测试
  • D: 程序数据流分析

解析:BC,
动态程序分析是对计算机软件的分析,该计算机软件是通过在真实或虚拟处理器上执行从该软件构建的程序来执行的;
A,代码覆盖是由测试需求和测试用例的覆盖或已执行代码的覆盖表示的,建立在对测试结果的评估和对测试过程中确定的变更请求(缺陷)的分析的基础上;
D,数据流分析是一项编译时使用的技术,它能从程序代码中收集程序的语义信息,井通过代数的方法在编译时确定变量的定义和使用;

29.图书管理系统主要包括系统维护模块、工作人员借还管理模块和读者查询模块。在软件测试过程中,测试人员首先对三个模块进行测试,测试完成后再将系统所有模块集成起来进行集成测试。该测试策略为( )

  • A:非增量集成测试
  • B: 增量集成测试
  • C:三明治集成测试
  • D: 其他几项都不对

解析:A,非渐增式测试模式:先分别测试每个模块,再把所有模块按设计要求一次全部组装起来所要的系统,然后进行整体测试;

30下面叙述中错误的是( )

  • A:软件测试的目的是发现错误并改正错误
  • B: 对被调试的程序进行“错误定位”是程序调试的必要步骤
  • C:程序调试通常也称为Debug
  • D: 软件测试应严格执行测试计划,排除测试的随意性

解析:A,软件测试的目的是为了发现错误而执行程序的过程,并不涉及改正错误,所以选项A错误
程序调试的基本步骤有:错误定位、修改设计和代码,以排除错误、进行回归测试,防止引进新的错误。程序调试通常称为Debug,即排错。软件测试的基本准则有:所有测试都应追溯到需求、严格执行测试计划,排除测试的随意性、充分注意测试中的群集现象、程序员应避免检查自己的程序、穷举测试不可能、妥善保存测试计划等文件;

31,软件验收测试包括哪些?

  • A:正式验收测试
  • B: 白盒测试
  • C:alpha测试
  • D: beta测试

解析:ACD

32,软件验收测试的合格通过准则

  • A:软件需求分析说明书中定义的所有功能已全部实现,性能指标全部达到要求
  • B: 所有测试项没有残余一级、二级和三级错误
  • C:立项审批表、需求分析文档、设计文档和编码实现一致
  • D: 验收测试工件齐全

解析:ABCD

33,以下对桩(stub)函数的描述正确的是?

  • A:在单元测试中调用其它模块
  • B: 在单元测试中被其它模块调用
  • C:在自顶向下的集成过程中尤其有效
  • D: 在自底向上的集成过程中尤其有效

解析:BC,桩模块(Stub)是指模拟被测试的模块所调用的模块,而不是软件产品的组成的部分。在自顶向下的集成过程中尤其有效。

34,自顶向下增量式集成测试的缺点包括( )

  • A:驱动的开发工作量大
  • B: 底层验证被推迟
  • C:底层组间测试不充分
  • D: 设计上的错误不能及时被发现

解析:BC

35,单元测试主要技术手段有()

  • A:驱动代码
  • B: Stub代码
  • C:Mock代码
  • D: GUI测试手段

解析:ABC

36,以下哪些工具属于单元测试工具()

  • A:PureCoverage
  • B: Purify
  • C:VSS
  • D: Quantify

解析:ABD

37,集成测试计划在需求分析阶段末提交。请判断这句话的正确与否。

  • A:T
  • B: F

解析:B,集成测试计划在概要设计之后,W模型

38,网络管理员编写了shell程序prog1.sh,测试时程序死循环无法结束,可以通过下列方式结束程序( )

  • A:ctrl+C
  • B: ctrl+X
  • C:Alt F2 kill 进程ID
  • D: ctrl+d

解析:D,ctrl+c是强制中断程序的执行;

39,设计系统测试计划需要参考的项目文挡有哪些?

  • A:软件测试计划
  • B: 可行性研究报告
  • A:软件需求规范
  • B: 迭代计划

解析:ACD

40,黑盒测试在设计测试用例时,主要需要研究( )

  • A:详细设计说明
  • B: 需求规格说明与概要设计说明
  • C:项目开发计划
  • D: 概要设计说明与详细设计说明

解析:B,测试用例编写的依据:软件的需求文档,开发的设计文档;

41,测试工程师小刘在对某软件项目进行疲劳强度测试过程中,最先发现以下哪些问题( )

  • A:并发用户数
  • B: 内存泄漏
  • C:系统安全性
  • D: 功能错误

解析:B,最先发现内存泄露以及内存是否不足;

42,研发需要对自己的代码审核, 检查代码的正确性,这个过程我们称为?()

  • A:代码走查
  • B: 单元测试
  • C:Main函数校验代码
  • D:输入输出参数检验

解析:A,代码走查由编写代码的程序员来进行检查和组织讨论等;

43,使用语句覆盖对下列代码进行测试用例设计时,需要设计( )个测试用例

public  static void Test(int a, int b, int c)
{
    if ((a > 1) && (c == 0))
        b = b / a;
    if ((a == 1) && (b > 1))
        b = b + 1;
}
  • A:1
  • B: 2
  • C:3
  • D:4

解析:B,语句覆盖:保证程序中的每一个语句至少被执行一次。选B,2个;

44,下面哪些属于网游的测试内容?

  • A:客户端性能
  • B: 服务器端性能
  • C:从运行完 game.exe 打开游戏界面后可进行的各种操作、玩法
  • D:界面

解析:ABCD

45,下列有关Beta测试的叙述中,正确的是()

  • A:Beta测试是一种验收测试
  • B: 产品通过Beta测试后,即可正式发行
  • C:Beta测试应该由程序员或测试员完成
  • D:Beta测试是在开发环境下进行的测试

解析:AB,Beta测试是实际用户在实际使用环境下进行的测试,因此CD不正确;

46,按照瀑布模型的阶段划分,软件测试可以分为单元测试,集成测试,系统测试。请问以下哪项测试不属于系统测试的内容( )

  • A:压力测试
  • B: 接口测试
  • C:功能测试
  • D:安全测试
  • E:性能测试

解析:B,系统测试包括:功能、性能、可靠性、安全性测试;接口测试属于集成测试

47,在程序片中,所定义的变量未被使用可以通过哪种测试方法进行定位( )

  • A:条件测试
  • B: 控制流测试
  • C:数据流测试
  • D:循环测试

解析:C,数据流测试按照程序中的变量定义和使用的位置来选择程序的测试路径;

48,在下面所列举的逻辑测试覆盖中,测试覆盖最强的是?

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

解析:B,逻辑测试覆盖是白盒测试法常用的技术。主要的覆盖标准有6种,强度由弱到强依次是:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖、路径覆盖

49,系统测试使用哪种技术?

  • A:单元测试
  • B: 集成测试
  • C:黑盒测试
  • D:白盒测试

解析:C,系统测试是基于系统整体需求说明书的黑盒类测试,应覆盖系统所有联合的部件;

50,集成测试的测试用例是根据( )的结果来设计

  • A:需求分析
  • B: 源程序
  • C:概要设计
  • D:详细设计

解析:C,集成测试是依据概要设计;

51,白盒测试是基于代码的测试,通过程序代码或者通过开发工具找出软件的缺陷。白盒测试总体上分为两大类为( )

  • A:面向对象方法
  • B: 静态方法
  • C:动态方法
  • D:覆盖方法

解析:BC

52,有关"测试驱动开发",下列说法正确的有?

  • A:TDD的原理是在开发功能代码之前,先编写单元测试用例代码,测试代码确定需要编写什么产品代码
  • B: TDD的基本思路就是通过测试来推动整个开发得进行,但测试驱动开发并不只是单纯的测试工作,而是把需求分析,设计,质量控制量化的过程
  • C:TDD的重要目的不仅仅是测试软件,测试工作保证代码质量仅仅是其中一部分,而且是在开发过程中帮助客户和程序员去除模棱两可的需求
  • D:TDD首先考虑使用需求(对象、功能、过程、接口等),主要是编写测试用例框架对功能的过程和接口进行设计,而测试框架可以持续进行验证

解析:ABCD,
测试驱动开发是敏捷开发中的一项核心实践和技术,也是一种设计方法论。TDD得原理是在开发功能代码之前,先编写单元测试用例代码,测试代码确定需要编写什么产品代码。TDD虽是敏捷方法的核心实践,但不只适用于XP,同样可以适用于敏感词开发方法和过程。TDD的基本思路就是通过测试来推动整个开发得进行,但测试驱动开发并不只是单纯的测试工作,而是把需求分析,设计,质量控制量化的过程。TDD的重要目的不仅仅是测试软件,测试工作保证代码质量仅仅是其中一部分,而且是在开发过程中帮助客户和程序员去除模棱两可的需求。TDD首先考虑使用需求(对象、功能、过程、接口等),主要是编写测试用例框架对功能的过程和接口进行设计,而测试框架可以持续进行验证。
优点:在任意一个开发节点都可以拿出一个可以使用,含少量bug并具一定功能的产品;
缺点:增加代码量。测试代码是系统代码的两倍或更多。

53,集成测试的过程包括有以下哪些?

  • A:构建的确认过程
  • B: 系统集成测试测试组提交过程
  • C:测试用例设计过程
  • D:Bug的报告过程

解析:ABCD
系统集成测试主要包括以下过程:

(1)构建的确认过程;(2) 补丁的确认过程;(3) 系统集成测试测试组提交过程;(4)测试用例设计过程;(5)测试代码编写过程;(6) Bug的报告过程;(7) 每周/每两周的构建过程;(8) 点对点的测试过程;(9)组内培训过程;

54,下列叙述中,哪些是集成测试的入口准则()

  • A:系统测试已经完成,并提交《系统测试报告》
  • B:单元测试已经完成,并提交《单元测试报告》
  • C:代码走查完成,已进入受控库并完成产品集成
  • D:软件使用指南已经完成

解析:BC

55,编写测试用例的目的是什么?()

  • A:从测试用例追溯回功能需求以确保没有需求被疏忽
  • B: 总结前人的经验,为后人提供借鉴
  • C:用测试用例来验证产品需求模型的正确性
  • D:通过测试用例以确认是否达到了产品期望的要求

解析:ACD

55,loadrunner 包括以下哪几个部分?

  • A:脚本编辑工具
  • B: 需求分析工具
  • C:测试执行工具
  • D:结果分析工具

解析:ACD,
LoadRunner,是一种预测系统行为和性能的负载测试工具;通过以模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题,可适用于各种体系架构的自动负载测试,能预测系统行为并评估系统性能。 其测试组件有
1.VuGen Load Generator(虚拟用户生成器)用于捕获最终用户业务流程和创建自动性能测试脚本 (也称为虚拟用户脚本);
2.Controller (控制器)用于组织、驱动、管理和监控负载测试;
3.Analysis (分析器)有助于您查看、分析和比较性能结果;

56,以下属于软件调试技术的是()

  • A:强行排错法
  • B: 集成测试法
  • C:回溯法
  • D:原因排除法

解析:ACD

57,测试驱动开发的简称是()

  • A:ADD
  • B: TTD
  • C:TDD
  • D:TDT

解析:C,测试驱动开发,英文全称Test-Driven Development,简称TDD

你可能感兴趣的:(单元测试,软件测试)