解析:B,回归测试是指修改旧代码后重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误。因此不是软件测试的步骤;
2. Junit
单元测试说法正确的是
@Test
注解标注的测试方法只能是public void
的,且不能有任何输入参数AssertEquals、AssertNotEquals
:判断两个对象是否为同一个@BeforeClass
注解每一个测试方法都要执行一次,且必须为static void
Junit
的底层实现上,是用System.exit
退出用例执行解析:AD
3. 关于自动化测试的说法,错误的是( )
解析:B,自动化测试在一定程度上是可以减少工作量,但在代码编译阶段还是需要人为操作;
4. 在以下测试阶段中,( )主要依据是 系统设计文档
解析:C
5. 关于测试驱动开发,描述错误的是()
TDD
需求开发人员学习测试相关知识CMM/CMMI
方法解析:C,
CMM
是指“能力成熟度模型”,它是对于软件组织在定义、实施、度量、控制和改善其软件过程的实践中各个发展阶段的描述。CMM
的核心是把软件开发视为一个过程,并根据这一原则对软件开发和维护进行过程监控和研究,以使其更加科学化、标准化、使企业能够更好地实现商业目标。此外还是化妆品的名字;
CMMI
(Capability Maturity Model Integration
,能力成熟度模型集成)将各种能力成熟度模型(即:Software CMM、Systems Eng-CMM、People CMM
和Acquisition 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;
}
解析:B,语句覆盖:保证程序中的每一个语句至少被执行一次;
7. 下列哪些不是自顶向下增量式集成测试特点( )
解析:B,自顶向下增量式集成测试不需要开发驱动模块;
8. 单元测试主要技术手段有()
Stub
代码Mock
代码GUI
测试手段解析:ABC
9. 在软件测试中,圈复杂度(Cyclomatic complexity
):代码逻辑复杂度的度量,提供了被测代码的路径数量。圈复杂度可通过系统控制流图的判断节点数目算出。
某人事管理系统能管理员工的基本信息、家庭信息、学历信息、职称信息等。其中,家庭信息管理模块导出的控制流图中包含9个判断节点,那么,该模块的圈复杂度为
解析:C,圈复杂度的计算还有另外一种更直观的方法,因为圈复杂度所反映的是“判定条件”的数量,所以圈复杂度实际上就是等于判定节点的数量再加上1。对应的计算公式为:
V(G) = P + 1
10. 设计系统测试计划需要参考的项目文挡有哪些?
解析:ACD
11. 软件测试类型按开发阶段划分是?
解析: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位即可
解析:C,小于
11
位,等于11
位,大于11
位,三个区间
15. 项目立项前测试人员不需要提交任何工件。请判断这句话的正确与否
TRUE
FALSE
解析:A,工件是加工过程中的生产对象。项目立项前,测试人员是不需要提供任何工件的,所以该说法正确;
16. 测试工程师在软件测试计划阶段依据( )制定指定测试进度
解析:A
17. 下面哪些属于静态分析()
解析:ABC,静态分析不涉及被测软件的动态执行,并且可以在运行程序之前的早期阶段检测可能的缺陷,内存泄漏是在程序运行之后才能得出来。所以D错误;
18. 下列哪项是判定/条件覆盖的特点( )
解析:A,判定/条件覆盖主要特点:设计足够多的测试用例,使得判定中每个条件的所有可能结果至少出现一次,每个判定本身所有可能结果也至少出现一次
19. 语句if(a>5 && b<0)满足条件组合覆盖需要设计测试用例的个数为
解析:D
20. 为下列代码设计测试用例,要求满足条件组合覆盖,需要设计测试用例的个数为( )
BEGIN
INPUT(A,B)
IF(A>5)AND(B<O)
THEN
X=A+B
ELSE
X=A-B
END
解析:D,条件组合覆盖:在白盒测试法中,选择足够的测试用例,使得每个判定中条件的各种可能组合都至少出现一次。AB都符合,A符合B不符合,A不符合B符合,AB都不符合;
21. 如果某测试用例集实现了某软件的路径覆盖,那么它一定同时实现了该软件的
解析:D,判定覆盖是每个判定的真假一次,就会导致所有的结果路径会实现;
22. 自顶向下增量式集成测试的缺点包括( )
解析:BC
23. 项目立项前测试人员不需要提交任何工件。请判断这句话的正确与否
T
F
解析:A,工件是加工过程中的生产对象。项目立项前,测试人员是不需要提供任何工件的。 所以该说法正确,故选A。
24. 对手机软件的压力测试通常可以包括【多选】( )
解析:ABC,针对手机应用软件的系统测试,我们通常从如下几个角度开展:功能模块测试,交叉事件测试,压力测试,容量测试,兼容性测试,易用性/用户体验测试等;
对手机可以施加的压力测试类型主要有:存储压力、边界压力、 响应能力压力、网络流量压力
25.哪种测试模型把测试过程作为需求分析、概要设计、详细设计及编码之后的阶段( )
V
模型W
模型H
模型X
模型解析:A,
V模型:需求分析-验收测试,概要设计-系统测试,详细设计-集成测试,编码-单元测试;
26.下列关于alpha 测试的描述中正确的是哪些?
alpha
测试需要用户参加alpha
测试不需要用户参加alpha
测试是系统测试的一种alpha
测试是验收测试的一种解析:AD,
alpha
测试需要用户参加进行测试且先于beta
测试,属于验收测试;
27.iOS单元测试框架有哪些?
XCTest
GHUnit
OCMock
NSXML
解析:ABC
28.下面哪些属于动态分析()
解析:BC,
动态程序分析是对计算机软件的分析,该计算机软件是通过在真实或虚拟处理器上执行从该软件构建的程序来执行的;
A,代码覆盖是由测试需求和测试用例的覆盖或已执行代码的覆盖表示的,建立在对测试结果的评估和对测试过程中确定的变更请求(缺陷)的分析的基础上;
D,数据流分析是一项编译时使用的技术,它能从程序代码中收集程序的语义信息,井通过代数的方法在编译时确定变量的定义和使用;
29.图书管理系统主要包括系统维护模块、工作人员借还管理模块和读者查询模块。在软件测试过程中,测试人员首先对三个模块进行测试,测试完成后再将系统所有模块集成起来进行集成测试。该测试策略为( )
解析:A,非渐增式测试模式:先分别测试每个模块,再把所有模块按设计要求一次全部组装起来所要的系统,然后进行整体测试;
30下面叙述中错误的是( )
Debug
解析:A,
软件测试的目的是为了发现错误而执行程序的过程,并不涉及改正错误,所以选项A错误
。
程序调试的基本步骤有:错误定位、修改设计和代码,以排除错误、进行回归测试,防止引进新的错误。程序调试通常称为Debug
,即排错。软件测试的基本准则有
:所有测试都应追溯到需求、严格执行测试计划,排除测试的随意性、充分注意测试中的群集现象、程序员应避免检查自己的程序、穷举测试不可能、妥善保存测试计划等文件;
31,软件验收测试包括哪些?
alpha
测试beta
测试解析:ACD
32,软件验收测试的合格通过准则
解析:ABCD
33,以下对桩(stub)函数的描述正确的是?
解析:BC,桩模块(
Stub
)是指模拟被测试的模块所调用的模块,而不是软件产品的组成的部分。在自顶向下的集成过程中尤其有效。
34,自顶向下增量式集成测试的缺点包括( )
解析:BC
35,单元测试主要技术手段有()
Stub
代码Mock
代码GUI
测试手段解析:ABC
36,以下哪些工具属于单元测试工具()
PureCoverage
Purify
VSS
Quantify
解析:ABD
37,集成测试计划在需求分析阶段末提交。请判断这句话的正确与否。
解析:B,集成测试计划在概要设计之后,W模型
38,网络管理员编写了shell程序prog1.sh,测试时程序死循环无法结束,可以通过下列方式结束程序( )
ctrl+C
ctrl+X
Alt F2 kill
进程ID
ctrl+d
解析:D,ctrl+c是强制中断程序的执行;
39,设计系统测试计划需要参考的项目文挡有哪些?
解析:ACD
40,黑盒测试在设计测试用例时,主要需要研究( )
解析:B,测试用例编写的依据:软件的需求文档,开发的设计文档;
41,测试工程师小刘在对某软件项目进行疲劳强度测试过程中,最先发现以下哪些问题( )
解析:B,最先发现内存泄露以及内存是否不足;
42,研发需要对自己的代码审核, 检查代码的正确性,这个过程我们称为?()
Main
函数校验代码解析: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;
}
解析:B,语句覆盖:保证程序中的每一个语句至少被执行一次。选B,2个;
44,下面哪些属于网游的测试内容?
game.exe
打开游戏界面后可进行的各种操作、玩法解析:ABCD
45,下列有关Beta测试的叙述中,正确的是()
Beta
测试是一种验收测试Beta
测试后,即可正式发行Beta
测试应该由程序员或测试员完成Beta
测试是在开发环境下进行的测试解析:AB,
Beta
测试是实际用户在实际使用环境下进行的测试,因此CD不正确;
46,按照瀑布模型的阶段划分,软件测试可以分为单元测试,集成测试,系统测试。请问以下哪项测试不属于系统测试的内容( )
解析:B,系统测试包括:功能、性能、可靠性、安全性测试;接口测试属于集成测试
47,在程序片中,所定义的变量未被使用可以通过哪种测试方法进行定位( )
解析:C,数据流测试按照程序中的变量定义和使用的位置来选择程序的测试路径;
48,在下面所列举的逻辑测试覆盖中,测试覆盖最强的是?
解析:B,逻辑测试覆盖是白盒测试法常用的技术。
主要的覆盖标准有6种,强度由弱到强依次是:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖、路径覆盖
49,系统测试使用哪种技术?
解析:C,系统测试是基于系统整体需求说明书的黑盒类测试,应覆盖系统所有联合的部件;
50,集成测试的测试用例是根据( )的结果来设计
解析:C,集成测试是依据概要设计;
51,白盒测试是基于代码的测试,通过程序代码或者通过开发工具找出软件的缺陷。白盒测试总体上分为两大类为( )
解析:BC
52,有关"测试驱动开发",下列说法正确的有?
TDD
的原理是在开发功能代码之前,先编写单元测试用例代码,测试代码确定需要编写什么产品代码TDD
的基本思路就是通过测试来推动整个开发得进行,但测试驱动开发并不只是单纯的测试工作,而是把需求分析,设计,质量控制量化的过程TDD
的重要目的不仅仅是测试软件,测试工作保证代码质量仅仅是其中一部分,而且是在开发过程中帮助客户和程序员去除模棱两可的需求TDD
首先考虑使用需求(对象、功能、过程、接口等),主要是编写测试用例框架对功能的过程和接口进行设计,而测试框架可以持续进行验证解析:ABCD,
测试驱动开发是敏捷开发中的一项核心实践和技术,也是一种设计方法论。TDD
得原理是在开发功能代码之前,先编写单元测试用例代码,测试代码确定需要编写什么产品代码。TDD
虽是敏捷方法的核心实践,但不只适用于XP
,同样可以适用于敏感词开发方法和过程。TDD
的基本思路就是通过测试来推动整个开发得进行,但测试驱动开发并不只是单纯的测试工作,而是把需求分析,设计,质量控制量化的过程。TDD
的重要目的不仅仅是测试软件,测试工作保证代码质量仅仅是其中一部分,而且是在开发过程中帮助客户和程序员去除模棱两可的需求。TDD
首先考虑使用需求(对象、功能、过程、接口等),主要是编写测试用例框架对功能的过程和接口进行设计,而测试框架可以持续进行验证。
优点:在任意一个开发节点都可以拿出一个可以使用,含少量bug
并具一定功能的产品;
缺点:增加代码量。测试代码是系统代码的两倍或更多。
53,集成测试的过程包括有以下哪些?
Bug
的报告过程解析:ABCD
系统集成测试主要包括以下过程:(1)构建的确认过程;(2) 补丁的确认过程;(3) 系统集成测试测试组提交过程;(4)测试用例设计过程;(5)测试代码编写过程;(6)
Bug
的报告过程;(7) 每周/每两周的构建过程;(8) 点对点的测试过程;(9)组内培训过程;
54,下列叙述中,哪些是集成测试的入口准则()
解析:BC
55,编写测试用例的目的是什么?()
解析:ACD
55,loadrunner 包括以下哪几个部分?
解析:ACD,
LoadRunner
,是一种预测系统行为和性能的负载测试工具;通过以模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题,可适用于各种体系架构的自动负载测试,能预测系统行为并评估系统性能。 其测试组件有
1.VuGen Load Generator
(虚拟用户生成器)用于捕获最终用户业务流程和创建自动性能测试脚本 (也称为虚拟用户脚本);
2.Controller
(控制器)用于组织、驱动、管理和监控负载测试;
3.Analysis
(分析器)有助于您查看、分析和比较性能结果;
56,以下属于软件调试技术的是()
解析:ACD
57,测试驱动开发的简称是()
ADD
TTD
TDD
TDT
解析:C,测试驱动开发,英文全称
Test-Driven Development
,简称TDD