軟件工程-07軟件測(cè)試復(fù)習(xí)課程_第1頁(yè)
軟件工程-07軟件測(cè)試復(fù)習(xí)課程_第2頁(yè)
軟件工程-07軟件測(cè)試復(fù)習(xí)課程_第3頁(yè)
軟件工程-07軟件測(cè)試復(fù)習(xí)課程_第4頁(yè)
軟件工程-07軟件測(cè)試復(fù)習(xí)課程_第5頁(yè)
已閱讀5頁(yè),還剩149頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

授課(shòukè)教師:梁麗軟件工程(ruǎnjiànɡōnɡchénɡ)西華(xīhuá)大學(xué)計(jì)算機(jī)與數(shù)理學(xué)院第一頁(yè),共154頁(yè)。第七章 軟件測(cè)試內(nèi)容要點(diǎn): 本章主要介紹軟件測(cè)試目的、測(cè)試原則、測(cè)試用例設(shè)計(jì)方法、測(cè)試步驟以及調(diào)試。教學(xué)重點(diǎn):白盒法、黑盒法邏輯覆蓋中各種覆蓋的區(qū)別單元測(cè)試的內(nèi)容及方法、集成測(cè)試的方法、漸增式及非漸增式測(cè)試的區(qū)別、自頂向下及自底向上結(jié)合模塊的步驟、三種測(cè)試與軟件開(kāi)發(fā)各階段(jiēduàn)之間的關(guān)系教學(xué)難點(diǎn):用白盒法、黑盒法設(shè)計(jì)測(cè)試用例第二頁(yè),共154頁(yè)。本章(běnzhānɡ)的知識(shí)結(jié)構(gòu)圖第三頁(yè),共154頁(yè)。軟件測(cè)試是在軟件投入運(yùn)行前,對(duì)軟件需求分析,設(shè)計(jì)規(guī)格說(shuō)明和編碼的最終復(fù)審,是軟件質(zhì)量保證的關(guān)鍵步驟。定義:軟件測(cè)試是為了發(fā)現(xiàn)錯(cuò)誤而執(zhí)行程序的過(guò)程?;蛘哒f(shuō)軟件測(cè)試是根據(jù)軟件開(kāi)發(fā)各階段(jiēduàn)的規(guī)格說(shuō)明和程序的內(nèi)部結(jié)構(gòu)而精心設(shè)計(jì)一批測(cè)試用例,并利用這些測(cè)試用例去運(yùn)行程序,以發(fā)現(xiàn)程序錯(cuò)誤的過(guò)程。軟件測(cè)試的基本概念軟件測(cè)試的定義(dìngyì)第四頁(yè),共154頁(yè)。軟件測(cè)試的目的(mùdì)基于不同的立場(chǎng),存在著兩種完全不同的測(cè)試目的。從用戶(hù)的角度出發(fā),普遍希望通過(guò)軟件測(cè)試暴露軟件中隱藏的錯(cuò)誤和缺陷,以考慮是否可接受該產(chǎn)品。從軟件開(kāi)發(fā)者的角度出發(fā),則希望測(cè)試成為表明軟件產(chǎn)品中不存在錯(cuò)誤的過(guò)程,驗(yàn)證該軟件已正確(zhèngquè)地實(shí)現(xiàn)了用戶(hù)的要求,確立人們對(duì)軟件質(zhì)量的信心。第五頁(yè),共154頁(yè)。Myers軟件測(cè)試目的(mùdì)(1)測(cè)試是程序的執(zhí)行過(guò)程,目的在于發(fā)現(xiàn)錯(cuò)誤(cuòwù);(2)一個(gè)好的測(cè)試用例在于能發(fā)現(xiàn)至今未發(fā)現(xiàn)的錯(cuò)誤(cuòwù);(3)一個(gè)成功的測(cè)試是發(fā)現(xiàn)了至今未發(fā)現(xiàn)的錯(cuò)誤(cuòwù)的測(cè)試。第六頁(yè),共154頁(yè)。換言之,測(cè)試的目的是

想以最少的時(shí)間和人力,系統(tǒng)地找出軟件中潛在的各種錯(cuò)誤和缺陷。如果我們成功地實(shí)施了測(cè)試,我們就能夠發(fā)現(xiàn)軟件中的錯(cuò)誤。測(cè)試的附帶收獲是,它能夠證明軟件的功能和性能與需求說(shuō)明相符合。實(shí)施測(cè)試收集到的測(cè)試結(jié)果數(shù)據(jù)為可靠性分析提供了依據(jù)。測(cè)試不能表明軟件中不存在(cúnzài)錯(cuò)誤,它只能說(shuō)明軟件中存在(cúnzài)錯(cuò)誤。第七頁(yè),共154頁(yè)。軟件測(cè)試的原則(yuánzé)1.應(yīng)當(dāng)把“盡早地和不斷地進(jìn)行軟件測(cè)試”作為軟件開(kāi)發(fā)者的座右銘。2.測(cè)試用例應(yīng)由測(cè)試輸入數(shù)據(jù)和對(duì)應(yīng)的預(yù)期輸出結(jié)果這兩部分組成。3.程序員應(yīng)避免檢查自己的程序。4.在設(shè)計(jì)測(cè)試用例時(shí),應(yīng)當(dāng)包括合理(hélǐ)的輸入條件和不合理(hélǐ)的輸入條件。第八頁(yè),共154頁(yè)。5.充分注意測(cè)試中的群集現(xiàn)象。

經(jīng)驗(yàn)表明,測(cè)試后程序中殘存的錯(cuò)誤數(shù)目與該程序中已發(fā)現(xiàn)的錯(cuò)誤數(shù)目成正比。6.嚴(yán)格執(zhí)行測(cè)試計(jì)劃,排除測(cè)試的隨意性。7.應(yīng)當(dāng)對(duì)每一個(gè)測(cè)試結(jié)果做全面(quánmiàn)檢查。8.妥善保存測(cè)試計(jì)劃,測(cè)試用例,出錯(cuò)統(tǒng)計(jì)和最終分析報(bào)告,為維護(hù)提供方便。第九頁(yè),共154頁(yè)。

軟件測(cè)試的對(duì)象(duìxiàng)軟件測(cè)試并不等于程序測(cè)試。軟件測(cè)試應(yīng)貫穿于軟件定義與開(kāi)發(fā)的整個(gè)期間。需求分析、概要設(shè)計(jì)(shèjì)、詳細(xì)設(shè)計(jì)(shèjì)以及程序編碼等各階段所得到的文檔,包括需求規(guī)格說(shuō)明、概要設(shè)計(jì)(shèjì)規(guī)格說(shuō)明、詳細(xì)設(shè)計(jì)(shèjì)規(guī)格說(shuō)明以及源程序,都應(yīng)成為軟件測(cè)試的對(duì)象。第十頁(yè),共154頁(yè)。為把握軟件開(kāi)發(fā)各個(gè)環(huán)節(jié)的正確性,需要進(jìn)行各種確認(rèn)和驗(yàn)證工作。確認(rèn)(Validation),是一系列的活動(dòng)和過(guò)程,目的是想證實(shí)在一個(gè)給定的外部環(huán)境中軟件的邏輯正確性。需求規(guī)格說(shuō)明的確認(rèn)程序的確認(rèn)(靜態(tài)確認(rèn)、動(dòng)態(tài)確認(rèn))驗(yàn)證(Verification),試圖(shìtú)證明在軟件生存期各個(gè)階段,以及階段間的邏輯協(xié)調(diào)性、完備性和正確性。第十一頁(yè),共154頁(yè)。第十二頁(yè),共154頁(yè)。測(cè)試(cèshì)信息流軟件(ruǎnjiàn)配置測(cè)試(cèshì)測(cè)試配置測(cè)試工具結(jié)果分析排錯(cuò)可靠性分析測(cè)試結(jié)果錯(cuò)誤預(yù)期結(jié)果出錯(cuò)率

改正的軟件預(yù)測(cè)的可靠性需求規(guī)格說(shuō)明書(shū)軟件設(shè)計(jì)說(shuō)明書(shū)被測(cè)源程序測(cè)試計(jì)劃測(cè)試用例(測(cè)試數(shù)據(jù))測(cè)試驅(qū)動(dòng)程序第十三頁(yè),共154頁(yè)。軟件配置:軟件需求規(guī)格說(shuō)明、軟件設(shè)計(jì)規(guī)格說(shuō)明、源代碼等;測(cè)試配置:測(cè)試計(jì)劃、測(cè)試用例、測(cè)試程序等;測(cè)試工具:測(cè)試數(shù)據(jù)自動(dòng)生成程序、靜態(tài)分析程序、動(dòng)態(tài)分析程序、測(cè)試結(jié)果分析程序、以及驅(qū)動(dòng)(qūdònɡ)測(cè)試的測(cè)試數(shù)據(jù)庫(kù)等等。測(cè)試(cèshì)信息流第十四頁(yè),共154頁(yè)。測(cè)試結(jié)果分析:比較實(shí)測(cè)結(jié)果與預(yù)期結(jié)果,評(píng)價(jià)錯(cuò)誤是否發(fā)生。排錯(cuò)(調(diào)試):對(duì)已經(jīng)發(fā)現(xiàn)的錯(cuò)誤進(jìn)行錯(cuò)誤定位和確定出錯(cuò)性質(zhì),并改正這些錯(cuò)誤,同時(shí)(tóngshí)修改相關(guān)的文檔。修正后的文檔再測(cè)試:直到通過(guò)測(cè)試為止。第十五頁(yè),共154頁(yè)。通過(guò)收集和分析測(cè)試結(jié)果(jiēguǒ)數(shù)據(jù),對(duì)軟件建立可靠性模型利用可靠性分析,評(píng)價(jià)軟件質(zhì)量:軟件的質(zhì)量和可靠性達(dá)到可以接受的程度;所做的測(cè)試不足以發(fā)現(xiàn)嚴(yán)重的錯(cuò)誤;如果測(cè)試發(fā)現(xiàn)不了錯(cuò)誤,可以肯定,測(cè)試配置考慮得不夠細(xì)致充分,錯(cuò)誤仍然潛伏在軟件中。第十六頁(yè),共154頁(yè)。測(cè)試與軟件開(kāi)發(fā)各階段(jiēduàn)的關(guān)系軟件開(kāi)發(fā)過(guò)程是一個(gè)自頂向下,逐步細(xì)化的過(guò)程軟件計(jì)劃(jìhuà)階段定義軟件作用域軟件需求分析建立軟件信息域、功能和性能需求、約束等軟件設(shè)計(jì)把設(shè)計(jì)用某種程序設(shè)計(jì)語(yǔ)言轉(zhuǎn)換成程序代碼第十七頁(yè),共154頁(yè)。測(cè)試(cèshì)過(guò)程是依相反順序安排的自底向上,逐步集成的過(guò)程。第十八頁(yè),共154頁(yè)。測(cè)試(cèshì)的方法與技術(shù)軟件測(cè)試的策略(cèlüè)和方法靜態(tài)(jìngtài)測(cè)試方法動(dòng)態(tài)測(cè)試方法人工測(cè)試方法計(jì)算機(jī)輔助靜態(tài)分析方法白盒測(cè)試方法黑盒測(cè)試方法第十九頁(yè),共154頁(yè)。動(dòng)態(tài)測(cè)試方法(1)選取定義域有效值,或定義域外無(wú)效值.(2)對(duì)已選取值決定預(yù)期的結(jié)果(3)用選取值執(zhí)行程序(4)執(zhí)行結(jié)果與(2)結(jié)果相比(xiānɡbǐ),不吻和程序有錯(cuò).第二十頁(yè),共154頁(yè)。測(cè)試用例設(shè)計(jì)(shèjì)兩種常用(chánɡyònɡ)的測(cè)試方法黑盒測(cè)試白盒測(cè)試第二十一頁(yè),共154頁(yè)。黑盒測(cè)試(cèshì)這種方法是把測(cè)試對(duì)象看做一個(gè)黑盒子,測(cè)試人員完全不考慮程序(chéngxù)內(nèi)部的邏輯結(jié)構(gòu)和內(nèi)部特性,只依據(jù)程序(chéngxù)的需求規(guī)格說(shuō)明書(shū),檢查程序(chéngxù)的功能是否符合它的功能說(shuō)明。黑盒測(cè)試又叫做功能測(cè)試或數(shù)據(jù)驅(qū)動(dòng)測(cè)試。第二十二頁(yè),共154頁(yè)。動(dòng)態(tài)黑盒測(cè)試(cèshì)—閉著眼睛測(cè)試(cèshì)軟件軟件(ruǎnjiàn)輸入(shūrù)不深入代碼細(xì)節(jié)的測(cè)試方法稱(chēng)為動(dòng)態(tài)黑盒測(cè)試。軟件測(cè)試員充當(dāng)客戶(hù)來(lái)使用它。輸出第二十三頁(yè),共154頁(yè)。黑盒測(cè)試方法是在程序接口上進(jìn)行測(cè)試,主要是為了發(fā)現(xiàn)以下錯(cuò)誤:是否有不正確或遺漏了的功能?在接口上,輸入能否(nénɡfǒu)正確地接受?能否(nénɡfǒu)輸出正確的結(jié)果?是否有數(shù)據(jù)結(jié)構(gòu)錯(cuò)誤或外部信息(例如數(shù)據(jù)文件)訪問(wèn)錯(cuò)誤?性能上是否能夠滿(mǎn)足要求?是否有初始化或終止性錯(cuò)誤?第二十四頁(yè),共154頁(yè)。用黑盒測(cè)試發(fā)現(xiàn)程序中的錯(cuò)誤,必須在所有可能的輸入(shūrù)條件和輸出條件中確定測(cè)試數(shù)據(jù),來(lái)檢查程序是否都能產(chǎn)生正確的輸出。但這是不可能的。第二十五頁(yè),共154頁(yè)。假設(shè)一個(gè)程序P有輸入量X和Y及輸出量Z。在字長(zhǎng)為32位的計(jì)算機(jī)上運(yùn)行。若X、Y取整數(shù),按黑盒方法(fāngfǎ)進(jìn)行窮舉測(cè)試:可能采用的測(cè)試數(shù)據(jù)組:232×232=264如果測(cè)試一組數(shù)據(jù)需要1毫秒,一年工作365×24小時(shí),完成所有測(cè)試需5億年。第二十六頁(yè),共154頁(yè)。白盒測(cè)試(cèshì)此方法把測(cè)試對(duì)象看做一個(gè)透明的盒子,它允許測(cè)試人員利用程序內(nèi)部的邏輯結(jié)構(gòu)及有關(guān)信息,設(shè)計(jì)或選擇測(cè)試用例,對(duì)程序所有邏輯路徑進(jìn)行測(cè)試。通過(guò)(tōngguò)在不同點(diǎn)檢查程序的狀態(tài),確定實(shí)際的狀態(tài)是否與預(yù)期的狀態(tài)一致。因此白盒測(cè)試又稱(chēng)為結(jié)構(gòu)測(cè)試或邏輯驅(qū)動(dòng)測(cè)試。第二十七頁(yè),共154頁(yè)。動(dòng)態(tài)(dòngtài)白盒測(cè)試—帶上X光眼鏡測(cè)試軟件??????????????3581322.293419985680302829734315250*(1+0.015)*((1+0.015)^360-1)/0.015250*(1+0.015)*((1+0.015)^360-1)/0.015假如知道(zhīdào)一個(gè)盒子包含一臺(tái)計(jì)算機(jī),而另一個(gè)盒子是人用紙筆計(jì)算,就會(huì)選擇不同的測(cè)試用例了解軟件的運(yùn)作方式會(huì)影響測(cè)試(cèshì)手段第二十八頁(yè),共154頁(yè)。軟件人員使用白盒測(cè)試方法,主要想對(duì)程序模塊進(jìn)行如下的檢查:對(duì)程序模塊的所有獨(dú)立(dúlì)的執(zhí)行路徑至少測(cè)試一次;對(duì)所有的邏輯判定,取“真”與取“假”的兩種情況都至少測(cè)試一次;在循環(huán)的邊界和運(yùn)行界限內(nèi)執(zhí)行循環(huán)體;測(cè)試內(nèi)部數(shù)據(jù)結(jié)構(gòu)的有效性,等。第二十九頁(yè),共154頁(yè)。對(duì)一個(gè)具有多重選擇和循環(huán)嵌套的程序,不同的路徑數(shù)目可能是天文數(shù)字。給出一個(gè)小程序的流程圖,它包括了一個(gè)執(zhí)行20次的循環(huán)。包含的不同執(zhí)行路徑數(shù)達(dá)520條,對(duì)每一條路徑進(jìn)行(jìnxíng)測(cè)試需要1毫秒,假定一年工作365×24小時(shí),要想把所有路徑測(cè)試完,需3170年。第三十頁(yè),共154頁(yè)。第三十一頁(yè),共154頁(yè)。白盒測(cè)試(cèshì)白盒法是設(shè)計(jì)測(cè)試用例的基本策略(cèlüè)之一,屬于動(dòng)態(tài)測(cè)試。白盒法對(duì)應(yīng)的測(cè)試用例設(shè)計(jì)技術(shù)按邏輯覆蓋程度不同,有語(yǔ)句覆蓋、判定覆蓋、條件覆蓋、判定/條件覆蓋、條件組合覆蓋和路徑覆蓋。第三十二頁(yè),共154頁(yè)。邏輯(luójí)覆蓋語(yǔ)句覆蓋判定(pàndìng)覆蓋條件覆蓋判定-條件覆蓋條件組合(zǔhé)覆蓋路徑覆蓋邏輯覆蓋是以程序內(nèi)部的邏輯結(jié)構(gòu)為基礎(chǔ)的設(shè)計(jì)測(cè)試用例的技術(shù)。它屬白盒測(cè)試。第三十三頁(yè),共154頁(yè)。例:PROCEDURESAMPAL(A,B:REAL;VARX:REAL);BEGINIF(A>1)AND(B=0)THENX:=X/AIF(A=2)OR(X>1)THENX:=X+1END;第三十四頁(yè),共154頁(yè)。開(kāi)始(kāishǐ)(A>1)AND(B=0)(A=2)OR(X>1)返回(fǎnhuí)X=X/AX=X+1FFTTabdce第三十五頁(yè),共154頁(yè)。第三十六頁(yè),共154頁(yè)。第三十七頁(yè),共154頁(yè)。第三十八頁(yè),共154頁(yè)。第三十九頁(yè),共154頁(yè)。語(yǔ)句(yǔjù)覆蓋語(yǔ)句覆蓋就是設(shè)計(jì)若干個(gè)測(cè)試用例,運(yùn)行被測(cè)程序,使得(shǐde)每一可執(zhí)行語(yǔ)句至少執(zhí)行一次。在圖例中,正好所有的可執(zhí)行語(yǔ)句都在路徑L1上,所以選擇路徑L1設(shè)計(jì)測(cè)試用例,就可以覆蓋所有的可執(zhí)行語(yǔ)句。第四十頁(yè),共154頁(yè)。測(cè)試用例的設(shè)計(jì)格式如下

【輸入的(A,B,X),輸出的(A,B,X)】為圖例設(shè)計(jì)滿(mǎn)足(mǎnzú)語(yǔ)句覆蓋的測(cè)試用例是:

【(2,0,4),(2,0,3)】覆蓋ace【L1】語(yǔ)句覆蓋(fùgài)是最弱的邏輯覆蓋(fùgài)第四十一頁(yè),共154頁(yè)。判定(pàndìng)覆蓋判定覆蓋就是設(shè)計(jì)若干個(gè)測(cè)試用例,運(yùn)行被測(cè)程序,使得程序中每個(gè)判斷的取真分支和取假分支至少經(jīng)歷一次。判定覆蓋又稱(chēng)為分支覆蓋。對(duì)于圖例,如果選擇(xuǎnzé)路徑L1和L2,就可得滿(mǎn)足要求的測(cè)試用例:

第四十二頁(yè),共154頁(yè)?!?2,0,4),(2,0,3)】覆蓋(fùgài)ace【L1】

【(1,1,1),(1,1,1)】覆蓋(fùgài)abd【L2】第四十三頁(yè),共154頁(yè)。如果選擇(xuǎnzé)路徑L3和L4,還可得另一組可用的測(cè)試用例:

【(2,1,1),(2,1,2)】覆蓋abe【L3】

【(3,0,3),(3,1,1)】覆蓋acd【L4】

語(yǔ)句覆蓋(fùgài)仍是弱的邏輯覆蓋(fùgài)第四十四頁(yè),共154頁(yè)。條件(tiáojiàn)覆蓋條件(tiáojiàn)覆蓋就是設(shè)計(jì)若干個(gè)測(cè)試用例,運(yùn)行被測(cè)程序,使得程序中每個(gè)判斷的每個(gè)條件(tiáojiàn)的可能取值至少執(zhí)行一次。在圖例中,我們事先可對(duì)所有條件(tiáojiàn)的取值加以標(biāo)記。例如,對(duì)于第一個(gè)判斷:條件(tiáojiàn)A>1取真為,取假為

條件(tiáojiàn)B=0取真為,取假為

第四十五頁(yè),共154頁(yè)。對(duì)于第二個(gè)判斷:條件A=2取真為,取假為

條件X>1取真為,取假為測(cè)試用例覆蓋(fùgài)分支條件取值【(2,0,4),(2,0,3)】L1(c,e)【(1,0,1),(1,0,1)】L2(b,d)【(2,1,1),(2,1,2)】L3(b,e)或第四十六頁(yè),共154頁(yè)。測(cè)試用例 覆蓋分支 條件取值【(1,0,3),(1,0,4)】L3(b,e)【(2,1,1),(2,1,2)】L3(b,e) 判定-條件覆蓋判定-條件覆蓋就是設(shè)計(jì)足夠的測(cè)試用例,使得判斷(pànduàn)中每個(gè)條件的所有可能取值至少執(zhí)行一次,同時(shí)每個(gè)判斷(pànduàn)中的每個(gè)條件的可能取值至少執(zhí)行一次。第四十七頁(yè),共154頁(yè)。測(cè)試用例 覆蓋(fùgài)分支條件取值【(2,0,4),(2,0,3)】L1(c,e)【(1,1,1),(1,1,1)】L2(b,d)第四十八頁(yè),共154頁(yè)。

andor第四十九頁(yè),共154頁(yè)。條件組合(zǔhé)覆蓋條件組合覆蓋就是設(shè)計(jì)足夠的測(cè)試用例,運(yùn)行(yùnxíng)被測(cè)程序,使得每個(gè)判斷的所有可能的條件取值組合至少執(zhí)行一次。記①A>1,B=0作

②A>1,B≠0作

③A≯1,B=0作④A≯1,B≠0作第五十頁(yè),共154頁(yè)。

⑤A=2,X>1作

⑥A=2,X≯1作

⑦A≠2,X>1作

⑧A≠2,X≯1作測(cè)試用例覆蓋(fùgài)條件 覆蓋(fùgài)組合【(2,0,4),(2,0,3)】(L1) ①,⑤【(2,1,1),(2,1,2)】(L3) ②,⑥【(1,0,3),(1,0,4)】(L3) ③,⑦【(1,1,1),(1,1,1)】(L2) ④,⑧第五十一頁(yè),共154頁(yè)。路徑(lùjìng)測(cè)試路徑測(cè)試(cèshì)就是設(shè)計(jì)足夠的測(cè)試(cèshì)用例,覆蓋程序中所有可能的路徑。測(cè)試用例通過(guò)路徑覆蓋條件【(2,0,4),(2,0,3)】ace(L1) 【(1,1,1),(1,1,1)】abd(L2)【(1,1,2),(1,1,3)】abe(L3) 【(3,0,3),(3,0,1)】acd(L4)

第五十二頁(yè),共154頁(yè)。黑盒測(cè)試(cèshì)黑盒法是設(shè)計(jì)測(cè)試用例的基本策略之一,屬于(shǔyú)動(dòng)態(tài)測(cè)試。黑盒法對(duì)應(yīng)的測(cè)試用例設(shè)計(jì)技術(shù)包括:等價(jià)類(lèi)劃分邊界值分析錯(cuò)誤推測(cè)因果圖第五十三頁(yè),共154頁(yè)。等價(jià)(děngjià)類(lèi)劃分等價(jià)類(lèi)劃分是一種典型的黑盒測(cè)試方法,使用這一方法時(shí),完全(wánquán)不考慮程序的內(nèi)部結(jié)構(gòu),只依據(jù)程序的規(guī)格說(shuō)明來(lái)設(shè)計(jì)測(cè)試用例。等價(jià)類(lèi)劃分方法把所有可能的輸入數(shù)據(jù),即程序的輸入域劃分成若干部分,然后從每一部分中選取少數(shù)有代表性的數(shù)據(jù)做為測(cè)試用例。第五十四頁(yè),共154頁(yè)。使用這一方法設(shè)計(jì)測(cè)試(cèshì)用例要經(jīng)歷劃分等價(jià)類(lèi)(列出等價(jià)類(lèi)表)和選取測(cè)試(cèshì)用例兩步。劃分等價(jià)類(lèi)

等價(jià)類(lèi)是指某個(gè)輸入域的子集合。在該子集合中,各個(gè)輸入數(shù)據(jù)對(duì)于揭露程序中的錯(cuò)誤都是等效的。測(cè)試(cèshì)某等價(jià)類(lèi)的代表值就等價(jià)于對(duì)這一類(lèi)其它值的測(cè)試(cèshì)。第五十五頁(yè),共154頁(yè)。等價(jià)類(lèi)的劃分有兩種不同的情況:

①有效等價(jià)類(lèi):是指對(duì)于程序的規(guī)格說(shuō)明來(lái)說(shuō),是合理(hélǐ)的,有意義的輸入數(shù)據(jù)構(gòu)成的集合。 ②無(wú)效等價(jià)類(lèi):是指對(duì)于程序的規(guī)格說(shuō)明來(lái)說(shuō),是不合理(hélǐ)的,無(wú)意義的輸入數(shù)據(jù)構(gòu)成的集合。在設(shè)計(jì)測(cè)試用例時(shí),要同時(shí)考慮有效等價(jià)類(lèi)和無(wú)效等價(jià)類(lèi)的設(shè)計(jì)。第五十六頁(yè),共154頁(yè)。劃分等價(jià)類(lèi)等價(jià)類(lèi)的原則。

(1)如果輸入條件規(guī)定了取值范圍,或值的個(gè)數(shù),則可以確立一個(gè)有效(yǒuxiào)等價(jià)類(lèi)和兩個(gè)無(wú)效等價(jià)類(lèi)。

第五十七頁(yè),共154頁(yè)。例如,在程序的規(guī)格說(shuō)明中,對(duì)輸入條件(tiáojiàn)有一句話:“……項(xiàng)數(shù)可以從1到999……”則有效等價(jià)類(lèi)是“1≤項(xiàng)數(shù)≤999”兩個(gè)無(wú)效等價(jià)類(lèi)是“項(xiàng)數(shù)<1”或“項(xiàng)數(shù)>999”。在數(shù)軸上表示成:第五十八頁(yè),共154頁(yè)。 (2)如果輸入條件規(guī)定了輸入值的集合,或者是規(guī)定了“必須如何”的條件,這時(shí)可確立一個(gè)有效等價(jià)類(lèi)和一個(gè)無(wú)效等價(jià)類(lèi)。例如,在Pascal語(yǔ)言中對(duì)變量標(biāo)識(shí)符規(guī)定為“以字母打頭的……串”。那么所有(suǒyǒu)以字母打頭的構(gòu)成有效等價(jià)類(lèi),而不在此集合內(nèi)(不以字母打頭)的歸于無(wú)效等價(jià)類(lèi)。第五十九頁(yè),共154頁(yè)。 (3)如果輸入(shūrù)條件是一個(gè)布爾量,則可以確定一個(gè)有效等價(jià)類(lèi)和一個(gè)無(wú)效等價(jià)類(lèi)。

(4)如果規(guī)定了輸入(shūrù)數(shù)據(jù)的一組值,而且程序要對(duì)每個(gè)輸入(shūrù)值分別進(jìn)行處理。這時(shí)可為每一個(gè)輸入(shūrù)值確立一個(gè)有效等價(jià)類(lèi),此外針對(duì)這組值確立一個(gè)無(wú)效等價(jià)類(lèi),它是所有不允許的輸入(shūrù)值的集合。第六十頁(yè),共154頁(yè)。例如,在教師上崗方案中規(guī)定對(duì)教授、副教授、講師和助教分別計(jì)算分?jǐn)?shù),做相應(yīng)的處理。因此可以確定4個(gè)有效等價(jià)類(lèi)為教授、副教授、講師和助教,一個(gè)無(wú)效等價(jià)類(lèi),它是所有不符合以上身分(shēnfèn)的人員的輸入值的集合。

(5)如果規(guī)定了輸入數(shù)據(jù)必須遵守的規(guī)則,則可以確立一個(gè)有效等價(jià)類(lèi)(符合規(guī)則)和若干個(gè)無(wú)效等價(jià)類(lèi)(從不同角度違反規(guī)則)。第六十一頁(yè),共154頁(yè)。例如,Pascal語(yǔ)言(yǔyán)規(guī)定“一個(gè)語(yǔ)句必須以分號(hào)‘;’結(jié)束”。這時(shí),可以確定一個(gè)有效等價(jià)類(lèi)“以‘;’結(jié)束”,若干個(gè)無(wú)效等價(jià)類(lèi)“以‘:’結(jié)束”、“以‘,’結(jié)束”、“以‘’結(jié)束”、“以LF結(jié)束”等。確立測(cè)試用例

在確立了等價(jià)類(lèi)之后,建立等價(jià)類(lèi)表,列出所有劃分出的等價(jià)類(lèi)。

第六十二頁(yè),共154頁(yè)。再?gòu)膭澐殖龅牡葍r(jià)(děngjià)類(lèi)中按以下原則選擇測(cè)試用例:

(1)為每一個(gè)等價(jià)(děngjià)類(lèi)規(guī)定一個(gè)唯一編號(hào);

(2)設(shè)計(jì)一個(gè)新的測(cè)試用例,使其盡可能多地覆蓋尚未被覆蓋的有效等價(jià)(děngjià)類(lèi),重復(fù)這一步,直到所有的有效等價(jià)(děngjià)類(lèi)都被覆蓋為止;

(3)設(shè)計(jì)一個(gè)新的測(cè)試用例,使其僅覆蓋一個(gè)尚未被覆蓋的無(wú)效等價(jià)(děngjià)類(lèi),重復(fù)這一步,直到所有的無(wú)效等價(jià)(děngjià)類(lèi)都被覆蓋為止。第六十三頁(yè),共154頁(yè)。

用等價(jià)類(lèi)劃分法設(shè)計(jì)測(cè)試用例的實(shí)例(shílì)

在某一PASCAL語(yǔ)言版本中規(guī)定:“標(biāo)識(shí)符是由字母開(kāi)頭,后跟字母或數(shù)字的任意組合構(gòu)成。有效字符數(shù)為8個(gè),最大字符數(shù)為80個(gè)?!?并且規(guī)定:“標(biāo)識(shí)符必須先說(shuō)明,再使用?!薄霸谕徽f(shuō)明語(yǔ)句中,標(biāo)識(shí)符至少必須有一個(gè)?!?/p>

第六十四頁(yè),共154頁(yè)。用等價(jià)(děngjià)類(lèi)劃分的方法,建立輸入等價(jià)(děngjià)類(lèi)表:第六十五頁(yè),共154頁(yè)。下面選取(xuǎnqǔ)了9個(gè)測(cè)試用例,它們覆蓋了所有的等價(jià)類(lèi)。

①VARx,T1234567:REAL;BEGINx:=3.414;T1234567:=2.732;...…(1),(2),(4),(8),(9),(12),(14)

②VAR:REAL;(3)

③VARx,:REAL;(5)

第六十六頁(yè),共154頁(yè)。④VART12345678:REAL;(6)⑤VART12345......:REAL;(7)

多于(duōyú)80個(gè)字符⑥VAR1:CHAR;(10)⑦VARGOTO:INTEGER;(11)⑧VAR2T:REAL;(13)⑨VARPAR:REAL;(15)

BEGIN......

PAP:=SIN(3.14*0.8)/6;

第六十七頁(yè),共154頁(yè)。邊界值分析(fēnxī)邊界值分析也是一種黑盒測(cè)試方法,是對(duì)等價(jià)類(lèi)劃分方法的補(bǔ)充。人們從長(zhǎng)期的測(cè)試工作經(jīng)驗(yàn)得知,大量的錯(cuò)誤是發(fā)生在輸入或輸出范圍的邊界上,而不是(bùshi)在輸入范圍的內(nèi)部。因此針對(duì)各種邊界情況設(shè)計(jì)測(cè)試用例,可以查出更多的錯(cuò)誤。第六十八頁(yè),共154頁(yè)。比如,在做三角形計(jì)算(jìsuàn)時(shí),要輸入三角形的三個(gè)邊長(zhǎng):A、B和C。我們應(yīng)注意到這三個(gè)數(shù)值應(yīng)當(dāng)滿(mǎn)足A>0、B>0、C>0、A+B>C、A+C>B、B+C>A,才能構(gòu)成三角形。但如果把六個(gè)不等式中的任何一個(gè)大于號(hào)“>”錯(cuò)寫(xiě)成大于等于號(hào)“≥”,那就不能構(gòu)成三角形。問(wèn)題恰出現(xiàn)在容易被疏忽的邊界附近。第六十九頁(yè),共154頁(yè)。這里所說(shuō)的邊界是指,相當(dāng)于輸入等價(jià)類(lèi)和輸出等價(jià)類(lèi)而言,稍高于其邊界值及稍低于其邊界值的一些特定情況。使用邊界值分析方法設(shè)計(jì)測(cè)試用例,首先應(yīng)確定(quèdìng)邊界情況。應(yīng)當(dāng)選取正好等于,剛剛大于,或剛剛小于邊界的值做為測(cè)試數(shù)據(jù),而不是選取等價(jià)類(lèi)中的典型值或任意值做為測(cè)試數(shù)據(jù)。第七十頁(yè),共154頁(yè)。錯(cuò)誤(cuòwù)推測(cè)法人們也可以靠經(jīng)驗(yàn)和直覺(jué)(zhíjué)推測(cè)程序中可能存在的各種錯(cuò)誤,從而有針對(duì)性地編寫(xiě)檢查這些錯(cuò)誤的例子。這就是錯(cuò)誤推測(cè)法。錯(cuò)誤推測(cè)法的基本想法是:列舉出程序中所有可能有的錯(cuò)誤和容易發(fā)生錯(cuò)誤的特殊情況,根據(jù)它們選擇測(cè)試用例。第七十一頁(yè),共154頁(yè)。因果(yīnguǒ)圖因果圖的適用范圍

如果在測(cè)試時(shí)必須考慮輸入條件的各種組合,可使用一種適合于描述對(duì)于(duìyú)多種條件的組合,相應(yīng)產(chǎn)生多個(gè)動(dòng)作的形式來(lái)設(shè)計(jì)測(cè)試用例,這就需要利用因果圖。

因果圖方法最終生成的就是判定表。它適合于檢查程序輸入條件的各種組合情況。第七十二頁(yè),共154頁(yè)。用因果圖生成測(cè)試用例的基本步驟

(1)分析(fēnxī)軟件規(guī)格說(shuō)明描述中,哪些是原因(即輸入條件或輸入條件的等價(jià)類(lèi)),哪些是結(jié)果(即輸出條件),并給每個(gè)原因和結(jié)果賦予一個(gè)標(biāo)識(shí)符。

(2)分析(fēnxī)軟件規(guī)格說(shuō)明描述中的語(yǔ)義,找出原因與結(jié)果之間,原因與原因之間對(duì)應(yīng)的是什么關(guān)系?根據(jù)這些關(guān)系,畫(huà)出因果圖。第七十三頁(yè),共154頁(yè)。 (3)由于語(yǔ)法或環(huán)境(huánjìng)限制,有些原因與原因之間,原因與結(jié)果之間的組合情況不可能出現(xiàn)。為表明這些特殊情況,在因果圖上用一些記號(hào)標(biāo)明約束或限制條件。

(4)把因果圖轉(zhuǎn)換成判定表。

(5)把判定表的每一列拿出來(lái)作為依據(jù),設(shè)計(jì)測(cè)試用例。第七十四頁(yè),共154頁(yè)。在因果圖中出現(xiàn)的基本符號(hào)

通常在因果圖中用Ci表示原因,用Ei表示結(jié)果,各結(jié)點(diǎn)(jiédiǎn)表示狀態(tài),可取值“0”或“1”?!?”表示某狀態(tài)不出現(xiàn),“1”表示某狀態(tài)出現(xiàn)。主要的原因和結(jié)果之間的關(guān)系有:第七十五頁(yè),共154頁(yè)。表示約束條件的符號(hào)

為了表示原因與原因之間,結(jié)果(jiēguǒ)與結(jié)果(jiēguǒ)之間可能存在的約束條件,在因果圖中可以附加一些表示約束條件的符號(hào)。第七十六頁(yè),共154頁(yè)。

例如,有一個(gè)處理單價(jià)為5角錢(qián)的飲料的自動(dòng)售貨機(jī)軟件測(cè)試用例的設(shè)計(jì)。其規(guī)格說(shuō)明如下: 若投入5角錢(qián)或1元錢(qián)的硬幣,押下〖橙汁〗或〖啤酒〗的按鈕,則相應(yīng)(xiāngyīng)的飲料就送出來(lái)。若售貨機(jī)沒(méi)有零錢(qián)找,則一個(gè)顯示〖零錢(qián)找完〗的紅燈亮,這時(shí)在投入1元硬幣并押下按鈕后,飲料不送出來(lái)而且1元硬幣也退出來(lái);若有零錢(qián)找,則顯示〖零錢(qián)找完〗的紅燈滅,在送出飲料的同時(shí)退還5角硬幣?!钡谄呤唔?yè),共154頁(yè)。(1)分析這一段說(shuō)明,列出原因和結(jié)果

原因:1.售貨機(jī)有零錢(qián)找2.投入1元硬幣 3.投入5角硬幣 4.押下橙汁按鈕 5.押下啤酒按鈕 建立中間結(jié)點(diǎn)(jiédiǎn),表示處理中間狀態(tài)

11.投入1元硬幣且押下飲料按鈕

12.押下〖橙汁〗或〖啤酒〗的按鈕

13.應(yīng)當(dāng)找5角零錢(qián)并且售貨機(jī)有零錢(qián)找

14.錢(qián)已付清第七十八頁(yè),共154頁(yè)。結(jié)果:21.售貨機(jī)〖零錢(qián)找完〗燈亮22.退還1元硬幣23.退還5角硬幣24.送出橙汁飲料25.送出啤酒飲料

(2)畫(huà)出因果圖。所有原因結(jié)點(diǎn)列在左 邊,所有結(jié)果結(jié)點(diǎn)列在右邊。(3)由于2與3,4與5不能同時(shí)發(fā)生(fāshēng), 分別加上約束條件E。

(4)因果圖第七十九頁(yè),共154頁(yè)。

(5)轉(zhuǎn)換成判定(pàndìng)表第八十頁(yè),共154頁(yè)。

第八十一頁(yè),共154頁(yè)。軟件測(cè)試的策略(cèlüè)測(cè)試過(guò)程按4個(gè)步驟進(jìn)行,即單元測(cè)試、組裝測(cè)試、確認(rèn)測(cè)試和系統(tǒng)測(cè)試。開(kāi)始(kāishǐ)是單元測(cè)試,集中對(duì)用源代碼實(shí)現(xiàn)的每一個(gè)程序單元進(jìn)行測(cè)試,檢查各個(gè)程序模塊是否正確地實(shí)現(xiàn)了規(guī)定的功能。第八十二頁(yè),共154頁(yè)。第八十三頁(yè),共154頁(yè)。組裝測(cè)試(cèshì)把已測(cè)試(cèshì)過(guò)的模塊組裝起來(lái),主要對(duì)與設(shè)計(jì)相關(guān)的軟件體系結(jié)構(gòu)的構(gòu)造進(jìn)行測(cè)試(cèshì)。確認(rèn)測(cè)試(cèshì)則是要檢查已實(shí)現(xiàn)的軟件是否滿(mǎn)足了需求規(guī)格說(shuō)明中確定了的各種需求,以及軟件配置是否完全、正確。系統(tǒng)測(cè)試(cèshì)把已經(jīng)經(jīng)過(guò)確認(rèn)的軟件納入實(shí)際運(yùn)行環(huán)境中,與其它系統(tǒng)成份組合在一起進(jìn)行測(cè)試(cèshì)。第八十四頁(yè),共154頁(yè)。單元測(cè)試(UnitTesting)單元測(cè)試又稱(chēng)模塊測(cè)試,是針對(duì)軟件設(shè)計(jì)的最小單位(dānwèi)─程序模塊,進(jìn)行正確性檢驗(yàn)的測(cè)試工作。其目的在于發(fā)現(xiàn)各模塊內(nèi)部可能存在的各種差錯(cuò)。單元測(cè)試需要從程序的內(nèi)部結(jié)構(gòu)出發(fā)設(shè)計(jì)測(cè)試用例。多個(gè)模塊可以平行地獨(dú)立進(jìn)行單元測(cè)試。第八十五頁(yè),共154頁(yè)。1.單元測(cè)試的內(nèi)容(nèiróng)在單元測(cè)試時(shí),測(cè)試者需要依據(jù)詳細(xì)設(shè)計(jì)說(shuō)明書(shū)和源程序清單,了解該模塊的I/O條件和模塊的邏輯結(jié)構(gòu),主要采用白盒測(cè)試的測(cè)試用例,輔之以黑盒測(cè)試的測(cè)試用例,使之對(duì)任何合理的輸入和不合理的輸入,都能鑒別(jiànbié)和響應(yīng)。

第八十六頁(yè),共154頁(yè)。第八十七頁(yè),共154頁(yè)。(1)模塊接口測(cè)試(cèshì)在單元測(cè)試的開(kāi)始,應(yīng)對(duì)通過(guò)被測(cè)模塊的數(shù)據(jù)流進(jìn)行測(cè)試。測(cè)試項(xiàng)目包括:調(diào)用本模塊的輸入(shūrù)參數(shù)是否正確;本模塊調(diào)用子模塊時(shí)輸入(shūrù)給子模塊的參數(shù)是否正確;全局量的定義在各模塊中是否一致;第八十八頁(yè),共154頁(yè)。在做內(nèi)外存交換時(shí)要考慮:文件屬性是否正確;OPEN與CLOSE語(yǔ)句是否正確;緩沖區(qū)容量與記錄長(zhǎng)度是否匹配;在進(jìn)行讀寫(xiě)操作之前(zhīqián)是否打開(kāi)了文件;在結(jié)束文件處理時(shí)是否關(guān)閉了文件;正文書(shū)寫(xiě)/輸入錯(cuò)誤,I/O錯(cuò)誤是否檢查并做了處理。第八十九頁(yè),共154頁(yè)。(2)局部(júbù)數(shù)據(jù)結(jié)構(gòu)測(cè)試不正確或不一致的數(shù)據(jù)類(lèi)型說(shuō)明使用尚未賦值或尚未初始化的變量錯(cuò)誤的初始值或錯(cuò)誤的缺省值變量名拼寫(xiě)(pīnxiě)錯(cuò)或書(shū)寫(xiě)錯(cuò)不一致的數(shù)據(jù)類(lèi)型全局?jǐn)?shù)據(jù)對(duì)模塊的影響第九十頁(yè),共154頁(yè)。(3)路徑(lùjìng)測(cè)試選擇適當(dāng)?shù)臏y(cè)試用例,對(duì)模塊中重要的執(zhí)行路徑進(jìn)行測(cè)試。應(yīng)當(dāng)設(shè)計(jì)測(cè)試用例查找由于錯(cuò)誤的計(jì)算、不正確的比較或不正常的控制流而導(dǎo)致的錯(cuò)誤。對(duì)基本執(zhí)行路徑和循環(huán)(xúnhuán)進(jìn)行測(cè)試可以發(fā)現(xiàn)大量的路徑錯(cuò)誤。第九十一頁(yè),共154頁(yè)。(4)錯(cuò)誤處理測(cè)試(cèshì)出錯(cuò)的描述是否難以理解出錯(cuò)的描述是否能夠?qū)﹀e(cuò)誤定位顯示的錯(cuò)誤與實(shí)際的錯(cuò)誤是否相符對(duì)錯(cuò)誤條件的處理正確與否在對(duì)錯(cuò)誤進(jìn)行(jìnxíng)處理之前,錯(cuò)誤條件是否已經(jīng)引起系統(tǒng)的干預(yù)等第九十二頁(yè),共154頁(yè)。(5)邊界(biānjiè)測(cè)試注意數(shù)據(jù)流、控制流中剛好等于、大于或小于確定的比較值時(shí)出錯(cuò)的可能性。對(duì)這些地方要仔細(xì)地選擇測(cè)試用例,認(rèn)真加以測(cè)試。如果對(duì)模塊運(yùn)行時(shí)間有要求的話,還要專(zhuān)門(mén)進(jìn)行關(guān)鍵路徑測(cè)試,以確定最壞情況下和平均(píngjūn)意義下影響模塊運(yùn)行時(shí)間的因素。第九十三頁(yè),共154頁(yè)。2.單元測(cè)試的步驟(bùzhòu)模塊并不是一個(gè)獨(dú)立(dúlì)的程序,在考慮測(cè)試模塊時(shí),同時(shí)要考慮它和外界的聯(lián)系,用一些輔助模塊去模擬與被測(cè)模塊相聯(lián)系的其它模塊。驅(qū)動(dòng)模塊(driver)樁模塊(stub)──存根模塊第九十四頁(yè),共154頁(yè)。第九十五頁(yè),共154頁(yè)。如果一個(gè)模塊要完成多種功能,可以將這個(gè)模塊看成由幾個(gè)小程序組成。必須對(duì)其中的每個(gè)小程序先進(jìn)行單元測(cè)試要做的工作,對(duì)關(guān)鍵模塊還要做性能(xìngnéng)測(cè)試。對(duì)支持某些標(biāo)準(zhǔn)規(guī)程的程序,更要著手進(jìn)行互聯(lián)測(cè)試。有人把這種情況特別稱(chēng)為模塊測(cè)試,以區(qū)別單元測(cè)試。第九十六頁(yè),共154頁(yè)。組裝(zǔzhuānɡ)測(cè)試(IntegratedTesting)組裝測(cè)試(集成測(cè)試、聯(lián)合測(cè)試)通常,在單元測(cè)試的基礎(chǔ)上,需要將所有模塊按照設(shè)計(jì)要求組裝成為(chéngwéi)系統(tǒng)。這時(shí)需要考慮的問(wèn)題是:在把各個(gè)模塊連接起來(lái)的時(shí)侯,穿越模塊接口的數(shù)據(jù)是否會(huì)丟失;一個(gè)模塊的功能是否會(huì)對(duì)另一個(gè)模塊的功能產(chǎn)生不利的影響;第九十七頁(yè),共154頁(yè)。

各個(gè)子功能組合起來(lái),能否達(dá)到預(yù)期要求的父功能;全局?jǐn)?shù)據(jù)結(jié)構(gòu)(shùjùjiéɡòu)是否有問(wèn)題;單個(gè)模塊的誤差累積起來(lái),是否會(huì)放大,從而達(dá)到不能接受的程度。在單元測(cè)試的同時(shí)可進(jìn)行組裝測(cè)試,發(fā)現(xiàn)并排除在模塊連接中可能出現(xiàn)的問(wèn)題,最終構(gòu)成要求的軟件系統(tǒng)。第九十八頁(yè),共154頁(yè)。

子系統(tǒng)的組裝測(cè)試(cèshì)特別稱(chēng)為部件測(cè)試(cèshì),它所做的工作是要找出組裝后的子系統(tǒng)與系統(tǒng)需求規(guī)格說(shuō)明之間的不一致。通常,把模塊組裝成為系統(tǒng)的方式有兩種一次性組裝方式增殖式組裝方式第九十九頁(yè),共154頁(yè)。1.一次性組裝(zǔzhuānɡ)方式(bigbang)它是一種非增殖式組裝方式。也叫做整體拼裝。使用這種方式,首先對(duì)每個(gè)模塊分別進(jìn)行模塊測(cè)試,然后再把所有(suǒyǒu)模塊組裝在一起進(jìn)行測(cè)試,最終得到要求的軟件系統(tǒng)。第一百頁(yè),共154頁(yè)。第一百零一頁(yè),共154頁(yè)。2.增殖式組裝(zǔzhuānɡ)方式這種組裝方式又稱(chēng)漸增式組裝首先對(duì)一個(gè)個(gè)模塊進(jìn)行模塊測(cè)試,然后將這些模塊逐步(zhúbù)組裝成較大的系統(tǒng)在組裝的過(guò)程中邊連接邊測(cè)試,以發(fā)現(xiàn)連接過(guò)程中產(chǎn)生的問(wèn)題通過(guò)增殖逐步(zhúbù)組裝成為要求的軟件系統(tǒng)。第一百零二頁(yè),共154頁(yè)。(1)自頂向下的增殖(zēngzhí)方式這種組裝(zǔzhuānɡ)方式將模塊按系統(tǒng)程序結(jié)構(gòu),沿控制層次自頂向下進(jìn)行組裝(zǔzhuānɡ)。自頂向下的增殖方式在測(cè)試過(guò)程中較早地驗(yàn)證了主要的控制和判斷點(diǎn)。選用按深度方向組裝(zǔzhuānɡ)的方式,可以首先實(shí)現(xiàn)和驗(yàn)證一個(gè)完整的軟件功能。第一百零三頁(yè),共154頁(yè)。第一百零四頁(yè),共154頁(yè)。(2)自底向上的增殖(zēngzhí)方式這種組裝的方式是從程序模塊結(jié)構(gòu)的最底層的模塊開(kāi)始組裝和測(cè)試。因?yàn)槟K是自底向上進(jìn)行組裝,對(duì)于一個(gè)(yīɡè)給定層次的模塊,它的子模塊(包括子模塊的所有下屬模塊)已經(jīng)組裝并測(cè)試完成,所以不再需要樁模塊。在模塊的測(cè)試過(guò)程中需要從子模塊得到的信息可以直接運(yùn)行子模塊得到。第一百零五頁(yè),共154頁(yè)。自頂向下增殖的方式和自底向上增殖的方式各有優(yōu)缺點(diǎn)。一般來(lái)講,一種(yīzhǒnɡ)方式的優(yōu)點(diǎn)是另一種(yīzhǒnɡ)方式的缺點(diǎn)。第一百零六頁(yè),共154頁(yè)。(3)混合增殖(zēngzhí)式測(cè)試衍變的自頂向下的增殖測(cè)試首先對(duì)輸入/輸出模塊(mókuài)和引入新算法模塊(mókuài)進(jìn)行測(cè)試;再自底向上組裝成為功能相當(dāng)完整且相對(duì)獨(dú)立的子系統(tǒng);然后由主模塊(mókuài)開(kāi)始自頂向下進(jìn)行增殖測(cè)試。第一百零七頁(yè),共154頁(yè)。自底向上自頂向下的增殖測(cè)試首先對(duì)含讀操作的子系統(tǒng)自底向上直至根結(jié)點(diǎn)模塊進(jìn)行組裝和測(cè)試;然后(ránhòu)對(duì)含寫(xiě)操作的子系統(tǒng)做自頂向下的組裝與測(cè)試?;貧w測(cè)試這種方式采取自頂向下的方式測(cè)試被修改的模塊及其子模塊;然后(ránhòu)將這一部分視為子系統(tǒng),再自底向上測(cè)試。第一百零八頁(yè),共154頁(yè)。關(guān)鍵(guānjiàn)模塊問(wèn)題在組裝測(cè)試時(shí),應(yīng)當(dāng)確定關(guān)鍵模塊,對(duì)這些(zhèxiē)關(guān)鍵模塊及早進(jìn)行測(cè)試。關(guān)鍵模塊的特征:

①滿(mǎn)足某些軟件需求;

②在程序的模塊結(jié)構(gòu)中位于較高的層次(高層控制模塊);

③較復(fù)雜、較易發(fā)生錯(cuò)誤;

④有明確定義的性能要求。第一百零九頁(yè),共154頁(yè)。確認(rèn)(quèrèn)測(cè)試(ValidationTesting)確認(rèn)測(cè)試又稱(chēng)有效性測(cè)試。任務(wù)是驗(yàn)證軟件的功能(gōngnéng)和性能及其它特性是否與用戶(hù)的要求一致。對(duì)軟件的功能(gōngnéng)和性能要求在軟件需求規(guī)格說(shuō)明書(shū)中已經(jīng)明確規(guī)定。它包含的信息就是軟件確認(rèn)測(cè)試的基礎(chǔ)。第一百一十頁(yè),共154頁(yè)。第一百一十一頁(yè),共154頁(yè)。1.進(jìn)行(jìnxíng)有效性測(cè)試(黑盒測(cè)試)有效性測(cè)試是在模擬的環(huán)境(可能就是開(kāi)發(fā)的環(huán)境)下,運(yùn)用黑盒測(cè)試的方法,驗(yàn)證被測(cè)軟件是否(shìfǒu)滿(mǎn)足需求規(guī)格說(shuō)明書(shū)列出的需求。首先制定測(cè)試計(jì)劃,規(guī)定要做測(cè)試的種類(lèi)。還需要制定一組測(cè)試步驟,描述具體的測(cè)試用例。第一百一十二頁(yè),共154頁(yè)。通過(guò)實(shí)施預(yù)定(yùdìng)的測(cè)試計(jì)劃和測(cè)試步驟,確定軟件的特性是否與需求相符;所有的文檔都是正確且便于使用;同時(shí),對(duì)其它軟件需求,例如可移植性、兼容性、出錯(cuò)自動(dòng)恢復(fù)、可維護(hù)性等,也都要進(jìn)行測(cè)試第一百一十三頁(yè),共154頁(yè)。在全部軟件測(cè)試的測(cè)試用例運(yùn)行完后,所有的測(cè)試結(jié)果可以分為(fēnwéi)兩類(lèi):測(cè)試結(jié)果與預(yù)期的結(jié)果相符。這說(shuō)明軟件的這部分功能或性能特征與需求規(guī)格說(shuō)明書(shū)相符合,從而這部分程序被接受。測(cè)試結(jié)果與預(yù)期的結(jié)果不符。這說(shuō)明軟件的這部分功能或性能特征與需求規(guī)格說(shuō)明不一致,因此要為它提交一份問(wèn)題報(bào)告。第一百一十四頁(yè),共154頁(yè)。2.軟件配置(pèizhì)復(fù)查軟件(ruǎnjiàn)配置復(fù)查的目的是保證軟件(ruǎnjiàn)配置的所有成分都齊全;各方面的質(zhì)量都符合要求;具有維護(hù)階段所必需的細(xì)節(jié);而且已經(jīng)編排好分類(lèi)的目錄。應(yīng)當(dāng)嚴(yán)格遵守用戶(hù)手冊(cè)和操作手冊(cè)中規(guī)定的使用步驟,以便檢查這些文檔資料的完整性和正確性。第一百一十五頁(yè),共154頁(yè)。3、驗(yàn)收(yànshōu)測(cè)試(AcceptanceTesting)在通過(guò)了系統(tǒng)的有效性測(cè)試及軟件配置(pèizhì)審查之后,就應(yīng)開(kāi)始系統(tǒng)的驗(yàn)收測(cè)試。驗(yàn)收測(cè)試是以用戶(hù)為主的測(cè)試。軟件開(kāi)發(fā)人員和QA(質(zhì)量保證)人員也應(yīng)參加。由用戶(hù)參加設(shè)計(jì)測(cè)試用例,使用生產(chǎn)中的實(shí)際數(shù)據(jù)進(jìn)行測(cè)試。第一百一十六頁(yè),共154頁(yè)。在測(cè)試過(guò)程中,除了考慮軟件的功能(gōngnéng)和性能外,還應(yīng)對(duì)軟件的可移植性、兼容性、可維護(hù)性、錯(cuò)誤的恢復(fù)功能(gōngnéng)等進(jìn)行確認(rèn)。確認(rèn)測(cè)試應(yīng)交付的文檔有:確認(rèn)測(cè)試分析報(bào)告最終的用戶(hù)手冊(cè)和操作手冊(cè)項(xiàng)目開(kāi)發(fā)總結(jié)報(bào)告第一百一十七頁(yè),共154頁(yè)。系統(tǒng)(xìtǒng)測(cè)試(SystemTesting)系統(tǒng)測(cè)試,是將通過(guò)確認(rèn)測(cè)試的軟件,作為整個(gè)基于計(jì)算機(jī)系統(tǒng)的一個(gè)元素,與計(jì)算機(jī)硬件、外設(shè)、某些支持軟件、數(shù)據(jù)和人員等其它系統(tǒng)元素結(jié)合(jiéhé)在一起,在實(shí)際運(yùn)行環(huán)境下,對(duì)計(jì)算機(jī)系統(tǒng)進(jìn)行一系列的組裝測(cè)試和確認(rèn)測(cè)試。系統(tǒng)測(cè)試的目的在于通過(guò)與系統(tǒng)的需求定義作比較,發(fā)現(xiàn)軟件與系統(tǒng)的定義不符合或與之矛盾的地方。第一百一十八頁(yè),共154頁(yè)。α測(cè)試(cèshì)和β測(cè)試(cèshì)在軟件交付使用之后,用戶(hù)將如何實(shí)際使用程序,對(duì)于開(kāi)發(fā)者來(lái)說(shuō)是無(wú)法(wúfǎ)預(yù)測(cè)的。α測(cè)試是由一個(gè)用戶(hù)在開(kāi)發(fā)環(huán)境下進(jìn)行的測(cè)試,也可以是公司內(nèi)部的用戶(hù)在模擬實(shí)際操作環(huán)境下進(jìn)行的測(cè)試。第一百一十九頁(yè),共154頁(yè)。α測(cè)試的目的是評(píng)價(jià)軟件產(chǎn)品的FLURPS(即功能、局域化、可使用性、可靠性、性能和支持)。尤其注重(zhùzhòng)產(chǎn)品的界面和特色。α測(cè)試可以從軟件產(chǎn)品編碼結(jié)束之時(shí)開(kāi)始,或在模塊(子系統(tǒng))測(cè)試完成之后開(kāi)始,也可以在確認(rèn)測(cè)試過(guò)程中產(chǎn)品達(dá)到一定的穩(wěn)定和可靠程度之后再開(kāi)始。

第一百二十頁(yè),共154頁(yè)。β測(cè)試是由軟件的多個(gè)用戶(hù)在實(shí)際(shíjì)使用環(huán)境下進(jìn)行的測(cè)試。這些用戶(hù)返回有關(guān)錯(cuò)誤信息給開(kāi)發(fā)者。測(cè)試時(shí),開(kāi)發(fā)者通常不在測(cè)試現(xiàn)場(chǎng)。因而,β測(cè)試是在開(kāi)發(fā)者無(wú)法控制的環(huán)境下進(jìn)行的軟件現(xiàn)場(chǎng)應(yīng)用。在β測(cè)試中,由用戶(hù)記下遇到的所有問(wèn)題,包括真實(shí)的以及主觀認(rèn)定的,定期向開(kāi)發(fā)者報(bào)告。第一百二十一頁(yè),共154頁(yè)。β測(cè)試主要衡量產(chǎn)品的FLURPS。著重于產(chǎn)品的支持性,包括文檔、客戶(hù)(kèhù)培訓(xùn)和支持產(chǎn)品生產(chǎn)能力。只有當(dāng)α測(cè)試達(dá)到一定的可靠程度時(shí),才能開(kāi)始β測(cè)試。它處在整個(gè)測(cè)試的最后階段。同時(shí),產(chǎn)品的所有手冊(cè)文本也應(yīng)該在此階段完全定稿。第一百二十二頁(yè),共154頁(yè)。調(diào)試(diàoshì)(Debug)軟件調(diào)試是在進(jìn)行了成功的測(cè)試之后才開(kāi)始的工作。它與軟件測(cè)試不同,調(diào)試的任務(wù)是進(jìn)一步診斷和改正程序中潛在的錯(cuò)誤。調(diào)試活動(dòng)由兩部分組成:確定程序中可疑錯(cuò)誤的確切性質(zhì)和位置。對(duì)程序(設(shè)計(jì),編碼)進(jìn)行修改,排除(páichú)這個(gè)錯(cuò)誤。第一百二十三頁(yè),共154頁(yè)。調(diào)試工作是一個(gè)具有很強(qiáng)技巧性的工作。軟件運(yùn)行失效或出現(xiàn)問(wèn)題,往往只是(zhǐshì)潛在錯(cuò)誤的外部表現(xiàn),而外部表現(xiàn)與內(nèi)在原因之間常常沒(méi)有明顯的聯(lián)系。如果要找出真正的原因,排除潛在的錯(cuò)誤,不是一件易事??梢哉f(shuō),調(diào)試是通過(guò)現(xiàn)象,找出原因的一個(gè)思維分析的過(guò)程。第一百二十四頁(yè),共154頁(yè)。調(diào)試(diàoshì)的步驟(1)從錯(cuò)誤的外部表現(xiàn)形式入手,確定程序中出錯(cuò)位置(wèizhi);(2)研究有關(guān)部分的程序,找出錯(cuò)誤的內(nèi)在原因;(3)修改設(shè)計(jì)和代碼,以排除這個(gè)錯(cuò)誤;(4)重復(fù)進(jìn)行暴露了這個(gè)錯(cuò)誤的原始測(cè)試或某些有關(guān)測(cè)試。第一百二十五頁(yè),共154頁(yè)。從技術(shù)角度來(lái)看,查找錯(cuò)誤的難度在于:現(xiàn)象與原因所處的位置可能相距甚遠(yuǎn)。當(dāng)其它錯(cuò)誤得到糾正時(shí),這一錯(cuò)誤所表現(xiàn)(biǎoxiàn)出的現(xiàn)象可能會(huì)暫時(shí)消失,但并未實(shí)際排除。現(xiàn)象實(shí)際上是由一些非錯(cuò)誤原因(例如,舍入不精確)引起的。第一百二十六頁(yè),共154頁(yè)。現(xiàn)象可能是由于一些不容易發(fā)現(xiàn)的人為錯(cuò)誤引起的。錯(cuò)誤是由于時(shí)序問(wèn)題引起的,與處理過(guò)程無(wú)關(guān)。現(xiàn)象是由于難于精確(jīngquè)再現(xiàn)的輸入狀態(tài)(例如,實(shí)時(shí)應(yīng)用中輸入順序不確定)引起?,F(xiàn)象可能是周期出現(xiàn)的。在軟、硬件結(jié)合的嵌入式系統(tǒng)中常常遇到。第一百二十七頁(yè),共154頁(yè)。幾種主要(zhǔyào)的調(diào)試方法 調(diào)試的關(guān)鍵在于推斷程序內(nèi)部的錯(cuò)誤位置及原因。可以采用以下方法:強(qiáng)行排錯(cuò) 這種調(diào)試方法目前使用較多,效率較低。它不需要過(guò)多的思考,比較省腦筋。例如:通過(guò)內(nèi)存(nèicún)全部打印來(lái)調(diào)試,在這大量的數(shù)據(jù)中尋找出錯(cuò)的位置。第一百二十八頁(yè),共154頁(yè)。在程序特定部位設(shè)置打印語(yǔ)句(yǔjù),把打印語(yǔ)句(yǔjù)插在出錯(cuò)的源程序的各個(gè)關(guān)鍵變量改變部位、重要分支部位、子程序調(diào)用部位,跟蹤程序的執(zhí)行,監(jiān)視重要變量的變化。自動(dòng)調(diào)試工具。利用某些程序語(yǔ)言的調(diào)試功能或?qū)iT(mén)的交互式調(diào)試工具,分析程序的動(dòng)態(tài)過(guò)程,而不必修改程序。第一百二十九頁(yè),共154頁(yè)。 應(yīng)用以上任一種方法之前,都應(yīng)當(dāng)對(duì)錯(cuò)誤的征兆進(jìn)行(jìnxíng)全面徹底的分析,得出對(duì)出錯(cuò)位置及錯(cuò)誤性質(zhì)的推測(cè),再使用一種適當(dāng)?shù)恼{(diào)試方法來(lái)檢驗(yàn)推測(cè)的正確性?;厮莘ㄕ{(diào)試

這是在小程序中常用的一種有效的調(diào)試方法。一旦發(fā)現(xiàn)了錯(cuò)誤,人們先分析錯(cuò)誤征兆,確定最先發(fā)現(xiàn)“癥狀”的位置。第一百三十頁(yè),共154頁(yè)。 然后,人工沿程序的控制流程,向回追蹤源程序代碼,直到找到錯(cuò)誤(cuòwù)根源或確定錯(cuò)誤(cuòwù)產(chǎn)生的范圍。例如,程序中發(fā)現(xiàn)錯(cuò)誤(cuòwù)處是某個(gè)打印語(yǔ)句。通過(guò)輸出值可推斷程序在這一點(diǎn)上變量的值。再?gòu)倪@一點(diǎn)出發(fā),回溯程序的執(zhí)行過(guò)程,反復(fù)考慮:“如果程序在這一點(diǎn)上的狀態(tài)(變量的值)是這樣,那么程序在上一點(diǎn)的狀態(tài)一定是這樣...”,直到找到錯(cuò)誤(cuòwù)的位置。第一百三十一頁(yè),共154頁(yè)。歸納法調(diào)試歸納法是一種從特殊推斷一般的系統(tǒng)化思考方法。歸納法調(diào)試的基本思想是:從一些線索(錯(cuò)誤征兆)著手,通過(guò)(tōngguò)分析它們之間的關(guān)系來(lái)找出錯(cuò)誤。收集有關(guān)的數(shù)據(jù)列出所有已知的測(cè)試用例和程序執(zhí)行結(jié)果??茨男┹斎霐?shù)據(jù)的運(yùn)行結(jié)果是正確的,哪些輸入數(shù)據(jù)的運(yùn)行結(jié)果有錯(cuò)誤。第一百三十二頁(yè),共154頁(yè)。組織(zǔzhī)數(shù)據(jù)由于歸納法是從特殊到一般的推斷過(guò)程,所以需要組織(zǔzhī)整理數(shù)據(jù),以發(fā)現(xiàn)規(guī)律。常以3W1H形式組織(zǔzhī)可用的數(shù)據(jù):“What”列出一般現(xiàn)象;“Where”說(shuō)明發(fā)現(xiàn)現(xiàn)象的地點(diǎn);“When”列出現(xiàn)象發(fā)生時(shí)所有已知情況;“How”說(shuō)明現(xiàn)象的范圍和量級(jí);第一百三十三頁(yè),共154頁(yè)。第一百三十四頁(yè),共154頁(yè)?!癥es”描述出現(xiàn)錯(cuò)誤的3W1H;“No”作為比較,描述了沒(méi)有錯(cuò)誤的3W1H。通過(guò)分析找出矛盾來(lái)。提出假設(shè) 分析線索之間的關(guān)系,利用在線索結(jié)構(gòu)中觀察到的矛盾現(xiàn)象,設(shè)計(jì)一個(gè)或多個(gè)(duōɡè)關(guān)于出錯(cuò)原因的假設(shè)。如果一個(gè)假設(shè)也提不出來(lái),歸納過(guò)程就需要收集更多的數(shù)據(jù)。此時(shí),應(yīng)當(dāng)再設(shè)計(jì)與執(zhí)行一些測(cè)試用例,以獲得更多的數(shù)據(jù)。第一百三十五頁(yè),共154頁(yè)。

證明假設(shè)把假設(shè)與原始線索或數(shù)據(jù)進(jìn)行比較,若它能完全解釋一切現(xiàn)象,則假設(shè)得到證明;否則,就認(rèn)為假設(shè)不合理,或不完全,或是(huòshì)存在多個(gè)錯(cuò)誤,以致只能消除部分錯(cuò)誤。第一百三十六頁(yè),共154頁(yè)。演繹法調(diào)試

演繹法是一種從一般原理或前提出發(fā),經(jīng)過(guò)排除和精化的過(guò)程來(lái)推導(dǎo)出結(jié)論的思考方法。演繹法排錯(cuò)是測(cè)試人員首先根據(jù)已有的測(cè)試用例,設(shè)想及枚舉出所有(suǒyǒu)可能出錯(cuò)的原因做為假設(shè);然后再用原始測(cè)試數(shù)據(jù)或新的測(cè)試,從中逐個(gè)排除不可能正確的假設(shè);最后,再用測(cè)試數(shù)據(jù)驗(yàn)證余下的假設(shè)確是出錯(cuò)的原因。第一百三十七頁(yè),共154頁(yè)。列舉所有可能出錯(cuò)原因的假設(shè)

把所有可能的錯(cuò)誤原因列成表。通過(guò)它們,可以組織、分析現(xiàn)有數(shù)據(jù)。利用已有的測(cè)試數(shù)據(jù),排除不正確的假設(shè)

仔細(xì)分析已有的數(shù)據(jù),尋找矛盾,力求排除前一步列出所有原因。如果所有原因都被排除了,則需要補(bǔ)充(bǔchōng)一些數(shù)據(jù)(測(cè)試用例),以建立新的假設(shè)。第一百三十八頁(yè),共154頁(yè)。改進(jìn)余下的假設(shè)

利用已知的線索,進(jìn)一步改進(jìn)余下的假設(shè),使之更具體化,以便可以精確地確定出錯(cuò)位置(wèizhi)。證明余下的假設(shè)第一百三十九頁(yè),共154頁(yè)。調(diào)試(diàoshì)原則在調(diào)試方面,許多原則本質(zhì)上是心理學(xué)方面的問(wèn)題。調(diào)試由兩部分組成(zǔchénɡ),調(diào)試原則也分成兩組。確定錯(cuò)誤的性質(zhì)和位置的原則用頭腦去分析思考與錯(cuò)誤征兆有關(guān)的信息。避開(kāi)死胡同。第一百四十頁(yè),共154頁(yè)。只把調(diào)試工具(gōngjù)當(dāng)做輔助手段來(lái)使用。利用調(diào)試工具(gōngjù),可以幫助思考,但不能代替思考。避免用試探法,最多只能把它當(dāng)做最后手段。修改錯(cuò)誤的原則在出現(xiàn)錯(cuò)誤的地方,很可能還有別的錯(cuò)誤。第一百四十一頁(yè),共154頁(yè)。修改錯(cuò)誤的一個(gè)常見(jiàn)失誤是只修改了這個(gè)錯(cuò)誤的征兆或這個(gè)錯(cuò)誤的表現(xiàn),而沒(méi)有修改錯(cuò)誤的本身。當(dāng)心修正(xiūzhèng)一個(gè)錯(cuò)誤的同時(shí)有可能會(huì)引入新的錯(cuò)誤。修改錯(cuò)誤的過(guò)程將迫使人們暫時(shí)回到程序設(shè)計(jì)階段。修改源代碼程序,不要改變目標(biāo)代碼。第一百四十二頁(yè),共154頁(yè)。1.軟件可靠性的定義對(duì)于軟件可靠性有許多不同的定義,其中多數(shù)人承認(rèn)的一個(gè)定義是:軟件可靠性是程序在給定的時(shí)間間隔內(nèi),按照規(guī)格說(shuō)明書(shū)的規(guī)定成功地運(yùn)行的概率。按照IEEE的規(guī)定,術(shù)語(yǔ)“錯(cuò)誤”的含義是由開(kāi)發(fā)人員造成的軟件差錯(cuò)(bug),而術(shù)語(yǔ)“故障(gùzhàng)”的含義是由錯(cuò)誤引起的軟件的不正確行為。在下面的論述中,將按照IEEE規(guī)定的含義使用這兩個(gè)術(shù)語(yǔ)。軟件可靠性第一百四十三頁(yè),共154頁(yè)??煽啃院涂捎眯灾g的主要差別是,可靠性意味著在0到t這段時(shí)間間隔(jiàngé)內(nèi)系統(tǒng)沒(méi)有失效,而可用性只意味著在時(shí)刻t,系統(tǒng)是正常運(yùn)行的。如果在一段時(shí)間內(nèi),軟件系統(tǒng)故障停機(jī)時(shí)間分別為td1,td2,…,正常運(yùn)行時(shí)間分別為tu1,tu2,…,則系統(tǒng)的穩(wěn)態(tài)可用性為:Ass=Tup/(Tup+Tdown) (7.1)其中Tup=∑tui,Tdown=∑tdi2.軟件的可用性軟件可用性的一個(gè)定義是:軟件可用性是程序在給定(ɡěidìnɡ)的時(shí)間點(diǎn),按照規(guī)格說(shuō)明書(shū)的規(guī)定,成功地運(yùn)行的概率。第一百四十四頁(yè),共154頁(yè)。如果引入系統(tǒng)平均無(wú)故障時(shí)間(shíjiān)MTTF和平均維修時(shí)間(shíjiān)MTTR的概念,則(7.1)式可以變成Ass=MTTF/(MTTF+MTTR) (7.2)平均維修時(shí)間(shíjiān)MTTR是修復(fù)一個(gè)故障平均需要用的時(shí)間(shíjiān),它取決于維護(hù)人員的技

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論