




已閱讀5頁(yè),還剩20頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
軟件測(cè)試的概述及方法meteor指導(dǎo)教師姓名 職稱 專 業(yè) 名 稱 計(jì) 算 機(jī) 網(wǎng) 絡(luò) 專 業(yè) 論文提交日期 論文答辯日期 2012年 4月 30 日軟件測(cè)試的概述及方法meteorxx大學(xué),重慶 400715摘要:從軟件產(chǎn)業(yè)的發(fā)展初期到目前的大型軟件開發(fā)過(guò)程,軟件測(cè)試已成為其中一個(gè)不可分割的部分。隨著軟件規(guī)模的日益增大,軟件測(cè)試問(wèn)題也日益突出,現(xiàn)代社會(huì)對(duì)軟件的依賴越來(lái)越強(qiáng),高可信軟件測(cè)試有著廣泛的需求,基于缺陷模式的軟件測(cè)試技術(shù)作為高可信軟件的重要保證,可以大大降低軟件的缺陷密度,提高軟件的可信性。本文從測(cè)試的基本概念入手,深入剖析軟件測(cè)試相關(guān)理論。關(guān)鍵字:軟件測(cè)試、白盒測(cè)試、黑盒測(cè)試、類測(cè)試1 軟件測(cè)試的發(fā)展史軟件測(cè)試的發(fā)展歷史:20世紀(jì)60年代(軟件工程建立前),為表明程序正確而進(jìn)行測(cè)試。1972年在北卡羅來(lái)納大學(xué)舉行了首屆軟件測(cè)試正式會(huì)議。1975年john good enough和susan gerhart在ieee上發(fā)表了測(cè)試數(shù)據(jù)選擇的原理的文章,軟件測(cè)試被確定為一種研究方向。1979年,glenford myers的軟件測(cè)試藝術(shù),對(duì)測(cè)試做了定義:測(cè)試是為發(fā)現(xiàn)錯(cuò)誤而執(zhí)行的一個(gè)程序或者系統(tǒng)的過(guò)程 。20世紀(jì)80年代早期,“質(zhì)量”的號(hào)角開始吹響。軟件測(cè)試定義發(fā)生了改變,測(cè)試不單純是一個(gè)發(fā)現(xiàn)錯(cuò)誤的過(guò)程,而且包含軟件質(zhì)量評(píng)價(jià)的內(nèi)容。制定了各類標(biāo)準(zhǔn)。1983年,bill hetzel在軟件測(cè)試完全指南中指出:測(cè)試是以評(píng)價(jià)一個(gè)程序或者系統(tǒng)屬性為目標(biāo)的任何一種活動(dòng),測(cè)試是對(duì)軟件質(zhì)量的度量。 20世紀(jì)90年代,測(cè)試工具盛行起來(lái), 1996年提出的測(cè)試能力成熟度tcmm(testing capability maturity model)、測(cè)試支持度tsm(testability support model)、測(cè)試成熟度tmm(testing maturity model)。 到了2002年,rick和stefan在系統(tǒng)的軟件測(cè)試一書中對(duì)軟件測(cè)試做了進(jìn)一步定義:測(cè)試是為了度量和提高被測(cè)軟件的質(zhì)量,對(duì)測(cè)試軟件進(jìn)行工程設(shè)計(jì)、實(shí)施和維護(hù)的整個(gè)生命過(guò)程。2 軟件測(cè)試的相關(guān)背景相關(guān)背景:前段時(shí)間, 就是在我沒有認(rèn)真了解測(cè)試行業(yè)之前, 可能由于測(cè)試在中國(guó)的重視程度的問(wèn)題, 我也一直認(rèn)為測(cè)試應(yīng)該是不重要的, 甚至認(rèn)為有必要有專門的測(cè)試職業(yè)嗎?認(rèn)為軟件主要是開發(fā)人員的事, 軟件的成果也是由開發(fā)人員決定的, 當(dāng)我在參加工作后, 真正從學(xué)校的學(xué)習(xí)環(huán)境中走上實(shí)際運(yùn)用開發(fā)的時(shí)候, 事實(shí)上真的不是那么一回事。軟件無(wú)處不在, 然而, 軟件是人編的所以不完美。臭名昭著的軟件測(cè)試案例:1、迪士尼的獅子王 (19941995)軟件在少數(shù)系統(tǒng)中能正常工作, 但在大眾使用的常見系統(tǒng)中不行。后來(lái)證實(shí),迪士尼公司沒有對(duì)市場(chǎng)上投入實(shí)用的各種pc機(jī)型進(jìn)行正確的測(cè)試。2、英特爾奔騰浮點(diǎn)除法軟件缺陷(1994)英特爾為自己處理軟件缺陷拿出4億美元支付更換壞芯片的費(fèi)用。導(dǎo)致付出如此昂貴的代價(jià), 其主要原因是發(fā)現(xiàn)了軟件缺陷沒有正確的處理。3、美國(guó)航天局火星極地登陸(1999)該項(xiàng)目使用前有經(jīng)過(guò)測(cè)試, 兩個(gè)測(cè)試小組雙方獨(dú)立工作都很好, 但從未走在一起。4、愛國(guó)者導(dǎo)彈防御系統(tǒng) (1991)一枚導(dǎo)彈在多哈擊斃28名美國(guó)士兵, 癥結(jié)在于一個(gè)軟件缺陷:一個(gè)很小的系統(tǒng)時(shí)鐘錯(cuò)誤累積起來(lái)就可能拖延14小時(shí), 造成跟蹤系統(tǒng)失去準(zhǔn)確度。在多哈襲擊戰(zhàn)中系統(tǒng)被拖延100小時(shí)。5、千年蟲 (大約1974)估計(jì)世界各地更換或升級(jí)該系統(tǒng)程序解決原有2000年錯(cuò)誤的費(fèi)用已經(jīng)超過(guò)數(shù)億美元。3 軟件測(cè)試的概述3.1 軟件測(cè)試的定義軟件測(cè)試使用人工或者自動(dòng)手段來(lái)運(yùn)行或測(cè)試某個(gè)系統(tǒng)的過(guò)程,其目的在于檢驗(yàn)它是否滿足規(guī)定的需求或弄清預(yù)期結(jié)果與實(shí)際結(jié)果之間的差別。它是幫助識(shí)別開發(fā)完成(中間或最終的版本)的計(jì)算機(jī)軟件(整體或部分)的正確度(correctness) 完全度(completeness)和質(zhì)量(quality)的軟件過(guò)程;是sqa(software quality assurance)的重要子域。(1)測(cè)試并不僅僅是為了找出錯(cuò)誤,通過(guò)分析錯(cuò)誤產(chǎn)生的原因和錯(cuò)誤的發(fā)生趨勢(shì),可以幫助項(xiàng)目管理者發(fā)現(xiàn)當(dāng)前軟件開發(fā)過(guò)程中的缺陷,以便及時(shí)改進(jìn); (2)這種分析也能幫助測(cè)試人員設(shè)計(jì)出有針對(duì)性的測(cè)試方法,改善測(cè)試的效率和有效性; (3)沒有發(fā)現(xiàn)錯(cuò)誤的測(cè)試也是有價(jià)值的,完整的測(cè)試是評(píng)定軟件質(zhì)量的一種方法。3.2 軟件測(cè)試的描述測(cè)試是軟件開發(fā)過(guò)程的重要組成部分, 是用來(lái)確認(rèn)一個(gè)程序的品質(zhì)或性能是否符合開發(fā)之前所提出的一些要求。軟件測(cè)試的目的, 第一是確認(rèn)軟件的質(zhì)量, 其一方面是確認(rèn)軟件做了你所期望的事情(do the right thing), 另一方面是確認(rèn)軟件以正確的方式來(lái)做了這個(gè)事件(do it right);第二是提供信息, 比如提供給開發(fā)人員或程序經(jīng)理的反饋信息, 為風(fēng)險(xiǎn)評(píng)估所準(zhǔn)備的信息;第三軟件測(cè)試不僅是在測(cè)試軟件產(chǎn)品的本身, 而且還包括軟件開發(fā)的過(guò)程。如果一個(gè)軟件產(chǎn)品開發(fā)完成之后發(fā)現(xiàn)了很多問(wèn)題, 這說(shuō)明此軟件開發(fā)過(guò)程很可能是有缺陷的。3.3 軟件測(cè)試的目的如果測(cè)試的目的是為了盡可能多地找出錯(cuò)誤,那么測(cè)試就應(yīng)該直接針對(duì)軟件比較復(fù)雜的部分或是以前出錯(cuò)比較多的位置。如果測(cè)試目的是為了給最終用戶提供具有一定可信度的質(zhì)量評(píng)價(jià),那么測(cè)試就應(yīng)該直接針對(duì)在實(shí)際應(yīng)用中會(huì)經(jīng)常用到的商業(yè)假設(shè)。 在談到軟件測(cè)試時(shí),引用grenford j. myers在the art of software testing一書中的觀點(diǎn): (1)軟件測(cè)試是為了發(fā)現(xiàn)錯(cuò)誤而執(zhí)行程序的過(guò)程; (2)測(cè)試是為了證明程序有錯(cuò),而不是證明程序無(wú)錯(cuò)誤; (3)一個(gè)好的測(cè)試用例是在于它能發(fā)現(xiàn)至今未發(fā)現(xiàn)的錯(cuò)誤; (4)一個(gè)成功的測(cè)試是發(fā)現(xiàn)了至今未發(fā)現(xiàn)的錯(cuò)誤的測(cè)試。 這種觀點(diǎn)可以提醒人們測(cè)試要以查找錯(cuò)誤為中心,而不是為了演示軟件的正確功能。但是僅憑字面意思理解這一觀點(diǎn)可能會(huì)產(chǎn)生誤導(dǎo),認(rèn)為發(fā)現(xiàn)錯(cuò)誤是軟件測(cè)試的唯一目,查找不出錯(cuò)誤的測(cè)試就是沒有價(jià)值的,事實(shí)并非如此。 首先,測(cè)試并不僅僅是為了要找出錯(cuò)誤。通過(guò)分析錯(cuò)誤產(chǎn)生的原因和錯(cuò)誤的分布特征,可以幫助項(xiàng)目管理者發(fā)現(xiàn)當(dāng)前所采用的軟件過(guò)程的缺陷,以便改進(jìn)。同時(shí),這種分析也能幫助我們?cè)O(shè)計(jì)出有針對(duì)性地檢測(cè)方法,改善測(cè)試的有效性。其次,沒有發(fā)現(xiàn)錯(cuò)誤的測(cè)試也是有價(jià)值的,完整的測(cè)試是評(píng)定測(cè)試質(zhì)量的一種方法。3.4 軟件測(cè)試的原則1應(yīng)當(dāng)把 “盡早和不斷的測(cè)試”作為開發(fā)者的座右銘。 2程序員應(yīng)該避免檢查自己的程序, 測(cè)試工作應(yīng)該由獨(dú)立的專業(yè)的軟件測(cè)試機(jī)構(gòu)來(lái)完成。 3設(shè)計(jì)測(cè)試用例時(shí)應(yīng)該考慮到合法的輸入和不合法的輸入以及各種邊界條件, 特殊情況下要制造極端狀態(tài)和意外狀態(tài), 比如網(wǎng)絡(luò)異常中斷、電源斷電等情況。 4一定要注意測(cè)試中的錯(cuò)誤集中發(fā)生現(xiàn)象, 這和程序員的編程水平和習(xí)慣有很大的關(guān)系。 5對(duì)測(cè)試錯(cuò)誤結(jié)果一定要有一個(gè)確認(rèn)的過(guò)程, 一般有a測(cè)試出來(lái)的錯(cuò)誤, 一定要有一個(gè)b來(lái)確認(rèn), 嚴(yán)重的錯(cuò)誤可以召開評(píng)審會(huì)進(jìn)行討論和分析。 6制定嚴(yán)格的測(cè)試計(jì)劃, 并把測(cè)試時(shí)間安排的盡量寬松, 不要希望在極短的時(shí)間內(nèi)完成一個(gè)高水平的測(cè)試。 7回歸測(cè)試的關(guān)聯(lián)性一定要引起充分的注意, 修改一個(gè)錯(cuò)誤而引起更多的錯(cuò)誤出現(xiàn)的現(xiàn)象并不少見。 8妥善保存一切測(cè)試過(guò)程文檔, 意義是不言而喻的, 測(cè)試的重現(xiàn)性往往要靠測(cè)試文檔4 軟件測(cè)試的內(nèi)容4.1 驗(yàn)證(verification)驗(yàn)證(verification)是保證軟件正確地實(shí)現(xiàn)了一些特定功能的一系列活動(dòng), 即保證軟件做了你所期望的事情。(do the right thing) 1.確定軟件生存周期中的一個(gè)給定階段的產(chǎn)品是否達(dá)到前階段確立的需求的過(guò)程;2.程序正確性的形式證明, 即采用形式理論證明程序符號(hào)設(shè)計(jì)規(guī)約規(guī)定的過(guò)程;3.評(píng)市、審查、測(cè)試、檢查、審計(jì)等各類活動(dòng), 或?qū)δ承╉?xiàng)處理、服務(wù)或文件等是否和規(guī)定的需求相一致進(jìn)行判斷和提出報(bào)告。4.2 確認(rèn)(validation)確認(rèn)(validation)是一系列的活動(dòng)和過(guò)程, 目的是想證實(shí)在一個(gè)給定的外部環(huán)境中軟件的邏輯正確性。即保證軟件以正確的方式來(lái)做了這個(gè)事件(do it right)1.靜態(tài)確認(rèn), 不在計(jì)算機(jī)上實(shí)際執(zhí)行程序, 通過(guò)人工或程序分析來(lái)證明軟件的正確性;2.動(dòng)態(tài)確認(rèn), 通過(guò)執(zhí)行程序做分析, 測(cè)試程序的動(dòng)態(tài)行為, 以證實(shí)軟件是否存在問(wèn)題。軟件測(cè)試的對(duì)象不僅僅是程序測(cè)試, 軟件測(cè)試應(yīng)該包括整個(gè)軟件開發(fā)期間各個(gè)階段所產(chǎn)生的文檔, 如需求規(guī)格說(shuō)明、概要設(shè)計(jì)文檔、詳細(xì)設(shè)計(jì)文檔, 當(dāng)然軟件測(cè)試的主要對(duì)象還是源程序。5 軟件測(cè)試的分類5.1 常用分類從是否需要執(zhí)行被測(cè)軟件的角度, 可分為: 靜態(tài)測(cè)試 和動(dòng)態(tài)測(cè)試 從測(cè)試是否針對(duì)系統(tǒng)的內(nèi)部結(jié)構(gòu)和具體實(shí)現(xiàn)算法的角度來(lái)看, 可分為 : 白盒測(cè)試 和黑盒測(cè)試5.2 黑盒測(cè)試黑盒測(cè)試指的是把被測(cè)軟件看作是一個(gè)黑盒子, 我們不去關(guān)心盒子里面的結(jié)構(gòu)是什么樣子, 只關(guān)心軟件的輸入數(shù)據(jù)和輸出結(jié)果。黑盒測(cè)試方法是在程序接口上進(jìn)行測(cè)試, 主要是為了發(fā)現(xiàn)以下錯(cuò)誤: 是否有不正確或遺漏了的功能? 在接口上, 輸入能否正確地接受? 能否輸出正確的結(jié)果? 是否有數(shù)據(jù)結(jié)構(gòu)錯(cuò)誤或外部信息(例如數(shù)據(jù)文件)訪問(wèn)錯(cuò)誤? 性能上是否能夠滿足要求? 是否有初始化或終止性錯(cuò)誤? 用黑盒測(cè)試發(fā)現(xiàn)程序中的錯(cuò)誤, 必須在所有可能的輸入條件和輸出條件中確定測(cè)試數(shù)據(jù), 來(lái)檢查程序是否都能產(chǎn)生正確的輸出,但這是不可能的。證明:n假設(shè)一個(gè)程序p有輸入量x和y及輸出量z。在字長(zhǎng)為32位的計(jì)算機(jī)上運(yùn)行。若x、y取整數(shù), 按黑盒方法進(jìn)行窮舉測(cè)試:n可能采用的 測(cè)試數(shù)據(jù)組: 232232 264 n如果測(cè)試一組數(shù)據(jù)需要1毫秒, 一年工作365 24小時(shí), 完成所有測(cè)試需5億年。5.2.1 黑盒測(cè)試的測(cè)試用例設(shè)計(jì)如手機(jī)的開機(jī)測(cè)試案例下表所示開機(jī)(power up)測(cè)試項(xiàng)目測(cè)試id操作描述預(yù)期結(jié)果實(shí)際結(jié)果(ok/ng/na)備注1 led燈pu-1-1關(guān)機(jī)狀態(tài)下長(zhǎng)按掛機(jī)鍵led燈閃爍,顏色變換符合設(shè)計(jì)2 開機(jī)動(dòng)畫pu-2-1關(guān)機(jī)狀態(tài)下長(zhǎng)按掛機(jī)鍵開機(jī)動(dòng)畫演示正常3 開機(jī)音樂pu-3-1關(guān)機(jī)狀態(tài)下長(zhǎng)按掛機(jī)鍵開機(jī)音樂播放正常4 開機(jī)歡迎界面pu-4-1關(guān)機(jī)狀態(tài)下長(zhǎng)按掛機(jī)鍵開機(jī)歡迎辭顯示正常5 sim卡檢查5.1 sim卡損壞或沒有sim卡插入pu-5.1-1關(guān)機(jī)狀態(tài)下長(zhǎng)按掛機(jī)鍵開機(jī)動(dòng)畫、開機(jī)音樂之后,顯示并停留在“請(qǐng)插入sim卡”版面pu-5.1-2關(guān)機(jī)狀態(tài)下長(zhǎng)按掛機(jī)鍵,在“請(qǐng)插入sim卡”版面,按sos軟鍵進(jìn)入“緊急呼叫”5.2 啟動(dòng)了pin檢驗(yàn)pu-5.2-1關(guān)機(jī)狀態(tài)下長(zhǎng)按掛機(jī)鍵開機(jī)動(dòng)畫、開機(jī)音樂后出現(xiàn)“請(qǐng)輸入pin碼”版面pu-5.2-2“請(qǐng)輸入pin碼”版面,直接按確定軟鍵提示“最小長(zhǎng)度是4”,并返回“請(qǐng)輸入pin碼”版面pu-5.2-3“請(qǐng)輸入pin碼”版面,按數(shù)字鍵可以進(jìn)行輸入,并顯示*pu-5.2-4“請(qǐng)輸入pin碼”版面,輸入13位數(shù)字,按確定軟鍵提示“最小長(zhǎng)度是4”,并返回“請(qǐng)輸入pin碼”版面pu-5.2-5“請(qǐng)輸入pin碼”版面,輸入8位數(shù)字后繼續(xù)輸入提示“最大長(zhǎng)度是8”,并返回“請(qǐng)輸入pin碼”版面pu-5.2-6“請(qǐng)輸入pin碼”版面,輸入48個(gè)數(shù)字的錯(cuò)誤pin碼,按確定提示“錯(cuò)誤pin碼”,然后返回“請(qǐng)輸入pin碼”畫面pu-5.2-7“請(qǐng)輸入pin碼”版面,輸入正確pin碼,按確定繼續(xù)開機(jī)流程5.3 sim卡pin1被鎖pu-5.3-1關(guān)機(jī)狀態(tài)下長(zhǎng)按掛機(jī)鍵開機(jī)動(dòng)畫、開機(jī)音樂之后,提示“pin1被鎖住”并最終顯示在“請(qǐng)輸入puk”版面pu-5.3-2在“請(qǐng)輸入puk”版面,直接按確定軟鍵提示“最小長(zhǎng)度是4”,并返回“請(qǐng)輸入puk碼”版面pu-5.3-3在“請(qǐng)輸入puk”版面,按數(shù)字鍵可以進(jìn)行輸入,并顯示*pu-5.3-4在“請(qǐng)輸入puk”版面,輸入17位數(shù)字,按確定軟鍵提示“最小長(zhǎng)度是8”,并返回“請(qǐng)輸入puk碼”版面pu-5.3-5在“請(qǐng)輸入puk”版面,輸入8位數(shù)字的錯(cuò)誤puk碼,按確定軟鍵要求輸入兩次新pin碼后,提示“pin1被鎖住”,并返回“請(qǐng)輸入puk碼”版面pu-5.3-6在“請(qǐng)輸入puk”版面,輸入8位數(shù)字,繼續(xù)輸入提示“最大長(zhǎng)度是8”,并返回“請(qǐng)輸入puk碼”版面pu-5.3-7在“請(qǐng)輸入puk”版面,輸入8位數(shù)字的正確puk碼,按確定軟鍵要求輸入兩次新pin碼,并成功解鎖,繼續(xù)開機(jī)流程6 手機(jī)密碼檢查pu-6-1關(guān)機(jī)狀態(tài)下長(zhǎng)按掛機(jī)鍵開機(jī)動(dòng)畫、開機(jī)音樂、pin檢驗(yàn)之后,出現(xiàn)“輸入手機(jī)密碼”版面pu-6-2“輸入手機(jī)密碼”版面,直接按確定軟鍵提示“最小長(zhǎng)度是4”,并返回“輸入手機(jī)密碼”版面pu-6-3“輸入手機(jī)密碼”版面,按數(shù)字鍵可以進(jìn)行輸入,并顯示*pu-6-4在“輸入手機(jī)密碼”版面,輸入13位數(shù)字,按確定軟鍵提示“最小長(zhǎng)度是4”,并返回“輸入手機(jī)密碼”版面pu-6-5在“輸入手機(jī)密碼”版面,輸入4位錯(cuò)誤手機(jī)密碼,按確定軟鍵提示“手機(jī)密碼錯(cuò)誤”,并返回“輸入手機(jī)密碼”版面pu-6-6在“輸入手機(jī)密碼”版面,輸入8位數(shù)字,繼續(xù)輸入輸入無(wú)效pu-6-7在“輸入手機(jī)密碼”版面,輸入4位正確手機(jī)密碼,按確定軟鍵手機(jī)解鎖,繼續(xù)開機(jī)流程7 搜網(wǎng)pu-7-1關(guān)機(jī)狀態(tài)下長(zhǎng)按掛機(jī)鍵開機(jī)動(dòng)畫、音樂完畢;pin檢驗(yàn)、手機(jī)密碼檢驗(yàn)完畢,出現(xiàn)搜網(wǎng)畫面“正在搜網(wǎng)”,直到找到網(wǎng)絡(luò)注:其它語(yǔ)言下以上各功能運(yùn)行正常測(cè)試說(shuō)明:在測(cè)試中,必須對(duì)每個(gè)界面都要進(jìn)行觸屏的操作,因此測(cè)試次數(shù)為2次,即使用按鍵操作1次,使用觸屏操作1次,檢查功能是否正常.(如有側(cè)翻,合蓋操作界面也做以上相應(yīng)操作)5.2.2 等價(jià)劃分法等價(jià)類劃分是一種典型的黑盒測(cè)試方法,用這一方法設(shè)計(jì)測(cè)試用例完全不考慮程序的內(nèi)部結(jié)構(gòu),只根據(jù)對(duì)程序的要求和說(shuō)明,即需求規(guī)格說(shuō)明書。我們必須仔細(xì)分析和推敲說(shuō)明書的各項(xiàng)需求,特別是功能需求。把說(shuō)明書中對(duì)輸入的要求和輸出的要求區(qū)別開來(lái)并加以分解。由于窮舉測(cè)試工作量太大,以至于無(wú)法實(shí)際完成,促使我們?cè)诖罅康目赡軘?shù)據(jù)中選取其中的一部分作為測(cè)試用例。例如,在不了解等價(jià)分配計(jì)數(shù)的前提下,我們做計(jì)算器程序的加法測(cè)試時(shí),測(cè)試了1+1,1+2,1+3和1+4之后,還有必要測(cè)試1+5和1+6嗎,能否放心地認(rèn)為它們是正確的?我們感覺1+5和1+6,與前面的1+1,1+2都是很類似的簡(jiǎn)單加法。等價(jià)類劃分的方法是把程序的輸入域劃分成若干部分,然后從每個(gè)部分中選取少數(shù)代表性數(shù)據(jù)作為測(cè)試用例。每一類的代表性數(shù)據(jù)在測(cè)試中的作用等價(jià)于這一類中的其他值,也就是說(shuō),如果某一類中的一個(gè)例子發(fā)現(xiàn)了錯(cuò)誤,這一等價(jià)類中的其他例子也能發(fā)現(xiàn)同樣的錯(cuò)誤;反之,如果某一類中的一個(gè)例子沒有發(fā)現(xiàn)錯(cuò)誤,則這一類中的其他例子也不會(huì)查出錯(cuò)誤(除非等價(jià)類中的某些例子屬于另一等價(jià)類,因?yàn)閹讉€(gè)等價(jià)類是可能相交的)。使用這一方法設(shè)計(jì)測(cè)試用例,首先必須在分析需求規(guī)格說(shuō)明的基礎(chǔ)上劃分等價(jià)類,列出等價(jià)類表。5.2.2.1 劃分等價(jià)類和列出等價(jià)類表等價(jià)類是指某個(gè)輸入域的子集合。在該子集合中,各個(gè)輸入數(shù)據(jù)對(duì)于發(fā)現(xiàn)程序中的錯(cuò)誤都是等效的。并合理地假定:測(cè)試某個(gè)等價(jià)類的代表值就等于對(duì)這一類其他值的測(cè)試。因此,可以把全部輸入數(shù)據(jù)合理地劃分為若干等價(jià)類,在每一個(gè)等價(jià)類中取一個(gè)數(shù)據(jù)作為測(cè)試輸入條件,就可以用少量代表性的測(cè)試數(shù)據(jù)取得較好的測(cè)試結(jié)果。等價(jià)類劃分有兩種不同的情況:有效等價(jià)類和無(wú)效等價(jià)類。有效等價(jià)類:指對(duì)于程序的規(guī)格說(shuō)明來(lái)說(shuō)是合理的、有意義的輸入數(shù)據(jù)構(gòu)成的集合。利用有效等價(jià)類可以檢驗(yàn)程序是否實(shí)現(xiàn)了規(guī)格說(shuō)明中所規(guī)定的功能和性能。無(wú)效等價(jià)類:與有效等價(jià)類的定義相反。設(shè)計(jì)測(cè)試用例時(shí),要同時(shí)考慮這兩種等價(jià)類。因?yàn)檐浖粌H要能接收合理的數(shù)據(jù),也要能經(jīng)受意外的考驗(yàn)。這樣的測(cè)試才能確保軟件具有更好的可靠性。下面給出6條確定等價(jià)類的原則:在輸入條件規(guī)定了取值范圍或值的個(gè)數(shù)的情況下,可以確立一個(gè)有效等價(jià)類和兩個(gè)無(wú)效等價(jià)類。在輸入條件規(guī)定了輸入值的集合或者規(guī)定了“必須如何”的條件的情況下,可以確立一個(gè)有效等價(jià)類和一個(gè)無(wú)效等價(jià)類。在輸入條件是一個(gè)布爾量的情況下,可確定一個(gè)有效等價(jià)類和一個(gè)無(wú)效等價(jià)類。在規(guī)定了輸入數(shù)據(jù)的一組值(假定n個(gè)),并且程序要對(duì)每一個(gè)輸入值分別處理的情況下,可確立n個(gè)有效等價(jià)類和一個(gè)無(wú)效等價(jià)類。在規(guī)定了輸入數(shù)據(jù)必須遵守的規(guī)則的情況下,可確立一個(gè)有效等價(jià)類(符合規(guī)則)和若干個(gè)無(wú)效等價(jià)類(從不同角度違反規(guī)則)。在確知已劃分的等價(jià)類中,各元素在程序處理中的方式不同的情況下,則應(yīng)再將該等價(jià)類進(jìn)一步劃分為更小的等價(jià)類。在確立了等價(jià)類之后,建立等價(jià)類表,列出所有劃分出的等價(jià)類。5.2.2.2 確定測(cè)試用例根據(jù)已列出的等價(jià)類表,按以下步驟確定測(cè)試用例:為每個(gè)等價(jià)類規(guī)定一個(gè)唯一的編號(hào)。設(shè)計(jì)一個(gè)新的測(cè)試用例,使其盡可能多地覆蓋尚未覆蓋的有效等價(jià)類。重復(fù)這一步,最后使得所有有效等價(jià)類均被測(cè)試用例所覆蓋。設(shè)計(jì)一個(gè)新的測(cè)試用例,使其只覆蓋一個(gè)無(wú)效等價(jià)類。重復(fù)這一步使所有無(wú)效等價(jià)類均被覆蓋。在尋找等價(jià)區(qū)間時(shí),設(shè)法把軟件的相似輸入、輸出、操作分成組,這些組就是等價(jià)區(qū)間。等價(jià)類的重要問(wèn)題是它們構(gòu)成的集合的劃分,其中,劃分是指互不相交的一組子集,這些子集的并是整個(gè)集合。這對(duì)于測(cè)試有兩點(diǎn)非常重要的意義:表示整個(gè)集合這個(gè)事實(shí)提供了一種形式的完備性,而互不相交可保證一種形式的無(wú)冗余性。由于子集是由等價(jià)關(guān)系決定的,因此子集的元素都有一些共同點(diǎn)。等價(jià)類測(cè)試的思想是通過(guò)每個(gè)等價(jià)類中的一個(gè)元素標(biāo)識(shí)測(cè)試用例。如果廣泛選擇等價(jià)類,則這樣可以大大減低測(cè)試用例之間的冗余。為了便于理解,以下討論涉及有兩個(gè)變量x1和x2的函數(shù)f。如果函數(shù)f實(shí)現(xiàn)為一個(gè)程序,則輸入變量x1和x2將擁有以下邊界,以及邊界內(nèi)的區(qū)間:ax1d,區(qū)間為a,b),b,c),c,d ex2g,區(qū)間為e,f),f,g其中方括號(hào)和圓括號(hào)分別表示閉區(qū)間和開區(qū)間的端點(diǎn)。x1,x2的無(wú)效值是x1d,x2g。以此作為例子,我們將進(jìn)一步討論等價(jià)類劃分法。5.2.2.3 弱一般等價(jià)類測(cè)試采用上面給出的標(biāo)記,弱一般等價(jià)類測(cè)試通過(guò)一個(gè)測(cè)試用例中的每個(gè)等價(jià)類(區(qū)間)的一個(gè)變量實(shí)現(xiàn)(請(qǐng)注意單邊假設(shè)作用)。對(duì)于前面給出的例子,可得到如下圖所示的弱等價(jià)類測(cè)試用例。由函數(shù)的定義可知,帶陰影的矩形中的任何點(diǎn)都是函數(shù)f的有效輸入。這三個(gè)測(cè)試用例使用每個(gè)等價(jià)類中的一個(gè)值。我們以對(duì)稱方式標(biāo)識(shí)這些測(cè)試用例,于是得到外在的模式。事實(shí)上,永遠(yuǎn)都有等量的弱等價(jià)類測(cè)試用例,因?yàn)閯澐种械念悓?duì)應(yīng)最大子集數(shù)。5.2.2.4 強(qiáng)一般等價(jià)類測(cè)試強(qiáng)一般等價(jià)類測(cè)試基于多缺陷假設(shè),因此需要等價(jià)類笛卡爾積的每個(gè)元素對(duì)應(yīng)的測(cè)試用例,如下圖所示:請(qǐng)注意,這些測(cè)試用例的模式與命題邏輯中的真值表構(gòu)造具有相似性。笛卡爾積可以保證兩種意義上的“完備性”:一是覆蓋所有的等價(jià)類,二是有可能的輸入組合中的一個(gè)。事實(shí)上,“好的”等價(jià)類測(cè)試的關(guān)鍵是等價(jià)關(guān)系的選擇。注意被“相同處理”的輸入。在大多數(shù)情況下,等價(jià)類測(cè)試定義輸入定義域的類。沒有理由不能根據(jù)被測(cè)程序函數(shù)的輸出值域定義等價(jià)關(guān)系,我們可以看到,這對(duì)于三角形問(wèn)題是最簡(jiǎn)單的方法。5.2.2.5 弱健壯等價(jià)類測(cè)試這種測(cè)試的名稱顯然與直覺矛盾,且自相矛盾。怎么能夠既弱又健壯呢?說(shuō)它健壯,是因?yàn)檫@種測(cè)試考慮了無(wú)效值;說(shuō)它弱,是因?yàn)橛袉稳毕菁僭O(shè)。1、對(duì)于有效輸入,使用每個(gè)有效類的一個(gè)值。(就像我們?cè)谒^弱一般等價(jià)類測(cè)試中所做的一樣。請(qǐng)注意,這些測(cè)試用例中的所有輸入都是有效的。)2、對(duì)于無(wú)效輸入,測(cè)試用例將擁有一個(gè)無(wú)效值,并保持其余的值都是等效的。(因此,“單缺陷”會(huì)造成測(cè)試用例失敗。)按照這種策略產(chǎn)生的測(cè)試用例如下圖所示:健壯等價(jià)類測(cè)試有兩個(gè)問(wèn)題。第一個(gè)問(wèn)題是,規(guī)格說(shuō)明常常并沒有定義無(wú)效測(cè)試用例所預(yù)期的輸出是什么。(我們可以把這看作是規(guī)格說(shuō)明的不足,但是這并不能解決問(wèn)題。)因此,測(cè)試人員需要花費(fèi)大量時(shí)間定義這些測(cè)試用例的輸出。第二個(gè)問(wèn)題是,強(qiáng)類型語(yǔ)言沒有必要考慮無(wú)效輸入。傳統(tǒng)等價(jià)類測(cè)試是諸如fortran和cobol這樣的語(yǔ)言占統(tǒng)治地位的年代的產(chǎn)物,因此那時(shí)這種錯(cuò)誤很常見。事實(shí)上,正是由于經(jīng)常出現(xiàn)這種錯(cuò)誤,才促使人們實(shí)現(xiàn)強(qiáng)類型語(yǔ)言。對(duì)于第二個(gè)問(wèn)題,應(yīng)該是指對(duì)于純編程語(yǔ)言而言的。在實(shí)際的項(xiàng)目中,由于人的因素(人總會(huì)犯錯(cuò)誤,即使編程語(yǔ)言本身再怎么完美,諸如java、python、c+這樣的強(qiáng)類型語(yǔ)言,也無(wú)法避免),以及業(yè)務(wù)的具體要求,無(wú)效輸入往往要考慮業(yè)務(wù)因素,所以任何時(shí)刻都必須考慮無(wú)效輸入。5.2.2.6 強(qiáng)健壯等價(jià)類測(cè)試至少這種測(cè)試的名稱既不與直覺矛盾,也不自相矛盾,只是有些冗余。像以前的定義一樣,健壯是指要考慮無(wú)效值,強(qiáng)是指多缺陷假設(shè)。我們從所有的等價(jià)類笛卡爾積的每個(gè)元素中獲得測(cè)試用例,如下圖所示:下面我們將結(jié)合三角形問(wèn)題,來(lái)實(shí)際應(yīng)用等價(jià)類劃分的方法。三角形問(wèn)題是這樣的經(jīng)典,以至于雖然大家都知道它是經(jīng)典問(wèn)題,面試和筆試中還是會(huì)遇到。例題:根據(jù)下面給出的規(guī)格說(shuō)明,利用等價(jià)類劃分的方法,給出足夠的測(cè)試用例。“一個(gè)程序讀入3個(gè)整數(shù),把這3個(gè)數(shù)值看作一個(gè)三角形的3條邊的長(zhǎng)度值。這個(gè)程序要打印信息,說(shuō)明這個(gè)三角形是不等邊的、是等腰的、是等邊的,或者不能構(gòu)成三角形”。在描述問(wèn)題時(shí),我們提到有四種可能出現(xiàn)的輸出:非三角形、不等邊三角形、等腰三角形和等邊三角形??梢允褂眠@些輸出標(biāo)識(shí)如下所示的輸出(值域)等價(jià)類:r1=:有三條邊a、b和c的等邊三角形r2=:有三條邊a、b和c的等腰三角形r3=:有三條邊a、b和c的不等邊三角形r4=:三條邊a、b和c的不構(gòu)成三角形四個(gè)弱一般等價(jià)類測(cè)試用例是:弱一般等價(jià)類測(cè)試用例測(cè)試用例abc預(yù)期輸出wn1555等邊三角形wn2223等腰三角形wn3345不等邊三角形wn4412非三角形由于a、b和c沒有有效區(qū)間,則強(qiáng)一般等價(jià)類測(cè)試用例與弱一般等價(jià)類測(cè)試用例相同。考慮a、b和c的無(wú)效值產(chǎn)生的以下額外弱健壯等價(jià)類測(cè)試用例:額外弱健壯等價(jià)類測(cè)試用例測(cè)試用例abc預(yù)期輸出wr1-155a取值不在所允許的取值值域內(nèi)wr25-15b取值不在所允許的取值值域內(nèi)wr355-1c取值不在所允許的取值值域內(nèi)wr420155a取值不在所允許的取值值域內(nèi)wr552015b取值不在所允許的取值值域內(nèi)wr655201c取值不在所允許的取值值域內(nèi)以下是額外強(qiáng)健壯等價(jià)類測(cè)試用例三維立方的一個(gè)“角”:額外強(qiáng)健壯等價(jià)類測(cè)試用例測(cè)試用例abc預(yù)期輸出sr1-155a取值不在所允許的取值值域內(nèi)sr25-15b取值不在所允許的取值值域內(nèi)sr355-1c取值不在所允許的取值值域內(nèi)sr4-1-15a、b取值不在所允許的取值值域內(nèi)sr55-1-1b、c取值不在所允許的取值值域內(nèi)sr6-15-1a、c取值不在所允許的取值值域內(nèi)sr7-1-1-1a、b、c取值不在所允許的取值值域內(nèi)請(qǐng)注意,預(yù)期輸出如何完備地描述無(wú)效輸入值。等價(jià)類測(cè)試顯然對(duì)用來(lái)定義類的等價(jià)關(guān)系很敏感。如果在輸入定義域上定義等價(jià)類,則可以得到更豐富的測(cè)試用例集合。三個(gè)整數(shù)a、b和c有些什么可能的取值呢?這些整數(shù)可以相等,有一對(duì)整數(shù)相等(有三種相等方式),或都不相等。d1=:a=b=c,d2=:a=b,ac,d3=:a=c,abd4=:b=c,ab,d5=:ab,ac,bc作為一個(gè)單獨(dú)的問(wèn)題,我們可以通過(guò)三角形的性質(zhì)來(lái)判斷三條邊是否構(gòu)成一個(gè)三角形。(例如,三元組有一對(duì)相等的邊,但是這些邊不構(gòu)成一個(gè)三角形。)d6=:ab+c,d7=:ba+c,d8=:ca+b如果我們要徹底一些,可以將“大于或等于”分解為兩種不同的情況,這樣d6就變成d6=:a=b+c,d6=:ab+c,同樣對(duì)于d7和d8也有類似的情況。列出等價(jià)類表,如下所示:等價(jià)類表輸入條件有效等價(jià)類無(wú)效等價(jià)類是否三角形的3邊(a0) (1)(a0) (7)(b0) (2)(b0) (8)(c0) (3)(c0) (9)(a+bc) (4)(a+bc) (10)(b+ca) (5)(b+ca) (11)(a+cb) (6)(a+cb) (12)是否等腰三角形(a=b) (13)(ab)and(bc)and (ac) (16)(b=c) (14)(a=c) (15)是否等邊三角形(a=b)and(b=c)and (a=c) (17)(ab) (18)(bc) (19)(ac) (20)設(shè)計(jì)測(cè)試用例:輸入順序是a,b,c,如下表所示:設(shè)計(jì)測(cè)試用例表序號(hào)a,b,c覆蓋等價(jià)類輸出13,4,5(1),(2),(3),(4),(5),(6)不能構(gòu)成三角形20,1,2(7)31,0,2(8)41,2,0(9)51,2,3(10)61,3,2(11)73,1,2(12)83,3,4(1),(2),(3),(4),(5),(6),(13)等腰三角形93,4,4(1),(2),(3),(4),(5),(6),(14)103,4,3(1),(2),(3),(4),(5),(6),(15)113,4,5(1),(2),(3),(4),(5),(6),(16)非等腰三角形123,3,3(1),(2),(3),(4),(5),(6),(17)等邊三角形133,4,4(1),(2),(3),(4),(5),(6),(14),(18)非等邊三角形143,4,3(1),(2),(3),(4),(5),(6),(15),(19)153,3,4(1),(2),(3),(4),(5),(6),(13),(20)等價(jià)分配的目標(biāo)是把可能的測(cè)試用例組合縮減到仍然足以滿足軟件測(cè)試需求為止。因?yàn)椋诉x擇不完全測(cè)試,就要冒一定的風(fēng)險(xiǎn),所以必須仔細(xì)選擇分類。5.3 白盒測(cè)試白盒測(cè)試指的是把盒子蓋打開, 去研究里面的源代碼和程序結(jié)構(gòu)。白盒測(cè)試也稱結(jié)構(gòu)測(cè)試或邏輯驅(qū)動(dòng)測(cè)試, 它是知道產(chǎn)品內(nèi)部工作過(guò)程, 可通過(guò)測(cè)試來(lái)檢測(cè)產(chǎn)品內(nèi)部動(dòng)作是否按照規(guī)格說(shuō)明書的規(guī)定正常進(jìn)行, 按照程序內(nèi)部的結(jié)構(gòu)測(cè)試程序, 檢驗(yàn)程序中的每條通路是否都有能按預(yù)定要求正確工作, 而不顧它的功能。 使用被測(cè)單元內(nèi)部如何工作的信息, 允許測(cè)試人員對(duì)程序內(nèi)部邏輯結(jié)構(gòu)及有關(guān)信息來(lái)設(shè)計(jì)和選擇測(cè)試用例, 對(duì)程序的邏輯路徑進(jìn)行測(cè)試?;谝粋€(gè)應(yīng)用代碼的內(nèi)部邏輯知識(shí), 測(cè)試是基于覆蓋全部代碼、分支、路徑、條件。 白盒測(cè)試的主要方法: 邏輯驅(qū)動(dòng)測(cè)試 基本路徑測(cè)試 主要用于軟件驗(yàn)證。 使用程序設(shè)計(jì)的控制結(jié)構(gòu)導(dǎo)出測(cè)試用例。 邏輯驅(qū)動(dòng)測(cè)試:主要是測(cè)試覆蓋率, 以程序內(nèi)在邏輯結(jié)構(gòu)為基礎(chǔ)的測(cè)試。包括以下6種類型: 語(yǔ)句覆蓋 判斷覆蓋 條件覆蓋 判定-條件覆蓋 條件組合覆蓋 路徑覆蓋 白盒測(cè)試的主要目的 保證一個(gè)模塊中的所有獨(dú)立路徑至少被執(zhí)行一次; 對(duì)所有的邏輯值均需要測(cè)試真、假兩個(gè)分支; 在上下邊界及可操作范圍內(nèi)運(yùn)行所有循環(huán);檢查內(nèi)部數(shù)據(jù)結(jié)構(gòu)以確保其有效性 白盒測(cè)試的實(shí)施方案 在開發(fā)階段要保證產(chǎn)品的質(zhì)量, 產(chǎn)品的生產(chǎn)過(guò)程應(yīng)該遵循一定的行業(yè)標(biāo)準(zhǔn)。軟件產(chǎn)品也是同樣, 沒有標(biāo)準(zhǔn)可依自然談不上質(zhì)量的好壞。所有關(guān)心軟件開發(fā)質(zhì)量的組織、單位, 都要定義或了解軟件的質(zhì)量標(biāo)準(zhǔn)、模型。其好處是保證公司實(shí)踐的均勻性, 產(chǎn)品的可維護(hù)性、可靠性以及可移植性等。 在測(cè)試階段與軟件產(chǎn)品的開發(fā)過(guò)程一樣, 測(cè)試過(guò)程也需要有一定的準(zhǔn)則, 來(lái)指導(dǎo)、度量、評(píng)價(jià)軟件測(cè)試過(guò)程的質(zhì)量。定義測(cè)試準(zhǔn)則為控制測(cè)試的有效性以及完成程度, 必須定義準(zhǔn)則和策略, 以判斷何時(shí)結(jié)束測(cè)試階段。準(zhǔn)則必須是客觀的, 可量化的元素, 而不能是經(jīng)驗(yàn)或感覺。 根據(jù)應(yīng)用的準(zhǔn)則和項(xiàng)目相關(guān)的約束, 項(xiàng)目領(lǐng)導(dǎo)可以定義使用的度量方法和需要達(dá)到的覆蓋率, 度量測(cè)試的有效性、完整性對(duì)每個(gè)測(cè)試的測(cè)試覆蓋信息和累計(jì)信息, 用圖形方式顯示覆蓋比率, 并根據(jù)測(cè)試運(yùn)行情況實(shí)時(shí)更新, 隨時(shí)顯示新的測(cè)試所反映的測(cè)試覆蓋情況。允許所有的測(cè)試運(yùn)行依據(jù)其有效性進(jìn)行管理, 用戶可以減少不適用于非回歸測(cè)試的測(cè)試的過(guò)程。 概念:1.語(yǔ)句覆蓋:語(yǔ)句覆蓋就是設(shè)計(jì)若干個(gè)測(cè)試用例, 運(yùn)行被測(cè)試程序, 使得每一條可執(zhí)行語(yǔ)句至少執(zhí)行一次; 2.判定覆蓋(也稱為分支覆蓋):設(shè)計(jì)若干個(gè)測(cè)試用例, 運(yùn)行所測(cè)程序, 使程序中每個(gè)判斷的取真分支和取假分支至少執(zhí)行一次;3.條件覆蓋:設(shè)計(jì)足夠多的測(cè)試用例, 運(yùn)行所測(cè)程序, 使程序中每個(gè)判斷的每個(gè)條件的每個(gè)可能取值至少執(zhí)行一次; 4.判定-條件覆蓋:設(shè)計(jì)足夠多的測(cè)試用例, 運(yùn)行所測(cè)程序, 使程序中每個(gè)判斷的每個(gè)條件的所有可能取值至少執(zhí)行一次, 并且每個(gè)可能的判斷結(jié)果也至少執(zhí)行一次, 換句話說(shuō), 即是要求各個(gè)判斷的所有可能的條件取值組合至少執(zhí)行一次; 5.條件組合測(cè)試:設(shè)計(jì)足夠多的測(cè)試用例, 運(yùn)行所測(cè)程序, 使程序中每個(gè)判斷的所有可能的條件取值組合至少執(zhí)行一次; 6.路徑測(cè)試:設(shè)計(jì)足夠多的測(cè)試用例, 運(yùn)行所測(cè)程序, 要覆蓋程序中所有可能的路徑。5.4 靜態(tài)測(cè)試是指不實(shí)際運(yùn)行被測(cè)軟件, 而只是靜態(tài)的檢查程序代碼、界面或文檔中可能存在的錯(cuò)誤的過(guò)程。其中包括代碼測(cè)試、界面測(cè)試和文檔測(cè)試3個(gè)方面。對(duì)于代碼測(cè)試, 主要測(cè)試代碼是否符合相應(yīng)的標(biāo)準(zhǔn)和規(guī)范。對(duì)于界面測(cè)試, 主要測(cè)試軟件的實(shí)際界面與需求中的說(shuō)明是否相符。對(duì)于文檔測(cè)試, 主要測(cè)試用戶手冊(cè)和需求說(shuō)明是否符合用戶的實(shí)際要求。5.5 動(dòng)態(tài)測(cè)試是指實(shí)際運(yùn)行被測(cè)程序, 輸入相應(yīng)的測(cè)試數(shù)據(jù), 檢查實(shí)際輸出結(jié)果和預(yù)期結(jié)果是否相符的過(guò)程。所以, 我們判斷一個(gè)測(cè)試屬于動(dòng)態(tài)還是靜態(tài)測(cè)試 , 唯一的標(biāo)準(zhǔn)就是看是否運(yùn)行程序。6 軟件測(cè)試中的類測(cè)試面向?qū)ο筌浖暮暧^上來(lái)看是各個(gè)類之間的相互作用。在面向?qū)ο笙到y(tǒng)中,系統(tǒng)的基本構(gòu)造模塊是封裝了的數(shù)據(jù)和方法的類和對(duì)象,而不再是一個(gè)個(gè)能完成特定功能的功能模塊。每個(gè)對(duì)象有自己的生存周期,有自己的狀態(tài)。消息是對(duì)象之間相互請(qǐng)求或協(xié)作的途徑,是外界使用對(duì)象方法及獲取對(duì)象狀態(tài)的唯一方式。對(duì)象的功能是在消息的觸發(fā)下,由對(duì)象所屬類中定義的方法與相關(guān)對(duì)象的合作共同完成,且在不同狀態(tài)下對(duì)消息的響應(yīng)可能完全不同。對(duì)象中的數(shù)據(jù)和
溫馨提示
- 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 礦石供貨標(biāo)準(zhǔn)合同協(xié)議
- 租房居間合同失效協(xié)議
- 租房設(shè)施損壞合同協(xié)議
- 鞋底三方協(xié)議合同
- 用水用電合同協(xié)議書范本
- 4六分成協(xié)議合同
- 展會(huì)保證金合同協(xié)議
- 土石方運(yùn)輸施工合同協(xié)議
- 私人房子過(guò)戶合同協(xié)議
- 租賃場(chǎng)地做賓館合同協(xié)議
- 工程師評(píng)審代辦合同協(xié)議
- 小班健康活動(dòng):我會(huì)吃魚
- 專利代理師考試題庫(kù)含答案2024
- DB12 T1230-2023 政務(wù)信息資源共享 總體框架
- 管道拆除專項(xiàng)施工方案
- 廣西壯族自治區(qū)馬山縣實(shí)驗(yàn)高中-雙休背后:從“要我學(xué)”到“我要學(xué)”的轉(zhuǎn)變-高三家長(zhǎng)會(huì)【課件】
- GB/Z 27021.13-2025合格評(píng)定管理體系審核認(rèn)證機(jī)構(gòu)要求第13部分:合規(guī)管理體系審核與認(rèn)證能力要求
- 湖南省長(zhǎng)沙市四大名校2024-2025學(xué)年高三2月月考語(yǔ)文試題(原卷版+解析版)
- 《政府采購(gòu)管理研究的國(guó)內(nèi)外文獻(xiàn)綜述》5500字
- 糖尿病護(hù)理查房提出問(wèn)題
- 2024年國(guó)網(wǎng)浙江省電力有限公司招聘考試真題
評(píng)論
0/150
提交評(píng)論