deletelist[i];
}
在这个片断中,列表的第一项(list[0])没有被删除。
a.初始化错误
b.提供文档错误
c.精确度错误
d.只有b和c
e.只有a和b
f.上述都不是
11.intlist[10];
for(inti=0;i<=10;i++)list[i]=i;
在这个片断中,循环包括了一个在list[10]上的操作,而list[10]不是数组的元素。
a.初始化错误
b.精确度错误
c.容量或溢出错误
d.a,b和c
e.上述都不是
12.floatlist[100];
floatxrange=list[99]-list[0];
for(inti=0;i<100;i++)
list[i]=(list[i]-list[0])/xrange;
在这个片断中,list[0]在第一次迭代之后被改变.数组执行完之后,数组中所有的元素都为0。
并且,没有对xrange的检查。
它可能计算到0从而引起被0除。
a.计算/精确度错误
b.初始化错误
c.容量或溢出错误
d.a,b和c
e.上述都不是
13.给定下列断言:
A1:
(T是一个数组)&(T的长度为N)&(S是一个数组)&(S的长度是N)
Aend:
(T'是一个数组)&(T'长度是N)&(∀i,0≤i≤N,T'(i)=S(i))
a.数组$S$的值被赋给了数组$T’$.
b.数组$T$的值被赋给了数组$S$.
c.数组$S$的值被加到了数组$T’$的值上。
d.数组$T$的值被加到了数组$S$的值上。
e.以上都不是。
14.假设GSCS开发的主要目标是获得一个能够尽快显示给客户的工作系统。
最好选择的测试方法是:
a.自底向上测试。
b.自顶向下测试。
c.Big-bang测试
d.a或b
e.a或c
GSCS的实现完成了,开发进入了测试阶段。
可能考考的话在下面类型中选几题
下图显示了GSCS系统的部件层次。
使用该图识别给定序列指示的测试策略。
“;”使用在测试集之间,每个测试集被表示成一个逗号分割的列表。
例如,序列{F,G};{B,F,G}意味着部件F和G先被测试,然后,部件B,F和G再被测试。
15.{J};{K};{I};{H};{G};{F};{B};{C};{D};{E};{A};{A,B,C,D,E,F,G,H,I,J,K}
a.自顶向下测试
b.自底向上测试
c.三明治测试
d.Big-bang测试
e.改良的自顶向下测试
16.{A};{A,B,C,D,E};{A,B,C,D,E,F,G,H,I,J,K}
a.自顶向下测试
b.自底向上测试
c.三明治测试
d.Big-bang测试
e.改良的自顶向下测试
17.{F};{G};{H};{I};{J};{K};{B,F,G};{C,H};{D,I};{E,J,K};{A,B,C,D,E,F,G,H,I,J,K
}
a.自顶向下测试
b.自底向上测试
c.三明治测试
d.Big-bang测试
e.改良的自顶向下测试
18.{A};{B};{C};{D};{E};{A,B,C,D,E};{F};{G};{H};{I};{J};{K};{A,B,C,D,E,F,G,H,I,J,K}
a.自顶向下测试
b.自底向上测试
c.三明治测试
d.Big-bang测试
e.改良的自顶向下测试
19.{A};{F};{G};{H};{I};{J};{K};{B,F,G};{C,H};{D,I};{E,J,K};{A,B,C,D,E,F,G,H,I,J,K}
a.自顶向下测试
b.自底向上测试
c.三明治测试
d.Big-bang测试
e.改良的自顶向下测试
20.在GSCS收银员子系统的一个部件的一个函数中,一个变量没有正确的初始化。
下列哪种类型的测试最有可能发现这个错误?
a.单元测试
b.完整性测试,就是集成测试
c.可接受性测试
d.安装测试
e.性能测试
21.部件A中的一个函数X需要一个指向整数的指针作为一个参数传递,但是部件B中对函数X的一个调用传递了一个整数值。
下列哪种类型的测试最有可能发现这个错误?
a.部件A的单元测试
b.部件A和B的完整性测试
c.性能测试
d.安装测试
e.可接受性测试
22.假设加油泵子系统允许用户选择是否打印收条,但是打印函数没有被实现。
下列哪种类型的测试最有可能发现这个错误?
a.单元测试
b.完整性测试
c.性能测试
d.可接受性测试
e.函数测试
23.报告子系统使用的一个配置文件没有放在用户环境的正确的目录下。
下列哪种类型的测试最有可能发现这个错误?
a.完整性测试
b.安装测试
c.性能测试
d.可接受性测试
e.函数测试
24.为了改正一个错误,进行了一些改变。
错误被纠正了,但是它引起了前面测试过的代码的一个错误。
下列哪种类型的测试最有可能发现这个错误?
a.单元测试
b.可接受性测试
c.衰退测试
d.性能测试
e.安装测试
25.用户对于到达汽车零件列表屏幕之前所经过的屏幕的数目不满意,这个屏幕是在使用该系统时经常被访问的。
下列哪种类型的测试最有可能发现这个缺陷?
a.完整性测试
b.安装测试
c.性能测试
d.可接受性测试
e.函数测试
26.GSCS系统包括了从第三方卖主那里得来的重用部件。
重用部件的源代码是不可得的。
下面哪种类型的测试是可行的?
a.全路径测试
b.数据流测试(根据变量定义和使用位置来选择测试路径的测试)
c.分支测试
d.黑盒测试
Tom是负责测试GSCS的经理,他关心系统的可靠性。
他决定用在代码中种植错误的方法来估计剩余的错误。
他有两个测试代码的小组。
一个小组是由David领导的。
另一个测试小组是由Daniel领导的。
假设50个错误被种植在代码中。
在David小组的测试中,70个错误被检测出来。
其中40个是种植的错误。
必考,类似,数字不同,播种错误
27.代码中依然存在的非种植的错误的百分比的Mills估计是多少?
a.10%
b.20%
c.50%
d.80%
e.从已有信息中不能够得出。
28.代码中依然存在的本身的错误的总数的Mills估计是多少?
a.7.5
b.10
c.17.5
d.30
e.37.5
f.从已有信息中不能够得出。
假设同样的代码给Daniel的测试组。
他的小组找到了50个错误。
其中35个错误也被David的小组找到了。
29.使用Daniel小组的数字,尚存在的代码本身的错误总数的Mills估计是多少?
a.17.5
b.30
c.50
d.71.5
e.从已有信息中不能够得出。
30.David组的效率是多少?
a.30%
b.50%
c.70%
d.85%
e.从已有信息中不能够得出。
31.Daniel小组的效率是多少?
a.30%
b.50%
c.70%
d.85%
e.从已有信息中不能够得出。
32.使用从两个测试组得到的数据,错误总数的估计是多少?
a.100
b.87.5
c.70
d.50
e.从已有信息中不能够得出。
33.假设39个错误被种植到一个部件中去了。
测试该部件发现了32个种植的错误,但是没有发现非种植的错误。
该部件是无错的信心级别是多少?
(书上有公式,直接代,必考)
a.78%
b.80%
c.82%
d.86%
e.以上都不是。
必考,一定要会
34.使用前面问题的数据,如果想获得90%的信心级别(置信度),在没有发现代码本身的错误的情况下,必须发现多少种植的错误才行?
a.32
b.35
c.36
d.37
e.上述都不是
35.考虑下面从GSCS归档的问题报告中摘录的内容。
下面每一项属于哪种类型的报告(矛盾或错误)?
回答错误报告或者矛盾报告。
a.“当检查零件列表时,发生了一个分段违例。
零件列表数组可能不够大,不能容纳所有的零件。
检查PartList类头”
b.“在需求文档中,2.1.5节,‘打印’选项应该包含在所有的‘文件’菜单中。
零件配置屏幕的‘文件’菜单不包括‘打印’选项”。
c.“当提交了增加零件表格以后,等待结果返回需要花费3分钟的时间。
提交表格不应该花费超过1分钟的时间”
d.“当收银员列表显示的时候,新添加的收银员不出现在列表中,检查CashierList类中的Add方法。
一个相似的问题在零件列表中也出现。
Theresa在研究零件列表中的问题。
见201号报告获得该问题的更详细信息以及她的解决方法。
”
答案3
1.f;可读的代码并不总是改善效率。
有时候,在可读性和效率之间有一个折中。
【7.1,7.2节】
2.b;通过引用传递一个变量的意思是变量的值将会被改变。
如果改变的值在函数终结后不需要并且变量的长度是小的,那么变量应该使用值传递。
3.FALSE;假设函数行为正确是不安全的,因为它只在整数上进行了测试。
对于非整数,函数可能产生错误的输出,或者因为舍入错误而引起失败。
4.a;用该函数只有一个文件可以被读和打印。
它应该可以在更一般的情况下被写。
5.b;两个循环可以被合并,从而使得该代码更有效率。
6.b;因为收银员结构的销售数组很大,给SumSales的参数应该用引用传递来改善效率。
7.e
8.c;这段代码的格式使得它容易被误解。
它隐藏了一个错误在代码中。
9.c;因为n是一个整数,表达式2/(n-1)将计算到一个整数,给出一个不正确的答案【8.1节】
10.e;代码不做注释中描述的事情。
变量i被不正确的初始化了。
【8.1节】
11.c;list[10]超过了定义的数组的边界【8.1节】
12.a;数组的第一个元素(list[0])在循环的第一次迭代中被覆盖了。
覆盖了的值在后来的迭代中被使用。
当循环终结时数组的每个元素都将是0。
计算不检查xrange=0,这将会导致被零除的错误。
这两个错误都是计算错误。
【8.1节】
13.a;【8.3节】
14.b;使用自底向上和big-bang方法,在工作程序可以给用户看之前,整个系统必须被建立。
使用自顶向下测试,在整个系统建立之前,可以使用stubs和drivers来测试系统。
【8.4节】
15.d;big-bang测试【8.4节】
16.a;自顶向下测试【8.4节】
17.b;自顶向下测试【8.4节】
18.e;改良的自顶向下测试【8.4节】
19.c;三明治测试【8.4节】
20.a;单元测试;这个错误可以被隔离到单独的部件的一个单独的函数中。
单元测试应该可以发现这种类型的错误。
21.b;因为这个错误包括了两个部件的接口,部件A和B的完整性测试可以检查出这个错误。
部件A的单元测试不会发现该错误,因为错误存在于部件B中。
【8.2节】
22.e;函数测试用于确定在需求规范中描述的函数是否在系统中被实现了。
【8.2节】
23.b;安装测试的目的是确保系统在安装后功能正常【8.2节】
24.c;衰退测试的目的是保证对系统的更改没有否定前面测试的效果。
【9.1节】
25.d;可接受性测试是测试系统与用户的需求是否一致。
【8.2节】
26.d;因为代码不可得,代码的结构在测试中未知。
在这种情况下,黑盒测试是唯一可行的选项。
【8.2节】
27.b;本身仍然有的错误的百分比等于依然存在的种植错误的百分比。
(1-40/50)=.2【8.8节】
28.a;【8.8节】
29.e;第二个测试组的种植的错误数没有给定。
30.c;效率=重叠错误/第二个测试组找到的错误。
效率=35/50=70%【8.8节】
31.b;效率=35/70=50%【8.8节】
32.a;全部错误=35/(.7*.5)=100【8.8节】
33.b;
【8.8节】
34.c;
【8.8节】
35.
a.错误的报告;问题的描述包括了从开发者的观点得来的信息。
【9.8节】
b.矛盾报告;这个描述说明需求和实现间的不同。
【9.8节】
c.矛盾报告;这个描述说明了从用户观点看到的一个问题。
【9.8节】
d.错误报告;描述的问题包括了从开发者观点得到的信息【9.8节】