




已阅读5页,还剩69页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实用软件工程课程体系 软件测试 -结构性测试 数据流测试 实用软件工程软件测试 2005年年6月月29日日Janus Consulting 3 程序结构分析 程序结构分析程序结构分析 检查程序的控制结构,以验证程序结构的一些规则 在程序编写过程中是否得到遵循,在此基础上得到 有关结构成分的语法树并揭示控制结构的缺陷 检查程序的控制结构,以验证程序结构的一些规则 在程序编写过程中是否得到遵循,在此基础上得到 有关结构成分的语法树并揭示控制结构的缺陷 ? 控制流分析控制流分析 ? 数据流分析数据流分析 静态 分析 方法 静态 分析 方法 查找定义/引用缺陷查找定义/引用缺陷 实用软件工程软件测试 2005年年6月月29日日Janus Consulting 3 程序结构分析 控制流分析控制流分析 数据流分析数据流分析 实用软件工程软件测试 2005年年6月月29日日Janus Consulting 3.1 控制流分析 原因原因 程序结构的基本要求程序结构的基本要求 结构分析结构分析 实用软件工程软件测试 2005年年6月月29日日Janus Consulting 3.1 控制流分析原因 非结构化程序给测试、排错和程序维护带来困难非结构化程序给测试、排错和程序维护带来困难 人们要求程序是结构良好的人们要求程序是结构良好的 需要系统地检查程序的控制结构需要系统地检查程序的控制结构 采用控制流图采用控制流图 类似程序图类似程序图 可以进行简化可以进行简化 实用软件工程软件测试 2005年年6月月29日日Janus Consulting 3.1 控制流分析原因 程序控制流视角:从程序元素和它们执行顺序之间的联系观察 程序 程序控制流视角:从程序元素和它们执行顺序之间的联系观察 程序 控制流图(控制流图(Control Flow)用于描述程序控制流)用于描述程序控制流 出发点:程序许多错误发生在程序错误的执行流程中;追踪程 序的执行流程有助于发现程序错误 出发点:程序许多错误发生在程序错误的执行流程中;追踪程 序的执行流程有助于发现程序错误 实用软件工程软件测试 2005年年6月月29日日Janus Consulting 3.1 控制流分析基本要求 程序不应包含程序不应包含 ?转向不存在的标号;转向不存在的标号; ?无用的语句标号;无用的语句标号; ?从程序入口进入后无法到达的语句;从程序入口进入后无法到达的语句; ?不能达到停机语句的语句。不能达到停机语句的语句。 实用软件工程软件测试 2005年年6月月29日日Janus Consulting 3.1 控制流分析结构分析 利用基本结构化的程序进行结构化程序设计利用基本结构化的程序进行结构化程序设计 实用软件工程软件测试 2005年年6月月29日日Janus Consulting 程序结构分析 控制流分析控制流分析 数据流分析数据流分析 实用软件工程软件测试 2005年年6月月29日日Janus Consulting 3.2 数据流分析 最初是随着编译系统要生成有效的目标码而出现的,主要用于代码 优化 最初是随着编译系统要生成有效的目标码而出现的,主要用于代码 优化 现在主要为发现现在主要为发现定义定义/引用异常引用异常缺陷缺陷 ? 变量被定义,但从来没有使用(引用);变量被定义,但从来没有使用(引用); ? 所使用的变量没有被定义;所使用的变量没有被定义; ?变量在使用之前被定义两次;变量在使用之前被定义两次; 指关注变量接受值的点和使用(或引 用)这些值的点的结构性测试形式。 指关注变量接受值的点和使用(或引 用)这些值的点的结构性测试形式。 实用软件工程软件测试 2005年年6月月29日日Janus Consulting 3.2 数据流分析 程序数据流视角:程序是一个程序元素对数据访问的过程程序数据流视角:程序是一个程序元素对数据访问的过程 数据流关系:数据数据流关系:数据“定义定义使用使用”对对 使用程序图来描述数据定义使用程序图来描述数据定义-使用对使用对 出发点:对数据的不正确处理出发点:对数据的不正确处理 实用软件工程软件测试 2005年年6月月29日日Janus Consulting 3.2 数据流分析 数据流测试用作路径测试的数据流测试用作路径测试的“真实性检查真实性检查” ?定义/使用测试定义/使用测试 实用软件工程软件测试 2005年年6月月29日日Janus Consulting 3.2 数据流分析定义/使用测试 G(P):程序图:程序图 ? 构造方式同前,语句片段代表节点,边代表节点序列构造方式同前,语句片段代表节点,边代表节点序列 ? 单入口,单出口,且不允许从某个节点到其自身的边单入口,单出口,且不允许从某个节点到其自身的边 P:程序:程序 V:一组程序变量:一组程序变量 实用软件工程软件测试 2005年年6月月29日日Janus Consulting 3.2 数据流分析定义/使用测试 节点是语句或语句的一部分;边表示语句的控制流程节点是语句或语句的一部分;边表示语句的控制流程 If-then 1 2 3 1 2 前测试循环前测试循环 1 2 后测试循环后测试循环 1 2 3 串行串行 If-then-else Choose-case 1 32 4 1 42 5 3 实用软件工程软件测试 2005年年6月月29日日Janus Consulting 3.2 数据流分析定义/使用测试 定义节点(定义节点(DEF(v,n)) 节点是变量的定义节点,当且仅当变量节点是变量的定义节点,当且仅当变量v的值由对应节点的值由对应节点 n的语句片段处的语句片段处定义。定义。 使用节点(使用节点(USE(v,n)) 节点节点n是变量是变量v的使用节点,当且仅当变量的使用节点,当且仅当变量v的值在对应节点的值在对应节点n的语句片段处的语句片段处 使用。使用。 谓词使用(谓词使用(P-use)/计算使用(计算使用(C-use) 使用节点使用节点USE(v,n)是一个谓词使用,当且仅当语句是一个谓词使用,当且仅当语句n是谓词语句,否则,是谓词语句,否则, USE(v,n)是计算使用。是计算使用。 Vv )(PGn 实用软件工程软件测试 2005年年6月月29日日Janus Consulting 3.2 数据流分析定义/使用测试 定义节点(定义节点(DEF(v,n)) ? 执行时,与该变量关联的存储单元的内容会执行时,与该变量关联的存储单元的内容会改变改变 使用节点(使用节点(USE(v,n)) ? 执行时,与该变量关联的存储单元的内容执行时,与该变量关联的存储单元的内容保持不变保持不变 谓词使用(谓词使用(P-use)/计算使用(计算使用(C-use) ? 对应谓词使用的节点的外度对应谓词使用的节点的外度=2 ? 对应计算使用的节点的外度对应计算使用的节点的外度时, 选择 时, 选择A使得使得A=C-M(M时距时距C最小的机器允许正数,若最小的机器允许正数,若A和和C均为整型 数, 均为整型 数,M=1);当);当rell为为=1的最大链长度=1的最大链 由一个节点组成,出度 = 0, 由一个节点组成,入度=2或出度=2, 由一个节点组成,入度=1且出度=1, 由一个节点组成,出度 = 0, 由一个节点组成,入度=2或出度=2, 由一个节点组成,入度=1且出度=1, 对应唯一的源节点对应唯一的源节点对应唯一的源节点对应唯一的源节点 对应唯一的汇节点对应唯一的汇节点对应唯一的汇节点对应唯一的汇节点 对应条件语句对应条件语句对应条件语句对应条件语句 用于短分支用于短分支用于短分支用于短分支 对应串行语句对应串行语句对应串行语句对应串行语句 Initial Node Terminal Node Interior Nodes a 2-connected chain 实用软件工程软件测试 2005年年6月月29日日Janus Consulting 结构性测试回顾路径测试 DD路径图路径图 给定采用命令式语句编写的一段程序,其给定采用命令式语句编写的一段程序,其DD路径 图是有向图,其中,节点表示程序图的 路径 图是有向图,其中,节点表示程序图的DD-路径, 边表示连续 路径, 边表示连续DD-路径之间的控制流。路径之间的控制流。 实用软件工程软件测试 2005年年6月月29日日Janus Consulting 结构性测试回顾路径测试 DD路径路径 测试覆盖指标测试覆盖指标 基路径测试基路径测试 实用软件工程软件测试 2005年年6月月29日日Janus Consulting 结构性测试回顾路径测试 测试覆盖指标(基于程序图)测试覆盖指标(基于程序图) C0所有语句所有语句 C1所有所有DD-路径路径(判断分支)(判断分支) C1p 所有判断的每种分支所有判断的每种分支 C2 C1覆盖覆盖 + 循环覆盖循环覆盖 Cd C1覆盖覆盖 + DD-路径的所有依赖对偶路径的所有依赖对偶 CMCC Cik Cstat 多条件覆盖多条件覆盖 包含最多包含最多k次循环的所有程序路径(通常次循环的所有程序路径(通常k=2) 路径具有 ) 路径具有“统计重要性统计重要性”的部分 所有可能的执行路径 指标 覆盖描述 的部分 所有可能的执行路径 指标 覆盖描述 C 语句覆盖语句覆盖语句覆盖语句覆盖(点覆盖)(点覆盖)(点覆盖)(点覆盖) 判定覆盖判定覆盖判定覆盖判定覆盖(边覆盖)(边覆盖)(边覆盖)(边覆盖) 条件覆盖条件覆盖条件覆盖条件覆盖 路径测试路径测试路径测试路径测试 循环覆盖循环覆盖循环覆盖循环覆盖 实用软件工程软件测试 2005年年6月月29日日Janus Consulting 结构性测试回顾路径测试 语句与判断测试语句与判断测试 DD-路径测试路径测试 ? 要求找出一组测试用例,使得当执行时,程序 图的所有 要求找出一组测试用例,使得当执行时,程序 图的所有节点节点至少执行一次至少执行一次 ? 对于对于C1指标,要求执行每个判断分支,则应遍历指标,要求执行每个判断分支,则应遍历 DD-路径图中每条边,路径图中每条边, ? 对于对于C1p覆盖,若为条件语句,则应覆盖真、假分 支;若为 覆盖,若为条件语句,则应覆盖真、假分 支;若为CASE语句,应覆盖每个子句,语句,应覆盖每个子句, ? 对于较长的对于较长的DD-路径,代表复杂计算,应采用多个 功能性测试,尤其是边界值和特殊值测试, 路径,代表复杂计算,应采用多个 功能性测试,尤其是边界值和特殊值测试, 实用软件工程软件测试 2005年年6月月29日日Janus Consulting 结构性测试回顾路径测试 DD-路径的依赖对偶路径的依赖对偶 循环覆盖循环覆盖 ? 即数据流测试即数据流测试 ?串联循环串联循环 ?嵌套循环嵌套循环 ?连锁循环连锁循环 ?非结构循环非结构循环 实用软件工程软件测试 2005年年6月月29日日Janus Consulting 结构性测试回顾路径测试 多条件覆盖多条件覆盖 ? 研究研究DD-路径的复合条件中可能出现分支的不同方式路径的复合条件中可能出现分支的不同方式 ? 条件测试路径选择条件测试路径选择 ? 构造真值表构造真值表 ? 将复合判断修改为嵌套的简单将复合判断修改为嵌套的简单if-then-else逻辑, 产生更多要覆盖的 逻辑, 产生更多要覆盖的DD-路径路径 嵌套型分支结构嵌套型分支结构? ?连锁型分支结构连锁型分支结构 实用软件工程软件测试 2005年年6月月29日日Janus Consulting 结构性测试回顾路径测试 DD路径路径 测试覆盖指标测试覆盖指标 基路径测试基路径测试 实用软件工程软件测试 2005年年6月月29日日Janus Consulting 结构性测试回顾路径测试 基路径测试基路径测试 基本思想:基本思想:找出一组独立路径进行测试 数学基础:数学基础:将程序看作一种向量空间,该空间的基是要测试的非常有 意义的元素集合。若基无问题,则用基表述的一切都无问题 步骤:步骤: ? 从程序代码生成 程序图从程序代码生成 程序图 ? 计算圈复杂度计算圈复杂度 ? 确定基路径集合确定基路径集合 ? 设计测试用例设计测试用例 实用软件工程软件测试 2005年年6月月29日日Janus Consulting 结构性测试回顾路径测试 基路径测试的优点基路径测试的优点 ? 给出了必须进行的测试的下限给出了必须进行的测试的下限 ? 提供了用作功能性测试交叉检查的一组指标提供了用作功能性测试交叉检查的一组指标 若发现同一条程序路径被多个功能性测试用例 遍历,则可怀疑该 若发现同一条程序路径被多个功能性测试用例 遍历,则可怀疑该冗余冗余不会发现新的缺陷不会发现新的缺陷 若未达到一定的DD-路径覆盖,则可知功能性测 试用例中存在 若未达到一定的DD-路径覆盖,则可知功能性测 试用例中存在漏洞漏洞 ?利用源代码的性质标识合适的覆盖指标利用源代码的性质标识合适的覆盖指标 ?采用这些指标交叉检查功能性测试用例采用这些指标交叉检查功能性测试用例 ?若未达到要求的覆盖,则根据有意义的 路径标识额外的测试用例 若未达到要求的覆盖,则根据有意义的 路径标识额外的测试用例 策 略 策 略 实用软件工程软件测试 2005年年6月月29日日Janus Consulting 结构性测试回顾路径测试 基路径测试的不足基路径测试的不足 ? 仍然离代码太远,难以发现不可行路径仍然离代码太远,难以发现不可行路径 路径测试将代码采用有向图表示和程序路径公 式化,掩盖了代码中的重要信息 路径测试将代码采用有向图表示和程序路径公 式化,掩盖了代码中的重要信息 数据流测试数据流测试 实用软件工程软件测试 2005年年6月月29日日Janus Consulting 结构性测试回顾 逻辑覆盖逻辑覆盖 路径测试路径测试 程序结构分析程序结构分析 实用软件工程软件测试 2005年年6月月29日日Janus Consulting 结构性测试回顾程序结构分析 程序结构分析程序结构分析 检查程序的控制结构,以验证程序结构的一些规则 在程序编写过程中是否得到遵循,在此基础上得到 有关结构成分的语法树并揭示控制结构的缺陷 检查程序的控制结构,以验证程序结构的一些规则 在程序编写过程中是否得到遵循,在此基础上得到 有关结构成分的语法树并揭示控制结构的缺陷 ? 控制流分析控制流分析 ? 数据流分析数据流分析 静态 分析 方法 静态 分析 方法 查找定义/引用缺陷查找定义/引用缺陷 实用软件工程软件测试 2005年年6月月29日日Janus Consulting 结构性测试回顾程序结构分析 控制流分析:利用基本结构化的程序进行结构化程序设计控制流分析:利用基本结构化的程序进行结构化程序设计 实用软件工程软件测试 2005年年6月月29日日Janus Consulting 结构性测试回顾程序结构分析 数据流分析:用作路径测试的数据流分析:用作路径测试的“真实性检查真实性检查” ?定义/使用测试定义/使用测试 实用软件工程软件测试 2005年年6月月29日日Janus Consulting 结构性测试回顾程序结构分析 定义节点(定义节点(DEF(v,n)) 使用节点(使用节点(USE(v,n)) 谓词使用(谓词使用(P-use)/计算使用(计算使用(C-use) 定义定义-使用路径(使用路径(du-path) 定义清除路径(定义清除路径(dc-path) 定义-使用路径和定义清除路径描述了跨从值被定义的点到值被使用的点 的源语句的数据流。 定义-使用路径和定义清除路径描述了跨从值被定义的点到值被使用的点 的源语句的数据流。 不是定义清除的定义-使用路径,是潜在有问题的地方。不是定义清除的定义-使用路径,是潜在有问题的地方。 实用软件工程软件测试 2005年年6月月29日日Janus Consulting 结构性测试回顾程序结构分析 定义定义-使用路径测试覆盖指标使用路径测试覆盖指标 ?全定义准则全定义准则 ?全使用准则全使用准则 ?全谓词使用全谓词使用/部分计算使用准则部分计算使用准则 ?全计算使用全计算使用/部分谓词使用准则部分谓词使用准则 ?全定义全定义-使用路径准则使用路径准则 实用软件工程软件测试 2005年年6月月29日日Janus Consulting 结构性测试回顾程序结构分析 数据流覆盖指标层次结构数据流覆盖指标层次结构 定义/使用测试提供一种检查缺陷可能发生点的严格 和系统化的方法。 定义/使用测试提供一种检查缺陷可能发生点的严格 和系统化的方法。 全路径全路径 全定义全定义-使用路径使用路径 全路径全路径 全计算使用全计算使用/部分谓词使用部分谓词使用全谓词使用全谓词使用/部分计算使用部分计算使用 全定义全定义全谓词使用全谓词使用 全边全边 全节点全节点 实用软件工程软件测试 2005年年6月月29日日Janus Consulting 结构性测试回顾 结构性测试充当对功能性测试的交叉检查结构性测试充当对功能性测试的交叉检查 ? 功能性测试的漏洞与冗余功能性测试的漏洞与冗余 ? 用于方法评估的指标用于方法评估的指标 ? 举例举例 实用软件工程软件测试 2005年年6月月29日日Janus Consulting 传统三角形程序图传统三角形程序图 源节点,汇节点源节点,汇节点 圈复杂度圈复杂度 基路径基路径 等边三角形等边三角形等腰三角形等腰三角形非三角形非三角形不等边三角形不等边三角形 输入输入a,b,c Match=0 match=match+1a=b? Y N a=c? Y match=match+2 b=c? Y match=match+3 N N match=0? match=1?a+b=c? match=2? Y a+b=c? a+c=b? Y N Y N Y N match=3? N Y Y N N Y N b+c=a? Y N b+c=a? N a+b=c? Y Y N 实用软件工程软件测试 2005年年6月月29日日Janus Consulting 三角形中的路径 路径节点序列描述 P1 1-2-3-4-5-6-7-13-16-18-20 等边三角形 P2 1-3-5-6-7-13-16-18-19-15 等腰三角形(b=c) P3 1-3-5-6-7-13-16-18-19-12 非三角形(b=c) P4 1-3-5-6-7-13-16-17-15 等腰三角形(a=c) P5 1-3-5-6-7-13-16-17-12 非三角形(a=c) P6 1-3-5-6-7-13-14-15 等腰三角形(a=b) P7 1-3-5-6-7-13-14-12 非三角形(a=b) P8 1-3-5-6-7-8-12 非三角形(a+b=c) P9 1-3-5-6-7-8-9-12 非三角形(b+c=a) P10 1-3-5-6-7-8-9-10-12 非三角形(a+c=b) P11 1-3-5-6-7-8-9-10-11 不等边三角形 实用软件工程软件测试 2005年年6月月29日日Janus Consulting 一般边界测试的路径覆盖一般边界测试的路径覆盖 TC abcOutput路径 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 100 100 100 100 100 100 100 100 100 100 1 2 100 199 200 100 100 100 100 100 1 2 100 199 200 100 100 100 100 100 1 2 100 199 200 100 100 100 100 100 100 100 100 100 100 等腰三角形 等腰三角形 等边三角形 等腰三角形 非三角形 等腰三角形 等腰三角形 等边三角形 等腰三角形 非三角形 等腰三角形 等腰三角形 等腰三角形 等边三角形 非三角形 P6 P6 P1 P6 P7 P4 P4 P1 P4 P5 P2 P2 P1 P2 p3 实用软件工程软件测试 2005年年6月月29日日Janus Consulting 结构性测试回顾 一般边界测试的路径覆盖一般边界测试的路径覆盖 覆盖路径:覆盖路径:p1,p2,p3,p4,p5,p6,p7 未覆盖路径:未覆盖路径:p8,p9,p10,p11 最坏情况测试的路径覆盖最坏情况测试的路径覆盖 125个用例非常冗余个用例非常冗余 功能测试覆盖分析表功能测试覆盖分析表 p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 一般3 3 1 3 1 3 1 0 0 0 0 最坏5 12 6 11 6 12 7 17 18 19 12 实用软件工程软件测试 2005年年6月月29日日Janus Consulting 结构性测试回顾 用于方法评估的指标用于方法评估的指标 假设功能性测试技术M生成m个测试用例,并根据标识被测单元中的s个 元素的结构性测试指标S来跟踪这些测试用例。但执行m个测试用例 时,经过n个结构性测试元素,则 假设功能性测试技术M生成m个测试用例,并根据标识被测单元中的s个 元素的结构性测试指标S来跟踪这些测试用例。但执行m个测试用例 时,经过n个结构性测试元素,则 ?方法方法M关于指标关于指标S的覆盖:的覆盖:n/s,记做,记做C(M,S) ?方法方法M关于指标关于指标S的冗余:的冗余: m/s,记做,记做R(M,S) ?方法方法M关于指标关于指标S的净冗余:的净冗余:m/n,记做,记做NR(M,S) 实用软件工程软件测试 2005年年6月月29日日Janus Consulting 结构性测试回顾 一般地,结构性测试指标越精细,会产生更多的元素(一般地,结构性测试指标越精细,会产生更多的元素(s越 大),因此,给定功能性测试方法通过更严格的结构性测试指 标评估时有效性会变得很低 越 大),因此,给定功能性测试方法通过更严格的结构性测试指 标评估时有效性会变得很低 ?保险金问题保险金问题 程序图程序图 源节点,汇节点源节点,汇节点 圈复杂度圈复杂度 基路径基路径 实用软件工程软件测试 2005年年6月月29日日Janus Consulting 结构性测试回顾 /用户的一个帐户将要透支,就从该用户的其它帐户把不够的钱转移到这个帐 户里 /用户的一个帐户将要透支,就从该用户的其它帐户把不够的钱转移到这个帐 户里 public void performOverdraftProtection(Account account, float withdrawalAmount) 1 float transferAmountNeeded = withdrawalAmount - account.getAvailableBalance(); 2 Customer customer = account.getCustomer(); 3 Collection overdraftAccounts = customer.getOverdraftAccounts(); 实用软件工程软件测试 2005年年6月月29日日Janus Consulting 结构性测试回顾 4 for(Iterator iter = overdraftAccounts.iterator(); iter.hasNext(); ) 5 Account overdraftAccount = (Account)iter.next(); 6 if (overdraftAccount = account) continue; /end if 7 if (transferAmountNeeded overdraftAccount.getAvailableBalance() 8 overdraftAccount.debit(transferAmountNeeded); 9 account.credit(transferAmountNeeded); 10 return; /end if 11 /end for 12 throw new InsufficientBalanceException(Insufficient funds in overdraft accounts); /end performOverdraftProtection 实用软件工程软件测试 2005年年6月月29日日Janus Consulting 结构性测试回顾 没有对函数的参数没有对函数的参数float withdrawalAmount参数合法性检查,如果参 数非法,函数应该返回某个特定的返回值 参数合法性检查,如果参 数非法,函数应该返回某个特定的返回值 语句语句1中,未对中,未对transferAmountNeeded的合法性检查,如果得到的是 负数,该函数应该返回某个特定的返回值 的合法性检查,如果得到的是 负数,该函数应该返回某个特定的返回值 语句语句7-10中,按照编程规范,中,按照编程规范,if与与else必须要配套使用,在必须要配套使用,在if和和else中必 然会有返回值 中必 然会有返回值 实用软件工程软件测试 2005年年6月月29日日Janus Cons
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公司礼物团购活动方案
- 公司旅游产品策划方案
- 公司组织乔迁活动方案
- 公司活动群运营策划方案
- 公司职工国庆活动方案
- 公司百人团餐活动方案
- 公司相亲会活动方案
- 公司普法问答活动方案
- 公司考察策划方案
- 公司春秋季工装活动方案
- 集中式光伏安装劳务承包合同模板(2篇)
- 钢楼梯工程施工组织设计方案
- 2024年(全国教材培训专题系列)素养导向初中地理大单元教学课件
- 安徽省马鞍山市2024-2025学年高一化学下学期期末考试试题
- 分布式能源系统规划
- 云南省昆明市2024-2025学年高一数学下学期期末质量检测试题
- 盐城市东台市2023-2024学年七年级下学期期末地理试题(含答案解析)
- 成都市2022级(2025届)高中毕业班摸底测试(零诊)英语试卷(含答案)
- 北京市怀柔区2023-2024学年八年级下学期期末数学试题
- 会计研究方法智慧树知到期末考试答案章节答案2024年华东交通大学
- 人教版数学小升初冲刺模拟试卷(含答案)
评论
0/150
提交评论