软件测试测试用例的设计方法课件_第1页
软件测试测试用例的设计方法课件_第2页
软件测试测试用例的设计方法课件_第3页
软件测试测试用例的设计方法课件_第4页
软件测试测试用例的设计方法课件_第5页
已阅读5页,还剩401页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

软件测试软件测试13.1

软件测试用例的概述3.2黑合测试用例的设计3.3白合测试用例的设计第三章软件测试用例的设计3.1软件测试用例的概述第三章软件测试用例的设计23.1.1测试用例的基本概念3.1.2测试用例的设计原则与特性3.1.3测试用例的编制3.1测试用例的基本概念3.1.1测试用例的基本概念3.1测试用例的基本3

1、什么是测试用例测试用例(TestCase)是为达到最佳的测试效果或高效的揭露隐藏的错误而精选的少量有代表性或特殊性测试数据。软件测试的灵魂----测试用例例:测试Yahoo邮箱的登录程序,假设存在一用户为user,密码为12345。3.1.1测试用例的概念1、什么是测试用例3.1.1测试用例的概念4用例编号测试步骤输入数据期望结果测试结果1输入用户名和密码,点击“登录雅虎服务”按钮用户名:user密码:12345成功登录user的个人邮箱2输入用户名和密码,点击“登录雅虎服务”按钮用户名:user密码:123456提示“密码错误,请重新输入!”3不输入用户名和密码,直接点击“登录雅虎服务”按钮提示“请输入用户名和密码!”…………………….3.1.1测试用例的概念用例编号测试步骤输入数据期望结果测试结果1输入用户名和密码,5工程硕士6测试用例包括测试环境、测试步骤、测试数据和预期结果。即测试用例=输入+输出+测试环境+测试步骤输入:测试数据和操作步骤输出:期望结果测试环境:软硬件环境配置3.1.1测试用例的概念工程硕士6测试用例包括测试环境、测试步骤、测试数据和预6

2、编制测试用例的重要性为什么要做测试用例,主要原因有如下几点:完全测试是不可能的;输入量太大;输出结果太多;软件实现路径太多;软件说明书没有客观标准,软件缺陷的标准也不同。3.1.1测试用例的概念2、编制测试用例的重要性3.1.1测试用例的概7使用测试用例的好处:可以避免盲目测试并提高测试效率。使软件测试的实施重点突出、目的明确。在软件版本更新后只需修正少部分的测试用例便可展开测试工作,降低工作强度、缩短项目周期。测试用例的通用化和复用化则使软件测试易于开展。3.1.1测试用例的概念使用测试用例的好处:3.1.1测试用例的概念8测试用例的作用指导测试的实施规划测试数据的准备

评估测试结果的度量基准分析缺陷的标准 编写测试脚本的"设计规格说明书"3.1.1测试用例的概念测试用例的作用3.1.1测试用例的概念91、测试用例的设计原则保证测试用例的明确性。测试人员要尽量避免测试用例存在含糊的因素,否则会影响测试工作进行与测试结果的准确性(模棱两可)。在测试过程中,测试用例的测试结果是唯一的,即通过、没通过或未进行测试。如果测试没有通过,一般会生成相应的测试错误报告;如果测试没有进行,也会生成相应的原因说明报告,如测试用例本身具有错误性、测试用例的不适用性等等。3.1.2测试用例的设计原则与特性3.1.2测试用例的设计原则与特性10保证测试用例的代表性。尽量将具有相似功能的测试用例抽象合并,使一个测试用例具有测试一类或一系列的系统需求。保证测试用例的简洁性。冗长与复杂的测试用例是不应该出现的,否则可读性差、不利于测试人员理解和操作。简洁的测试用例可以让测试过程目的明确,让测试结果具有唯一性。3.1.2测试用例的设计原则与特性保证测试用例的代表性。尽量将具有相似功能的测试用例抽象合并,112、测试用例的特性有效性:测试用例是测试人员测试过程中的重要参考依据,不同的测试人员根据相同的测试用例所得到的输出应该是一致的。可复用性:良好的测试用例具有重复使用的功能,这样就可以大大地节约测试的时间,提高测试的效率。3.1.2测试用例的设计原则与特性3.1.2测试用例的设计原则与特性12易组织性:测试用例可能有成千上万个,有效地组织这些测试用例,分门别类地提供给测试人员参考和使用,才是一个好的测试计划。可评估性:从测试管理的角度,测试用例的通过率和软件缺陷的数目是软件产品质量好坏的测试标准。可管理性:测试用例可以作为检验测试人员进度、工作量以及跟踪/管理测试人员工作效率的因素。3.1.2测试用例的设计原则与特性易组织性:测试用例可能有成千上万个,有效地组织这些测1314GoodTestcase有效性仿效性经济性修改性测试用例是否能够发现缺陷或者至少可能发现缺陷。测试用例的代表程度,可测试多项内容,因而减少测试用例数量。实现、调试和运行测试用例的成本修改和维护测试用例的难易程度3、测试用例的度量标准3.1.2测试用例的设计原则与特性14有效性仿效性经济性修改性测试用例是否能够发现缺陷或者至少14

1、测试用例编制的依据需求说明以及相关文档;设计说明及相关文档(概要设计,详细设计等);与开发组交流的记录(可以是开发人员的一个解释);基本成型的UI;编写测试用例的文档模板和符合内部的规范要求。测试用例有相关的编制标准,如ANSI/IEEE829-1983标准中列出的关于软件测试用例的相关编制规范和模板。3.1.3测试用例的编制1、测试用例编制的依据3.1.3测试用例的编制15

2、测试用例的编制过程

分析软件程序的工作流程。目的是了解用户与系统交互时的操作和步骤,以确定与描述测试软件所需的测试用例。3.1.3测试用例的编制2、测试用例的编制过程3.1.3测试用例的编16

确定并制定测试用例目的是为每项测试需求编写适当的测试用例。软件测试用例主要根据测试用例编写要素,结合相应的软件需求文档,在掌握一定测试用例设计方法的基础上,设计出比较全面、合理的测试用例,并生成规范的测试用例表。如果测试过以前的版本,则测试用例已经存在,应复审这些测试用例。3.1.3测试用例的编制确定并制定测试用例3.1.3测试用例的编制17确定测试用例数据根据测试用例表的内容,确定支持这些测试用例的实际值。测试用例数据一般包括:用作输入的数据值用作预期结果的数据值用作支持测试用例所需的数据测试用例的修改更新测试用例在形成文档后还需要不断完善,缘故在于:在测试过程中发现设计测试用例时考虑不周;在软件交付使用后反馈的软件缺陷,而缺陷又是因测试用例存在漏洞造成;软件自身的新增功能以及软件版本的更新,测试用例也必须配套修改更新。3.1.3测试用例的编制确定测试用例数据3.1.3测试用例的编制18

3、测试用例的管理

测试管理软件的主要功能有三个:记录测试用例文档的关键内容、可供测试实施时及时输入测试情况、实现自动生成测试结果文档。3.1.3测试用例的编制3、测试用例的管理3.1.3测试用例的编制19

4、测试用例的文档测试用例文档由简介和测试用例两部分组成。测试用例的文档模板。用于描述输入、动作、时间和一个期望结果。测试用例的基本要素。包括测试用例编号、测试标题、测试模块、用例级别、测试环境、测试输入、执行操作、预期结果。不同的公司会有不同的测试用例模板。3.1.3测试用例的编制4、测试用例的文档3.1.3测试用例的编制20

用例编号:每个测试用例都有唯一的标识号,用以区别其他测试用例。测试用例的编号有一定的规则:项目名称+测试阶段类型(系统测试阶段)+编号,如PROJECT1-ST-001,定义测试用例编号,是为了便于查找与跟踪测试用例。测试标题:测试用例标题应清楚表达测试用例的用途,如“测试用户登录时输入错误密码时,软件的响应情况”。测试模块:指明并简单描述测试用例是用来测试哪些项目、子项目或软件特性的。3.1.3测试用例的编制用例编号:每个测试用例都有唯一的标识号,用以区别其他21用例级别:测试用例的优先级别,可以粗略地分为“高”和“低”两个级别,也可以分为“高”、“中”、“低”三个级别。一般来说,软件需求的优先级和测试用例的优先级一致,即如果软件需求的优先级为“高”,该需求的测试用例的优先级也为“高”;反之亦然。测试环境:执行测试用例所需的硬软件环境。在整个测试模块中需要对应说明整个测试的特殊环境要求,在单个测试用例的测试环境需要表述该测试用例所单独需要的特殊环境要求。3.1.3测试用例的编制用例级别:测试用例的优先级别,可以粗略地分为“高”22测试输入:用来执行测试用例的输入要求。输入可以是数据、文件或具体操作。根据需求中的输入条件,确定测试用例的输入,测试用例的输入对软件需求当中的输入有很大的依赖性,如果软件需求中没有很好的定义需求的输入,那么测试用例设计中会遇到很大的障碍。执行操作:执行测试用例所需的每一步操作。对于复杂的测试用例,测试用例的输入需要分为几个步骤完成,这部分内容在操作步骤中详细列出。3.1.3测试用例的编制测试输入:用来执行测试用例的输入要求。输入可23预期结果:描述被测项目或特性所希望或要求达到的输出或指标。一般来说,预期结果主要根据软件需求中的输出得出,如果在实际测试过程中,得到的实际测试结果与预期结果不符,那么测试不通过;反之则测试通过。3.1.3测试用例的编制预期结果:描述被测项目或特性所希望或要求达到的24软件测试用例元素含义给出定义的测试角色用例编号被标识过的测试需求测试标题测试用例的描述测试模块指明测试的具体对象用例级别指明测试用例的优先级别测试需求分析测试环境进入测试实施步骤所需的资源及其状态。测试输入运行本测试所需的代码和数据,包括测试模拟程序和测试模拟数据测试设计(描述性定义)执行操作建立测试运行环境、运行被测对象、获取测试结果的步骤序列预期结果用于比较测试结果的基准测试实现(计算机表示)评价标准根据测试结果与预期结果的偏差,判断被测对象质量状态的依据测试用例的基本要素3.1.3测试用例的编制软件测试用例元素含义给出定义的测试角色用例编号25工程硕士26测试用例的内容(示例)1用例编号10用例类别2用例名称11用例状态3测试目的12用例设计人4输入数据13创建时间5测试步骤14用例评审人6测试脚本15评审时间7预期结果16评审结果8响应时间17执行结果9实际输出18相关模块3.1.3测试用例的编制工程硕士26测试用例的内容(示例)1用例编号10用例类别226工程硕士27测试用例模板(示例)项目名称程序版本测试环境硬件环境软件环境网络环境编制人编制时间功能模块用户登录功能特性测试目的预置条件用例编号测试步骤输入数据预期结果测试结果DL001DL0023.1.3测试用例的编制工程硕士27测试用例模板(示例)项目名称程序版本硬件环境软件27测试用例是测试工作的核心,应该尽量设计的周密细致,这样才能更好的保证测试工作的质量。以一个实现登录功能的小程序为例,它允许用户选择城市和地区,输入自己的账号和密码。如图1-9所示,通过Alt-F4组合键和“Exit”按钮来终止程序,Tab键在区域中间移动。测试用例是测试工作的核心,应该尽量设计的周密细致28登录窗口

根据组成页面的具体元素,做了比较全面的测试用例。登录窗口根据组成页面的具体元素,做了比较全面的测试用例29(1)下拉框和输入框测试用例测试内容输入操作预期输出实际结果下拉框未和后台数据库绑定(显示列表元素固定)不允许列表中出现NULL现象,固定“—请选择--”已和后台数据库绑定(显示列表元素活动)不允许列表中出现NULL现象,固定“—请选择--”输入框限定字符型输入12、6无#,*等错误提示限定型数字输入测试数据无12月、7*、0错误提示(1)下拉框和输入框测试用例测试内容输入操作预期输出实际结果30(2)功能测试用例用例应产生行为结果失败原因1.基本功能测试1.1在输入框内输入资料并且执行存储程序必须能够接受使用者的输入并且将输入值存在登录文件内1.2在输入框内不输入资料但执行储存程序必须能够检查使用者输入是否为空白,同时必须能够告知使用者原因1.3检查city字段储存结果City字段输入后存入cookies1.4检查area字段储存结果Area字段输入后存入cookies储存结果1.5检查ID字段储存结果ID字段输入后存入cookies……2.使用接口功能测试2.1检查输入字段的输入值必须组织使用者输入空白,同时部分字段只能输入数字2.2检查使用者接口的TabOrder所有的TabOrder必须按照正常顺序2.2检查所有的Button所有的Button必须能够起作用2.3检查所有的HotKey所有的HotKey必须能够起作用(2)功能测试用例用例应产生行为结果失败原因1.基本功能31(3)各种错误数据的测试测试内容输入操作预选测试数据预期输出实际结果点击登录按钮不完整的数据City,area,ID,pswd略提示错误对话框不正确的数据City,area,ID,pswd略提示错误对话框回车操作不完整的数据City,area,ID,pswd略提示错误对话框点击“退出”按钮无无无关闭当前应用系统(3)各种错误数据的测试测试内容输入操作预选测试数据预期输出32(4)特殊测试测试内容输入操作预选测试数据预期输出操作焦点逃逸连续Tab切换,察看异常无焦点可准确回归当前操作窗口分配内存不足启动多个应用程序或模拟多个程序运行无是否可以正常运行网络断线切断网络连接无是否可正常抛出异常(4)特殊测试测试内容输入操作预选测试数据预期输出操作焦点逃333.2.1等价类测试用例设计法3.2.2边界分析测试用例设计法3.2.3决策表测试用例设计法3.2.4因果图测试用例设计法3.2.5错误猜测测试用例设计法3.2.6业务流程图测试用例设计法3.2.7黑盒测试用例设计方法的应用3.2黑合测试用例的设计3.2.1等价类测试用例设计法3.2黑合测试用例34常用的黑盒测试用例设计方法主要有以下几种:边界值分析等价类决策表因果图法错误猜测法流程图法

3.2黑合测试用例的设计常用的黑盒测试用例设计方法主要有以下几种:3.235

1、等价类测试用例设计的基本思想

等价类测试法是将不能穷举的测试过程进行合理分类,从而保证设计出来的测试用例具有完整性和代表性。等价类测试法是把所有可能的输入数据(即程序的输入域)划分成若干子集(等价类),从每一个子集中选取少数具有代表性的数据作为测试用例。每个子集中的输入具有相同揭示程序问题的能力,进而达到尽可能完备同时又可避免冗余的测试。在分析需求规格说明书的基础上划分等价类,是等价类测试用例设计的前提。3.2.1等价类测试用例设计法1、等价类测试用例设计的基本思想3.2.1等价类测36

所谓等价类是指输入域的某个子集,所有等价类的并集就是整个输入域。在等价类中,各个输入数据对于揭露程序中的错误都是等效的,具有等价特性。因此,测试等价类中的代表值等价于对该类中其它值的测试,即如果某等价类中的一个用例发现了错误,该等价类中的其它用例也能发现同样的错误;反之,如果等价类中的一个用例没有发现错误,该等价类中的其它用例也不会查出错误。3.2.1等价类测试用例设计法所谓等价类是指输入域的某个子集,所有等价类的并集就是整个37

2、有效等价类与无效等价类

软件不能只接收合理有效的数据,还应具有处理异常数据的功能,才能确保软件具有更高的可靠性。因此,在划分等价类的过程中,不但要考虑有效等价类划分,同时也要考虑无效等价类划分。

有效等价类是指对《需求规格说明书》来说,合理、有意义的输入数据所构成的集合。利用有效等价类可以检验程序是否满足规格说明所规定的功能和性能。无效等价类则和有效等价类相反,对需求规格说明书》是无意义的、不合理的输入数据所构成的集合,即不满足程序输入要求或者无效的输入数据所构成的集合。利用无效等价类可以检验程序异常情况的处理。3.2.1等价类测试用例设计法2、有效等价类与无效等价类3.2.1等价类测试3839

3、等价类划分的原则如果输入条件规定了一个取值范围,就应确定一个有效等价类和两个无效等价类;如果输入条件规定了取值的个数,就应确定一个有效等价类和两个无效等价类;如果输入条件是一个布尔表达式的条件,可以确定一个有效等价类和一个无效等价类如果输入条件规定了一个输入值的集合,而且程序会对每个值进行不同处理,就应为每个输入值确定一个有效等价类和一个无效等价类;如果输入条件规定了“必须是”的情况,就应确定一个有效等价类和若干无效等价类;如果程序未等同地处理等价类中的元素,应将这个等价类再划分为小一些的等价类。3.2.1等价类测试用例设计法393、等价类划分的原则3.2.1等价类测试用例设计3940

4、等价类测试用例设计的步骤划分等价类;为每一个有效等价类和无效等价类规定一个唯一的编号;设计一个测试用例,使其尽可能多地覆盖尚未覆盖的有效等价类,重复这一步直到所有有效等价类均被测试用例所覆盖;设计一个测试用例,使其只覆盖一个无效等价类,重复这一步,直到所有无效等价类均被覆盖。3.2.1等价类测试用例设计法404、等价类测试用例设计的步骤3.2.1等价类40输入条件有效等价类无效等价类………………5、等价类表示

在确立了等价类之后,建立等价类表,列出所有划分出的等价类,如表所示。

等价类表3.2.1等价类测试用例设计法输入条件有效等价类无效等价类………………5、等价类表示等价类4142—求三角形面积(仅判断是否是三角形)边长非数值小数(7)整数<1(5)>99(6)空白(11)空格(10)数值特殊字符(9)字母(8)1~99a+c<b(4)b+c<a(3)a+b<c(2)不能构成三角形构成三角形(1)某程序实现如下功能:输入三个整数a,b,c,输出以a,b,c为三边的三角形面积(1<a,b,c<100),结果保留2位小数。3.2.1等价类测试用例设计法42—求三角形面积(仅判断是否是三角形)边长非数值小数(7)4243用例编号所属等价类输入数据预期结果11(有效等价类)A=10,B=10,C=1043.6021(有效等价类)A=99,B=99,C=994364.9932(无效等价类)A=1,B=2,C=4提示“不能构成三角形”43(无效等价类)A=4,B=1,C=2提示“不能构成三角形”54(无效等价类)A=1,B=4,C=2提示“不能构成三角形”65(无效等价类)A=0,B=0,C=0提示“请输入1~99之间的整数”76(无效等价类)A=100,B=100,C=100提示“请输入1~99之间的整数”87(无效等价类)A=ABCD,B=ABCD,C=ABCD提示“请输入1~99之间的整数”98(无效等价类)A=!*,B=1#$%,C=1!@#$提示“请输入1~99之间的整数”109(无效等价类)A=空格,B=空格,C=空格提示“请输入1~99之间的整数”1110(无效等价类)A=空白,B=空白,C=空白提示“请输入1~99之间的整数”3.2.1等价类测试用例设计法43用例编号所属等价类输入数据预期结果11(有效等价类)A=43

6、常见等价类划分形式

针对是否对无效数据进行测试,可以将等价类分为标准等价类、健壮等价类和对等区间等价类。(1)标准(简单)等价类标准等价类不考虑无效数据,测试用例使用每个等价类中的一个值。通常,标准等价类测试用例的数量和最大等价类中元素的数目相等。3.2.1等价类测试用例设计法6、常见等价类划分形式3.2.1等价类测试用例设计法44

NextDate函数包含三个变量:month(月份)、day(日期)和year(年),函数的输出为输入日期后一天的日期。例如,输入为2007年9月9日,则函数的输出为2007年9月10日。要求输入变量month、day和year均为整数值,并且满足下列条件:(1)1≤month≤12(2)1≤day≤31(3)1912≤year≤2050

3.2.1等价类测试用例设计法NextDate函数包含三个变量:month(月份45

NextDate函数的标准等价类有三个有效等价类:M1={month:1≤month≤12}D1={day:1≤day≤31}Y1={year:1912≤year≤2050}3.2.1等价类测试用例设计法测试用例输入期望输出monthdayyearTestCase19920072007年9月10日NextDate函数的标准等价类有三个有效等价类:346

(2)健壮等价类

NextDate函数的主要特点是输入变量之间的逻辑关系比较复杂,原因有两个:一个是输入域的复杂性,另一个是闰年的规则。例如变量year和变量month取不同的值,对应的变量day会有不同的取值范围,day值的范围可能是1~30或1~31,也可能是1~28或1~29。3.2.1等价类测试用例设计法(2)健壮等价类3.2.1等价类测试用例设计法47

(2)健壮等价类健壮等价类应考虑无效等价类,若三个输入中有一个条件无效,那么NextDate函数都应产生一个输出,来指明相应的变量超出取值范围,例如month的值不在1~12范围当中。显然还存在着大量的year、month、day的无效组合,NextDate函数将这些组合统一输出为:“无效输入日期”。M2={month:month<1}M3={month:month>12}D2={day:day<1}D3={day:day>31}Y2={year:year<1912}Y3={year:year>2050}3.2.1等价类测试用例设计法(2)健壮等价类3.2.1等价类测试用例设计法48

(2)健壮等价类在标准等价类中,既没有考虑2月份的天数问题,也没有考虑闰年的问题,月份只包含了30天和31天两种情况。在健壮等价类划分中,考虑2月份天数。关于每个月份的天数,可以详细划分为以下等价类:M1={month:month有30天}M2={month:month有31天}M3={month:month是2月}D1={day:1≤day≤27}D2={day:day=28}D3={day:day=29}D4={day:day=30}D5={day:day=31}Y1={year:year是闰年}Y2={year:year不是闰年}3.2.1等价类测试用例设计法(2)健壮等价类3.2.1等价类测试用例设计法49测试用例输入期望输出monthdayyearTestCase163020072007年7月1日TestCase283120072007年9月1日TestCase322720072007年2月28日TestCase422820072007年3月1日TestCase522920002000年3月1日(2000是闰年)TestCase63192007不可能的输入日期TestCase72292007

不可能的输入日期TestCase82302007

不可能的输入日期TestCase91592007变量month无效TestCase109352007变量day无效TestCase11992100变量year无效NextDate函数健壮等价类测试用例3.2.1等价类测试用例设计法测试用例输入期望输出monthdayyearTestCas50

(3)弱健壮等价类测试弱健壮等价类主要是考虑无效等价类。对有效输入,测试用例从每个有效等价类中取一个值;对无效输入,一个测试用例有一个无效值,其他值均取有效值。3.2.1等价类测试用例设计法(3)弱健壮等价类测试3.2.1等价类测51NextDate函数弱健壮等价类测试用例测试用例输入期望输出monthdayyearTestCase19920072007年9月10日TestCase2092007

month不在1~12中TestCase31392007month不在1~12中TestCase4902007day不在1~31中TestCase59322007day不在1~31中TestCase6991911

year不在1912~2050中TestCase7992051year不在1912~2050中3.2.1等价类测试用例设计法NextDate函数弱健壮等价类测试用例测试用例输入期望输出52

(4)强健壮等价类测试强健壮等价类则考虑更多的无效值。强健壮等价类中的无效测试用例可以包含多个无效值,即含有多个缺陷假设。因为NextDate函数有三个变量,所以对应的强健壮等价类测试用例可以包含一个无效值,两个无效值或三个无效值。3.2.1等价类测试用例设计法(4)强健壮等价类测试3.2.1等价类测53NextDate函数强健壮等价类测试用例测试用例输入期望输出monthdayyearTestCase1-192007

month不在1~12中TestCase29-12007day不在1~31中TestCase3991900

year不在1912~2050中TestCase4-1-12007month、day无效,year有效TestCase5-191900month、year无效,day有效TestCase69-11900day、year无效,month有效TestCase7-1-11900month、day、year无效3.2.1等价类测试用例设计法NextDate函数强健壮等价类测试用例测试用例输入期望输出54

(5)对等区间等价类对等区间等价类是非常规的形式化方法,它将被测对象的输入/输出划分成一些区间,被测软件对一个特定区间的任何值都是等价的。测试区间的数据不只是函数/过程的参数,也可以是程序可以访问的全局变量、系统资源等,且变量或资源可以是以时间形式存在的数据,或以状态形式存在的输入/输出序列。对等区间等价类划分的前提是位于单个区间的所有值对测试都是对等的,应为每个区间的一个值设计一个测试用例。3.2.1等价类测试用例设计法(5)对等区间等价类3.2.1等价类测试用例55输入区间输出区间ⅰ<0A>=0ⅱ>=0BError

平方根函数要求当输入值为0或大于0时,返回输入数的平方根;当输入值小于0时,显示“平方根错误”。考虑平方根函数的测试用例区间,可以划分出两个输入区间和两个输出区间。区间划分3.2.1等价类测试用例设计法输入区间输出区间ⅰ<0A>=0ⅱ>=0BError56

通过分析,可以用两个测试用例来测试4个区间:测试用例1:输入4,返回2//区间ⅱ和A测试用例2:输入-4,输出“平方根错误,输入值小于0”//区间ⅰ和B当软件变得更加复杂时,对等区间的确定就较难,区间之间的相互依赖性就越强,使用对等区间等价类划分设计测试用例技术的难度增加。3.2.1等价类测试用例设计法通过分析,可以用两个测试用例来测试4个区间:3.2.5758NextDate(月,日,年)是三个变量的函数。函数返回输入日期的下一个日期。变量月份,日期和年都是整数值,且满足下面的条件:1<=月份<=12,1<=日期<=31,1900<=年<=2060两种不同的等价类划分方法等价类测试示例:NextDate问题58NextDate(月,日,年)是三个变量的函数。函数返回5859方法1测试用例覆盖等价类1,2,3:测试输入=(2006,6,16),预期结果=(2006,6,17)覆盖等价类4,2,3:测试输入=(1890,4,10),预期结果=“输入错误!”覆盖等价类5,2,3:测试输入=(2062,4,10),预期结果=“输入错误!”覆盖等价类1,6,3:测试输入=(2006,-2,16),预期结果=“输入错误!”覆盖等价类1,7,3:测试输入=(2006,13,16),预期结果=“输入错误!”覆盖等价类1,2,8:测试输入=(2006,6,0),预期结果=“输入错误!”覆盖等价类1,2,9:测试输入=(2006,4,33),预期结果=“输入错误!”条件有效等价类编号无效等价类编号年[1900,2060]1年<19004年>20605月[1,12]2月<16月>127日[1,31]3日<18日>31959方法1测试用例条件有效等价类编号无效等价类编号年[195960方法2测试用例覆盖等价类1,3,7:测试输入=(2000,7,16),预期结果=(2000,7,17)覆盖等价类2,4,8:测试输入=(2006,4,29),预期结果=(2006,4,30)覆盖等价类1,5,9:测试输入=(2000,2,30),预期结果=“输入错误!”覆盖等价类2,6,10:测试输入=(2001,12,31),预期结果=(2002,1,1)覆盖等价类11,3,7:测试输入=(1830,3,19),预期结果=“输入错误!”60方法2测试用例6061方法2(续)测试用例(续)覆盖等价类12,3,7:测试输入=(3000,3,19),预期结果=“输入错误!”覆盖等价类1,13,7:测试输入=(2004,-2,10),预期结果=“输入错误!”覆盖等价类1,14,7:测试输入=(2004,15,10),预期结果=输入错误!”覆盖等价类1,3,15:测试输入=(2004,8,-2),预期结果=“输入错误!”覆盖等价类1,3,16:测试输入=(2004,8,38),预期结果=“输入错误!”。。。。。。61方法2(续)测试用例(续)。。。。。。6162讨论每种结果都覆盖了一些应该测试的功能点第一种方法:过多关注无效等价类的测试,遗漏了较多NextDate问题蕴含的逻辑,如平年和闰年、二月和大小月、月底等;第二种方法:在第一种方法的基础上,增加了对二月、年底等的测试,同时要考虑NextDate的逻辑知识,测试用例涵盖了大部分需测试的要点,但仍有些遗漏,例如年底、平年的二月等如果程序未等同地处理等价类中的元素,应将这个等价类再划分为小一些的等价类。3.2.1等价类测试用例设计法62讨论3.2.1等价类测试用例设计法6263等价类测试示例:加法器一个c语言程序,功能是计算1~100之间的整数的和#include<stdio.h>voidmain(void){inta;//加数intb;//加数intc;//和while(1){printf(“请输入两个1到100之间的整数:”);fflush(stdin);//清空输入缓冲区scanf(“%d%d”,&a,&b);if((a>1&&a<100)&&(b>1&&b<100))//判断{c=a+b;printf(“两个数的和为%d\n”,c);}}}(1)无效等价类

<1(2)有效等价类

1~100之间(3)无效等价类

>100用例编号所属等价类加数1加数2预期结果1234043210-1提示33110101提示AB+=63等价类测试示例:加法器一个c语言程序,功能是计算1~106364加法器等价类扩展除了考虑数据的输入范围,还要考虑输入数据的类型加数数值非数值整数小数(4)字母(5)特殊字符(6)空格(7)空白(8)<1(1)1~100(2)>100(3)64加法器等价类扩展除了考虑数据的输入范围,还要考虑输入数据6465加法器测试用例用例编号所属等价类加数1加数2和(预期结果)12(有效等价类)3404321(无效等价类)0-1提示“请输入1~100之间的整数”33(无效等价类)110101提示“请输入1~100之间的整数”44(无效等价类)1.23.2提示“请输入1~100之间的整数”55(无效等价类)AB提示“请输入1~100之间的整数”66(无效等价类)@#提示“请输入1~100之间的整数”77(无效等价类)空格空格提示“请输入1~100之间的整数”88(无效等价类)提示“请输入1~100之间的整数”65加法器测试用例用例编号所属等价类加数1加数2和(预期结果653.某软件要求输入以年月表示的日期,日期限定在1998年1月~2068年12月,并规定日期由6位数字字符组成,前4位表示年,后2位表示月。现用等价类划分法对输入日期进行黑合测试,测试用例的等价类如下表,试设计测试用例,以覆盖所有的等价类。输入等价类有效等价类无效等价类日期类型与长度①6位数字字符④有非数字字符⑤少于6位数字字符⑥多于6位数字字符年份范围②在1998~2068之间⑦小于1998⑧大于2068月份范围③在01~12之间⑨等于00⑩大于123.某软件要求输入以年月表示的日期,日期限定在1998年166覆盖所有的等价类的测试用例如下表。测试用例数据期望结果覆盖的等价类编号200611输入有效①②③199901输入有效①②③205901输入有效①②③9954X9无效输入④20096无效输入⑤20120607无效输入⑥198901无效输入⑦200401无效输入⑧200400无效输入⑨200422无效输入⑩覆盖所有的等价类的测试用例如下表。测试用例数据期望结果覆盖的67

1、边界值分析法的思想

边界值分析法(BoundaryValueAnalysis,BVA)是对等价类测试用例设计法的补充,不是选择等价类中的元素,而是选择等价类边界的数据。在测试过程中,往往忽略边界的条件,而软件中的大量错误是发生在输入或输出范围的边界上。因此针对各种边界设计测试用例,以查出更多的错误。

3.2.2边界值分析测试用例设计法1、边界值分析法的思想3.2.2边界值分析测试用例68

1、边界值分析法的思想如创建一个含有10个元素的一维数组的VB程序:Dimdata(10)asIntegerDimiasIntegerFori=1to10data(i)=1Nexti3.2.2边界值分析测试用例设计法1、边界值分析法的思想3.2.2边界值分析69

1、边界值分析法的思想

在Basic语言中,定义数组的第一个元素所对应的下标是0而不是1。因此,程序运行结束后,数组中成员的赋值情况如下:data(0)=0,data(1)=1,data(2)=1,...,data(10)=1当其他程序员使用该数组时,可能会造成软件的缺陷或错误的产生。边界值分析方法设计的测试用例,就是着重测试的边界情况。3.2.2边界值分析测试用例设计法1、边界值分析法的思想3.2.2边界值分析7071边界值测试用例的取值在输入变量的最小值、略高于最小值、正常值、略低于最大值和最大值处。

abcdX2X1有效输入区域函数F有两个变量X1和

X2,F实现为一个程序,完成某功能,X1和

X2的值域分别为[a,b]和[c,d]3.2.2边界值分析测试用例设计法71边界值测试用例的取值在输入变量的最小值、略高于最小值、正71

2、边界值分析法的原则

边界值分析法应遵循以下几条原则:如果输入条件规定了值的范围,应选取刚达到及刚超过范围边界的值作为测试输入数据。如果输入条件规定了值的个数,则用最大个数、最小个数、比最小个数少1、比最大个数多1的数作为测试数据。根据规格说明的每一个输出条件,分别使用以上两个原则。3.2.2边界值分析测试用例设计法2、边界值分析法的原则3.2.2边界值分析测试用例72

2、边界值分析法的原则

如果规格说明给出的输入域或输出域是有序集合(如有序表、顺序文件等),应选取集合的第一个元素和最后一个元素作为测试用例。如果程序中使用了一个内部数据结构,应选择该内部数据结构的边界值作为测试用例。分析规格说明,找出其他可能的边界条件。3.2.2边界值分析测试用例设计法2、边界值分析法的原则3.2.2边界值分析测试用例7374

3、基于单缺陷假设边界值单缺陷假设:失效极少是由两个(或多个)缺陷同时发生而引起的。边界值分析的测试用例:通常一个输入变量取边界值,而其它变量则正常值。每个变量重复进行,对于一个n变量函数,边界值分析产生4n+1个测试用例。3.2.2边界值分析测试用例设计法743、基于单缺陷假设边界值3.2.27475

3、基于单缺陷假设边界值abcdX2X1如何设定边界值?根据上下文(语境)人工创建3.2.2边界值分析测试用例设计法753、基于单缺陷假设边界值abcdX75

实现计算一个含有两个整数自变量X和Y函数的程序,X的取值域为[4,24],Y的取值域为[2,20],根据单缺陷假设边界值测试用例的设计原则,给出边界值分析法的测试用例。若X取正常值14,Y取2、3、19和20,则测试用例有(14,2)、(14,3)、(14,19)和(14,20)。若Y取正常值11,X取4、5、23和24,则测试用例有(4,11)、(5,11)、(23,11)和(24,11)。若X和Y均取正常值,则测试用例有(14,11)。对所有的测试用例,预期结果都是一个数值。3.2.2边界值分析测试用例设计法实现计算一个含有两个整数自变量X和Y函数的764、基于单缺陷假设健壮边界值测试思想:测试用例除了最小值、略高于最小值、正常值、略低于最大值和最大值处取输入变量的值,还要在略超过最大值以及略小于最小值之处值。如果被测变量个数为n,则测试用例个数为6n+1。abcdX2X1观察例外情况处理关心预期的输出3.2.2边界值分析测试用例设计法4、基于单缺陷假设健壮边界值abcdX2X1观察例外775、基于多缺陷假设边界值测试多缺陷假设:失效可能是由两个(或多个)缺陷同时发生而引起的。测试思想:首先取每个变量的最小值、略高于最小值、正常值、略低于最大值和最大值的集合进行测试,然后对这些集合进行笛卡儿乘积计算,生成测试用例。即取各变量的不同边界值的组合,产生5的n次幂个用例。78abcdX2X1最坏情况3.2.2边界值分析测试用例设计法5、基于多缺陷假设边界值测试78abcdX2X1最坏786、基于多缺陷假设健壮边界值测试测试思想:首先对于每个变量进行最小值、略高于最小值、正常值、略低于最大值、最大值以及略超过最大值和略小于最小值的集合的测试,然后对这些集合进行笛卡儿乘积计算,生成测试用例。即取各变量的不同边界值的组合,产生7的n次幂个用例。79abcdX2X1健壮最坏情况测试3.2.2边界值分析测试用例设计法6、基于多缺陷假设健壮边界值测试79abcdX2X179

以三角形问题为例,要求输入三个整数a、b、c,分别作为三角形的三条边,取值范围在1~100之间,判断由三条边构成的三角形类型为等边三角形、等腰三角形、一般三角形(包括直角三角形)以及非三角形。如表所示给出了边界值分析测试用例。3.2.2边界值分析测试用例设计法以三角形问题为例,要求输入三个整数a、b、c,分别80测试用例abc预期输出TestCase115050等腰三角形TestCase225050等腰三角形TestCase3505050等边三角形TestCase4995050等腰三角形TestCase51005050非三角形TestCase650150等腰三角形TestCase750250等腰三角形TestCase8509950等腰三角形TestCase95010050非三角形TestCase1050501等腰三角形TestCase1150502等腰三角形TestCase12505099等腰三角形TestCase135050100非三角形基于单缺陷假设边界值的测试用例3.2.2边界值分析测试用例设计法测试用例abc预期输出TestCase115050等腰三8182某选课系统中规定每门课程的选修人数在[20,60]之间,小于20人不开设该门选修课,大于60人不接受后面的选课要求。测试设计输入变量:选课人数测试输入选课人数分别为19,20,21,59,60和61等几个边界点一个正常值点403.2.2边界值分析测试用例设计法82某选课系统中规定每门课程的选修人数在[20,60]之间,8283边界值测试举例——NextDate问题NextDate(年,月,日)是三个变量的函数。函数返回输入日期的下一个日期。变量年份,月份,日期都是整数值,且满足下面的条件:1900≤年≤2060,1≤月≤12,1≤日≤31测试设计三个输入变量:年,月,日年的边界值:1899,1900,1901,1980,2059,2060,2061月的边界值:0,1,2,7,11,12,13日的边界值:0,1,2,15,30,31,323.2.2边界值分析测试用例设计法83边界值测试举例——NextDate问题NextDate(8384边界值测试小结错误隐含在角落,边界值最容易出现问题。边界值测试的局限:边界值分析假设变量是独立的,没有相互依赖关系。未考虑函数的性质及变量的语义。如果输入变量之间不是真正独立的,由边界值而得的测试用例不够充分。不仅要考虑输入空间,还要考虑输出空间。健壮性测试是测试内部变量的一种好的选择:循环控制变量、索引和指针等。注意单缺陷假设和多缺陷假设。NextDate的月、日和年之间存在依赖关系,例如2月和闰年(1912年2月31日?)3.2.2边界值分析测试法84边界值测试小结错误隐含在角落,边界值最容易出现问题。Ne8485采用边界值技术测试加法器功能:计算两个1~100之间的整数的和。程序:#include<stdio.h>voidmain(void){inta;//加数intb;//加数intc;//和while(1){printf(“请输入两个1到100之间的整数:”);fflush(stdin);//清空输入缓冲区scanf(“%d%d”,&a,&b);if((a>1&&a<100)&&(b>1&&b<100))//判断{c=a+b;printf(“两个数的和为%d\n”,c);}}}

测试用例:11+12100+10030+04101+101?AB+=85采用边界值技术测试加法器#include<stdio.85

1.决策表及其测试思想决策表是分析和表达多个逻辑条件下执行不同操作的工具,可以把复杂的逻辑关系与多种条件组合表达得极为具体而又明确。决策表最突出的优点是,能够将复杂的问题按照各种可能的情况全部列举出来,简明并避免遗漏,利用决策表能够设计出完整的测试用例集合。

3.2.3基于决策表测试用例设计法1.决策表及其测试思想3.2.3基于决策表测试用例86

1.决策表及其测试思想

测试思想是根据逻辑条件取值的组合所构成的多种情况,分别执行不同的操作,构造相应的测试用例。在所有的黑盒测试方法中,基于决策表(也称判定表)的测试是最为严格、最具有逻辑性的测试方法。

3.2.3基于决策表测试用例设计法1.决策表及其测试思想3.2.3基于决策表测试87

2、决策表的组成及其适用性决策表适合描述不同条件集合下采取行动的若干组合的情况,它通常由四个部分组成。条件桩:用于列出问题的所有条件,且列出条件的先后次序可任意。动作桩:用于列出问题规定的可能采取的操作,且操作的排列次序没有约束。条件项:用于针对条件桩给出的条件列出所有可能的取值。3.2.3基于决策表测试用例设计法2、决策表的组成及其适用性3.2.3基于决策表测试88

2、决策表的组成及其适用性动作项:用于列出在条件项的各组取值情况下应该采取的动作,与条件项紧密相关。3.2.3基于决策表测试用例设计法

条件桩(conditionstub)

(输入条件集合)

条件项(conditionentry)(输入值)动作桩(actionstub)(输出结果集合)动作项(actionentry)(输出结果)2、决策表的组成及其适用性3.2.3基于决策表测试89

2、决策表的组成及其适用性而任何一个条件组合的特定取值及其相应要执行的操作称为一条规则,在决策表中贯穿条件项和动作项的一列就是一条规则。显然,决策表中列出多少组条件取值,也就有多少条规则,即条件项和动作项有多少列。3.2.3基于决策表测试用例设计法2、决策表的组成及其适用性3.2.3基于决策表测90

2、决策表的组成及其适用性决策表法一般适用于下列情况:(1)规格说明以决策表形式给出或很容易转换成决策表。(2)条件的排列顺序不会也不应影响执行的操作。(3)规则的排列顺序不会也不应影响执行的操作。3.2.3基于决策表测试用例设计法2、决策表的组成及其适用性3.2.3基于决策表测91

2、决策表的组成及其适用性(4)每当某一规则的条件已经满足,并确定要执行的操作后,不必检验别的规则。

(5)如果某一规则得到满足要执行多个操作,操作的执行与顺序无关。3.2.3基于决策表测试用例设计法2、决策表的组成及其适用性3.2.3基于决策表测92

3、决策表的建立与分类根据规格说明,建立决策表的步骤为:(1)分析需求,确定条件桩和动作桩(2)填入所有的条件桩和动作桩(3)根据逻辑关系,填入条件项的值(4)根据需求,填入相应动作项的值(5)重复3、4直到所有逻辑关系被遍历完毕(根据条件数和条件取值,确定规则数)(6)化简即合并相似规则(相同动作)。3.2.3基于决策表测试用例设计法3、决策表的建立与分类3.2.3基93

3、决策表的建立与分类根据条件可取值数,决策表可分为有限项决策表和扩展项决策表。有限项决策表中的每个条件只有两个值,如Y/N、T/F、1/0等;扩展项决策表中的每个条件的取值有多个(大于2个)。3.2.3基于决策表测试用例设计法3、决策表的建立与分类3.2.3基94建立决策表示例:如果某产品销售好并且库存低,则增加该产品的生产;如果该产品销售好,但库存量不低,则继续生产;若该产品销售不好,但库存量低,则继续生产;若该产品销售不好,且库存量不低,则停止生产。该问题中有2个条件(销售、库存)、3个动作(增加生产、继续生产和停止生产),而每个条件可以有两个取值(销售好与不好、库存低与不低),所以有有22=4种规则。3.2.3基于决策表测试用例设计法建立决策表示例:如果某产品销售好并且库存低,则95规则选项1234条件:C1:销售好?C2:库存低?TTTFFTFF动作:a1:增加生产a2:继续生产a3:停止生产√√√√产品销售问题的决策表3.2.3基于决策表测试用例设计法规则1234条件:动作:产品销售问题的决策表396

4、不相关项的合并通过合并具有相同动作结果的相似规则,减少规则数量,进而减少测试用例的个数。所谓相似规则是指在其它条件不变时,某一条件无论取何值,都产生相同动作的规则集。而所有相似规则可以合并为一个规则。3.2.3基于决策表测试用例设计法4、不相关项的合并3.2.3基于决策表测试用例97

12345678问题你觉得累吗?YYYYNNNN你对书中内容感兴趣吗?YYNNYYNN书中的内容使你糊涂吗?YNYNYNYN建议请回到本章开头重读X

X

继续读下去

X

X

跳到下一章去读

XX不读了,请休息

XX

4、不相关项的合并3.2.3基于决策表测试用例设计法

12345678问题你觉得累吗?YYYYNNNN你对书中内98

4、不相关项的合并当第二、三个条件为“Y”时,第一个条件无论取何值都会产生相同的动作,所以可以将第一条规则和第五条规则利用不相关项进行合并3.2.3基于决策表测试用例设计法4、不相关项的合并3.2.3基于决策表测试用例99

4、不相关项的合并

规则数降低到4,相应的测试用例数也降低到4。不相关项用“-”表示。3.2.3基于决策表测试用例设计法4、不相关项的合并3.2.3基于决策表测试用例100三角形问题示例:有一判断由三条边构成的三角形类型(类型有等边三角形、等腰三角形、一般三角形(包括直角三角形)以及非三角形)的程序,要求输入三个整数a、b、c,分别作为三角形的三条边,取值范围在1~100之间的整数。运用有限项决策表方法设计测试用例。

3.2.3基于决策表测试用例设计法三角形问题示例:有一判断由三条边构成的三角形类型(类型有等边101

由题意可知:运用决策表方法设计测试用例时,有六个条件桩:a<b+c、b<a+c、c<b+a、a=b、a=c和b=c,有五个动作桩:非三角形、不等边三角形、等腰三角形、等边三角形和不可能出现的三个数。且由于每个条件只有两个值(F和T),因此由决策表方法建立的决策表是有限项决策表,即有26=64条规则。

特别地,当a<b+c为F时,另外的条件无论是F还是T,产生的动作项是相同的,所以构成的条件项是不相关项,即可把25=32规则合并为一个。当a<b+c为T、b<a+c为F时,另外的条件无论是F还是T,产生的动作项是相同的,所以构成的条件项是不相关项,即可把24=16规则合并为一个。当a<b+c为T、b<a+c为T、c<b+a为F时,另外的条件无论是F还是T,产生的动作项是相同的,所以构成的条件项是不相关项,即可把23=8规则合并为一个。因此共有11条规则需要设计测试用例,如下图所示。3.2.3基于决策表测试用例设计法

由题意可知:运用决策表方法设计测试用例时,102测试用例:规则1:测试输入=(60,16,26),预期结果:非三角形规则2:测试输入=(50,50,0),预期结果:非三角形规则3:测试输入=(0,0,0),预期结果:非三角形规则4:测试输入=(60,60,60),预期结果:等边三角形规则5:这种组合在现实中不可能存在规则6:这种组合在现实中不可能存在3.2.3基于决策表测试用例设计法测试用例:3.2.3基于决策表测试用例设计法103104

规则7:测试输入=(60,60,26),预期结果:等腰三角形规则8:这种组合在现实中不可能存在规则9:测试输入=(60,26,60),预期结果:等腰三角形.规则10:测试输入=(26,60,60),预期结果:等腰三角形规则11:测试输入=(30,40,50),预期结果:不等边三角形3.2.3基于决策表测试用例设计法104规则7:测试输入=(60,60,26),104105扩展项决策表——NextDate问题示例条件桩:

M1={月份:每月有30天}M2={月份:每月有31天}M3={月份:2月}D1={日期:1≤日期≤28}D2={日期:日期=29}D3={日期:日期=30}D4={日期:日期=31}Y1={年:1900≤年≤2060}动作桩:

A1={输出下一个日期}A2={不可能}如果选择有限项决策表,那么表中会存在256条规则105扩展项决策表——NextDate问题示例条件桩:105106扩展项决策表——NextDate问题C1:月份在M1中C2:月份在M2中C3:月份在M3中C4:日期在D1中C5:日期在D2中C6:日期在D3中C7:日期在D4中C8:年在Y1中A1:输出下一个日期A2:不可能T-----X......,共有256条......TT--106扩展项决策表——NextDate问题C1:月份在M1106107扩展项决策表——NextDate问题NextDate问题的扩展项决策表:日期:D1={从1到27}D2={28}D3={29}D4={30}D5={31}年:Y1={闰年}Y2={平年}月份:M1={31天的月,除去12月}M2={30天的月}M3={2月}M4={12月}107扩展项决策表——NextDate问题NextDate问107108扩展项决策表——NextDate测试用例测试用例规则1:测试输入=(2007,7,19),预期结果=“2007-7-20”规则2:测试输入=(2007,7,31),预期结果=“2007-8-1”规则3:测试输入=(2007,9,25),预期结果=“2007-9-26”规则4:测试输入=(2007,9,30),预期结果=“2007-10-1”规则5:测试输入=(2007,11,31),预期结果=“日期输入错误”规则6:测试输入=(2000,2,15),预期结果=“2000-2-16”108扩展项决策表——NextDate测试用例测试用例108109扩展项决策表——NextDate测试用例测试用例规则7:测试输入=(2000,2,29),预期结果=“2000-3-1”规则8:测试输入=(2000,2,30),预期结果=“日期输入错误”规则9:测试输入=(2007,2,15),预期结果=“2007-2-16”规则10:测试输入=(2007,2,28),预期结果=“2007-3-1”规则11:测试输入=(2007,2,29),预期结果=“日期输入错误”规则12:测试输入=(2006,12,16),预期结果=“2006-12-17”规则13:测试输入=(2006,12,31),预期结果=“2007-1-1”109扩展项决策表——NextDate测试用例测试用例109决策表小结适用于以下类型的应用程序:if-then-else逻辑突出的程序输入变量之间存在逻辑关系输入与输出之间存在因果关系具有较高的环复杂度基于决策表的测试是严格的测试。在各输入变量之间真正独立的条件下,无法体现其逻辑严谨的优势可使用多种方式,如扩

温馨提示

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

评论

0/150

提交评论