版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第3章軟件測(cè)試方法(一)靜態(tài)測(cè)試與動(dòng)態(tài)測(cè)試3.1
靜態(tài)測(cè)試技術(shù)概述
靜態(tài)測(cè)試是不執(zhí)行被分析的程序,而是通過(guò)對(duì)模塊源代碼進(jìn)行研讀、找出其中的錯(cuò)誤或可疑之處,收集一些度量數(shù)據(jù)。靜態(tài)測(cè)試包括對(duì)軟件產(chǎn)品的需求和設(shè)計(jì)規(guī)格說(shuō)明書的評(píng)審、對(duì)程序代碼的復(fù)審等。
靜態(tài)測(cè)試的查錯(cuò)和分析功能是其他方法所不能替代的,可以采用人工或者計(jì)算機(jī)輔助靜態(tài)測(cè)試手段進(jìn)行檢測(cè)。代碼檢查
主要檢查代碼和設(shè)計(jì)的一致性,代碼對(duì)標(biāo)準(zhǔn)的遵循,可讀性,代碼邏輯表達(dá)正確性,代碼結(jié)構(gòu)合理性等方面;發(fā)現(xiàn)程序中不安全、不明確和模糊部分,找出程序中不可移植部分;發(fā)現(xiàn)違背程序編寫風(fēng)格問(wèn)題。其中包括變量檢查、命名和類型審查、程序邏輯審查、程序語(yǔ)法檢查和程序結(jié)構(gòu)檢查等內(nèi)容。包括桌面檢查、代碼審查和走查等3.1
靜態(tài)測(cè)試技術(shù)概述桌面檢查
桌面檢查是一種傳統(tǒng)的檢查方法,由程序員自己檢查編寫的程序。由于程序員熟悉自己的程序和程序設(shè)計(jì)風(fēng)格,桌面檢查由程序員自己進(jìn)行可以節(jié)省很多檢查時(shí)間。
桌面檢查需要首先運(yùn)行拼寫檢查器、語(yǔ)法檢查器、句法檢查器等進(jìn)行字面檢查,現(xiàn)在大多數(shù)集成開(kāi)發(fā)環(huán)境集成了這些相應(yīng)的工具幫助程序員在編寫代碼的同時(shí)就注意這些可能存在的缺陷。代碼檢查3.1
靜態(tài)測(cè)試技術(shù)概述Eg:第28行:返回?cái)?shù)據(jù)類型應(yīng)該為int,寫成了Int;第33行:缺少標(biāo)點(diǎn)符號(hào)“;”;第37行:返回的關(guān)鍵字“return”拼寫錯(cuò)誤;第41行:關(guān)鍵字“this”,寫成了“that”。代碼檢查3.1
靜態(tài)測(cè)試技術(shù)概述桌面檢查代碼審查
代碼審查是由若干程序員和測(cè)試人員組成一個(gè)審查小組,通過(guò)閱讀、討論和爭(zhēng)議,對(duì)程序進(jìn)行靜態(tài)分析的過(guò)程。代碼審查分為兩步:小組負(fù)責(zé)人提前把設(shè)計(jì)規(guī)格說(shuō)明書、控制流程圖、程序文本以及有關(guān)要求、規(guī)范等分發(fā)給小組成員,作為審查的依據(jù);小組成員在充分閱讀這些材料后,召開(kāi)程序?qū)彶闀?huì),在會(huì)上首先由程序員逐行講解程序邏輯,在此過(guò)程中程序員或其他小組成員可以提出問(wèn)題展開(kāi)討論,審查錯(cuò)誤是否存在。代碼檢查3.1
靜態(tài)測(cè)試技術(shù)概述重要性激活結(jié)果檢查項(xiàng)總計(jì)
命名
重要Y通過(guò)命名規(guī)則是否與所采用的規(guī)范保持一致?
是否遵循了最小長(zhǎng)度最多信息原則?重要Y通過(guò)has/can/is前綴的函數(shù)是否返回布爾型?注釋
重要Y通過(guò)注釋是否較清晰且必要?重要Y通過(guò)復(fù)雜的分支流程是否已經(jīng)被注釋?
Y不通過(guò)距離較遠(yuǎn)的}是否已經(jīng)被注釋?
Y不通過(guò)非通用變量是否全部被注釋?重要Y不通過(guò)函數(shù)是否已經(jīng)有文檔注釋?(功能、輸入、返回及其他可選)
特殊用法是否被注釋?聲明、空白、縮進(jìn)
Y通過(guò)每行是否只聲明了一個(gè)變量?(特別是那些可能出錯(cuò)的類型)重要Y通過(guò)變量是否已經(jīng)在定義的同時(shí)初始化?重要Y通過(guò)類屬性是否都執(zhí)行了初始化?
Y通過(guò)代碼段落是否被合適地以空行分隔?
Y通過(guò)是否合理地使用了空格使程序更清晰?
Y通過(guò)代碼行長(zhǎng)度是否在要求之內(nèi)?
Y通過(guò)折行是否恰當(dāng)?代碼檢查3.1
靜態(tài)測(cè)試技術(shù)概述Java代碼審查檢查表語(yǔ)句/功能的分布/規(guī)模
Y通過(guò)包含復(fù)合語(yǔ)句的{}是否成對(duì)出現(xiàn)并符合規(guī)范?
Y不通過(guò)是否給單個(gè)的循環(huán)、條件語(yǔ)句也加了{(lán)}?
Y通過(guò)if/if-else/if-elseif-else/do-while/switch-case語(yǔ)句的格式是否符合規(guī)范?
Y通過(guò)單個(gè)變量是否只做單個(gè)用途?重要Y通過(guò)單行是否只有單個(gè)功能?(不要使用;進(jìn)行多行合并)重要Y通過(guò)單個(gè)函數(shù)是否執(zhí)行了單個(gè)功能并與其命名相符?
Y通過(guò)操作符++和——操作符的應(yīng)用是否復(fù)合規(guī)范?規(guī)模
重要Y通過(guò)單個(gè)函數(shù)不超過(guò)規(guī)定行數(shù)?重要Y通過(guò)縮進(jìn)層數(shù)是否不超過(guò)規(guī)定?重要Y通過(guò)是否已經(jīng)消除了所有警告?重要Y通過(guò)常數(shù)變量是否聲明為final?重要Y不通過(guò)對(duì)象使用前是否進(jìn)行了檢查?重要Y不通過(guò)局部對(duì)象變量使用后是否被復(fù)位為NULL?重要Y通過(guò)對(duì)數(shù)組的訪問(wèn)是否是安全的?(合法的index取值為[0,MAX_SIZE-1])。重要Y通過(guò)是否確認(rèn)沒(méi)有同名變量局部重復(fù)定義問(wèn)題?
Y通過(guò)程序中是否只使用了簡(jiǎn)單的表達(dá)式?重要Y通過(guò)是否已經(jīng)用()使操作符優(yōu)先級(jí)明確化?重要Y通過(guò)所有判斷是否都使用了(常量==變量)的形式?
是否消除了流程懸掛?重要Y不通過(guò)是否每個(gè)if-elseif-else語(yǔ)句都有最后一個(gè)else以確保處理了全集?重要Y通過(guò)是否每個(gè)switch-case語(yǔ)句都有最后一個(gè)default以確保處理了全集?
Y通過(guò)for循環(huán)是否都使用了包含下限不包含上限的形式?(k=0;k<MAX)重要
XML標(biāo)記書寫是否完整,字符串的拼寫是否正確?
Y不通過(guò)對(duì)于流操作代碼的異常捕獲是否有finally操作以關(guān)閉流對(duì)象?
退出代碼段時(shí)是否對(duì)臨時(shí)對(duì)象做了釋放處理?重要Y通過(guò)對(duì)浮點(diǎn)數(shù)值的相等判斷是否是恰當(dāng)?shù)模浚▏?yán)禁使用==直接判斷)代碼檢查3.1
靜態(tài)測(cè)試技術(shù)概述Java代碼審查檢查表可靠性(函數(shù))
重要Y通過(guò)入口對(duì)象是否都被進(jìn)行了判斷不為空?重要Y通過(guò)入口數(shù)據(jù)的合法范圍是否都被進(jìn)行了判斷?(尤其是數(shù)組)重要Y通過(guò)是否對(duì)有異常拋出的方法都執(zhí)行了try...catch保護(hù)?重要Y通過(guò)是否函數(shù)的所有分支都有返回值?重要Y通過(guò)int的返回值是否合理?(負(fù)值為失敗,非負(fù)值成功)
Y通過(guò)對(duì)于反復(fù)進(jìn)行了int返回值判斷是否定義了函數(shù)來(lái)處理?
關(guān)鍵代碼是否做了捕獲異常處理?重要
是否確保函數(shù)返回CORBA對(duì)象的任何一個(gè)屬性都不能為null?重要Y通過(guò)是否對(duì)方法返回值對(duì)象做了null檢查,該返回值定義時(shí)是否被初始化?重要Y通過(guò)是否對(duì)同步對(duì)象的遍歷訪問(wèn)做了代碼同步?重要Y通過(guò)是否確認(rèn)在對(duì)Map對(duì)象使用迭代遍歷過(guò)程中沒(méi)有做增減元素操作?重要Y通過(guò)線程處理函數(shù)循環(huán)內(nèi)部是否有異常捕獲處理,防止線程拋出異常而退出?
原子操作代碼異常中斷,使用的相關(guān)外部變量是否恢復(fù)先前狀態(tài)?重要Y通過(guò)函數(shù)對(duì)錯(cuò)誤的處理是恰當(dāng)?shù)模靠删S護(hù)性
重要Y通過(guò)實(shí)現(xiàn)代碼中是否消除了直接常量?(用于計(jì)數(shù)起點(diǎn)的簡(jiǎn)單常數(shù)例外)
是否消除了導(dǎo)致結(jié)構(gòu)模糊的連續(xù)賦值?(如a=(b=d+c))
Y通過(guò)是否每個(gè)return前都要有日志記錄?
Y通過(guò)是否有冗余判斷語(yǔ)句?(如:if(b)returntrue;elsereturnfalse;)
是否把方法中的重復(fù)代碼抽象成私有函數(shù)?代碼檢查3.1
靜態(tài)測(cè)試技術(shù)概述代碼檢查常見(jiàn)錯(cuò)誤表走查
走查與代碼審查基本相同,其過(guò)程分為兩步:把材料先發(fā)給走查小組的每個(gè)成員,認(rèn)真研究程序,然后開(kāi)會(huì);開(kāi)會(huì)的程序與代碼審查不同,不是簡(jiǎn)單的讀程序和對(duì)照錯(cuò)誤檢查表進(jìn)行檢查,而是讓與會(huì)者充當(dāng)計(jì)算機(jī),即首先由測(cè)試組成員為所測(cè)程序準(zhǔn)備一批有代表性的測(cè)試用例,提交給走查小組,走查小組開(kāi)會(huì)扮演計(jì)算機(jī)角色,讓測(cè)試用例沿程序邏輯運(yùn)行一遍,隨時(shí)記錄程序的跟蹤,供分析和討論用。代碼檢查3.1
靜態(tài)測(cè)試技術(shù)概述多次拷貝字符串:
測(cè)試所不能發(fā)現(xiàn)的一個(gè)錯(cuò)誤是生成不可變(immutable)對(duì)象的多份拷貝。不可變對(duì)象是不可改變的,因此不需要拷貝它。最常用的不可變對(duì)象是String。如果你必須改變一個(gè)String對(duì)象的內(nèi)容,你應(yīng)該使用StringBuffer。下面的代碼可以正常工作:Strings=newString("Texthere");但是,這段代碼性能差,而且沒(méi)有必要這么復(fù)雜??梢杂靡韵碌姆绞絹?lái)重寫上面的代碼:Stringtemp="Texthere";Strings=newString(temp);但是,這段代碼包含額外的String。更好的代碼為:Strings="Texthere";代碼檢查3.1
靜態(tài)測(cè)試技術(shù)概述Java代碼的走查與審查中常見(jiàn)錯(cuò)誤:沒(méi)有克隆(clone)返回的對(duì)象:封裝(encapsulation)是面向?qū)ο缶幊痰闹匾拍?。但是Java為打破這種封裝提供了方便——Java允許返回私有數(shù)據(jù)的引用(reference)。代碼檢查3.1
靜態(tài)測(cè)試技術(shù)概述Java代碼的走查與審查中常見(jiàn)錯(cuò)誤:檢查new操作的結(jié)果是否為nullJava編程新手有時(shí)候會(huì)檢查new操作的結(jié)果是否為null??赡艿臋z查代碼為:檢查雖然沒(méi)有錯(cuò)誤,但卻沒(méi)有必要。C/C++程序員在開(kāi)始寫Java程序的時(shí)候常常會(huì)這么做,這是由于檢查C/C++中malloc()的返回結(jié)果是必要的,不這樣做就可能產(chǎn)生錯(cuò)誤。但在Java中,new操作不允許返回null,如果真的返回null,很可能是虛擬機(jī)崩潰了,這時(shí)候即便檢查返回結(jié)果也是無(wú)濟(jì)于事。代碼檢查3.1
靜態(tài)測(cè)試技術(shù)概述Java代碼的走查與審查中常見(jiàn)錯(cuò)誤:
用==替代equals
在Java中,有兩種方式檢查兩個(gè)數(shù)據(jù)是否相等:通過(guò)使用==操作符,或者使用所有對(duì)象都實(shí)現(xiàn)的equals方法。原子類型(int,float,char等)不是對(duì)象,因此他們只能使用==操作符,如下所示:對(duì)象更復(fù)雜些,==操作符檢查兩個(gè)引用是否指向同一個(gè)對(duì)象,而equals方法則實(shí)現(xiàn)更專門的相等性檢查。代碼檢查3.1
靜態(tài)測(cè)試技術(shù)概述Java代碼的走查與審查中常見(jiàn)錯(cuò)誤:沒(méi)有正確實(shí)現(xiàn)equals,hashCode,或者clone等方法:
方法equals,hashCode,和clone是由java.lang.Object提供的缺省實(shí)現(xiàn)。但是,這些缺省實(shí)現(xiàn)在大部分時(shí)候毫無(wú)用處,因此許多類覆蓋其中的若干個(gè)方法以提供更有用的功能。而當(dāng)繼承一個(gè)覆蓋了若干個(gè)這些方法的父類時(shí),子類通常也需要覆蓋這些方法。代碼檢查3.1
靜態(tài)測(cè)試技術(shù)概述Java代碼的走查與審查中常見(jiàn)錯(cuò)誤:
通過(guò)代碼檢查法可以獲得軟件組成的重要基本因素,例如變量標(biāo)識(shí)符、過(guò)程標(biāo)識(shí)符、常量等,組合這些基本因素就可以得到軟件的基本信息,包括:標(biāo)號(hào)交叉引用表,變量交叉引用表,子程序、宏和函數(shù)表,等價(jià)表,常數(shù)表。通過(guò)這些軟件的基本信息可以實(shí)現(xiàn)以下功能:直接從表中查出說(shuō)明和使用錯(cuò)誤,如循環(huán)層次表、標(biāo)號(hào)交叉引用表和變量交叉引用表;為用戶提供輔助信息,如子程序、宏和函數(shù)表、等價(jià)表和常數(shù)表;用來(lái)做錯(cuò)誤預(yù)測(cè)和程序復(fù)雜度的計(jì)算,如操作符合操作數(shù)表等。代碼檢查3.1
靜態(tài)測(cè)試技術(shù)概述代碼檢查常用檢查項(xiàng)代碼檢查項(xiàng)目包括檢查變量的交叉引用表,檢查標(biāo)號(hào)的交叉引用表,檢查子程序、宏和函數(shù)表,等價(jià)性檢查,常量檢查,標(biāo)準(zhǔn)檢查,風(fēng)格檢查,比較控制流,選擇、激活路徑,對(duì)照程序說(shuō)明,充分文檔等。代碼檢查3.1
靜態(tài)測(cè)試技術(shù)概述代碼檢查常用檢查項(xiàng)3.1
靜態(tài)測(cè)試技術(shù)概述檢查變量的交叉引用表,重點(diǎn)檢查未說(shuō)明變量和違反了類型規(guī)定的變量,還要對(duì)照源程序,逐個(gè)檢查變量的引用、變量的使用序列、臨時(shí)變量在某條路徑上的重寫情況,局部變量、全局變量與特權(quán)變量的使用;檢查標(biāo)號(hào)的交叉引用表,驗(yàn)證所有標(biāo)號(hào)的正確性,檢查所有標(biāo)號(hào)的命名是否正確,轉(zhuǎn)向指定位置的標(biāo)號(hào)是否正確;檢查子程序、宏和函數(shù)表,調(diào)用每次調(diào)用和所調(diào)用位置是否正確,確定每次調(diào)用的子程序、宏和函數(shù)是否存在,檢驗(yàn)調(diào)用序列中調(diào)用方式與參數(shù)順序、個(gè)數(shù)、類型上的一致性;等價(jià)性檢查,檢查所有等價(jià)變量類型的一致性,解釋所包含的類型差異;標(biāo)準(zhǔn)檢查,用標(biāo)準(zhǔn)檢查工具軟件或手工檢查程序中違反標(biāo)準(zhǔn)的問(wèn)題;風(fēng)格檢查,檢查發(fā)現(xiàn)程序在設(shè)計(jì)風(fēng)格方面的問(wèn)題;代碼檢查常用檢查項(xiàng)比較控制流,比較由程序員設(shè)計(jì)的控制流圖和由程序生成的實(shí)際控制流圖,尋找和解釋每個(gè)差異,修改文檔并修正錯(cuò)誤;選擇、激活路徑,在程序員設(shè)計(jì)的控制流圖上選擇路徑,再到實(shí)際控制流圖上激活這條路徑,如果選擇的路徑在實(shí)際控制流圖上不能被激活,則源程序可能存在錯(cuò)誤;對(duì)照程序說(shuō)明,閱讀程序源代碼,逐行進(jìn)行分析思考,比較實(shí)際的代碼和期望的代碼,從它們的差異中發(fā)現(xiàn)程序的錯(cuò)誤和問(wèn)題;充分文檔,代碼檢查的文檔是一種過(guò)渡性文檔,不是公開(kāi)的正式文檔,通過(guò)編寫文檔,也是對(duì)程序的一種下意識(shí)的檢查和測(cè)試,可以幫助程序員發(fā)現(xiàn)更多的錯(cuò)誤,管理部門也可以通過(guò)檢查文檔,了解模塊質(zhì)量、完全性、測(cè)試方法和程序員能力。靜態(tài)結(jié)構(gòu)分析靜態(tài)結(jié)構(gòu)分析主要是以圖的形式表現(xiàn)程序的內(nèi)部結(jié)構(gòu),供測(cè)試人員對(duì)程序結(jié)構(gòu)進(jìn)行分析。靜態(tài)結(jié)構(gòu)分析是一種對(duì)代碼機(jī)械性的、程式化的特性進(jìn)行分析的方法。常用的關(guān)系圖主要有函數(shù)調(diào)用關(guān)系圖和模塊控制流圖。函數(shù)調(diào)用關(guān)系圖函數(shù)調(diào)用關(guān)系圖列出所有函數(shù),用連線表示調(diào)用關(guān)系,通過(guò)應(yīng)用程序各函數(shù)之間的調(diào)用關(guān)系展示了系統(tǒng)的結(jié)構(gòu),利用函數(shù)調(diào)用關(guān)系圖可以檢查函數(shù)的調(diào)用關(guān)系是否正確,是否存在孤立的函數(shù)而沒(méi)有被調(diào)用,明確函數(shù)被調(diào)用的頻繁度,對(duì)調(diào)用頻繁的函數(shù)可以重點(diǎn)檢查。通過(guò)查看函數(shù)調(diào)用關(guān)系圖,可以發(fā)現(xiàn)系統(tǒng)是否存在結(jié)構(gòu)缺陷,發(fā)現(xiàn)哪些函數(shù)是重要的,哪些是次要的,需要使用什么級(jí)別的覆蓋要求等;模塊控制流圖模塊控制流圖是由許多節(jié)點(diǎn)和連接節(jié)點(diǎn)的邊組成的圖形,其中每個(gè)節(jié)點(diǎn)代表一條或多條語(yǔ)句,邊表示控制流向,模塊控制流圖可以直觀的反映出一個(gè)函數(shù)的內(nèi)部結(jié)構(gòu),通過(guò)檢查這些模塊控制流圖可以很快的發(fā)現(xiàn)軟件錯(cuò)誤與缺陷。模塊控制流圖符號(hào):基本結(jié)構(gòu)圖:
類型和單元分析為了強(qiáng)化在源程序中數(shù)據(jù)類型的檢查,在程序設(shè)計(jì)語(yǔ)言中擴(kuò)展了一些新的數(shù)據(jù)類型,例如僅能在數(shù)組中使用的下標(biāo)類型和在循環(huán)語(yǔ)句中當(dāng)作控制變量使用的計(jì)數(shù)器類型,這樣就可以靜態(tài)預(yù)處理程序,分析程序中的類型錯(cuò)誤。引用分析在靜態(tài)錯(cuò)誤分析中,最廣泛使用的技術(shù)就是發(fā)現(xiàn)引用異常。如果沿著程序的控制路徑,變量在賦值以前被引用,或變量在賦值以后未被引用,這時(shí)就發(fā)生引用異常。為了檢測(cè)引用異常,需要檢查通過(guò)程序的每一條路徑。通常采用類似深度優(yōu)先的方法遍歷程序流程圖的每一條路徑,也可以建立引用異常的探測(cè)工具,這類工具包含兩個(gè)表:定義表和未引用表。每張表都包含一組變量表。未引用表包含已被賦值但未必引用的一些變量。當(dāng)掃描達(dá)到一個(gè)出度大于1的節(jié)點(diǎn)V時(shí),深度優(yōu)先探測(cè)算法要求先檢查最左分支的那部分程序流圖,然后再檢查其他分支。在最左分支檢查完之前,應(yīng)把定義表和未引用表的當(dāng)前內(nèi)容用一個(gè)棧暫時(shí)存儲(chǔ)起來(lái),當(dāng)最左分支檢查完之后,算法控制返回到節(jié)點(diǎn)V,從棧中恢復(fù)該節(jié)點(diǎn)的定義表和未引用表的舊的副表,然后再去遍歷該節(jié)點(diǎn)的下一個(gè)分支,這個(gè)過(guò)程要繼續(xù)到全部分支檢查完為止。表達(dá)式分析對(duì)表達(dá)式進(jìn)行分析,以發(fā)現(xiàn)和糾正在表達(dá)式中出現(xiàn)的錯(cuò)誤,包括:在表達(dá)式中不正確的使用括號(hào)造成的錯(cuò)誤;數(shù)組下標(biāo)越界造成的錯(cuò)誤;除數(shù)為零造成的錯(cuò)誤;對(duì)負(fù)數(shù)開(kāi)平方,或者對(duì)Π求正切造成的錯(cuò)誤。最復(fù)雜的一類表達(dá)式分析是對(duì)浮點(diǎn)數(shù)計(jì)算造成的誤差的檢查。由于使用二進(jìn)制數(shù)不能精確的表示十進(jìn)制浮點(diǎn)數(shù),常常使計(jì)算結(jié)果出乎意料。接口分析接口分析是程序的靜態(tài)錯(cuò)誤分析和設(shè)計(jì)分析共同研究的問(wèn)題。接口一致性的設(shè)計(jì)可以分析檢查模塊之間接口的一致性和外部數(shù)據(jù)庫(kù)之間接口的一致性。程序關(guān)于接口的靜態(tài)錯(cuò)誤分析檢查過(guò)程與實(shí)參在類型、函數(shù)過(guò)程接口之間的一致性,因此要檢查形參與實(shí)參在類型、數(shù)量、維數(shù)、順序、使用上的一致性;檢查全局變量和公共數(shù)據(jù)區(qū)在使用上的一致性。E.g.程序:猜數(shù)字游戲E.g.程序:猜數(shù)字游戲從該函數(shù)調(diào)用關(guān)系圖中,可以得到以下信息:函數(shù)之間的調(diào)用關(guān)系符合設(shè)計(jì)規(guī)格說(shuō)明書的要求;不存在遞歸調(diào)用;調(diào)用層次最
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度個(gè)人旅游產(chǎn)品預(yù)訂服務(wù)合同4篇
- 昭通2025年云南昭通綏江縣住建局招聘編外聘用人員筆試歷年參考題庫(kù)附帶答案詳解
- 二零二五年度車貸抵押貸款續(xù)貸服務(wù)合同3篇
- 2025年浙科版八年級(jí)生物下冊(cè)階段測(cè)試試卷含答案
- 二零二五年度航空航天燃料采購(gòu)合同要素及燃燒效率3篇
- 2025年統(tǒng)編版2024七年級(jí)物理下冊(cè)月考試卷
- 2025年外研銜接版選擇性必修1物理下冊(cè)階段測(cè)試試卷
- 2025年浙科版高一地理下冊(cè)月考試卷含答案
- 2025年統(tǒng)編版2024選修5歷史下冊(cè)階段測(cè)試試卷
- 2025年度個(gè)人自用住房產(chǎn)權(quán)轉(zhuǎn)讓合同范本2篇
- 2024版《建設(shè)工程開(kāi)工、停工、復(fù)工安全管理臺(tái)賬表格(流程圖、申請(qǐng)表、報(bào)審表、考核表、通知單等)》模版
- 2024年廣州市高三一模普通高中畢業(yè)班高三綜合測(cè)試一 物理試卷(含答案)
- 部編版《道德與法治》六年級(jí)下冊(cè)教材分析萬(wàn)永霞
- 粘液腺肺癌病理報(bào)告
- 酒店人防管理制度
- 油田酸化工藝技術(shù)
- 上海高考英語(yǔ)詞匯手冊(cè)列表
- 移動(dòng)商務(wù)內(nèi)容運(yùn)營(yíng)(吳洪貴)任務(wù)五 其他內(nèi)容類型的生產(chǎn)
- 上海石油化工股份有限公司6181乙二醇裝置爆炸事故調(diào)查報(bào)告
- 例說(shuō)相機(jī)誘導(dǎo)在語(yǔ)文教學(xué)中的運(yùn)用 相機(jī)誘導(dǎo)
- 浙江省紹興市2023年中考科學(xué)試題(word版-含答案)
評(píng)論
0/150
提交評(píng)論