




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
軟件工程第七講實現(xiàn)第1頁,課件共133頁,創(chuàng)作于2023年2月目標(biāo)理解語用的重要性理解測試的目的理解軟件可靠性掌握測試技術(shù)設(shè)計測試用例第2頁,課件共133頁,創(chuàng)作于2023年2月第7章實現(xiàn)(I)通常把編碼和測試統(tǒng)稱為實現(xiàn)。程序的質(zhì)量主要取決于軟件設(shè)計的質(zhì)量。所選用的程序設(shè)計語言的特點及編碼風(fēng)格也將對程序的可靠性、可讀性、可測試性和可維護(hù)性產(chǎn)生深遠(yuǎn)的影響。第3頁,課件共133頁,創(chuàng)作于2023年2月第7章實現(xiàn)(II)測試的目的就是在軟件投入生產(chǎn)性運行之前,盡可能多地發(fā)現(xiàn)軟件中的錯誤。目前軟件測試仍然是保證軟件質(zhì)量的關(guān)鍵步驟,它是對軟件規(guī)格說明、設(shè)計和編碼的最后復(fù)審。軟件測試在軟件生命周期中橫跨兩個階段。單元測試:通常在編寫出每個模塊之后就對它做必要的測試綜合測試:在這個階段結(jié)束之后,對軟件系統(tǒng)還應(yīng)該進(jìn)行各種綜合測試第4頁,課件共133頁,創(chuàng)作于2023年2月第7章實現(xiàn)(III)通過測試發(fā)現(xiàn)錯誤之后還必須診斷并改正錯誤,這就是調(diào)試的目的。調(diào)試是測試階段最困難的工作。軟件可靠性模型使用故障率數(shù)據(jù),估計軟件將來出現(xiàn)故障的情況并預(yù)測軟件的可靠性。第5頁,課件共133頁,創(chuàng)作于2023年2月7.1編碼7.1.1選擇程序設(shè)計語言7.1.2編碼風(fēng)格第6頁,課件共133頁,創(chuàng)作于2023年2月7.1.1選擇程序設(shè)計語言(I)編碼之前的一項重要工作就是選擇一種適當(dāng)?shù)某绦蛟O(shè)計語言。在選擇的時候我們要考慮各種方面的限制。下面是主要的實用標(biāo)準(zhǔn):(1)系統(tǒng)用戶的要求。(2)可以得到的軟件工具。(3)程序員的知識。(4)軟件可移植性要求。(5)軟件的應(yīng)用領(lǐng)域。第7頁,課件共133頁,創(chuàng)作于2023年2月7.1.1選擇程序設(shè)計語言(I)編碼之前的一項重要工作就是選擇一種適當(dāng)?shù)某绦蛟O(shè)計語言。在選擇的時候我們要考慮各種方面的限制。下面是主要的實用標(biāo)準(zhǔn):(1)系統(tǒng)用戶的要求。(2)可以得到的軟件工具。(3)程序員的知識。(4)軟件可移植性要求。(5)軟件的應(yīng)用領(lǐng)域。第8頁,課件共133頁,創(chuàng)作于2023年2月7.1.2編碼風(fēng)格(I)1、程序內(nèi)部的文檔2、數(shù)據(jù)說明3、語句構(gòu)造4、輸入輸出5、效率第9頁,課件共133頁,創(chuàng)作于2023年2月
程序內(nèi)部文檔(I)所謂程序內(nèi)部的文檔包括恰當(dāng)?shù)臉?biāo)識符、適當(dāng)?shù)淖⒔夂统绦虻囊曈X組織等等。1、標(biāo)識符開發(fā)小組采取統(tǒng)一的命名規(guī)則(匈牙利命名法)使用可以準(zhǔn)確說明變量/字段/類的完整的英文描述符。比如firstName,少用單變量名稱如l,t這樣的名字。采用該領(lǐng)域的術(shù)語。盡量不要生造詞匯。第10頁,課件共133頁,創(chuàng)作于2023年2月
程序內(nèi)部文檔(II)采用大小寫混合,提高名字的可讀性。一般應(yīng)該采用小寫字母,但是類和接口的名字的首字母,以及任何中間單詞的首字母應(yīng)該大寫。如類名DBConnection,方法名getFirstName(),isAtEnd(),setFirstName(StringaName)等等盡量少用縮寫,但如果一定要使用,就要謹(jǐn)慎地使用。例如,想對單詞“number”采用縮寫,可從no或者num中選取一個,且只用這種形式。避免使用下劃線作為名字的首末字母。第11頁,課件共133頁,創(chuàng)作于2023年2月
程序內(nèi)部文檔-注釋(I)在每個模塊開始前有一段序言性的注釋,簡要描述模塊的功能、主要算法、接口、重要數(shù)據(jù)、版本、編寫(修改)時間、作者等。
/**INET AnimplementationoftheTCP/IPprotocolsuitefortheLINUXoperatingsystem.INETisimplementedusingtheBSDSocketinterfaceasthemeansofcommunicationwiththeuserlevel.* TheInternetProtocol(IP)module.*Version: $Id:ip_input.c,v1.401999/06/0910:10:55davemExp$*Authors: RossBiro,<bir7@leland.Stanford.Edu>* FredN.vanKempen,<waltje@uWalt.NL.Mugnet.ORG>* DonaldBecker,<becker@>* AlanCox,<Alan.Cox@>,…… */第12頁,課件共133頁,創(chuàng)作于2023年2月
程序內(nèi)部文檔-注釋(II)插在程序中間與一段程序代碼有關(guān)的注解,主要解釋包含這段代碼的必要性。/** DeliverIPPacketstothehigherprotocollayers.*/intip_local_deliver(structsk_buff*skb){…… /*Allprotocolschecked. *Ifthispacketwasabroadcast,wemay*not*replytoit,sincethat *causes(proven,grin)ARPstormsandaleakageofmemory(i.e.all *ICMPreplymessagesgetqueuedupfortransmission...) */……}第13頁,課件共133頁,創(chuàng)作于2023年2月
程序內(nèi)部文檔-注釋(III)應(yīng)該用空格或空行清楚地區(qū)分注解和程序。程序清單的布局對于程序的可讀性也有很大影響,應(yīng)該利用適當(dāng)?shù)碾A梯形式使程序的層次結(jié)構(gòu)清晰明顯。第14頁,課件共133頁,創(chuàng)作于2023年2月
數(shù)據(jù)說明數(shù)據(jù)說明的次序應(yīng)該標(biāo)準(zhǔn)化。有次序就容易查閱,因此能夠加速測試、調(diào)試和維護(hù)的過程。當(dāng)多個變量名在一個語句中說明時,應(yīng)該按字母順序排列這些變量。如果設(shè)計時使用了一個復(fù)雜的數(shù)據(jù)結(jié)構(gòu),則應(yīng)該用注解說明用程序設(shè)計語言實現(xiàn)這個數(shù)據(jù)結(jié)構(gòu)的方法和特點。第15頁,課件共133頁,創(chuàng)作于2023年2月
語句構(gòu)造(I)構(gòu)造語句時應(yīng)該遵循的原則是,每個語句都應(yīng)該簡單而直接。采用下述規(guī)則:不要為了節(jié)省空間而把多個語句寫在同一行;FORI:=1TON-1DOBEGINT:=I;FORJ:=I+1TONDOIFA[J]<A[T]THENT:=J;IFT≠ITHENBEGINWORK:=A[T];A[T]:=A[I];A[I]:=WORK;ENDEND;第16頁,課件共133頁,創(chuàng)作于2023年2月
語句構(gòu)造(II)FORI:=1TON-1DO//改進(jìn)布局
BEGIN
T:=I;
FORJ:=I+1TONDO
IFA[J]<A[T]THENT:=J;
IFT≠ITHEN
BEGIN
WORK:=A[T];
A[T]:=A[I];
A[I]:=WORK;
END
END;第17頁,課件共133頁,創(chuàng)作于2023年2月
語句構(gòu)造(III)程序編寫首先應(yīng)當(dāng)考慮清晰性
A[I]=A[I]+A[T];
A[T]=A[I]-A[T];
A[I]=A[I]-A[T];WORK=A[T];
A[T]=A[I];
A[I]=WORK;第18頁,課件共133頁,創(chuàng)作于2023年2月
語句構(gòu)造(IV)盡量避免復(fù)雜的條件;盡量減少對“非”條件;避免大量使用循環(huán)嵌套和條件嵌套;利用括號使邏輯表達(dá)式或算術(shù)表達(dá)式的運算次序清晰直觀。第19頁,課件共133頁,創(chuàng)作于2023年2月
輸入輸出在設(shè)計和編寫程序時應(yīng)該考慮下述有關(guān)輸入輸出風(fēng)格的規(guī)則:對所有輸入數(shù)據(jù)都進(jìn)行檢驗;保持輸入格式簡單;明確提示交互式輸入的請求,詳細(xì)說明可用的選擇或邊界數(shù)值;當(dāng)程序設(shè)計語言對格式有嚴(yán)格要求時,應(yīng)保持輸入格式一致;設(shè)計良好的輸出報表;第20頁,課件共133頁,創(chuàng)作于2023年2月
效率(I)效率主要指處理機(jī)時間和存儲器容量兩個方面。應(yīng)該記住3條原則:首先,效率是性能要求。其次,效率是靠好設(shè)計來提高的。第三,程序的效率和程序的簡單程度是一致的,不要犧牲程序的清晰性和可讀性來不必要地提高效率。第21頁,課件共133頁,創(chuàng)作于2023年2月
效率(II)(1)程序運行時間應(yīng)用下述規(guī)則:寫程序之前先簡化算術(shù)的和邏輯的表達(dá)式;仔細(xì)研究嵌套的循環(huán),以確定是否有語句可以從內(nèi)層往外移;盡量避免使用多維數(shù)組;盡量避免使用指針和復(fù)雜的表;使用執(zhí)行時間短的算術(shù)運算;不要混合使用不同的數(shù)據(jù)類型;盡量使用整數(shù)運算和布爾表達(dá)式。第22頁,課件共133頁,創(chuàng)作于2023年2月main(){inti,j;longsum=0;for(i=1;i<=20;i++)for(j=1;j<=3;j++)sum=sum+(i+1)*(i+1)*(j+2);printf(“sum=%d\n”,sum);}
內(nèi)循環(huán)次數(shù)
20X4=80
外循環(huán)次數(shù)
21
總循環(huán)次數(shù)
101
∑∑(i+1)2(j+2)
203
i=1j=1第23頁,課件共133頁,創(chuàng)作于2023年2月main(){inti,j;longsum=0;
for(j=1;j<=3;j++)for(i=1;i<=20;i++)sum=sum+(i+1)*(i+1)*(j+2);printf(“sum=%d\n”,sum);}
內(nèi)循環(huán)次數(shù)
3X21=63
外循環(huán)次數(shù)
4
總循環(huán)次數(shù)
67第24頁,課件共133頁,創(chuàng)作于2023年2月main(){inti,j;longsum=0;
for(j=1;j<=3;j++)for(i=1;i<=20;i++)sum=sum+(i+1)*(i+1)*(j+2);printf(“sum=%d\n”,sum);}
j+2共計執(zhí)行了
3X20=60次
第25頁,課件共133頁,創(chuàng)作于2023年2月應(yīng)盡量把與循環(huán)變量無關(guān)的運算移到循環(huán)外去。main(){inti,j,k;longsum=0;
for(j=1;j<=3;j++){k=j+2;
for(i=1;i<=20;i++)sum=sum+(i+1)*(i+1)*k;}printf(“sum=%d\n”,sum);}
j+2共計執(zhí)行了
3次
減少了57次第26頁,課件共133頁,創(chuàng)作于2023年2月
效率(III)(2)存儲器效率在大型計算機(jī)中必須考慮操作系統(tǒng)頁式調(diào)度的特點。如果要求使用最少的存儲器,應(yīng)選用有緊縮存儲器特性的編譯程序,必要時可使用匯編。提高執(zhí)行效率的技術(shù)也能提高存儲器效率。第27頁,課件共133頁,創(chuàng)作于2023年2月
效率(IV)(3)輸入輸出的效率簡單清晰同樣是提高人機(jī)通信效率的關(guān)鍵。硬件之間的通信效率是很復(fù)雜的問題,有些簡單的原則可以提高輸入輸出的效率。例如:所有輸入輸出都應(yīng)該有緩沖,以減少用于通信的額外開銷;對輔存應(yīng)選用最簡單的訪問方法;輔存的輸入輸出應(yīng)該以信息組為單位進(jìn)行;第28頁,課件共133頁,創(chuàng)作于2023年2月7.2軟件測試基礎(chǔ)7.2.1軟件測試的目標(biāo)7.2.2軟件測試準(zhǔn)則7.2.3測試方法7.2.4測試步驟7.2.5測試階段的信息流第29頁,課件共133頁,創(chuàng)作于2023年2月7.2軟件測試基礎(chǔ)暴露問題并不是軟件測試的最終目的,發(fā)現(xiàn)問題是為了解決問題測試階段的根本目標(biāo)是盡可能多地發(fā)現(xiàn)并排除軟件中潛藏的錯誤,最終把一個高質(zhì)量的軟件系統(tǒng)交給用戶使用。第30頁,課件共133頁,創(chuàng)作于2023年2月軟件測試基礎(chǔ)
測試工作量約占開發(fā)總工作量的40%以上測試內(nèi)容文檔程序測試步驟單元測試(模塊測試)集成測試(綜合測試)確認(rèn)測試(有效性測試)系統(tǒng)測試第31頁,課件共133頁,創(chuàng)作于2023年2月7.2臭名昭著的軟件錯誤1、迪斯尼獅子王游戲(1994年)—未能對平臺進(jìn)行廣泛的測試2、奔騰浮點除法缺陷(1994年)—(4195835/3145727)*3145727-41958353、火星極地登錄者號探測器(1999年)—數(shù)據(jù)位被意外置位,機(jī)械震動會觸發(fā)著陸點觸點開關(guān)4、愛國者導(dǎo)彈(1991年)—海灣戰(zhàn)爭中失利,系統(tǒng)時鐘累計錯誤,14小時后,跟蹤系統(tǒng)不再準(zhǔn)確5、千年蟲問題(1974年)6、JPEG圖片病毒7、1992年6月26日,鳳凰城機(jī)場停飛一天,原因:當(dāng)天氣溫122℉,儀器設(shè)定最高溫度120℉第32頁,課件共133頁,創(chuàng)作于2023年2月7.2.1軟件測試的目標(biāo)G.Myers給出了關(guān)于測試的一些規(guī)則,這些規(guī)則也可以看作是測試的目標(biāo)或定義。(1)測試是為了發(fā)現(xiàn)程序中的錯誤而執(zhí)行程序的過程;(2)好的測試方案是極可能發(fā)現(xiàn)迄今為止尚未發(fā)現(xiàn)的錯誤的測試方案;(3)成功的測試是發(fā)現(xiàn)了至今為止尚未發(fā)現(xiàn)的錯誤的測試。第33頁,課件共133頁,創(chuàng)作于2023年2月【例】三角形的邊長(整數(shù))三角形性質(zhì)異常情況
a+b≤ca≤0a∈Na是字符型排列次序相關(guān)abc正常情況合理的不等邊三角形合理的等邊三角形合理的等腰三角形排列次序相關(guān)a=3,b=4,c=5a=3,b=3,c=4a=3,b=3,c=3第34頁,課件共133頁,創(chuàng)作于2023年2月測試目標(biāo)
其它SE階段——“建設(shè)性”測試:找錯過程——“破壞性”?
改錯提高軟件質(zhì)量——“建設(shè)性”
G.Myers
為了發(fā)現(xiàn)程序中的錯誤而執(zhí)行程序的過程 證明程序正確,沒有錯誤?
證明程序錯誤,暴露錯誤? 第35頁,課件共133頁,創(chuàng)作于2023年2月7.2.2軟件測試準(zhǔn)則預(yù)先制定嚴(yán)格的測試計劃,防止測試的隨意性、盲目性預(yù)先確定測試結(jié)果測試目的:檢測的功能 測試a+b≤c時的輸出測試用例:測試數(shù)據(jù) 1,2,3
預(yù)期結(jié)果 inputisinvalid小規(guī)模測試→大規(guī)模測試“窮舉測試”不可能Pareto原理:80%error——20%module錯誤的群集現(xiàn)象獨立第三方測試保存測試報告第36頁,課件共133頁,創(chuàng)作于2023年2月窮盡測試(completetest)包含所有可能情況的測試a,b,c:integer計算機(jī)字長16位→可能取值有216可能的排列組合216
×216
×216≈3×101111ms/次3×101111萬年!=仍然不是窮盡測試!不能嚴(yán)格證明程序正確性!無效輸入的情況沒有測試,更容易發(fā)生錯誤第37頁,課件共133頁,創(chuàng)作于2023年2月7.2.3測試方法(I)測試技術(shù)1、白盒測試(WhiteBoxTesting)2、黑盒測試(BlackBoxTesting)結(jié)構(gòu)測試功能測試第38頁,課件共133頁,創(chuàng)作于2023年2月7.2.4測試步驟大型軟件系統(tǒng)的測試過程基本上由下述幾個步驟組成。1.模塊測試2.子系統(tǒng)測試3.系統(tǒng)測試4.驗收測試5.平行運行第39頁,課件共133頁,創(chuàng)作于2023年2月第40頁,課件共133頁,創(chuàng)作于2023年2月7.2.5測試階段的信息流圖7.1測試階段的信息流需求說明書、設(shè)計說明書、程序清單測試計劃測試方案:輸入數(shù)據(jù)要檢驗的功能預(yù)期正確輸出由程序編寫者負(fù)責(zé)完成第41頁,課件共133頁,創(chuàng)作于2023年2月7.3.1測試重點(I)在單元測試期間著重從下述5個方面對模塊進(jìn)行測試1.模塊接口:參數(shù)的數(shù)目、次序、屬性等;全局變量的定義和用法在各個模塊中是否一致。2.局部數(shù)據(jù)結(jié)構(gòu):局部數(shù)據(jù)說明、初始化、默認(rèn)值等3.重要的執(zhí)行通路4.出錯處理通路5.邊界條件第42頁,課件共133頁,創(chuàng)作于2023年2月7.3.2代碼審查(I)人工測試源程序可以由編寫者本人非正式地進(jìn)行,也可以由審查小組正式進(jìn)行。在審查會上由程序的編寫者解釋他是怎樣用程序代碼實現(xiàn)這個設(shè)計的,通常是逐個語句地講述程序的邏輯,小組其他成員仔細(xì)傾聽他的講解,并力圖發(fā)現(xiàn)其中的錯誤。審查會上進(jìn)行的另外一項工作,是對照程序設(shè)計常見錯誤清單,分析審查這個程序。第43頁,課件共133頁,創(chuàng)作于2023年2月7.3.2代碼審查(II)代碼審查比計算機(jī)測試優(yōu)越的是:一次審查會上可以發(fā)現(xiàn)許多錯誤;用計算機(jī)測試的方法發(fā)現(xiàn)錯誤之后,通常需要先改正這個錯誤才能繼續(xù)測試,因此錯誤是一個一個地發(fā)現(xiàn)并改正的。人工測試和計算機(jī)測試是互相補(bǔ)充,相輔相成的,缺少其中任何一種方法都會使查找錯誤的效率降低。第44頁,課件共133頁,創(chuàng)作于2023年2月7.3.3計算機(jī)測試模塊并不是一個獨立的程序,每個單元測試開發(fā)驅(qū)動程序和(或)存根程序。通常驅(qū)動程序也就是一個“主程序”,調(diào)用該模塊。存根程序代替被測試的模塊所調(diào)用的模塊。因此存根程序也可以稱為“虛擬子程序”。第45頁,課件共133頁,創(chuàng)作于2023年2月ModulestubdriverinterfacelocaldatastructuresboundaryconditionsindependentpathserrorhandlingpathstestcasesRESULTSmain(){input(test_case);result=Module(test_case);output(result);}result_typeModule(test_case){……;value=stubmodule(data);……;}value_typestubmodule(data){output(data);value=fake_value();returnvalue;}第46頁,課件共133頁,創(chuàng)作于2023年2月測試用例設(shè)計三角形NextDate第47頁,課件共133頁,創(chuàng)作于2023年2月7.4集成測試集成測試非漸增式測試漸增式測試第48頁,課件共133頁,創(chuàng)作于2023年2月非增式測試法——增式測試法非增式測試法增式測試法一步到位、集成所有模塊一次集成一個模塊可并行測試易分離、診斷定位、改正錯誤對接口測試更徹底較早發(fā)現(xiàn)接口錯誤所需機(jī)器時間少編寫driver,stub工作量較小第49頁,課件共133頁,創(chuàng)作于2023年2月增式測試法(Incrementaltesting)Top-downMS1S2M1S3S4M2S2Bottom-upMMMMMMMMMMMMDDDDDD第50頁,課件共133頁,創(chuàng)作于2023年2月(1)自頂向下集成(Top-down)深度優(yōu)先策略M1M2M5M8M6M3M7M4寬度優(yōu)先策略M1M2M3M4M5M6M7M8M1M2M3M5M6M8S7S4M1M2M3M4M5M6M7M8第51頁,課件共133頁,創(chuàng)作于2023年2月自頂向下集成優(yōu)點盡早測試主要的控制、關(guān)鍵的抉擇(上層)盡早實現(xiàn)軟件的完整功能并驗證(深度優(yōu)先)無需driver缺點需編寫stub底層關(guān)鍵模塊測試晚軟件結(jié)構(gòu)中沒有重要的數(shù)據(jù)自下往上流并行測試?yán)щyTop-down第52頁,課件共133頁,創(chuàng)作于2023年2月(2)自底向上集成(Bottom-up)優(yōu)點無需stub可盡早并行測試可盡早發(fā)現(xiàn)底層關(guān)鍵模塊的錯誤易建立測試條件,易判定測試結(jié)果缺點需編寫driver接口出錯發(fā)現(xiàn)較遲系統(tǒng)輪廓形成較晚Bottom-up第53頁,課件共133頁,創(chuàng)作于2023年2月(3)混合法兼有Top-down和Bottom-up的優(yōu)、缺點當(dāng)被測試軟件中關(guān)鍵模塊較多時,是最好的折衷方法SandwichtestingTop-downBottom-upstubdriver第54頁,課件共133頁,創(chuàng)作于2023年2月7.4.4回歸測試回歸測試是指重新執(zhí)行已經(jīng)做過的測試的某個子集,以保證上述這些變化沒有帶來非預(yù)期的副作用。第55頁,課件共133頁,創(chuàng)作于2023年2月7.5確認(rèn)測試確認(rèn)測試也稱為驗收測試,它的目標(biāo)是驗證軟件的有效性。軟件有效性的一個簡單定義是:如果軟件的功能和性能如同用戶所合理期待的那樣,軟件就是有效的。第56頁,課件共133頁,創(chuàng)作于2023年2月確認(rèn)測試(ValidationTesting)目的:驗證軟件的有效性主體:以用戶為主或用戶積極參與方法:黑盒法SoftwareRequirementsSpecification=================>ValidationCriteriaConfigurationreviewDeficiencyList第57頁,課件共133頁,創(chuàng)作于2023年2月7.5.2Alpha和Beta測試(I)Alpha測試由用戶在開發(fā)者的場所進(jìn)行,并且在開發(fā)者對用戶的“指導(dǎo)”下進(jìn)行測試。Alpha測試是在受控的環(huán)境中進(jìn)行的。Beta測試是軟件在開發(fā)者不能控制的環(huán)境中的“真實”應(yīng)用。第58頁,課件共133頁,創(chuàng)作于2023年2月7.6白盒測試法關(guān)注軟件內(nèi)部邏輯結(jié)構(gòu)(controlstructure)測試每條邏輯通路,檢查斷點(breakpoint)狀態(tài)測試方案對程序邏輯的覆蓋程度決定測試的完全性程度White-BoxTestingUsethestructureoftheprogramtotest.——Structuraltesting白盒測試第59頁,課件共133頁,創(chuàng)作于2023年2月可能的執(zhí)行通路=51+52+……
+520
loop=20X123453170年!365×24小時/年1毫秒/條1014條=1014條365×24小時/年窮盡測試(completetest)第60頁,課件共133頁,創(chuàng)作于2023年2月一系列測試過程的總稱,這組測試過程逐漸進(jìn)行越來越完整的通路測試。邏輯覆蓋(Logicalcoverage)4.白盒法測試方案的設(shè)計窮盡測試不可能
選少量“最有效”的testcases,做到盡可能完備的測試第61頁,課件共133頁,創(chuàng)作于2023年2月Error!選擇足夠多的測試數(shù)據(jù),使程序中每個可執(zhí)行的語句至少執(zhí)行一次。a(1)語句覆蓋(Statementcoverage)第62頁,課件共133頁,創(chuàng)作于2023年2月例:PROCEDURESAMPAL(A,B:REAL;VARX:REAL);BEGINIF(A>1)AND(B=0)THENX:=X/AIF(A=2)OR(X>1)THENX:=X+1END;入口A>1ANDB=0TA=2ORX>1TX=X/AX=X+1返回FFSabcdE第63頁,課件共133頁,創(chuàng)作于2023年2月入口A>1ANDB=0TA=2ORX>1TX=X/AX=X+1返回FFSabcdETestcase1:A=2,B=0,X=3覆蓋路徑SabcdEA>1ANDB=0 TA=2ORX>1 T語句覆蓋第64頁,課件共133頁,創(chuàng)作于2023年2月語句覆蓋入口A>1ANDB=0TA=2ORX>1TX=X/AX=X+1返回FFSabcdE問題:只測試了判定表達(dá)式=T,為F時如有錯誤無法發(fā)現(xiàn)!只關(guān)心判定表達(dá)式的值,不關(guān)心判定表達(dá)式中每個條件的取不同值的情況。Testcase1:A=2,B=0,X=3很弱的邏輯覆蓋若A>1ANDB=0錯寫成A>1ORB=0,無法測試出!同樣,若A=2ORX>1錯寫成 A=2ORX<1
,無法測試出!第65頁,課件共133頁,創(chuàng)作于2023年2月選擇足夠多的測試數(shù)據(jù),使每個判定的每個分支至少執(zhí)行一次。(分支覆蓋)入口A>1ANDB=0TA=2ORX>1TX=X/AX=X+1返回FFSabcdE兩種方案:1. SabcdE+SacE (TT) (FF)2.SabcE+SacdE (TF) (FT)(2)判定覆蓋(Branchcoverage)第66頁,課件共133頁,創(chuàng)作于2023年2月入口A>1ANDB=0TA=2ORX>1TX=X/AX=X+1返回FFSabcdETestcases3:①A=4,B=0,X=4(SabcE)②A=2,B=1,X=3(SacdE)問題:任一方案都只檢查了全部路徑的一半(2/4)無法判斷內(nèi)部條件的錯誤(如X>1錯寫為X<1)方案2.SabcE+SacdE (TF) (FT)比語句覆蓋強(qiáng)判定覆蓋第67頁,課件共133頁,創(chuàng)作于2023年2月入口A>1ANDB=0TA=2ORX>1TX=X/AX=X+1返回FFSabcdEA>1 TA≤1 FB=0
TB≠0
FA=2 TA≠2 FX>1 TX≤1 F測試用例必須覆蓋這8種可能的結(jié)果!選擇足夠多的測試數(shù)據(jù),使每個判定表達(dá)式中的每個條件都取到各種可能的結(jié)果。(3)條件覆蓋(Conditioncoverage)第68頁,課件共133頁,創(chuàng)作于2023年2月入口A>1ANDB=0TA=2ORX>1TX=X/AX=X+1返回FFSabcdETestcases4:①A=2,B=0,X=4 [SabcdE](滿足A>1,B=0;A=2,X>1)TTTT②A=1,B=1,X=1 [SacE](滿足A1,B0;A2,X1)FFFF條件覆蓋 判定覆蓋?條件覆蓋第69頁,課件共133頁,創(chuàng)作于2023年2月入口A>1ANDB=0TA=2ORX>1TX=X/AX=X+1返回FFSabcdETestcases5:①A=2,B=0,X=1
[SabcdE](滿足A>1,B=0;A=2,X1)TTTF②A=1,B=1,X=2
[SacdE](滿足A1,B0;A2,X>1)FFFT表達(dá)式
(A=2ORX>1)始終為T,沒有覆蓋分支cE,不是判定覆蓋!條件覆蓋不一定包含判定覆蓋,判定覆蓋也不一定包含條件覆蓋!條件覆蓋第70頁,課件共133頁,創(chuàng)作于2023年2月選擇足夠多的測試數(shù)據(jù),使判定表達(dá)式中的每個條件都取到各種可能的值,而且每個判定表達(dá)式也都取到各種可能的結(jié)果。(4)判定-條件覆蓋第71頁,課件共133頁,創(chuàng)作于2023年2月入口A>1ANDB=0TA=2ORX>1TX=X/AX=X+1返回FFSabcdETestcases6:①A=2,B=0,X=4
[SabcdE](滿足A>1,B=0;A=2,X>1)TTTT②A=1,B=1,X=1
[SacE](滿足A1,B0;A2,X1)FFFFTestcases4問題:沒能覆蓋判定表達(dá)式中各條件取值的所有可能組合!若A>1ANDB=0錯寫成
A>1ORB=0,無法測試出!同樣,若A=2ORX>1錯寫成
A=2ANDX>1
,無法測試出!不一定能發(fā)現(xiàn)判定表達(dá)式中的邏輯錯誤!判定-條件覆蓋第72頁,課件共133頁,創(chuàng)作于2023年2月選擇足夠多的測試數(shù)據(jù),使每個判定表達(dá)式中條件的各種可能組合都至少出現(xiàn)一次。滿足條件組合覆蓋一定能滿足判定覆蓋、條件覆蓋和判定—條件覆蓋。(5)條件組合覆蓋第73頁,課件共133頁,創(chuàng)作于2023年2月全部可能的條件組合為:①A>1,B=0TT②A>1,B0TF③A1,B=0FT
④A1,B0FF⑤A=2,X>1TT⑥A=2,X1TF
⑦A2,X>1FT⑧A2,X1FFTestcases7:①A=2,B=0,X=4(TT)SabcdE②A=2.B=1,X=1(FT)SacdE③A=1,B=0,X=2(FT)SacdE④A=1,B=1,X=1(FF)SacE問題:不能保證覆蓋程序中的每一條路徑!沒有測試到路徑SabcE(表達(dá)式TF,條件①和⑧的組合)的情形入口A>1ANDB=0TA=2ORX>1TX=X/AX=X+1返回FFSabcdE最強(qiáng)的邏輯覆蓋條件組合覆蓋第74頁,課件共133頁,創(chuàng)作于2023年2月5.條件組合覆蓋4.判定-條件覆蓋3.條件覆蓋2.判定覆蓋1.語句覆蓋測試充分性測試代價邏輯覆蓋的關(guān)系第75頁,課件共133頁,創(chuàng)作于2023年2月7.6.2控制結(jié)構(gòu)測試(I)基本路徑測試步驟如下:第一步,根據(jù)過程設(shè)計結(jié)果畫出相應(yīng)的流圖第二步,計算流圖的環(huán)形復(fù)雜度。第三步,確定線性獨立路徑的基本集合。第四步,設(shè)計可強(qiáng)制執(zhí)行基本集合中每條路徑的測試用例。第76頁,課件共133頁,創(chuàng)作于2023年2月圖7.6求平均值過程的流圖第77頁,課件共133頁,創(chuàng)作于2023年2月圖7.6求平均值過程的流圖環(huán)形復(fù)雜度=6路徑1:1-2-10-11-13路徑2:1-2-10-12-13路徑3:1-2-3-10-11-13路徑4:1-2-3-4-5-8-9-2-……路徑5:1-2-3-4-5-6-8-9-2-……路徑6:1-2-3-4-5-6-7-8-9-2-……12345678910111213第78頁,課件共133頁,創(chuàng)作于2023年2月
當(dāng)程序中判定多于一個時,形成的分支結(jié)構(gòu)可以分為兩類:嵌套型分支結(jié)構(gòu)和連鎖型分支結(jié)構(gòu)。對于嵌套型分支結(jié)構(gòu),若有n個判定語句,需要n+1個測試用例;對于連鎖型分支結(jié)構(gòu),若有n個判定語句,需要有2n個測試用例,覆蓋它的2n條路徑。條件測試路徑選擇第79頁,課件共133頁,創(chuàng)作于2023年2月第80頁,課件共133頁,創(chuàng)作于2023年2月循環(huán)分為4種不同類型:簡單循環(huán)、連鎖循環(huán)、嵌套循環(huán)和非結(jié)構(gòu)循環(huán)。
(1)簡單循環(huán)①零次循環(huán):從循環(huán)入口到出口
②一次循環(huán):檢查循環(huán)初始值
③二次循環(huán):檢查多次循環(huán)
④m次循環(huán):檢查在多次循環(huán)
⑤最大次數(shù)循環(huán)、比最大次數(shù)多一次、少一次的循環(huán)。循環(huán)測試路徑選擇第81頁,課件共133頁,創(chuàng)作于2023年2月例:求最小值k=i;for(j=i+1;j<=n;j++)
if(A[j]<A[k])k=j;
第82頁,課件共133頁,創(chuàng)作于2023年2月k=i;j=i+1;j<=n?A[j]<A[k]?k=jj++fdcabe第83頁,課件共133頁,創(chuàng)作于2023年2月測試用例選擇第84頁,課件共133頁,創(chuàng)作于2023年2月
①對最內(nèi)層循環(huán)做簡單循環(huán)的全部測試。所有其它層的循環(huán)變量置為最小值;
②逐步外推,對其外面一層循環(huán)進(jìn)行測試。測試時保持所有外層循環(huán)的循環(huán)變量取最小值,所有其它嵌套內(nèi)層循環(huán)的循環(huán)變量取“典型”值。
③反復(fù)進(jìn)行,直到所有各層循環(huán)測試完畢。 ④對全部各層循環(huán)同時取最小循環(huán)次數(shù),或者同時取最大循環(huán)次數(shù)(2)
嵌套循環(huán)第85頁,課件共133頁,創(chuàng)作于2023年2月第86頁,課件共133頁,創(chuàng)作于2023年2月
(3)連鎖循環(huán)
如果各個循環(huán)互相獨立,則可以用與簡單循環(huán)相同的方法進(jìn)行測試。但如果幾個循環(huán)不是互相獨立的,則需要使用測試嵌套循環(huán)的辦法來處理。(4)非結(jié)構(gòu)循環(huán)
這一類循環(huán)應(yīng)該使用結(jié)構(gòu)化程序設(shè)計方法重新設(shè)計測試用例。
第87頁,課件共133頁,創(chuàng)作于2023年2月STARTINPUT(A,B,C)IFA>5 THENX=10 ELSEX=1ENDIFIFB>10 THENY=20 ELSEY=2ENDIFIFC>15THENZ=30 ELSEZ=3ENDIFPRINT(X,Y,Z)STOP習(xí)題:設(shè)計下列偽碼程序的語句覆蓋和路徑覆蓋測試用例:注意路徑覆蓋指把程序的每條路徑執(zhí)行一次,與基本路徑測試不同(考慮獨立路徑)第88頁,課件共133頁,創(chuàng)作于2023年2月STARTINPUT(A,B,C)IFA>5 THENX=10 ELSEX=1ENDIFIFB>10 THENY=20 ELSEY=2ENDIFIFC>15THENZ=30 ELSEZ=3ENDIFPRINT(X,Y,Z)STOP(1)語句覆蓋的測試用例有三個判斷表達(dá)式,并且每個表達(dá)式為真和為假都有語句執(zhí)行,因此需要兩組測試數(shù)據(jù),使每個判定的真假各一次,這樣才能使每條語句都至少執(zhí)行一次。第一組,使三個判定全假:輸入:A=1,B=1,C=1預(yù)期的輸出:X=1,Y=2,Z=3第二組,使三個判定全真:輸入:A=10,B=20,C=30預(yù)期的輸出:X=10,Y=20,Z=30第89頁,課件共133頁,創(chuàng)作于2023年2月STARTINPUT(A,B,C)IFA>5 THENX=10 ELSEX=1ENDIFIFB>10 THENY=20 ELSEY=2ENDIFIFC>15THENZ=30 ELSEZ=3ENDIFPRINT(X,Y,Z)STOP(2)路徑覆蓋測試用例:該程序共有2*2*2=8條可能的路徑,為了能覆蓋每條路徑,需要8組測試數(shù)據(jù),剛才的全真和全假已經(jīng)有了,只需補(bǔ)充剩余6個:第三組,真真假:輸入:A=10,B=20,C=10預(yù)期的輸出:X=10,Y=20,Z=3第四組,真假假:輸入:A=10,B=10,C=10預(yù)期的輸出:X=10,Y=2,Z=3第五組,真假真:輸入:A=10,B=10,C=30預(yù)期的輸出:X=10,Y=2,Z=30其余的依次類推,不再贅述。第90頁,課件共133頁,創(chuàng)作于2023年2月習(xí)題:設(shè)計下列偽碼的分支覆蓋和條件組合覆蓋測試用例STARTINPUT(A,B,C,D)IF(A>0)AND(B>0)
THENX=A+BELSEX=A-BENDIF(C>A)OR(D<B)
THENY=C-DELSEY=C+DENDPRINT(X,Y)STOP第91頁,課件共133頁,創(chuàng)作于2023年2月STARTINPUT(A,B,C,D)IF(A>0)AND(B>0)
THENX=A+BELSEX=A-BENDIF(C>A)OR(D<B)
THENY=C-DELSEY=C+DENDPRINT(X,Y)STOP(1)分支覆蓋測試用例:分支覆蓋即判定覆蓋,指的是判定的每個分支都執(zhí)行一次,本題有兩個判定,因此設(shè)計兩組測試數(shù)據(jù):第一組,判定全真輸入:A=1,B=1,C=2,D=0預(yù)期輸出:X=2,Y=2第二組,判定全假輸入:A=1,B=0,C=0,D=1預(yù)期輸出:X=1,Y=1第92頁,課件共133頁,創(chuàng)作于2023年2月STARTINPUT(A,B,C,D)IF(A>0)AND(B>0)
THENX=A+BELSEX=A-BENDIF(C>A)OR(D<B)
THENY=C-DELSEY=C+DENDPRINT(X,Y)STOP(2)條件組合覆蓋測試用例:條件組合要求每個表達(dá)式的各種可能組合都至少出現(xiàn)一次。對于第一個表達(dá)式有4種組合:對于第二個表達(dá)式有4種組合:A>0,B>0C>A,D<BA>0,B<=0C>A,D>=BA<=0,B>0C<=A,D<BA<=0,B<=0C<=A,D>=B對應(yīng)組合之。具體不再贅述。第93頁,課件共133頁,創(chuàng)作于2023年2月習(xí)題:使用基本路徑測試方法,設(shè)計測試下面列出的偽碼程序的測試用例:1:STARTINPUT(A,B,C,D)2:IF(A>0)3:AND(B>0)4:THENX=A+B5:ELSEX=A-B6:END7:IF(C>A)8:OR(D<B)9:THENY=C-D10:ELSEY=C+D11:END12:PRINT(X,Y)
STOP第94頁,課件共133頁,創(chuàng)作于2023年2月123647911125810用基本路徑測試方法設(shè)計測試用例有4步:(1)畫出流圖(2)計算環(huán)形復(fù)雜度為5(3)確定獨立路徑的基本集合路徑1:1-2-3-4-6-7-9-11-12路徑2:1-2-3-4-6-7-8-9-11-12路徑3:1-2-3-4-6-7-8-10-11-12路徑4:1-2-5-6-7-9-11-12路徑5:1-2-3-5-6-7-9-11-12(4)設(shè)計測試用例,不再贅述第95頁,課件共133頁,創(chuàng)作于2023年2月7.7黑盒測試技術(shù)黑盒測試著重測試軟件功能。它很可能發(fā)現(xiàn)白盒測試不易發(fā)現(xiàn)的其他類型的錯誤。黑盒測試力圖發(fā)現(xiàn)下述類型的錯誤:①功能不正確或遺漏了功能;②界面錯誤;③數(shù)據(jù)結(jié)構(gòu)錯誤或外部數(shù)據(jù)庫訪問錯誤;④性能錯誤;⑤初始化和終止錯誤。第96頁,課件共133頁,創(chuàng)作于2023年2月7.7黑盒測試技術(shù)1、等價劃分2、邊界值分析3、錯誤推測第97頁,課件共133頁,創(chuàng)作于2023年2月7.7.1等價劃分(I)等價劃分是一種黑盒測試技術(shù),這種技術(shù)把程序的輸入域劃分成若干個數(shù)據(jù)類,據(jù)此導(dǎo)出測試用例。等價類測試的關(guān)鍵就是選擇確定類的等價關(guān)系。第98頁,課件共133頁,創(chuàng)作于2023年2月(1)等價劃分思想:將程序的所有輸入數(shù)據(jù)劃分為不同的區(qū)域,同一區(qū)域中各個輸入數(shù)據(jù)對于揭露程序中的錯誤是等價的,稱為等價類。然后從每一個等價類中選取少數(shù)有代表性的數(shù)據(jù)做為測試用例。等價類有效等價類無效等價類輸出等價類優(yōu)點:可以濾掉同類數(shù)據(jù),提高測試效率劃分:試探性、經(jīng)驗第99頁,課件共133頁,創(chuàng)作于2023年2月劃分等價類的啟發(fā)式規(guī)則
值的范圍 x∈[a,b]
x<a,x>b
值的個數(shù) x=a
x<a,x>a
值約束 x∈A={a1,a2,…,an} x∈A
值的規(guī)則 {x|P(x)}
{x|┐P(x)}
等價類的細(xì)化 x∈Z Z+,0,Z-
表格 空表、一行、多行第100頁,課件共133頁,創(chuàng)作于2023年2月建立等價類表輸入條件有效等價類無效等價類.........第101頁,課件共133頁,創(chuàng)作于2023年2月設(shè)計步驟劃分等價類,建立等價類表設(shè)計測試用例設(shè)計一新測試方案,盡可能多覆蓋尚未被覆蓋的有效等價類,重復(fù),直至全部覆蓋
——減少testcases設(shè)計一新測試方案,覆蓋且僅覆蓋一個無效等價類,重復(fù),直至全部覆蓋
——避免無效測試?yán)何募?/p>
以字母為首的字母數(shù)字串
testcase: 9A*B第102頁,課件共133頁,創(chuàng)作于2023年2月設(shè)變量x1和x2和函數(shù)F聯(lián)系起來。設(shè)X1,x2有以下邊界以及邊界內(nèi)的區(qū)間:a<=x1<=d,區(qū)間[a,b),[b,c),[c,d]e<=x2<=g,區(qū)間[e,f),(f,g]X1,x2的無效值是x1<a,x1>d,x2<e,x2>g.第103頁,課件共133頁,創(chuàng)作于2023年2月
弱一般等價類測試弱一般等價類測試通過使用一個測試用例中的每個等價類的一個變量實現(xiàn)。第104頁,課件共133頁,創(chuàng)作于2023年2月
強(qiáng)一般等價類測試強(qiáng)一般等價類測試基于多缺陷假設(shè)第105頁,課件共133頁,創(chuàng)作于2023年2月
弱健壯等價類測試弱:單缺陷假設(shè)健壯:考慮了無效值第106頁,課件共133頁,創(chuàng)作于2023年2月
強(qiáng)健壯等價類測試強(qiáng):多缺陷假設(shè)健壯:考慮無效值第107頁,課件共133頁,創(chuàng)作于2023年2月7.7.1例(I)NextDate:月日年等價類M1={1..12}M2={<1}M3={>12}D1={1..31}D2={<1}D3={>31}Y1={1912..2112}Y2={<1912}Y3={>2112}有效類的數(shù)量等于獨立變量個數(shù)強(qiáng)弱一般等價類用例相同用例ID月份日期年預(yù)期輸出WN1,SN161520122012年6月16第108頁,課件共133頁,創(chuàng)作于2023年2月7.7.1例(II)弱健壯等價類用例用例ID月份日期年預(yù)期輸出WR161520122012年6月16WR2-1152012月份不在WR313152012月份不在WR46-12012日期不在WR56322012日期不在WR66151911年份不在WR76152113年份不在第109頁,課件共133頁,創(chuàng)作于2023年2月7.7.1例(III)額外強(qiáng)健壯等價類用例用例ID月份日期年預(yù)期輸出SR1-1152012月份不在SR26-12012日期不在SR313151911年份不在SR4-1-12012日期不在、月份不在SR56-11911日期不在、年份不在SR6-1151911年份不在、月份不在SR7-1-11911年月日不在第110頁,課件共133頁,創(chuàng)作于2023年2月7.7.1例(IV)NextDate:月日年等價類M1={每月有30天}M2={每月有31天}M3={2月}M4={<1}M5={>12}D1={1..28}D2={29}D3={30}D4={31}D5={<1}D6={>31}Y1={2000年}Y2={閏年}Y3={平年}Y4={<1912}Y5={>2112}第111頁,課件共133頁,創(chuàng)作于2023年2月7.7.1例(V)強(qiáng)一般等價類用例個數(shù)=3*4*3=36個(略)強(qiáng)健壯等價類用例個數(shù)=5*6*5=150個(略)用例ID月份日期年預(yù)期輸出WN161420002000年6月15WN272919961996年7月30WN32302002不可能的日期WN46312000不可能的輸入日期弱等價類測試用例第112頁,課件共133頁,創(chuàng)作于2023年2月等價劃分法的評價選用等價類中典型值/任意值作為testcases沒有選用某些高效率的測試方案第113頁,課件共133頁,創(chuàng)作于2023年2月7.7.2邊界值分析(BoundaryValueAnalysis,BVA)處理邊界情況最易出錯選擇邊界值作testcases,暴露error的可能性大剛好等于等價類邊界值稍小于稍大于"Bugslurkincornersandcongregateatboundaries..."——BorisBeizer第114頁,課件共133頁,創(chuàng)作于2023年2月邊界值分析的規(guī)則
值的范圍 x∈[a,b] a-1,a,b,b+1
值的個數(shù) a~b a-1,a,b,b+1
輸出等價類 sinx 1 π/2
0 0
-1 -π/2
有序集 [1,n]
[0,n-1] 錯位_π210-1π2第115頁,課件共133頁,創(chuàng)作于2023年2月【例】stringinteger (計算機(jī)字長16位,二進(jìn)制補(bǔ)碼表示)合法輸出等價類[-32768,0)內(nèi)的負(fù)整數(shù)0(0,32767]內(nèi)的正整數(shù)非法輸出等價類<-32768>32767函數(shù)說明 Functionstrtoint(dstr:shortstr):integer;參數(shù)類型說明 typeshortstr=array[1..6]ofchar;假設(shè)不考慮PASCAL編譯程序可過濾的錯誤‘-32769’→錯!下溢‘32768’→錯!上溢‘-32768’→-32768‘000000’→0‘32767’→32767第116頁,課件共133頁,創(chuàng)作于2023年2月邊界值分析方法的評價邊界值→testcases,易發(fā)現(xiàn)錯誤考慮輸出等價類聯(lián)合使用等價劃分、邊界值分析方法第117頁,課件共133頁,創(chuàng)作于2023年2月7.7.3錯誤推測法特殊的容易出錯的情況→
testcases憑經(jīng)驗、直覺,根據(jù)程序的特點著重測試已發(fā)現(xiàn)了較多錯誤的程序段(錯誤的群集現(xiàn)象)測試數(shù)據(jù)的組合(等價
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 服裝批發(fā)商直播帶貨與網(wǎng)紅營銷考核試卷
- 刨花板行業(yè)綠色生產(chǎn)與可持續(xù)發(fā)展考核試卷
- 彈射玩具銷售季節(jié)性規(guī)律考核試卷
- 樂器配件精密加工技術(shù)考核試卷
- 動物用藥品銷售與市場預(yù)測分析考核試卷
- 刺繡藝術(shù)在充電寶的個性化設(shè)計考核試卷
- 創(chuàng)業(yè)項目品牌定位與市場推廣考核試卷
- 勞務(wù)合同范本遷戶口
- 學(xué)校鏟車租賃合同范本
- 淘客推廣合同范本
- 2024年3月30日事業(yè)單位聯(lián)考C類《職業(yè)能力傾向測驗》試題
- 淮陰師范學(xué)院《論文寫作與文獻(xiàn)檢索》2023-2024學(xué)年第一學(xué)期期末試卷
- 《化工設(shè)備機(jī)械基礎(chǔ)(第8版)》完整全套教學(xué)課件
- 代理記賬業(yè)務(wù)內(nèi)部規(guī)范制度-代理記賬業(yè)務(wù)規(guī)范
- 山東虛擬電廠商業(yè)模式介紹
- 2024-2025學(xué)年高中思想政治選擇性必修2 法律與生活統(tǒng)編版(部編版)教學(xué)設(shè)計合集
- 第09講二元一次方程組中的新定義題型(原卷版+解析)-2021-2022學(xué)年下學(xué)期七年級數(shù)學(xué)下冊期末復(fù)習(xí)高頻考點專題(人教版)
- 全國職業(yè)院校技能大賽高職組(商務(wù)數(shù)據(jù)分析賽項)備賽試題庫(含答案)
- 八年級道德與法治下冊 第三單元 人民當(dāng)家作主教案 新人教版
- JGJ153-2016 體育場館照明設(shè)計及檢測標(biāo)準(zhǔn)
- 【年產(chǎn)100噸植物乳桿菌菌劑生產(chǎn)線設(shè)計10000字(論文)】
評論
0/150
提交評論