目录
🌞一、阶段1:编码规范
🌊编码规范考试-CC++
🌞二、阶段2:开发基础
🌊C/C++
🌊数据库(Oracle/MySql)
🌞三、阶段3:测试基础
🌊单元测试+测试基础
🌞一、阶段1:编码规范
🌊编码规范考试-CC++
【C/C++】下面选项中,不是必须在函数的头部说明中包含的是( 4分 )
A. 输出参数
B. 输入参数
C. 内部变量说明
D. 函数功能
答案:C
【C/C++】以下代码中,数字比较不正确的写法是哪个( 4分 )
A. if (10 == x)
B. if (x == 0.0)
C. if ((x >= -FLT_EPSINON) && (x <= FLT_EPSINON))
D. if (x < 10)
答案 B
【SQL】下列对象命名前缀不符合规范的是( 4分 )
A. 非唯一索引:idx_
B. 普通表:t_
C. 视图:v_
D. 主键:pk_
答案 B
【C/C++】函数体的规模要小,尽量控制到在( )行代码以内( 4分 )
A. 10 B. 1024 C. 200 D. 50
答案 C
【SQL】下列关于变量说法不符合规范的是( 4分 )
A. 本地变量以v_为前缀
B. 全局变量使用单个字符命名
C. 参数以p_为前缀
D. 变量命名格式为:变量前缀+变量标识
答案 B
【C/C++】下面选项中,关于缩行的描述错误的是( 4分 )
A. 在函数体的开始、结构/联合的定义、枚举的定义以及循环、判断等语句中的代码都要采用缩行。
B. 用缩行显示程序结构,使排版整齐,缩进量统一使用4个字符
C. 最好用Tab来实现缩行,这样无论在什么环境上看到的效果都是相同的。
D. 同层次的代码在同层次的缩进层上
答案 C
【SQL】下列说法不符合规范的是( 4分 )
A. 脚本以".sql"文件存储
B. 脚本命名加上执行用户作为前缀
C. 脚本中判断执行用户或者数据库是否正确
D. 脚本只支持单次执行不报错
答案 D
【C/C++】下面选项中,不是必须在源程序的修改记录说明中包含的是( 4分 )
A. 代码注释 B. 修改日期 C. 修改人员 D. 修改说明
答案 A
【C/C++】以下语句错误的是:( 4分 )
A. char *p = new char; delete p;
B. char *p = (char *) malloc(100); delete p;
C. char *p = new char[100]; delete [] p;
D. char *p = (char *) malloc(100); free(p);
答案 B
【C/C++】以下代码中,对于指针变量p是否为空的判断,正确的写法是( 4分 )
A. if (!p) B. if (p != 0) C. if (p == NULL) D. if (p == 0)
答案 C
【C/C++】以下描述正确的是:( 4分 )
A. 一个进程可以包含多个线程,反之亦然;
B. new和free,malloc和delete要配套使用;
C. 不可将浮点变量用“==”或“!=”与任何数字比较;
D. 栈内存需要申请,堆内存系统自动分配;
答案 C
【C/C++】以下描述错误的是:( 4分 )
A. 函数的指针返回值,不可以使用指向栈内存的指针;
B. 在函数体的入口处,需对参数的有效性进行检查;
C. 对于不能更改的入参,可在函数定义的时候加上const;
D. 程序退出的时候,没有必要对堆内存进行释放操作;
答案 D
【C/C++】用缩行显示程序结构,使排版整齐,缩进量统一使用( )个字符。( 4分 )
A. 4 B. 8 C. 2 D. 3
答案 A
【C/C++】以下if语句不符合规范的是:( 4分 )
A. int iValue = 1; if (0 == iValue)
B. char* p = NULL; if (NULL == p)
C. int num = 10; if (10 > num)
D. float x = 1.0; if (0.0 == x)
答案 D
【SQL】下列关于对象命名规范做法错误的是( 4分 )
A. 对象名称不能加引号
B. 对象名称包含字母
C. 对象名称以数字开头
D. 对象名称包含下划线
答案 C
【C/C++】下面变量命名不符合规范要求的是( 4分 )
A. char *p = sName;
B. char sName[20];
C. int niArray[ARRAY_SIZE];
D. unsigned char ucByte;
答案 A
【C/C++】以下描述错误的是:( 4分 )
A. CASE语句default分支中可省略break;
B. 为杜绝可能带来的副作用,尽量避免采用函数宏;
C. 不要省略返回值的类型,如果函数没有返回值,那么应声明为void类型;
D. 声明变量的同时对变量进行初始化,严禁使用未经初始化的变量;
答案 A
【C/C++】全局变量名前面最好加上( )前缀。( 4分 )
A. g_ B. h_ C. m_ D. a_
答案 A
【C/C++】下面关于书写排版规范说法不正确的是( 4分 )
A. 函数名之后紧跟左括号‘(’,中间不要留空格,以与关键字区别。
B. 关键字之后要留空格。
C. 不允许把多个短语句写在一行中,即一行最多只写一条语句。
D. 一元操作符如“!”、“~”、“++”、“--”、“*” (指针取值符)、“&”(地址运算符)等前后必须加空格。
答案 D
【C/C++】以下表达式可读性差的是:( 4分 )
A. if (num < 10)
B. leap_year = ((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0);
C. a = b + c;
D. i = a >= b && c < d && c + f <= g + h;
答案 D
【C/C++】下面哪种类型的代码不存在操作系统平台差异,不需要特意封装( 4分 )
A. 共享内存操作代码
B. 线程和进程操作代码
C. 字符串打印代码
D. Socket应用代码
答案 C
【C/C++】下面关于变量命名说法不正确的是( 4分 )
A. 命名应当直观且可以拼读,可望文知意,便于记忆和阅读。
B. 变量命名的时候,单词首字母都大写,然后再最前面增加变量类型的前缀。
C. 命名的长度应当符合“min-length && max-information”原则。
D. 标识符最好采用拼音,便于大家理解。
答案 D
【SQL】下列关于mysql表设计不符合规范的是( 4分 )
A. 禁止使用enum/set/bool类型
B. 金额字段使用浮点类型FLOAT和DOUBLE
C. 使用InnoDB存储引擎
D. 所有表都必须有主键
答案 B
【C/C++】下面选项中,不是必须在源程序的文件头部中包含的是( 4分 )
A. 模块名称
B. 代码注释
C. 系统名称
D. 功能说明
答案 B
【C/C++】以下语句执行不会出错的是:( 4分 )
A. char *p;
if (p != NULL) {
strcpy(p, “world”);
}
B. char *p = (char *) malloc(100);
if (p != NULL) { strcpy(p, “world”); }
free(p);
C. char *p = (char *) malloc(100);
free(p);
if (p != NULL) { strcpy(p, “world”); }
D. char *p;
free(p);
答案 B
🌞二、阶段2:开发基础
🌊C/C++
下列关于构造函数的描述中,错误的是( )( 4分 )
A. 构造函数可以设置默认参数。
B. 构造函数在声明对象时自动执行。
C. 构造函数可以对静态数据成员进行初始化。
D. 构造函数可以重载。
答案 C
在面向对象方法中,不属于“对象”基本特点的是()。( 4分 )
A. 一致性 B. 分类性 C. 多态性 D. 标识唯一性
答案 A
下列选项中,用于清除基数格式位设置以十六进制输出的语句是( )。( 4分 )
A. cout<<setf(ios::dec,ios::basefield);
B. cout<<setf(ios::hex,ios::basefield);
C. cout<<setf(ios::oct,ios::basefield);
D. cin>>setf(ios::hex,ios::basefield);
答案 B
#define DOUBLE(x) x+x ,i = 5*DOUBLE(5); i 是多少?( 4分 )
A. 50 B. 15 C. 30 D. 25
答案 C
1. 若变量a已说明为float类型,则能实现将a中的数值保留小数点后两位,第三位进行四舍五入运算的表达式是( )。( 4分 )
A. a=(a*100+0.5)/100.0
B. a=(a*100+0.5)/100
C. a=(int)(a*100+0.5)/100.0
D. a=(a/100+0.5)*100.0
答案 C
2. 若有程序片段: struct ST { int n; struct st *next; }; struct ST st[3] = {5, &st[1], 7, &st[2], 9, 0}, *p = st; 下列哪个表达式值为6( )( 4分 )
A. p++->n B. p->n++ C. (*p).n++ D. ++p->n
答案 D
3. 对于基类型相同的两个指针变量,不能进行的运算是( )。( 4分 )
A. < B. = C. + D. –
答案 C
下面说法哪些正确( ) ( 共4分,漏选不得分 )
A. const int a; // a 是常数
B. int const a; // a 是常数
C. int const *a; // a 是常量指针
D. const int *a; // a 是指针常量
答案 A、B、C
下面可用于字符串复制的函数有( )。 ( 共4分,漏选不得分 )
A. strcpy B. sprint C. strstr D. memcpy
答案 A、B、D
在C语言中,关于静态变量的说法,不正确的有( )。 ( 共4分,漏选不得分 )
A. 函数中的静态变量,在函数退出后不被释放
B. 静态变量只可以赋值一次,赋值后则不能改变
C. 静态全局变量的作用域为一个程序的所有源文件
D. 静态全局变量过大,可能会导致堆栈溢出
答案 B、C、D
🌊数据库(Oracle/MySql)
在关系数据库中,模式(Schema)对应的是_____。( 4分 )
A. 视图和所有基本表
B. 视图和部分基本表
C. 基本表
D. 索引
答案 A
唯一索引的效果是( )( 4分 )
A. 保证索引列上的值不能重复
B. 保证索引列上的值不能为空
C. 保证索引上的各列不能参与其它索引
D. 保证该表上只有一个索引
答案 A
下列四组SQL命令,全部属于数据定义语句的命令是___。( 4分 )
A. CREATE,DROP,ALTER
B. CREATE,DROP,UPDATE
C. CREATE,DROP,GRANT
D. CREATE,DROP,SELECT
答案 A
以下SQL错误的行是()( 4分 )
A. select year, subject, max(score),
B. max(score) over(partition by year),
C. max(max(score)) over(partition by year)
D. from a group by year, subject;
答案 B
Oracle数据库中,通过()访问能够以最快的方式访问表中的一行。( 4分 )
A. 主键 B. Rowid C. 唯一索引 D. 整表扫描
答案 B
在Oracle中,不属于游标属性的是()。( 4分 )
A. %NOTFOUND
B. %FOUND
C. %ISCLOSE
D. %ISOPEN
答案 C
关系数据库中,主键是()( 4分 )
A. 为标识表中唯一的实体
B. 创建唯一的索引,允许空值
C. 只允许以表中第一字段建立
D. 允许有多个主键的
答案 A
数据库镜像可以用于___。( 4分 )
A. 实现数据库的安全性
B. 实现数据共享
C. 进行数据库恢复或并发操作
D. 保证数据库的完整性
答案 C
事务结束条件___________。( 4分 )
A. 仅当提交时 B. 仅当回滚时 C. 提交或回滚时 D. 既不在提交时,也不在回滚时
答案 C
以下运算优先级排序,由高到低的是( )( 4分 )
A. AND OR NOT B. OR AND NOT C. NOT AND OR D. NOT OR AND
答案 C
假设员工表有婚否列,用于描述员工的婚姻状态,则应该在该列上建立什么类型的索引,以加快检索速度?( 4分 )
A. B树唯一索引 B. B树不唯一索引 C. 位图索引 D. 基于函数的索引
答案 C
下列有关数据库的描述,正确的是______。( 4分 )
A. 数据库是一个DBF文件
B. 数据库是一个关系
C. 数据库是一个结构化的数据集合
D. 数据库是一组文件
答案 C
下列属于权限管理语句的是()( 4分 )
A. create/drop B. insert/delete C. grant/revoke D. commit/rollback
答案 C
下列哪个数据类型不是Oracle支持的内部数据类型?( 4分 )
A. CHAR B. FLOAT C. INTEGER D. STRING
答案 D
数据库的并发操作可能带来的问题包括___。( 4分 )
A. 非法用户的使用 B. 丢失更新 C. 数据独立性会提高 D. 增加数据冗余度
答案 B
在下列 RDMBS 产品中,属于小型数据库系统的是__。( 4分 )
A. Access B. Oracle C. Sybase D. Informix
答案 A
在Oracle中,关于锁,下列描述不正确的是()。( 4分 )
A. 锁用于在用户之间控制对数据的并发访问
B. 可以将锁归类为行级锁和表级锁
C. insert、update、delete语句自动获得行级锁
D. 同一时间只能有一个用户锁定一个特定的表
答案 D
在下列描述中,正确的描述是____。( 4分 )
A. SQL是一种过程化语言
B. SQL采用集合操作方式
C. SQL不能嵌入到高级语言程序中
D. SQL是一种DBMS
答案 B
下列操作会去除重复数据的有() ( 共4分,漏选不得分 )
A. distinct
B. union all
C. group by
D. union
答案 A、C、D
基于下列哪些目的,我们会创建视图? ( 共4分,漏选不得分 )
A. 增强安全性
B. 采用一个简化的形式来显示数据
C. 改善性能
D. 保存经常执行的查询操作的结果集
答案 A、B
以下哪些操作可能引起排序 ( 共4分,漏选不得分 )
A. order by
B. group by
C. distinct
D. minus
E. union
答案 A、B、C、D、E
将字符串'a1'变成'a',可以使用以下函数实现( ) ( 共4分,漏选不得分 )
A. trim
B. replace
C. instr
D. lpad
答案 A、B、D
关于视图的描述,哪项是错误的( ) ( 共4分,漏选不得分 )
A. 在视图上不能建立触发器
B. 普通视图不能被用来修改数据
C. 对于视图的查询操作不能包含子查询
D. 如果查询语句经常被调用,视图能节省时间和开销
答案 A、C、D
关系型数据采用哪种方式解决并发引起的冲突( )( 4分 )
A. 锁机制 B. 索引 C. 表分区 D. 主外键
答案 A
哪个SQL查询将显示来自名为”Employee“的表格的随机行?( 4分 )
A. SELECT RAND(*) FROM Employee;
B. SELECT * FROM Employee ORDER BY RAND();
C. SELECT RAND() FROM Employee;
D. SELECT RAND(N) FROM Employee;
答案 B
查看下面ORD_ITEMS表的数据:
ORD_NO ITEM_NO QTY
1 111 10
1 222 20
1 333 30
2 333 30
2 444 40
3 111 40
评估下面的查询:
SELECT item_no, AVG(qty)
FROM ord_items
HAVING AVG(qty) > MIN(qty) * 2
GROUP BY item_no;
关于上面语句的结果哪句话是正确的?( 4分 )
A. 报错,因为HAVING子句应该放在GROUP BY子句之后。
B. 报错,因为所有在HAVING子句中使用的聚合函数必须被指定到SELECT列表中。
C. 显示item_nos和他们的平均数量,平均数量要大于每组item中最小数量的两倍。
D. 显示item_nos和他们的平均数量,平均数量要大于所有item最小值的两倍。
答案 A
某个事务由两条语句组成。第一条语句被成功执行,但第二条由于违反约束而失败。此时会出现什么情况?( 4分 )
A. 整个事务都会回滚
B. 第二条语句执行结果会被回滚,第一条语句执行结果会被提交
C. 第二条语句执行结果会被回滚,第一条语句执行结果会保留,但不会提交
D. 只有违反约束的更新操作被回滚,其他结果都会被提交
E. 只有违反约束的更新操作被回滚,其他结果会保留,但不会提交
答案 C
关系数据库中,主键是()( 4分 )
A. 为标识表中唯一的实体
B. 创建唯一的索引,允许空值
C. 只允许以表中第一字段建立
D. 允许有多个主键的
答案 A
在基本SQL中不可以实现:( 4分 )
A. 定义视图 B. 并发控制 C. 定义基表 D. 查询视图和基表
答案 B
Oracle数据库中,通过()访问能够以最快的方式访问表中的一行。( 4分 )
A. 主键 B. Rowid C. 唯一索引 D. 整表扫描
答案 B
在Oracle中,关于锁,下列描述不正确的是()。( 4分 )
A. 锁用于在用户之间控制对数据的并发访问
B. 可以将锁归类为行级锁和表级锁
C. insert、update、delete语句自动获得行级锁
D. 同一时间只能有一个用户锁定一个特定的表
答案 D
事务的原子性是指( )( 4分 )
A. 事务一旦提交,对数据库的改变是永久的
B. 事务中的所有操作要么都成功,要么都失败
C. 一个事务内部的操作及使用的数据对并发的其他事务是隔离的
D. 事务必须使数据库从一个一致性状态变到另一个一致性状态
答案 B
下面对SQL语句关健字union的描述正确的是( )( 4分 )
A. 任何查询语句都可以用union来连接
B. union只连接结果集完全一样的查询语句
C. union 是筛选关健词,对结果集再进行操作
D. union 可以连接结果集中数据类型个数相同的多个结果集
答案 D
与amount between 1 and 10 等价的语句是 :amount >= 1 and amount <= 10
表A有一个主键(字段client_id),将表B的数据插入表A时,报错违反唯一约束,造成该报错的原因有( ) ( 共4分,漏选不得分 )
A. B表的client_id字段含有空值
B. B表的client_id字段值存在重复
C. A表的client_id字段有值存在于B表中
D. B表的client_id字段有值存在于A表中
答案 B、C、D
在数据库中清空A表的数据,下列命令正确的有() ( 共4分,漏选不得分 )
A. drop table A
B. delete from A
C. truncate table A
D. remove table A
答案 B、C
下列哪些约束要求使用索引? ( 共4分,漏选不得分 )
A. not null
B. primary key
C. unique
D. check
答案 B、C
事务的特性有( ) ( 共4分,漏选不得分 )
A. 原子性 B. 一致性 C. 隔离性 D. 永久性
答案 A、B、C、D
🌞三、阶段3:测试基础
🌊单元测试+测试基础
设计测试用例使得被测试代码块的所有分支至少被执行一次,它满足的覆盖标准为( )。( 5分 )
A. 条件覆盖
B. 路径覆盖
C. 语句覆盖
D. 判定覆盖
答案 D
下列关于白盒测试与黑盒测试的区别,正确的是?( 5分 )
A. 白盒测试侧重于程序结构,黑盒测试侧重于功能。
B. 黑盒测试比白盒测试应用更广泛。
C. 白盒测试可以使用测试工具,黑盒测试不能使用工具。
D. 白盒测试需要程序参与,黑盒测试不需要。
答案 A
根据下面这段程序,使用逻辑覆盖法进行测试,请问哪一组关于(a,b,c)的输入值可以达到100%语句覆盖?
int func(int a, int b, int c)
{
int k = 1;
if ((a > 0) && (b < 0))
{
if (a + c > 0)
{
k = k + 10;
}
else
{
k = k + 100;
}
}
else
{
k = k + 1000;
}
return k;
}
A. (a,b,c)=(-3,6,9)、(3,-6,-9)、(3,6,-9)
B. (a,b,c)=(6,-6,-9)、(3,-6,-9)、(3,6,-9)
C. (a,b,c)=(3,-6,9)、(3,-6,-9)、(3,6,-9)
D. (a,b,c)=(3,-6,9)、(9,-6,3)、(3,6,-9)
答案 C
考虑下面给出的伪码。判定覆盖所需的最少测试用例数是多少?
READ X
READ Y
IF "X > Y"
PRINT X is greater that Y
ENDIF( 5分 )
A. 4
B. 1
C. 3
D. 2
答案 D
一个店主卖台式机。最低订购量为10台。订购量达到200或更高时可享受40%的折扣优惠。你是一名测试人员,要求你使用各种值针对订购的台式机数目准备测试用例。 哪个选项包含会在实现边界值分析后产生的三个测试输入?( 5分 )
A. 198.199.200
B. 9.10.11
C. 14.13.15
D. 9.10.199
答案 D
下列关于条件覆盖能够发现的错误,哪一条是不正确的?( 5分 )
A. 发现条件中包含的关系算子错误。
B. 发现条件中包含的接口错误。
C. 发现条件中包含的布尔变量错误。
D. 发现条件中包含的算数表达式错误。
答案 B
对于软件测试的原则描述不正确的是( 5分 )
A. 对系统进行完全的测试
B. 所有的测试都应追溯到用户的需求
C. 尽早地和不断地进行软件测试
D. 尽量增加探索性测试,补充设计不周密的测试用例
答案 A
在软件生命周期的哪一个阶段,软件缺陷修复费用最低( 5分 )
A. 编码
B. 产品发布
C. 需求分析(编制产品说明书)
D. 设计
答案 C
根据下面这段程序,使用逻辑覆盖法进行测试,请问哪一组关于(a,b,c)的输入值可以达到100%语句覆盖?
int func(int a, int b, int c)
{
int k = 1;
if ((a > 0) || (b < 0))
{
if (a + c > 0)
{
k = k + l;
}
else
{
k = k + 2;
}
}
else
{
k = k + 3;
}
if (c > 0)
{
k = k + 4;
}
return k;
}
A. (a,b,c)=(1,-2,-3)、(-1,2,3)、(-3,-2,-1)
B. (a,b,c)=(1,2,-3)、(-1,2,3)、(-3,-2,-1)
C. (a,b,c)=(1,2,3)、(-1,2,3)、(-3,-2,-1)
D. (a,b,c)=(1,2,-3)、(-1,2,-3)、(-3,-2,-1)
答案 C
以下关于软件安全测试说法正确的是()( 5分 )
A. 软件安全测试就是黑盒测试
B. FUZZ测试是经常采用的安全测试方法之一
C. .软件安全测试关注的是软件的功能
D. 软件安全测试可以发现软件中产生的所有安全问题
答案 B
以下说法不正确的是( 5分 )
A. β测试是由软件的多个用户在实际使用环境下进行的测试
B. 可以发布具有配置缺陷的软件产品
C. 测试组负责软件质量
D. 单元测试又称为模块测试,是针对软件测试的最小单位―程序模块进行正确性检验的测试工作
答案 C
根据下面这段程序,使用逻辑覆盖法进行测试,请问哪一组关于(l,m,n)的输入值可以达到100%判定-条件覆盖?
int func(int l, int m, int n)
{
int k = 1;
if ((l > 0) || (m < 0) || (l + n > 0))
{
k = k + l;
}
else
{
k = k + m;
}
if (n > 0)
{
k = k + n;
}
return k;
}
A. (l,m,n)=(7,9,-1)、(2,6,5)
B. (l,m,n)=(4,7,2)、(-3,-4,6)
C. (l,m,n)=(3,-6,9)、(-3,8,-4)
D. (l,m,n)=(5,9,-2)、(-4,8,3)
答案 C
下列关于mock的理解错误的是?( 5分 )
A. mock可以解除第三方的依赖调用,达到独立测试的目的。
B. mock代码不是真实测试代码,编写mock代码会降低测试效率。
C. 被调用的接口未开发好,就可以采用mock的方法来屏蔽。
D. 测试过程中碰到复杂对象难以实例化,优先考虑mock的方式用虚对象代替。
答案 B
在划分了等价类后,首先需要设计一个案例覆盖()有效等价类( 5分 )
A. 尽可能多的 B. 2个 C. 等价类数量-1个 D. 1个
答案 A
根据下面这段程序,使用逻辑覆盖法进行测试,请问哪一组关于(a,b,c)的输入值可以达到100%判定-条件覆盖?
int func(int a, int b, int c)
{
int k = 0;
if ((a + b > 0) && (a + c > 0) && (b + c < 0))
{
k = 10;
}
return k;
}
A. (a,b,c)=(1,2,3)、(-5,-4,3)
B. (a,b,c)=(1,2,3)、(-4,-3,5)
C. (a,b,c)=(5,3,-4)、(-3,2,1)
D. (a,b,c)=(2,3,4)、(5,4,-3)
答案 C
根据下面这段程序,使用逻辑覆盖法进行测试,请问哪一组关于(a,b)的输入值可以达到100%条件覆盖?
int func(int a, int b)
{
int c = 0;
if ((a > 1) && (b < 10))
{
c = a - b;
}
if ((a == 2) && (b > 20))
{
c = a + b;
}
return c;
}
A. (a,b)=(1,0)、(0,21)
B. (a,b)=(3,0)、(0,31)
C. (a,b)=(2,0)、(0,21)
D. (a,b)=(2,0)、(0,11)
答案 C
下列陈述正确的是?( 5分 )
A. 路径覆盖是最强的覆盖,每个方法必须使用路径覆盖法
B. 如果能做到穷举测试用例,便可发现程序中的全部错误
C. 猜测错误也是一种测试方法
D. 语句覆盖达到100%,则分支(判定)覆盖也应该达到100%
答案 D
根据下面这段程序,使用逻辑覆盖法进行测试,请问哪一组关于(x,y)的输入值可以达到100%条件组合覆盖?
void Sort(int x, int y)
{
int k = 0;
if (x > 80 && y > 100)
{
k = x + y;
}
else
{
k = x - y;
}
return k;
}
A. (x,y)=(100,200)、(80,100)、(100,80)、(60,200)
B. (x,y)=(90,400)、(60,120)、(100,100)、(60,200)
C. (x,y)=(120,120)、(60,100)、(100,100)、(90,400)
D. (x,y)=(100,100)、(70,70)、(100,80)、(60,120)
答案 A
下列哪个是不常见的mock场景?( 5分 )
A. 工具类中的静态方法
B. 其他接口中的方法
C. 构造方法
D. 复杂对象
答案 C
下列对单元测试的理解错误的有哪些?(多选) ( 共5分,漏选不得分 )
A. 单元测试是测试同学的事,开发应该管好自己写的代码,不应该参与测试。
B. 单元测试的代码需要不断维护,以配合最新版本的源代码。
C. 做好单元测试能够最大限度地规避线上故障。
D. 单元测试的代码是多余的,和源码捆绑在一起还会大大增加代码体量。
答案 A、D
关于测试和调试哪个陈述不正确?()( 5分 )
A. 测试以已知条件、用户定义的程序开始,具有可预测的结果,而调试则以可能未知的条件开始,而且结果不可预测,除非具有统计数据
B. 测试的目标是显示有无错误,而调试的目标是定位错误并消除它
C. 软件调试的目的是找出错误所在并改正之
D. 测试是一个逐行执行代码/脚本的过程(白盒测试),旨在发现错误或修复缺陷。调试是一个从用户角度寻找缺陷的过程(黑盒测试)
答案 D
一个JUnit4 的单元测试用例中,注解的执行顺序错误的是?( 5分 )
A. @BeforeClass –> @Before –> @Ignore –> @Test –> @After –> @AfterClass
B. @Before –> @Test –> @After
C. @BeforeClass –> @Before –> @Test –> @After –> @AfterClass
D. @Before –> @BeforeClass –> @Test –> @AfterClass –> @After
答案 D
设计测试用例使得被测试代码块的所有分支至少被执行一次,它满足的覆盖标准为( )。( 5分 )
A. 路径覆盖
B. 条件覆盖
C. 语句覆盖
D. 判定覆盖
答案 D
根据下面这段程序,使用逻辑覆盖法进行测试,请问哪一组关于(l,m,n)的输入值可以达到100%判定覆盖?
int func(int l, int m, int n)
{
int k = 1;
if ((l > 0) && (m < 0) && (l + n > 0))
{
k = k + l;
}
else
{
k = k + m;
}
if (n > 0)
{
k = k + n;
}
return k;
}
A. (l,m,n)=(4,7,2)、(-3,-4,6)
B. (l,m,n)=(3,6,9)、(-3,-8,-4)
C. (l,m,n)=(5,-9,-2)、(-4,8,3)
D. (l,m,n)=(7,9,-1)、(2,6,5)
答案 C
根据下面这段程序,使用逻辑覆盖法进行测试,请问哪一组关于(a,b,c)的输入值可以达到100%条件覆盖?
int func(int a, int b, int c)
{
int k = 0;
if ((a + b > 0) && (a + c > 0) && (b + c < 0))
{
k = 10;
}
return k;
}
A. (a,b,c)=(1,2,3)、(-5,-4,3)
B. (a,b,c)=(4,3,2)、(5,-4,3)
C. (a,b,c)=(2,3,4)、(5,4,-3)
D. (a,b,c)=(1,2,3)、(-4,-3,5)
答案 A