⑷?
程序中的错误:?
①语句“IF?WORD=KEYWORD”里的变量“WORD”没有预先赋值。?②程序中没有预先输入T的值?③?“N=0”应该是“MATCH=0”?4.?回答下列问题:?
(1)?什么是模块测试和集成测试?它们各有什么特点??
答:模块测试是对每个单独的模块,分别用黑盒和白盒测试技术,测试它的功能是否正确,检查模块控制结构中的特定路径并发现最大数量的错误。其特点是:主要应用白盒测试的技术,对多个模块的测试可以并发的进行。?
集成测试是把模块装配在一起形成完整的软件包,在装配的同时进行测试。特点是:可能发生接口问题。?
(2)假设有一个由1000行FORTRAN语句构成的程序(经编以后大约有5000条机器指令)估计在对它进行测试期间将发现多少个错误?为什么??答:月25至100个错误,美国的一些统计数字告诉我们通常这个比值在~之间,也就是说,测试之前每1000条指令中大约有5~20个错误。假设测试之前每1000条指令中有10个错误,则估计对它进行测试期间将发现的错误数为:5000*10/1000=50。? (3)?设计下面伪码程序的语句覆盖和条件覆盖测试用例:?
START?INPUT(A,B,C)?IF?A>5???THEN?X=10?ELSE?X=1?END?IF?IF?B>10???THEN?Y=20?ELSE?Y=2?END?IF?IF?C>15???THEN?Z=30?ELSE?Z=3?END?IF?PRINT(X,Y,Z)?STOP
答:此程序的语句覆盖用例:①A=5,B=10,C=15;②A=6,B=11,C=16?条件覆盖用例为:①A=5,B=10,C=15;②A=6,B=11,C=16。
7-4:回答下列问题。?
????(1)?什么是模块测试和集成测试?它们各有什么特点???
????(2)?假设有一个由1000行FORTRAN语句构成的程序(经编译后大约有5000条机器指令),估计在对它进行测试期间将发现多少个错误?为什么???
????(3)?设计下列伪码程序的语句覆盖和路径覆盖测试用例。?? 解答:?
(1)模块测试:保证每个模块能完成一个清晰定义的子功能而且和统计其他模块的功能之间没有相互依赖的关系。?
??????集成测试:又称为组装测试,就是将软件产品中各个模块组装起来,检查其接口是否存在问题,以及组装后的整体功能、性能表现??
????(2)经验表明,在类似的程序中,单位长度里的错误数ET/IT近似为常数。美国的一些统计数字表明,通常:<=ET/IT<=,即在测试之前,每1000条指令中大约有5~20个错误。所以,在对1000行FORTRAN语句构成的程序进行测试期间将发现的错误的个数大约有25~100个。? ????(3)该伪码程序对应的程序流程图如下:
从
上到下每个判定依次命名为a、b、c:??
7-8:对一个包含10000条机器指令的程序进行一个月集成测试后,总共改正了15个错误,此时MTTF=10h;经过两个月测试后,总共改正了25个错误(第二个月改正了10个错误),MTTF=15h。要求:?
????(1)?根据上述数据确定MTTF与测试时间之间的函数关系,画出MTTF与测试时间τ的关系曲线。在画这条曲线时做了什么假设??
(2)?为做到MTTF=100h,必须进行多长时间的集成测试?
(3)当集成测试结束时总共改正了多少个错误,还有多少个错误潜伏在程序中??解答:? (1)因为平均无故障时间MTTF与测试时间τ之间存在线性关系,即MTTF=a+bτ,????由于:10=a+b,15=a+2b,????得到:a=5,b=5?
???故:平均无故障时间MTTF与测试时间τ之间存在线性关系为:MTTF=5+5τ
?(2)为做到MTTF=100h,有方程:100=5+5τ,故τ=19????即必须进行19个月的集成测试。? (3)由于经验:平均无故障时间与单位长度程序中剩余的错误数成反比,故有:????MTTF=10000/(?K?*?(ET-EC(τ)?)?)?
???由于:10=10000/(?K?*?(ET-15)?),15?=?10000/(?K?*?(ET-25)?)????得到:ET=45,K=? ???当集成测试结束时,MTTF=100h,有:100?=?10000/(??*?(?45-EC(19)?)?)????故:EC(19)=42,即当集成测试结束时总共改正了42个错误,还有45-42=3个错误潜伏在程序中。??
7-9:如对一个长度为100000条指令的程序进行集成测试期间记录下下面的数据:??(a)7月1日:集成测试开始,没有发现错误。??
(b)8月2日:总共改正100个错误,此时MTTF=??(c)9月1日:总共改正300个错误,此时MTTF=2h??根据上列数据完成下列各题。??(1)估计程序中的错误总数。??
(2)为使MTTF达到10h,必须测试和调试这个程序多长时间???(3)画出MTTF和测试时间τ之间的函数关系曲线。??? 解答:?
(1)据估算平均无故障时间MTTF的公式有:??
1/K(Et/100000-100/100000)=??1/K?(Et/100000-300/100000)=2??
得:K=1000,Et=350??即程序中的错误总数达350。?? (2)当MTTF=10h时,有? 1/K?(350/100000-?Ec/100000)=10?
得:Ec=340.按七八月分测试改错进度估算,还需进行2个月的集成测试。? (3)MTTF和测试时间τ之间的函数关系曲线如下:
7-10:在测试一个长度为24000条指令的程序时,第一个月由甲、乙两名测试员各自独立测试这个程序。经一个月测试后,甲发现并改正20个错误,使MTTF达到10h。与此同时,乙发现24个错误,其中6个甲也发现了。以后由甲一个人继续测试这个程序。问:?????(1)?刚开始测试时程序中总共有多少个潜藏的错误???
????(2)?为使MTTF达到60h,必须再改正多少个错误?还需用多长测试时间??? (3)?画出MTTF与集成测试时间τ之间的函数关系曲线。? 解答:?
(1)本题中采用的是分别测试法,测试前程序中的错误总数:B0=B1*B2/bc=20*24/6=80?(2)由于经验:平均无故障时间与单位长度程序中剩余的错误数成反比,故
有:????MTTF=24000/(?K?*?(ET-EC(τ)?)?)????由于:10=24000/(?K?*?(80-20)?)????得到:K=40? ???为使MTTF达到60h,有:60?=?24000/(?40?*?(?80-EC(τ)?)?)?
???故:EC(τ)=70,即总共需要改正70个错误,由于测试员甲和乙分别测试时,测试员甲已经更正了20个错误,以后由甲一个人继续测试这个程序,因此,还需要更正70-20=50个错误。?? 补充:【复旦大学2001年博士研究生入学考试试题】某模块的程序流程图如下。试分别根据判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和路径覆盖等覆盖标准设计最少的测试用例。
相关推荐: