1. 下列不属于白盒测试的技术是 ( )
A. 语句覆盖 B. 判定覆盖 C. 边界值测试 D. 基本路径测试
正确答案:C
2. 某次程序调试没有出现预计的结果,下列( )不可能是导致出错的原因。
A. 变量没有初始化
B. 编写的语句书写格式不规范
C. 循环控制出错
D. 代码输入有误
正确答案:B
3. 代码检查法有桌面检查法. 代码走查和( )
A. 静态测试 B. 代码审查 C. 动态测试 D. 白盒测试
正确答案:B
4. 如果某测试用例集实现了某软件的路径覆盖,那么它一定同时实现了该软件的 ( )
A. 判定覆盖 B. 条件覆盖 C. 条件/判定覆盖 D. 组合覆盖
正确答案:A
5. 软件测试的局限性不包括( )
A. 因为输入/状态空间的无限性,测试不可能完全彻底。
B. 巧合性有时会导致错误的代码得到正确的结果,掩盖了问题。
C. 软件测试会导致成本增加,效益降低。
D. 软件缺陷的不确定性。
正确答案:C
6. 以下哪种测试方法不属于白盒测试技术( )
A. 基本路径测试 B. 等价类划分测试 C. 程序插桩 D. 逻辑覆盖测试
正确答案:B
7. 调试是( )
A. 发现与预先定义的规格和标准不符合的问题
B. 发现软件错误征兆的过程
C. 有计划的. 可重复的过程
D. 消除软件错误的过程
正确答案:D
8. 使用白盒测试方法时,确定测试数据的依据是指定的覆盖标准和 ( )
A. 程序的注释 B. 程序的内部逻辑 C. 用户使用说明书 D. 程序的需求说明
正确答案:B
9. 数据流覆盖关注的是程序中某个变量从其声明、 赋值到引用的变化情况,它是( )的变种。
A. 语句覆盖 B. 控制覆盖 C. 分支覆盖 D. 路径覆盖
正确答案:D
10. 如果一个判定中的复合条件表达式为(A > 1)or(B <= 3),则为了达到100%的条件覆盖率,至少需要设计多少个测试用例( )
A. 1 B. 2 C. 3 D. 4
正确答案:B
11. 一个程序中所含有的路径数与( )有着直接的关系。
A. 程序的复杂程度 B. 程序语句行数 C. 程序模块数 D. 程序指令执行时间
正确答案:A
12. 条件覆盖的目的是 ( )
A. 使每个判定中的每个条件的可能取值至少满足一次
B. 使程序中的每个判定至少都获得一次"真"值和"假"值。
C. 使每个判定中的所有条件的所有可能取值组合至少出现一次。
D. 使程序中的每个可执行语句至少执行一次。
正确答案:A
13. 软件调试的目的是( )
A. 发现软件中隐藏的错误
B. 解决测试中发现的错误
C. 尽量不发现错误以便早日提交软件
D. 证明软件的正确性
正确答案:B
14. 针对下面一个程序段:
If ((M>0) && (N = = 0))
FUCTION1;
If ((M = = 10)|| (P > 10))
FUCTION2;
其中,FUCTION1、FUCTION2均为语句块。现在选取测试用例:M=10、N=0、P=3,该测试用例满足了( )
A. 路径覆盖 B. 条件组合覆盖 C. 判定覆盖 D. 语句覆盖
正确答案:D
15. 对下面的计算个人所得税程序中,满足判定覆盖的测试用例是( )。
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. 设有一段程序如下:
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. 下列不属于白盒测试中逻辑覆盖标准的是( )
A. 语句覆盖 B. 条件覆盖 C. 分支覆盖 D. 边界值覆盖
正确答案:D
18. 在某学校的综合管理系统设计阶段,教师实体在学籍管理子系统中被称为"教师",而在人事管理子系统中被称为"职工",这类冲突描述正确的为( )
A. 语义冲突 B. 命名冲突 C. 属性冲突 D. 结构冲突
正确答案:B
1. 代码检查的方式有三种:_____、___、。
正确答案:桌面检查 代码审查 代码走查
2. 数据流分析就是对程序中数据的__________、__________及其之间的__________等进行分析的过程。
参考答案:定义 引用 依赖关系
3. ____________是逻辑覆盖标准的一种,它要求选取足够多的测试数据,使得每个判定表达式中条件的各种可能组合都至少出现一次。
参考答案:条件组合覆盖
✔
✘
✔
✘
✘
✔
1. 请为以下程序段设计测试用例集,要求分别满足语句覆盖、判定覆盖、条件覆盖、条件/判定覆盖覆盖. 条件组合覆盖。
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;
}
参考答案:略
2. 略
3. 为以下程序段设计测试用例集,要求满足条件组合覆盖
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;
}
}
正确答案:
略
4. 程序模块Function1代码如下:
(1)画出程序控制流图,计算控制流图的环路复杂度
(2)导出基本路径
(3)设计基本路径覆盖测试用例
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 }
正确答案:
略
5. 试对以下程序进行插桩,显示循环执行的次数
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;
}
}
6. 试对以下代码段进行变异,变异规则为将 “++” 替换为 “–”,然后设计测试数据,能够测试发现所有的变异点。
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;
}
}
正确答案:略