VIP专享41结构性测试控制流测试课件

上传人:无*** 文档编号:232431161 上传时间:2023-09-19 格式:PPT 页数:92 大小:1.64MB
收藏 版权申诉 举报 下载
VIP专享41结构性测试控制流测试课件_第1页
第1页 / 共92页
VIP专享41结构性测试控制流测试课件_第2页
第2页 / 共92页
VIP专享41结构性测试控制流测试课件_第3页
第3页 / 共92页
资源描述:

《VIP专享41结构性测试控制流测试课件》由会员分享,可在线阅读,更多相关《VIP专享41结构性测试控制流测试课件(92页珍藏版)》请在装配图网上搜索。

1、 结构性测试(结构性测试(1 1)控制流测试控制流测试结构性测试n结构性测试方法的突出特点,是它们都基于被测程序的源代码,而不是基于定义n由于这种绝对化的基础,结构性测试方法支持严格定义、数据分析和精确度量n结构性测试方法大致包括两类:p基于控制流(或基于路径)的测试:以程序图为基础(结点表示语句片断,边表示控制流),通过图论的一些知识完全从程序的结构来定义结构性的测试,而不考虑代码本身的内在关系p基于数据流的测试:从代码本身的内在关系出发进行的一种结构性的测试内容n逻辑覆盖p语句覆盖p判定覆盖(分支覆盖)p条件覆盖p判定-条件覆盖p条件组合覆盖p路径覆盖nDD路径n基路径测试例:实现一个简单

2、的数学运算1.int a,b;2.double c;3.scanf(“%d,%d,%f”,&a,&b,&c)4.If(a0 And b0)5.c=c/a;6.If(a1 or c1)7.c=c+1;8.c=b+c语句覆盖n基本思想是:设计若干测试用例,运行被测程序,使程序中每个可执行语句至少执行一次。1n只需设计一个测试用例:a=2,b=1,c=6,即达到了语句覆盖。语句覆盖(续)语句覆盖(续)n优点:可以很直观地从源代码得到测试用例,无须细分每条判定表达式。n缺点:语句覆盖是最弱的逻辑覆盖。对程序的逻辑覆盖很少,只关心判定表达式的值,而没有分别测试判定表达式中每个条件取不同值时的情况。(这种

3、方法仅仅针对程序逻辑中显式存在的语句,但对于隐藏的条件是无法测试的。比如在if结构中若源代码没有给出else后面的执行分支,那么语句覆盖测试就不会考虑这种情况。)内容n逻辑覆盖p语句覆盖p判定覆盖(分支覆盖)p条件覆盖p判定-条件覆盖p条件组合覆盖p路径覆盖nDD路径n基路径测试判定覆盖n基本思想是:设计若干测试用例,运行被测程序,使得程序中每个判断的取真分支和取假分支至少经历一次,即判断真假值均曾被满足。判定覆盖(续)na=2,b=1,c=6可覆盖判断M的Y分支和判断Q的Y分支na=-2,b=-1,c=-3可覆盖判断M的N分支和判断Q的N分支n这两组测试用例可覆盖所有判定的真假分支判断M判断

4、Q判定覆盖(续)na=1,b=1,c=-3 可覆盖判断M的Y分支和判断Q的N分支na=1,b=-2,c=3可覆盖判断M的N分支和判断Q的Y分支n同样的这两组测试用例也可覆盖所有判定的真假分支判断M判断Q判定覆盖(续)n优点:判定覆盖具有比语句覆盖更强的测试能力。同样判定覆盖也具有和语句覆盖一样的简单性,无须细分每个判定就可以得到测试用例。n缺点:往往大部分的判定语句是由多个逻辑条件组合而成,若仅仅判断其整个最终结果,而忽略每个条件的取值情况,必然会遗漏部分测试路径。判定覆盖仍是弱的逻辑覆盖。内容n逻辑覆盖p语句覆盖p判定覆盖(分支覆盖)p条件覆盖p判定-条件覆盖p条件组合覆盖p路径覆盖nDD路

5、径n基路径测试条件覆盖n基本思想是:设计若干测试用例,执行被测程序以后要使每个判断中每个条件的可能取值至少满足一次。1条件覆盖(续)n判断M表达式:设条件 a0 取真 记为 T1 假 F1 条件 b0 取真 记为 T2 假 F2n判断Q表达式:设条件 a1 取真 记为 T3 假 F3 条件 c1 取真 记为 T4 假 F4判断判断M判断判断Q条件覆盖(续)测试用例覆盖条件具体取值条件a=2,b=-1,c=-2T1,F2,T3,F4a0,b1,c=1a=-1,b=2,c=3F1,T2,F3,T4a0,a1它们覆盖了判定它们覆盖了判定M M的的N分支和判断分支和判断Q Q的的Y分支分支我们用条件覆

6、盖设计的思想就是让测试用例能覆盖我们用条件覆盖设计的思想就是让测试用例能覆盖T1、T2、T3、T4、F1、F2、F3、F4判断判断M判断判断Q条件覆盖(续)n优点:增加了对条件判定情况的测试,增加了测试路径。n缺点:条件覆盖不一定包含判定覆盖。例如,我们刚才设计的用例就没有覆盖判断M的Y分支和判断Q的N分支。条件覆盖只能保证每个条件至少有一次为真,而不考虑所有的判定结果。内容n逻辑覆盖p语句覆盖p判定覆盖(分支覆盖)p条件覆盖p判定-条件覆盖p条件组合覆盖p路径覆盖nDD路径n基路径测试判定-条件覆盖n基本思想是:设计足够的测试用例,使得判断条件中的所有条件可能取值至少执行一次,同时,所有判断

7、的可能结果至少执行一次。1判断M判断Q判定-条件覆盖(续)n按照判定-条件覆盖的要求,我们设计的测试用例要满足如下条件:1.所有条件可能取值至少执行一次;2.所有判断的可能结所有判断的可能结果至少执行一次。果至少执行一次。要满足要满足T1、T2、T3、T4F1、F2、F3、F4判定-条件覆盖(续)测试用例覆盖条件覆盖判断a=2,b=1,c=6T1,T2,T3,T4M的Y分支和Q的Y分支a=-1,b=-2,c=-3F1,F2,F3,F4M的N分支和Q的N分支判断M判断Q要满足要满足T1、T2、T3、T4F1、F2、F3、F4判定-条件覆盖(续)n优点:能同时满足判定、条件两种覆盖标准。n缺点:判

8、定/条件覆盖准则的缺点是未考虑条件的组合情况。内容n逻辑覆盖p语句覆盖p判定覆盖(分支覆盖)p条件覆盖p判定-条件覆盖p条件组合覆盖p路径覆盖nDD路径n基路径测试条件组合覆盖n基本思想是:设计足够的测试用例,使得所有可能的条件取值组合至少执行一次1条件组合覆盖(续)n按照条件组合覆盖的基本思想,对于前面的例子,我们把每个判断中的所有条件进行组合,设计组合条件如表所示,而我们设计的测试用例就要包括所有的组合条件。编号覆盖条件取值判定条件取值具体条件取值1 T1,T2M取Y a0,b02 T1,F2M取N a0,b=03 F1,T2M取N a04 F1,F2M取N a=0,b1,c16 T3,F

9、4Q取Y a1,c=17 F3,T4Q取Y a18 F3,F4Q取N a=1,c=1条件组合覆盖(续)测试用例覆盖条件覆盖判断覆盖组合a=2,b=1,c=6T1,T2,T3,T4M取Y分支,Q取Y分支1,5a=2,b=-1,c=-2T1,F2,T3,F4M取N分支,Q取Y分支2,6a=-1,b=2,c=3F1,T2,F3,T4M取N分支,Q取Y分支3,7a=-1,b=-2,c=-3 F1,F2,F3,F4M取N分支,Q取N分支4,8要满足要满足1、2、3、4、5、6、7、8条条件组合件组合条件组合覆盖(续)n优点:条件组合覆盖准则满足判定覆盖、条件覆盖和判定-条件覆盖准则。n缺点:线性地增加了

10、测试用例的数量。内容n逻辑覆盖p语句覆盖p判定覆盖(分支覆盖)p条件覆盖p判定-条件覆盖p条件组合覆盖p路径覆盖nDD路径n基路径测试路径覆盖n基本思想是:设计所有的测试用例,来覆盖程序中的所有可能的执行路径。1路径覆盖(续)测试用例覆盖组合覆盖路径a=2,b=1,c=61,51-2-4a=1,b=1,c=-31,81-2-5a=-1,b=2,c=34,71-3-4a=-1,b=-2,c=-3 4,81-3-5路径覆盖(续)n优点:这种测试方法可以对程序进行彻底的测试,比前面五种的覆盖面都广。n缺点:需要设计大量、复杂的测试用例,使得工作量呈指数级增长,不见得把所有的条件组合都覆盖。在实际的测

11、试用例设计过程中,可以根据需要将不同的覆盖方法组合起来使用,以实现最佳的测试用例设计。条件组合覆盖结合路径覆盖测试用例覆盖条件覆盖路径覆盖组合a=2,b=1,c=6T1,T2,T3,T4P1:(1-2-4)1,5a=1,b=1,c=-3T1,T2,F3,F4P2:(1-2-5)1,8a=-1,b=2,c=3F1,F2,F3,T4P3:(1-3-4)4,7a=-1,b=-2,c=-3F1,F2,F3,F4P4:(1-3-5)4,8a=2,b=-1,c=-2T1,F2,T3,F4P3:(1-3-4)2,6a=-1,b=2,c=3F1,T2,F3,T4P3:(1-3-4)3,7路径覆盖的困难n右边的

12、控制流图大致对应一个100行长的Pascal程序n若其中唯一的循环至多执行20次,则最多有520个逻辑路径n假设每运行一组测试用例平均花费1毫秒,总共需要3170年才能穷尽测试这些逻辑路径内容n逻辑覆盖p语句覆盖p判定覆盖(分支覆盖)p条件覆盖p判定-条件覆盖p条件组合覆盖p路径覆盖nDD路径n基路径测试程序图/控制流图n程序图是一种有向图,图中的节点表示语句片断,边表示控制流。n如果 i 和 j 是程序图中的节点,从节点 i 到节点 j 存在一条边,当且仅当对应节点 j 的语句片断可以在对应节点 i 的语句片断之后立即执行。程序图/控制流图(续)n程序图(控制流图)中只有两种图形符号:1.结

13、点结点:以标有编号的圆圈表示。它代表了程序流程图中矩形框表示的处理、菱形表示的两个到多个出口判断以及两条到多条流线相交的汇合点。2.边(弧)边(弧):以箭头表示。它与程序流程图中的流线是一致的,表明了控制的顺序。为了方便讨论,控制流线通常标有名字,如图中所标的a、b、c等。1234513542n除了用程序流程图可以转化成控制流图以外,还可以把伪代码表示的处理过程转化成控制流图。根据程序建构控制流图很容易。n例如:三角形伪代码实现过程转化成了控制流图 程序图/控制流图(续)n有的时候,我们可以把几个节点合并成一个,合并的原则是:若在一个节点序列中没有分支,则我们可以把这个序列的节点都合并成一个节

14、点DD路径测试nDecision-Decision(决策-决策)路径nPage126路径n路径是一系列边,使得对于该序列中的所有相邻边对偶ei、ej来说,第一条边的终止节点是第二条边的初始节点。n环路是一个在同一个节点上开始和结束的(有向)路径。半路径n半路径是一系列边,使得对于该序列中至少有一个相邻边对偶ei、ej来说,第一条边的初始节点是第二条边的初始节点,或第一条边的终止节点是第二条边的终止节点。路径与半路径举例p从n1到n6的一条路径e2,e5:e2终止结点是e5的初始结点p从n1到n5的一条路径p从n3到n6的一条路径pn1和n3之间的一条半路径e2,e3:e2和e3有相同的终止结点

15、pn2和n4之间的一条半路径e1,e2:e1和e2有相同的初始结点pn5和n6之间的一条半路径(路径)链n链是一条起始和终止结点不同的路径,并 且每个结点都满足入度1、出度1 p链的长度:边的数量p长度为0的退化链,即链有一个节点和0条边组成n初始结点与链中的所有其他结点2-连接,不会存在1-连接或3-连接n-连接性n有向图中的两个结点ni和njp0-连接,当且仅当ni和nj之间没有路径p1-连接,当且仅当ni和nj之间有一条半路径,但没有路径p2-连接,当且仅当ni和nj之间有一条路径p3-连接,当且仅当ni和nj之间有一条路径,并且从nj到ni有一条路径举例nn1 和n7是0-连接nn2

16、和n6是1-连接nn1 和n6是2-连接nn3 和n6是3-连接n3n7n6n4n5n2n1e1e4e3e5e2e6DD-路径的定义nDD-路径是程序图中的一条链,使得:p情况1:由一个结点组成,indeg0;p情况2:由一个结点组成,outdeg0;p情况3:由一个结点组成,indeg2 或 outdeg2;p情况4:由一个结点组成,indeg1 并且outdeg1;p情况5:长度1的最大链图9-1三角形程序的程序图n程序:page124程序的DD-路径图n给定采用命令式语言编写的一段程序,其DD-路径图是有向图,其中结点表示其程序图的DD-路径,边表示连续DD-路径之间的控制流nDD-路径

17、图实际上是一种压缩图,在这种压缩图中,2-连接极大连通子图被压缩为对应情况5 DD-路径的单个结点三角形程序的程序图三角形程序的DD路径图情况情况3情况情况4情况情况2情况情况1情况情况5表9-1 图9-1中的DD-路径类型图9-4 三角形程序的DD-路径图n结点4是情况1 DD-路径,叫它“第一”n结点23是情况2 DD-路径,叫它“最后”n结点5到8是情况5 DD-路径p结点8是DD-路径中的最后结点,因为它是遵循链的2-连接性质的最后结点p如果超过结点8包含结点9,就会违反链的入度出度1准则p如果在结点7处停止,就会违反“最大”准则n结点10、11、15、17、18和21是情况4 DD-

18、路径n结点9、12、13、14、16、19、20和22是情况3 DD-路径程序的DD-路径图(续)n在实践中,手工为最多大约100行源代码的程序生成DD-路径图是可行的。若超过这种规模,大多数测试人员会借助工具完成。测试覆盖指标n测试覆盖是对测试完全程度的评测。测试覆盖是由测试需求和测试用例的覆盖或已执行代码的覆盖表示的n覆盖指标提供了“测试的完全程度如何?”这一问题的答案。最常用的覆盖评测是基于需求的测试覆盖和基于代码的测试覆盖结构性测试覆盖指标DD路径覆盖n提出DD-路径的目的p很多质量机构都把DD-路径覆盖(C1指标)作为测试覆盖的最低可接受级别pE.F.Miller发现,当通过一组测试

19、用例满足DD-路径覆盖要求时,可以发现全部缺陷中的大约85%(Miller,1991)nDD路径覆盖=判定/分支覆盖p如果每一条DD-路径都被遍历,则我们知道每个判断分支都被执行,其实就是遍历DD-路径图中每条边。对于if类的 语句,这意味着真、假分支都要覆盖。对于CASE语句,则每个子句都要覆盖循环覆盖n循环是源代码中非常容易出错的部分。循环测试注重于循环构造的有效性 n循环可分为四种:简单循环、串联循环、嵌套循环、不规则循环(棘手循环)n循环测试的简单观点是认为每个循环都包含一个判断,并且需要测试判断的两个分支:p遍历循环p退出(或不进入)循环n简化循环的假设p不进入循环p只进入一次循环串

20、联、嵌套与棘手的循环最后最后第一第一ADCB最后最后第一第一ADCB最后最后第一第一ADCB小结n无论哪种测试覆盖,即使其覆盖率达到百分之百,都不能保证把所有隐藏的程序欠缺都揭露出来。n提高结构的测试覆盖率只能增强我们对被测软件的信心,但它绝不是万无一失的。内容n逻辑覆盖p语句覆盖p判定覆盖(分支覆盖)p条件覆盖p判定-条件覆盖p条件组合覆盖p路径覆盖nDD路径n基路径测试基路径测试n向量空间的基是相互独立的一组向量,基“覆盖”整个向量空间,使得该空间中的任何其他向量都可以用基向量来表示。n因此,一组基向量在一定程度上可表示整个向量空间的本质:空间中的一切都可以用基表示,并且如果一个基元素被删

21、除了,则这种覆盖特性也会丢失。n基对测试的潜在意义是:如果可以把程序看做是一种向量空间,则这种空间的基就是要测试的非常有意义的元素集合。如果基没有问题,则可以希望能够用基表达的一切都是没有问题的。基路径测试n基本路径测试法是在程序控制流图的基础上,通过分析控制构造的圈复杂度,导出基本可执行路径集合,从而设计测试用例的方法。设计出的测试用例要保证在测试中程序的每个可执行语句至少执行一次。p 包含语句覆盖和判定/分支覆盖n在选择或多分支结构中,分支的汇聚处应有一个汇聚结点。n边和结点圈定的区域叫做区域,当对区域计数时,图形外的区域也应记为一个区域。n如果判断中的条件表达式是由一个或多个逻辑运算符(

22、OR,AND,.)连接的复合条件表达式,则需改为 一系列只有单个条件的嵌套的判断。McCabe的基路径方法n图9-6是一张有向图,可以认为是某个程序的程序图,或DD-路径图。EDBACFG图9-6 McCabe的控制图McCabe圈复杂度nT.J.McCabe圈复杂度,1976n基本思想p程序的复杂性很大程度上取决于程序控制流的复杂性p单一的顺序程序结构最简单,循环和选择所构成的环路越多,程序就越复杂n圈复杂度:是一种为程序逻辑复杂性提供定量测度的软件度量,将该度量用于计算程序的基本的独立路径数目p独立路径:必须包含一条在定义之前不曾用到的边(即至少经过一条以前未走过的边)圈复杂度的计算nV(

23、G)=e n+2pe:控制流图的边数pn:控制流图的结点数nV(G)=判定结点数+1nV(G)=控制流图中有界或无界的封闭区域个数例子nV(G)=e n+2 =10-7+2 =5nV(G)=判定结点数+1 =4+1 =5 nV(G)=图中区域数 =53EDBACFG9187654210R1R5R4R3R2圈复杂度对应着独立路径数目n图中的独立路径:pp1:A,B,C,Gpp2:A,B,C,B,C,Gpp3:A,B,E,F,Gpp4:A,D,E,F,Gpp5:A,D,F,G p:A,B,C,B,E,F,G(错)3EDBACFG9187654210McCabe的基路径方法nMcCabe开发了一种算

24、法过程(叫做基线方法),用于确定基路径集合。p首先选择一个基线路径,应该对应某个“正常案例”程序的执行。这种方法有一定的随意性,McCabe建议选择包括尽可能多的判定结点的路径p接下来重复回溯基线路径,依次“翻转”每个判定点,即当结点的出度2时,必须取不同的边。三角形程序的DD-路径图n圈复杂度:V(G)=20-17+2 =判定节点数+1 =区域数=5n因此,5是构成基本路径集的独立路径数的上界,也是设计测试用例的数目表9-4:图9-4的基路径原始P1P1:A-B-C-E-F-H-J-K-M-N-O-最终不等边三角形在B处翻转P1P2P2:A-B-D-E-F-H-J-K-M-N-O-最终不可行

25、在F处翻转P1P3P3:A-B-C-E-F-G-O-最终不可行在H处翻转P1P4P4:A-B-C-E-F-H-I-N-O-最终等边三角形在J处翻转P1P5P5:A-B-C-E-F-H-J-L-M-N-O-最终等腰三角形关于McCabe基路径方法的观察 nMcCabe的过程成功地标识了在拓扑结构上独立的基路径,但是如果存在矛盾的语义依赖关系,拓扑结构上可行的路径在逻辑上有可能不可行n以上问题的一种解决方案是找出逻辑依赖性的原因。p三角形问题中如果仔细考虑这个问题,可以找出两条规则:n路径如果经过结点C,则必须经过结点Hn路径如果经过结点D,则必须经过结点G关于McCabe基路径方法的观察(续)p

26、将上述两条规则与McCabe的基线方法结合在一起,可得到以下可行的基路径集合:P1:A-B-C-E-F-H-J-K-M-N-O-最终不等边三角形P6:A-B-D-E-F-G-O-最终非三角形P4:A-B-C-E-F-H-I-N-O-最终等边三角形P5:A-B-C-E-F-H-J-L-M-N-O-最终等腰三角形n注意:如果基路径必须是可行的,则逻辑依赖关系会压缩基路径集合基路径测试步骤1.导出程序流程图的拓扑结构导出程序流程图的拓扑结构控制流图(程序控制流图(程序图)图)2.计算控制流图的计算控制流图的McCabe圈复杂度(设为圈复杂度(设为n)3.确定基本路径集,即构造确定基本路径集,即构造n

27、条独立路径条独立路径1)任意构造一条从(唯一)入口结点到(唯一)出口结点的路径,将该路径加入基本路径集2)修改基本路径集中路径,至少经过一条以前未走过的边,将新路径加入基本路径集重复第2)步,直到基本路径集中包含n条路径4.设计测试用例,使基本路径集中的路径能走通设计测试用例,使基本路径集中的路径能走通1、导出控制流图(程序图)程序流程图1236784591011R4R41364,57891011R3R3R2R2R1R122、计算控制流图的圈复杂度n有三种方法计算圈复杂度:pV(G)=区域个数=4pV(G)=边的条数-节点个数+2=4 pV(G)=判定节点个数+1=43、确定基本路径集(构造n

28、条独立路径)npath1:1-11npath2:1-2-3-4-5-10-1-11npath3:1-2-3-6-8-9-10-1-11npath4:1-2-3-6-7-9-10-1-11 这4条路径组成了一个基本路径集。4(图的环路复杂度)是构成这个基本路径集的独立路径数的上界,也是设计测试用例的数目。4、设计测试用例,保证基本路径集中每条路径的执行Procedure average;/计算不超过100个数字的平均值;同时计算总和与有效数字个数INTERFACE RETURNS average.total.input.total.valid;INTERFACE ACCEPTS value,mi

29、nimum,maximum;Type value1:100 IS SCALAR ARRAY;TYPE average,total.input,total.validMinimum,maxImun,sum IS SCALARTYPE I IS INTEGER;I=1;Sum=0;1)Total.input=total.valid=0;DO WHILE valuei-999 and total.input=minimum AND valuei 0 11)THEN average=sum/total.valid;12)ELSE average=-999;13)ENDIFEND average图 测试

30、用例设计的PDL,其节点已经标识2361012图2-8 过程求平均值的流图345679813111210在过程求平均值中,有6条路经:路径1:1-2-10-11-13路径2:1-2-10-12-13路径3:1-2-3-10-11-13路径4:1-2-3-4-5-8-9-2-路径5:1-2-3-4-5-6-8-9-2-.路径6:1-2-3-4-5-6-7-8-9-2-路径4、5和6后面的省略号()表示可以加上控制结构其余部分的任意路径。路径1测试用例(1-2-10-11-13):value(k)=有效输入,其中k i value(i)=-999,其中2i100期望结果:基于k的正确平均值和总数。

31、注意:路径1无法独立测试,必须作为路径4、5和6测试的一部分。路径2测试用例(1-2-10-12-13):value(1)=-999期望结果:平均值=-999;其它按初值汇总。路径3测试用例(1-2-3-10-11-13):试图处理101或更大的值前100个数值应该有效期望结果:与测试用例1相同路径4测试用例(1-2-3-4-5-8-9-2):value(k)最大值value(i)=有效输入,其中I100期望结果:基于k的正确平均值和总数。路径6测试用例(1-2-3-4-5-6-7-8-9-2):value(i)=有效输入,其中I100。期望结果:基于k的正确平均值和总数。指导方针与观察n问题

32、:p功能性测试:n使我们离代码过远n漏洞和冗余,而且不能被发现p结构性测试的路径测试方法:n又在另一个方向上走得太远n将代码采用有向图表示和程序路径公式化,掩盖了代码中的重要信息,即可行路径和不可行路径的区别n其他方法:基于数据流的测试n更接近代码,从路径分析这种极端方向上返回来基路径测试给出了必须进行测试的下限。如果功能性测试没有达到DD路径覆盖,则功能性测试用例存在漏洞。如果要求的覆盖没有达到,根据有意义的路径标识额外的测试用例。回顾n逻辑覆盖p语句覆盖p判定覆盖(分支覆盖)p条件覆盖p判定-条件覆盖p条件组合覆盖p路径覆盖nDD路径n基路径测试请分别选出用语句覆盖,条件覆盖,路径覆盖应请分别选出用语句覆盖,条件覆盖,路径覆盖应用哪组测试用例(请写出设计过程)。用哪组测试用例(请写出设计过程)。(1)x=0,y=3 (2)x=1,y=2 (3)x=-1,y=2 (4)x=3,y=112345(1)路径12(2)路径134(3)路径135(4)路径135用基路径测试测以下程序用基路径测试测以下程序环路复杂性=判断数1617路径1:(0)(13)(19)路径2:(0)(14)(19)路径3:(0)(15)(19)路径4:(0)(16)(19)路径5:(0)(17)(19)路径6:(0)(18)(19)路径7:(0)(12)(19)

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!