白盒測(cè)試和黑盒測(cè)試實(shí)驗(yàn)報(bào)告_第1頁
白盒測(cè)試和黑盒測(cè)試實(shí)驗(yàn)報(bào)告_第2頁
白盒測(cè)試和黑盒測(cè)試實(shí)驗(yàn)報(bào)告_第3頁
白盒測(cè)試和黑盒測(cè)試實(shí)驗(yàn)報(bào)告_第4頁
白盒測(cè)試和黑盒測(cè)試實(shí)驗(yàn)報(bào)告_第5頁
已閱讀5頁,還剩18頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

軟件質(zhì)量保證與測(cè)試

實(shí)驗(yàn)指導(dǎo)計(jì)算機(jī)工程學(xué)院

測(cè)試環(huán)境配置1.settingJunit(1)startEclipseSelectwindows-preferences-java-buildpath-lasspathvariablesClasspathVanabllBStypefiltertextClasspathVanabllBStypefiltertextGeneralAntHelpin我日11/updM白AppearanceBuildPathclasspathvariatUserLibrariesCodeStyleCompilerDebugEditorInstalledJRJEsJUnllPropertiesFilesEdURun/DebugTasksTeamUsageDataCoHectorNew...RESflcinonn:odifiab.g.dsprscatfdj-m.TiptYj.(2)clicknew,thefigureofnewvariableentryisshown.手PreferencesAclasspathvariablecanbeaddedtoaproject'sclas-5-path.ItcanbeugedtadefinethelocationofaJARfilethatisn'tpamafth&workspace.Nonmodifiableclasspathvariablesaresetinternally(forexamplejre_ub.jre_sr.c.andjrejmrootdependonthsJREsetting).Definedcla^spettivariable5:還」REJJB(nonmodillalNe,deprecated)-C:\Prograrr(3)nameJUNIT_LIB

selectfile-選擇JUnit插件所對(duì)應(yīng)的JAR文件所在地,在Eclipse的安裝目錄的plugins目錄中r號(hào)PreferencestypefiltertextGeneralAntHelpInstall/UpdateJavaAppearanceBuildPathClasspathVariatUserLibrariesCodeStyletypefiltertextGeneralAntHelpInstall/UpdateJavaAppearanceBuildPathClasspathVariatUserLibrariesCodeStyleCompilerDebugEditorInstalledJREJUnitPropertiesFiRun/DebugTasksTeamUsageDataColClasspathVariablesAclasspathvariablecanbeaddedtoaproject'sclasspath.ItcanbeusedtodefinethelocationofaJARfilethatisn'tpartoftheworkspace-Nonmodifiableclasspathvariablesaresetinternally(forexample,JRE_UE,JRE_SRQandJRE_SRCROOTdependontheJREsetting^.Definedclasspathvariables:0」RE」J8(nonmodifiable,deprecated}-C:\Prograrra」RE_SRC(nonmodifiable,deprecated)-(empty)2^JRE_SRCROOT(nonmodifiable,deprecated)-(emf2^JUNITHOME(nonmodifiable,deprecated)-F滋4New...Edit...rrrRemove名稱修改日期awtui2OO&/3/315:22.extensions2OO&/3/315;22文低framework2O&&/2/315:22.runn&r2OO&/3/315:22.swingui2OO&/3/315:22交彳犢textui2OO&/3/315:22其中,junit.framework和junit.runner是兩個(gè)核心包。junit.framework負(fù)責(zé)整個(gè)測(cè)試對(duì)象的框架junit.runner負(fù)責(zé)測(cè)試驅(qū)動(dòng)Junit的框架又可分為:A、被測(cè)試的對(duì)象。B、對(duì)測(cè)試目標(biāo)進(jìn)行測(cè)試的方法與過程集合,可稱為測(cè)試用例(TestCase)。C、測(cè)試用例的集合,可容納多個(gè)測(cè)試用例(TestCase),將其稱作測(cè)試包(TestSuite)oD、測(cè)試結(jié)果的描述與記錄。(TestResult)。E、每一個(gè)測(cè)試方法所發(fā)生的與預(yù)期不一致狀況的描述,稱其測(cè)試失敗元素(TestFailure)F、JUnitFramework中的出錯(cuò)異常(AssertionFailedError)。JUnit框架是一個(gè)典型的Composite模式:TestSuite可以容納任何派生自Test的對(duì)象;當(dāng)調(diào)用TestSuite對(duì)象的run()方法是,會(huì)遍歷自己容納的對(duì)象,逐個(gè)調(diào)用它們的run()方法。3.JUnit中常用的接口和類Test接口——運(yùn)行測(cè)試和收集測(cè)試結(jié)果Test接口使用了Composite設(shè)計(jì)模式,是單獨(dú)測(cè)試用例(TestCase),聚合測(cè)試模式(TestSuite)及測(cè)試擴(kuò)展(TestDecorator)的共同接口。它的publicintcountTestCases()方法,它來統(tǒng)計(jì)這次測(cè)試有多少個(gè)TestCase,另外一個(gè)方法就是publicvoidrun(TestResult),TestResult是實(shí)例接受測(cè)試結(jié)果,run方法執(zhí)行本次測(cè)試。TestCase抽象類定義測(cè)試中固定方法TestCase是Test接口的抽象實(shí)現(xiàn),(不能被實(shí)例化,只能被繼承)其構(gòu)造函數(shù)TestCase(stringname)根據(jù)輸入的測(cè)試名稱name創(chuàng)建一個(gè)測(cè)試實(shí)例。由于每一個(gè)TestCase在創(chuàng)建時(shí)都要有一個(gè)名稱,若某測(cè)試失敗了,便可識(shí)別出是哪個(gè)測(cè)試失敗。TestCase類中包含的setUp()、tearDown()方法。setUp()方法集中初始化測(cè)試所需的所有變量和實(shí)例,并且在依次調(diào)用測(cè)試類中的每個(gè)測(cè)試方法之前再次執(zhí)行setUp()方法。tearDown()方法則是在每個(gè)測(cè)試方法之后,釋放測(cè)試程序方法中引用的變量和實(shí)例。開發(fā)人員編寫測(cè)試用例時(shí),只需繼承TestCase,來完成run方法即可,然后JUnit獲得測(cè)試用例,執(zhí)行它的run方法,把測(cè)試結(jié)果記錄在TestResult之中。Assert靜態(tài)類——一系列斷言方法的集合Assert包含了一組靜態(tài)的測(cè)試方法,用于期望值和實(shí)際值比對(duì)是否正確,即測(cè)試失敗,Assert類就會(huì)拋出一個(gè)AssertionFailedError異常,JUnit測(cè)試框架將這種錯(cuò)誤歸入Failes并加以記錄,同時(shí)標(biāo)志為未通過測(cè)試。如果該類方法中指定一個(gè)String類型的傳參則該參數(shù)將被做為AssertionFailedError異常的標(biāo)識(shí)信息,告訴測(cè)試人員改異常的詳細(xì)信息。JUnit提供了6大類31組斷言方法,包括基礎(chǔ)斷言、數(shù)字?jǐn)嘌?、字符斷言、布爾斷言、?duì)象斷言。其中assertEquals(Objectexpcted,Objectactual)內(nèi)部邏輯判斷使用equals()方法,這表明斷言兩個(gè)實(shí)例的內(nèi)部哈希值是否相等時(shí),最好使用該方法對(duì)相應(yīng)類實(shí)例的值進(jìn)行比較。而assertSame(Objectexpected,Objectactual)內(nèi)部邏輯判斷使用了Java運(yùn)算符“==”,這表明該斷言判斷兩個(gè)實(shí)例是否來自于同一個(gè)引用(Reference),最好使用該方法對(duì)不同類的實(shí)例的值進(jìn)行比對(duì)。asserEquals(Stringmessage,Stringexpected,Stringactual)該方法對(duì)兩個(gè)字符串進(jìn)行邏輯比對(duì),如果不匹配則顯示著兩個(gè)字符串有差異的地方。ComparisonFailure類提供兩個(gè)字符串的比對(duì),不匹配則給出詳細(xì)的差異字符。TestSuite測(cè)試包類多個(gè)測(cè)試的組合TestSuite類負(fù)責(zé)組裝多個(gè)TestCases。待測(cè)得類中可能包括了對(duì)被測(cè)類的多個(gè)測(cè)試,而TestSuit負(fù)責(zé)收集這些測(cè)試,使我們可以在一個(gè)測(cè)試中,完成全部的對(duì)被測(cè)類的多個(gè)測(cè)試。TestSuite類實(shí)現(xiàn)了Test接口,且可以包含其它的TestSuites。它可以處理加入Test時(shí)的所有拋出的異常。TestSuite處理測(cè)試用例有6個(gè)規(guī)約(否則會(huì)被拒絕執(zhí)行測(cè)試)A測(cè)試用例必須是公有類(Public)B測(cè)試用例必須繼承與TestCase類C測(cè)試用例的測(cè)試方法必須是公有的(Public)D測(cè)試用例的測(cè)試方法必須被聲明為VoidE測(cè)試用例中測(cè)試方法的前置名詞必須是testF測(cè)試用例中測(cè)試方法無任何傳遞參數(shù)TestResult結(jié)果類和其它類與接口TestResult結(jié)果類集合了任意測(cè)試?yán)奂咏Y(jié)果,通過TestResult實(shí)例傳遞每個(gè)測(cè)試的Run()方法。TestResult在執(zhí)行TestCase時(shí)如果失敗會(huì)異常拋出TestListener接口是個(gè)事件監(jiān)聽規(guī)約,可供TestRunner類使用。它通知listener的對(duì)象相關(guān)事件,方法包括測(cè)試開始startTest(Testtest),測(cè)試結(jié)束endTest(Testtest),錯(cuò)誤,增加異常addError(Testtest,Throwablet)和增加失敗addFailure(Testtest,AssertionFailedErrort)TestFailure失敗類是個(gè)“失敗”狀況的收集類,解釋每次測(cè)試執(zhí)行過程中出現(xiàn)的異常情況。其toString()方法返回“失敗”狀況的簡(jiǎn)要描述4.利用Junit開發(fā)一個(gè)簡(jiǎn)單的Java程序File-new-Javaproject,名稱為“HelloWorldWithJUnit”建立兩個(gè)文件夾,分別為src和junittestsrc存放實(shí)現(xiàn)主要功能的文件junittest存放測(cè)試功能文件與Java-HeItoW□rldWithJUnit/j"unittest/FileEditSourceRefactorNaviga-目也j舞熠PackageExploirerHi&rarcjGt-HellloWorldWrthJUnit[>西srct@Junittest[>gJRESystemLibraryjrefi]|i>蘭JUnit3創(chuàng)建測(cè)試類選中“HelloWorldWithJUnit”項(xiàng)目中的junittest包文件夾,右鍵并選擇new-other-Junit-JunitTestCase

(3)選擇“next”,在NewJunitTestCase中的name中輸入“HelloWorldTest”,在package中輸入“junittest”,然后單擊“finish”。5NewJUnitTestCase|回JUnitTestCaseSelectthenameofthenewJUnittestcase.YouhavetheoptionstospecifyaNewJUnit3testNewJUnit4testSourceiold&r:HelIoWorldWilhJUnit/|unittestBrowie-...Package:[d&fault]Browse-...Name:Supe-rclass:junit.framework.TestCase-Browae-...Whichm&tthodstubswouldyoulik&totreats?setUpBefor&ClassQUtearDownAfterClass.0回s9tUpO[7]tearDoLvnOconstructorDoyouwanttoaddcommenls?[Gonfgurete-rnplat?5anddefaultvaluehereDGene-ratecomments-Browse-...Cla55undertest:

Browse-...(4)現(xiàn)在初步計(jì)劃被測(cè)試文件功能非常簡(jiǎn)單,只有一個(gè)方法ReturnValue,作用是返回“HelloWorld”,所以測(cè)試類中有對(duì)ReturnValue這個(gè)方法進(jìn)行測(cè)試的類。當(dāng)然,測(cè)試要能進(jìn)行,該測(cè)試類必須為主類,存在main方法。HelloWorldTest.java的源代碼如下:ITHelloWorldTest.java忘"缶calcustorTest.java]約packagejarLi;importjanit.liainewtul!:.TestCase;piiblicclassHelloWoildTest.ezKbendsTestCdse{pntoliGHelloWoiIdTest(Stringnante}■[super(name);:-ptiblicvoidtestReturnVal'je()-[HelloWoildHelloWorId.();t,rHello^0x11]%'潮,Retur^Valae())r?piiblicstaticvoidmain(String-[]arg's){janit.text'al.Te^tRanner.rizn.(jielloWorldTest..class)選擇run-runas-Junittest彈出一個(gè)Junit窗口,發(fā)現(xiàn)在該窗口中有一個(gè)紅條,這說明存在錯(cuò)誤。(5)創(chuàng)建HelloWorld類建立一個(gè)HelloWorld類,并輸入以下代碼:[J]HelloWorldT&st.javaJH&lloWorld.javapao-ltag^eBrerpni>liqcls-ssjielloHorld-[pnJali□StringRetamValJE(]-[return(p,HelloWorld],r);(6)在HelloWorldTest.java中加入importsrc.*;此時(shí)以Junit測(cè)試的方式來運(yùn)行HelloWorldTest.java,出現(xiàn)了含有綠色的窗口,測(cè)試成功。

assertEqualspublicstaticvoidassertEquals([java.lang.Stringmessage],java.lang.Objectexpected,java.lang.Objectactual)Assertsthattwoobjectsareequal.Iftheyarenot,anAssertionErroristhrownwiththegivenmessage.Ifexpectedandactualarenull,theyareconsideredequal.Parameters:message-theidentifyingmessagefortheAssertionError(nullokay)expected-expectedvalueactual-actualvalueassertFalsepublicstaticvoidassertFalse(java.lang.Stringmessage,booleancondition)Assertsthataconditionisfalse.Ifitisn'titthrowsanAssertionErrorwiththegivenmessage.Parameters:message-theidentifyingmessagefortheAssertionError(nullokay)condition-conditiontobecheckedassertTruepublicstaticvoidassertTrue(java.lang.Stringmessage,booleancondition)Assertsthataconditionistrue.Ifitisn'titthrowsanAssertionErrorwiththegivenmessage.Parameters:message-theidentifyingmessagefortheAssertionError(nullokay)condition-conditiontobecheckedassertNullpublicstaticvoidassertNull(java.lang.Stringmessage,java.lang.Objectobject)Assertsthatanobjectisnull.Ifitisnot,anAssertionErroristhrownwiththegivenmessage.Parameters:message-theidentifyingmessagefortheAssertionError(nullokay)object-ObjecttocheckornullassertNotNullpublicstaticvoidassertNotNull(java.lang.Stringmessage,java.lang.Objectobject)Assertsthatanobjectisn'tnull.IfitisanAssertionErroristhrownwiththegivenmessage.Parameters:message-theidentifyingmessagefortheAssertionError(nullokay)object-ObjecttocheckornullassertSamepublicstaticvoidassertSame([java.lang.Stringmessage],java.lang.Objectexpected,java.lang.Objectactual)Assertsthattwoobjectsrefertothesameobject.Iftheyarenot,anAssertionErroristhrownwiththegivenmessage.Parameters:message-theidentifyingmessagefortheAssertionError(nullokay)expected-theexpectedobjectactual-theobjecttocomparetoexpectedassertNotSamepublicstaticvoidassertNotSame(java.lang.Stringmessage,java.lang.Objectunexpected,java.lang.Objectactual)Assertsthattwoobjectsdonotrefertothesameobject.Iftheydorefertothesameobject,anAssertionErroristhrownwiththegivenmessage.Parameters:message-theidentifyingmessagefortheAssertionError(nullokay)unexpected-theobjectyoudon'texpectactual-theobjecttocomparetounexpectedfailpublicstaticvoidfail(java.lang.Stringmessage)Failsatestwiththegivenmessage.Parameters:message-theidentifyingmessagefortheAssertionError(nullokay)SeeAlso:AssertionError實(shí)驗(yàn)一白盒測(cè)試方法一、實(shí)驗(yàn)?zāi)康?、掌握白盒測(cè)試基本技術(shù),并能夠應(yīng)用白盒測(cè)試技術(shù)設(shè)計(jì)測(cè)試用例2、掌握白盒測(cè)試中的邏輯覆蓋和路徑測(cè)試方法二、實(shí)驗(yàn)任務(wù)使用白盒測(cè)試方法為下面的程序設(shè)計(jì)測(cè)試用例(使用邏輯覆蓋和路徑測(cè)試方法):程序要求:10個(gè)鉛球中有一個(gè)假球(比其他鉛球的重量要輕),用天平三次稱出假球。程序設(shè)計(jì)思路:第一次使用天平分別稱5個(gè)球,判斷輕的一邊有假球;拿出輕的5個(gè)球,取出其中4個(gè)第二次稱,兩邊分別放2個(gè)球:如果兩邊同重,則剩下的球?yàn)榧偾?;若兩邊不同重,拿出輕的兩個(gè)球稱第三次,輕的為假球。構(gòu)入ITg?的I習(xí)前圖1判斷假球的程序流程圖三、實(shí)驗(yàn)要求1、做好實(shí)驗(yàn)預(yù)習(xí),掌握并熟悉本實(shí)驗(yàn)中所使用的測(cè)試環(huán)境及相應(yīng)的測(cè)試軟件2、寫出實(shí)驗(yàn)報(bào)告,內(nèi)容是:(1)實(shí)驗(yàn)?zāi)康模?)實(shí)驗(yàn)內(nèi)容實(shí)驗(yàn)源代碼(或測(cè)試腳本)可不寫出,但是一定要寫出實(shí)驗(yàn)中出現(xiàn)的錯(cuò)誤,以及解決錯(cuò)誤的方法(3)出錯(cuò)信息及處理方法(4)實(shí)驗(yàn)結(jié)果,包括實(shí)驗(yàn)處理結(jié)果和設(shè)計(jì)心得。單元測(cè)試覆蓋率-使用CloverClover是對(duì)單元測(cè)試覆蓋率進(jìn)行統(tǒng)計(jì)的軟件,在Eclipse中使用Clover,首先使用從/download.jspa下載Clover,還需要申請(qǐng)一個(gè)license,否則無法使用。目前免費(fèi)下載的基本都是30天試用版。下載后把Clover壓縮包里的兩個(gè)文件夾,features和plugins,復(fù)制到Eclipse安裝目錄中替換原來的兩個(gè)文件夾。1.打開Eclipse,從Window->Showview->other,可以看到Clover的信息:導(dǎo)ShrnirVieiJJGerLer:£LAntJ??舊?C10TRtjl--?〔■JCewer:ageIxplorer卜■■■■?...}..3,CVSDebugH&lp,TavaBrowsiFDEFDEEuniiineSY1IT四邳Uze72todi5pLa.ythedescriptiunforaselectedviOKCancelOK2.還需要導(dǎo)入clover.licenseo從Preferences->Clover->License進(jìn)入:并將申請(qǐng)到的的license粘帖到這里,至此Clover已經(jīng)安裝完成,開始進(jìn)入單元測(cè)試??梢詫?duì)之前已經(jīng)做過的project進(jìn)行覆蓋率的計(jì)算。也可新建了一個(gè)project,結(jié)構(gòu)如下:JVJuititlnAction*?片ReferstlcedLibr:=□:■lee4com.lyoe.s;idriplel>■■■■[f;S:uTiple.javai一一src/jtesi:com.lyoe.z:=diiple.java>S,.JFLESysEmLibraiy[jrel.6.O_UE:??…&lit5??…&srcSample.java和SampleTest.java內(nèi)容分別是:Java代碼packagecom.lyoe.sample;2.publicclassSample(publicIntegeradd(Integera,Integerb)(if(a==nullIIb==null)(returnnull;TOC\o"1-5"\h\z}Integersum=newInteger(Value()+Value());returnsum;}}Java代碼packagecom.lyoe.sample;2.importcom.lyoe.sample.Sample;importjunit.framework.TestCase;5.publicclassSampleTestextendsTestCase(7.protectedvoidsetUp()throwsException(super.setUp();}11.publicvoidtestAdd()(Samplesample=newSample();Integera=newInteger(1);Integerb=newInteger(2);Integerc=sample.add(a,b);assertNotNull(c);TOC\o"1-5"\h\z}19.protectedvoidtearDown()throwsException(super.tearDown();}23.}右擊JunitInAction工程,選擇Properties->Clover。上面有一個(gè)EnableCloverinthisproject,勾上,apply->OK.曷FrotlemsShow:AllclassesElerngnt%TOTALCoverageAverageMet...Corripl&xityjJunitlriXctiungcom.lyot:.E:=iJTiplF::?…曷FrotlemsShow:AllclassesElerngnt%TOTALCoverageAverageMet...Corripl&xityjJunitlriXctiungcom.lyot:.E:=iJTiplF::?…』Sample,ja^a[>■■■■國S:dJiipleTe5t.java0.0%0.0%0.0%0.0%1.06.06.03.03.0■時(shí)幻I■啊函可劇囹□Togglewkn+ht:!-CloveririEtriojTierLti+iijrLisp^rfurTit!ddm-ingTipil=iti.Mlfirthwproj點(diǎn)擊紅框內(nèi)的按鈕,會(huì)彈出重新構(gòu)建工程的提示,點(diǎn)擊”是”即可。To在CoverageExplorer界面下,我們會(huì)看到:@Javadoc|^jDeclii_atiunE■jCoverageExplorerFrublene@Javadoc右擊SampleTest.java,選擇Runas->JUnitTest,結(jié)果如下:Frublene@JavadocElemerLt▼%TOTALCoverageA.verageMei...Complexity■t日J(rèn)uniIIilActionJ-£0com-lyg.s:diiiple1:■88.2%1.56.06.0b―Jj5:=jTiple.java71.4%3.03.0陽場(chǎng)國|W的p偵T白gt.j:.11100.0%1.03.0Show:Allclasses|颶,DslaratiDn?(■JCoverageExplorer以可以看到Sample.java的覆蓋率為71.4%.Clover還可以生成三種測(cè)試報(bào)告:PDF/HTML/XMLO按鈕可以在CoverageExplorer那排的選項(xiàng)按鈕里找到(runnewreport)o

實(shí)驗(yàn)二黑盒測(cè)試一、實(shí)驗(yàn)?zāi)康?、掌握黑盒測(cè)試基本技術(shù),并能夠應(yīng)用黑盒測(cè)試方法設(shè)計(jì)測(cè)試用例2、熟悉黑盒測(cè)試中的等價(jià)類測(cè)試方法和邊界值測(cè)試方法。二、實(shí)驗(yàn)任務(wù)使用等價(jià)類方法設(shè)計(jì)下面程序的設(shè)計(jì)用例:輸入三個(gè)整數(shù)作為邊,分別滿足一般三角形、等腰三角形和等邊三角形。三、實(shí)驗(yàn)內(nèi)容和步驟1、使用等價(jià)類劃分法設(shè)計(jì)下面的測(cè)試用例:(1)源程序packagepl;importjava.io.*;publicclassJTriangle(privateintb,c,a;privatestaticintx1,x2,x3;privatestaticStrings1,s2,s3;publicvoidsetA(inta)(this.a=a;}publicvoidsetB(intb)(this.b=b;}publicvoidsetC(intc)(this.c=c;}publicbooleanIsTriangle()(if(a+b>c&&a+c>b&&b+c>a&&a!=0&&b!=0&&c!=0)returntrue;else,re'””false;publicJTriangle(int_a,int_b,int_c)(setA(a);setB(_b),setC(_c);publicStringJudgeTriangle()if(IsTriangle())'一return〃等邊三角形el—5return〃等腰三角形〃;else}re'""I*"'elsereturn〃不能組成三角形〃;publicbooleanISNumble(Strings)if(s.length()==0){returnfalse;else(charch[]=s.toCharArray();:or(""…出)if(ch[i]>='0'&&ch[i]<='9')continue;elsereturnfalse;}returntrue;}}publicvoidSetTriangle()(try(Buffe

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論