软件工程七章以前复习与习题

上传人:san****019 文档编号:70880179 上传时间:2019-01-18 格式:PPT 页数:55 大小:905.81KB
返回 下载 相关 举报
软件工程七章以前复习与习题_第1页
第1页 / 共55页
软件工程七章以前复习与习题_第2页
第2页 / 共55页
软件工程七章以前复习与习题_第3页
第3页 / 共55页
软件工程七章以前复习与习题_第4页
第4页 / 共55页
软件工程七章以前复习与习题_第5页
第5页 / 共55页
点击查看更多>>
资源描述

《软件工程七章以前复习与习题》由会员分享,可在线阅读,更多相关《软件工程七章以前复习与习题(55页珍藏版)》请在金锄头文库上搜索。

1、第七章 复习内容与习题要点 1、有关测试的重要概念要搞清楚,如单元测试、集成测试、验验测试、渐增式测试,非渐增式测试等概念要准确理解; 2、白盒测试技术的逻辑覆盖方法必须一一掌握(如语句、判定、条件、判定/条件、条件组合、路径覆盖); 3、白盒测试技术的(控制结构测试)基本路径测试必须掌握; 4、黑盒测试中的等价分类与边界值分析方法的综合使用要掌握; 5、软件可靠性的基本概念和计算要掌握,布置的习题要独立做; 6、熟悉编码阶段的有关原则和风格。,7-4 回答下列问题: (2)假设有一个由1000行FORTRAN语句构成的程序(经编译后大约有5000条机器指令),估计对其进行测试期间将发现多少个

2、错误?为什么? (3)设计下列伪码程序的语句覆盖和路径覆盖测试用例: START INPUT (A,B,C) IF A5 THEN X=10 ELSE X=1 END IF IF B10 THEN Y=20 ELSE Y=2 END IF IF C15 THEN Z=30 ELSE Z=3 END IF PRINT (X,Y,Z) STOP,7-4(2)答:经验表明,在类似的程序中,单位长度里的错误数ET/IT近似为常数。美国的一些统计数字告诉我们,通常 0.5X10-2 ET/IT 2X10-2 也就是说,在测试之前每1000条指令中大约有520个错误。 假设在该程序的每1000条指令中有1

3、0个错误,则估计在对它进行测试期间 将发现的错误数为 5000X10/1000=50 (个),7-4(3)答: 语句覆盖的测试用例 因为每个判定表达式为真或为假时均有赋值语句,为了使每个语句都至少执行一次,总共需要两组测试数据,以便使得每个判定表达式取值为真或为假各一次。下面是实现语句的典型测试用例: 使3个判定表达式之值全为假 输入:A=1,B=1,C=1 预期的输出:X=1,Y=2,Z=3 使3个判定表达式之值全为真 输入:A=20,B=40,C=60 预期的输出:X=10,Y=20,Z=30 路径覆盖的测试用例 本程序共有8条可能的执行通路,为做到路径覆盖总共需要8组测试数据。下面是实现

4、路径覆盖的典型测试用例:, 3个判定表达式之值全为假 输入:A=1,B=1,C=1 预期的输出:X=1,Y=2,Z=3 3个判定表达式依次为假、假、真 输入:A=1,B=1,C=60 预期的输出:X=1,Y=2,Z=30 3个判定表达式依次为假、真、假 输入:A=1,B=40,C=1 预期的输出:X=1,Y=20,Z=3 3个判定表达式依次为假、真、真 输入:A=1,B=40,C=60 预期的输出:X=1,Y=20,Z=30, 3个判定表达式依次为真、假、假 输入:A=20,B=1,C=1 预期的输出:X=10,Y=2,Z=3 3个判定表达式依次为真、假、真 输入:A=20,B=1,C=60

5、预期的输出:X=10,Y=2,Z=30 3个判定表达式依次为真、真、假 输入:A=20,B=40,C=1 预期的输出:X=10,Y=20,Z=3 3个判定表达式全为真 输入:A=20,B=40,C=60 预期的输出:X=10,Y=20,Z=30,补充习题:使用基本路径测试方法,设计测试下面伪代码程序的测试用例: START INPUT(A,B,C,D) IF(A0)AND (B0) THEN X=A+B ELSE X=A-B END IF(CA)OR(DB) THEN Y=C-D ELSE Y=C+D END PRINT(X,Y) STOP,使用基本路径测试方法,首先绘出流图,代码语句编号如下

6、: 1: START INPUT(A,B,C,D) 2: IF(A0) 3: AND (B0) 4: THEN X=A+B 5: ELSE X=A-B 6: END 7: IF(CA) 8: OR(DB) 9: THEN Y=C-D 10:ELSE Y=C+D 11:END 12:PRINT(X,Y) STOP,解:用基本路径测试方法设计测试用例的过程,有下述4个步骤: 根据过程设计的结果画出流图,1: START INPUT(A,B,C,D) 2: IF(A0) 3: AND (B0) 4: THEN X=A+B 5: ELSE X=A-B 6: END 7: IF(CA) 8: OR(DB

7、) 9: THEN Y=C-D 10:ELSE Y=C+D 11:END 12:PRINT(X,Y) STOP,计算流图的环形复杂度 下述3种方法可以算出上图所示流图的环形复杂度为5。 该流图共有15条边,12个结点,所以环形复杂度为15-12+2=5 该流图共有5个区域,因此环形复杂度为5。 该流图中共有4个判定结点,因此环形复杂性度为4+1=5,确定线性独立路径的基本集合 由于它的环形复杂度为5,因此共有5条独立路径,分别取为: 路径1:12346791112 路径2:1256791112 路径3:12356791112 路径4:123467891112 路径5:1234678101112

8、,设计可强制执行基本路径集合中每条路径的测试用例 执行路径1:1-2-3-4-6-7-9-11-12(两个判定表达式全为真) 输入:A=1,B=1,C=2,D=2(任意) 预期的输出:X=2,Y=0 执行路径2 :1-2-5-6-7-9-11-12 (第一个判定表达式为假,第二个判定表达式为真) 输入:A=0,B=1(任意),C=2,D=0(任意) 预期的输出:X=-1,Y=2,1: START INPUT(A,B,C,D) 2: IF(A0) 3: AND (B0) 4: THEN X=A+B 5: ELSE X=A-B 6: END 7: IF(CA) 8: OR(DB) 9: THEN

9、Y=C-D 10:ELSE Y=C+D 11:END 12:PRINT(X,Y) STOP,执行路径3:1-2-3-5-6-7-9-11-12(第一个判定表达式为假,第二个判定表达式为真) 输入:A=1,B=0,C=2,D=0(任意) 预期的输出:X=1,Y=2 执行路径4:1-2-3-4-6-7-8-9-11-12(两个判定表达式全为真) 输入:A=1,B=1,C=0,D=-1 预期的输出:X=2,Y=1 执行路径5:1-2-3-4-6-7-8-10-11-12(第一个判定表达式为真,第二个判定表达式为假) 输入:A=1,B=1,C=0,D=2 预期的输出:X=2,Y=2,1: START

10、INPUT(A,B,C,D) 2: IF(A0) 3: AND (B0) 4: THEN X=A+B 5: ELSE X=A-B 6: END 7: IF(CA) 8: OR(DB) 9: THEN Y=C-D 10:ELSE Y=C+D 11:END 12:PRINT(X,Y) STOP,7-5 某图书馆有一个使用CRT终端的信息检索系统,该系统有下列4个基本检索命令(见书175页)。 要求: (1) 设计测试数据以全面测试系统的正常操作; (2) 设计测试数据以测试系统的非正常操作。,7-5解:测试系统正常操作的测试数据 顺序执行下列3个命令: b(KEYWORD) s(L) d(N) 其

11、中,KEYWORD是正确的关键字;L是执行命令b后在屏幕上显示的约20个行号中的一个(至少应该使L分别为第一个、最后一个和中央一个行号);N是执行命令s后列出的索引号中的一个(至少应该使N分别为第一个、最后一个和中央一个索引号)。 针对若干个不同的KEYWORD重复执行上述命令序列。,顺序执行下列2个命令: f(NAME) d(N) 其中,NAME是已知的作者姓名;N是执行命令f后列出的索引号中的一个(至少应该使N分别为第一个、最后一个和中央一个索引号)。 针对若干个不同的NAME重复执行上述命令序列。,测试系统非正常操作的测试数据 用过长的关键字作为命令b的参数:例如,b(reliabili

12、ty software and hardware combined) 预期的输出:系统截短过长的关键字,例如,上列命令中的关键字可能性被截短为reliability software 用不正确的关键字作为命令b的参数:例如,b(AARDVARK) 预期的输出:显示出最接近的匹配结果,例如,执行上列命令后可能显示 1AARON,JULES(book) 用比执行命令b后列出的最大行号大1的数作为命令s的参数 预期的输出:“命令s的参数不在行号列表中” 用数字和标点符号作为命令b和命令f的参数 预期的输出:“参数类型错” 用字母字符作为命令s和命令d的参数 预期的输出:“参数类型错”,用0和负数作为

13、命令s和命令d的参数 预期的输出:“参数数值错” 命令顺序错:例如,没执行命令b就执行命令s,或没执行命令s就执行命令d 预期的输出:“命令顺序错” 命令语法错:例如,遗漏命令名b、s、d或f;或命令参数没用圆括号括起来 预期的输出:“命令语法错” 命令参数空:例如,b()、s()、d或f() 预期的输出:系统提供默认参数或给出出错信息 使用拼错了的作者姓名作为f的参数 预期的输出:“找不到这们作者的著作”,7-8 对一个包含10000条机器指令的程序进行一个月集成测试后,总共改正了15个错误,此时MTTF=10h;经过两个月测试后,总共改正了25个错误(第二个月改正了10个错误),MTTF=

14、15h。 要求: (1) 根据上述数据确定MTTF与测试时间之间的函数关系,画出MTTF与测试时间t的关系曲线。在画这条曲线时做了什么假设? (2) 为做到MTTF=100h,必须进行多长时间的集成测试?当集成测试结束时总共改正了多少个错误,还有多少个错误潜伏在程序中?,7-8解:因为MTTF与测试时间成正比,不妨假设在程序的平均无故障时间MTTF和测试时间t之间存在线性关系,即 MTTF=a+bt 根据题意可知,当t=1时MTTF=10,当t=2时MTTF=15,把这些已知的数据代入上列方程后行到下列的联立方程式 解上列联立方程得出a=5,b=5 因此,MTTF与t之间有下列关系 MTTF=

15、5+5t 根据上列方程式画出平均无故障时间MTTF与测试时间t的关系曲线,如下图所示:,MTTF,为使MTTF=100h需要的测试时间可由下面的方程式得出 100=5+5t 解上列方程式得 t=19 即,需要进行19个月的集成测试。 已知平均无故障时间与单位长度程序中剩余的错误数成反比,具体到本题程序即有 根据题意可知,改正了15个错误后MTTF=10,改正了25错误后MTTF=15,把这此已知的数据代入上列方程之后,得到下列的联立方程式,MTTF=,解上列联立方程式得到ET=45,K=33.33 从而有:MTTF= 已知当19个月的集成测试结束时MTTF=100h,带入上式 100=1000

16、0/33.33(45-EC(19) 所以 EC(19 )=42 也就是说,当集成测试结束时总共改正了42个错误,还有45-42=3个错误潜伏在程序中。,7-10 在测试一个长度为24000条指令的程序时,第一个月由甲、乙两名测试员各自独立测试这个程序。经一个月测试后,甲发现并改正20个错误,使MTTF达到10h。与此同时,乙发现24个错误,其中6个甲也发现了。以后由甲一个人继续测试这个程序。问: 1)刚开始测试时程序中总共有多少个潜藏的错误? 2)为使MTTF达到60h,必须再改正多少个错误?还需用多长测试时间? 3)画出MTTF与集成测试时间t之间的函数关系曲线。,7-10答:本题中采用了分别测试法,因此,可以估算出刚开始测试时程序中错误总数为 ET=24/6X20=80 因为 MTTF=IT/K(E

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号