版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第5章編碼及測試本章要點程序設(shè)計語言的發(fā)展、分類及選擇的標(biāo)準(zhǔn)程序設(shè)計風(fēng)格、效率及安全程序復(fù)雜度及其度量方法軟件測試的基本概念軟件測試方法、步驟及工具測試設(shè)計和管理2022/12/131第5章編碼及測試本章要點2022/12/1115.1程序設(shè)計語言5.1.1程序設(shè)計語言的發(fā)展及分類第一代語言是機(jī)器語言第二代語言是匯編語言第三代語言是高級程序設(shè)計語言
(1)按應(yīng)用特點分類:可以分為基礎(chǔ)語言、通用的結(jié)構(gòu)化程序設(shè)計語言、面向?qū)ο笤O(shè)計語言和專用語言四類。
(2)按語言內(nèi)在特點分類:可分為系統(tǒng)實現(xiàn)語言、靜態(tài)高級語言、塊結(jié)構(gòu)高級語言和動態(tài)高級語言4類。第四代語言(4GL)第五代語言2022/12/1325.1程序設(shè)計語言5.1.1程序設(shè)計語言的發(fā)展及分類5.1.1程序設(shè)計語言的發(fā)展及分類2022/12/1335.1.1程序設(shè)計語言的發(fā)展及分類2022/12/1135.1.2選擇程序設(shè)計語言的選擇標(biāo)準(zhǔn)1.理想標(biāo)準(zhǔn)應(yīng)該有理想的模塊化機(jī)制,以及可讀性好的控制結(jié)構(gòu)和數(shù)據(jù)結(jié)構(gòu),以使程序容易測試和維護(hù),同時減少軟件生存周期的總成本。應(yīng)該使編譯程序能夠盡可能多地發(fā)現(xiàn)程序中的錯誤,以便于調(diào)試和提高軟件的可靠性。應(yīng)該有良好的獨立編譯機(jī)制,以降低軟件開發(fā)和維護(hù)的成本。2022/12/1345.1.2選擇程序設(shè)計語言的選擇標(biāo)準(zhǔn)1.理想標(biāo)準(zhǔn)20222.實用標(biāo)準(zhǔn)①軟件的應(yīng)用領(lǐng)域②系統(tǒng)用戶的要求③軟件運行環(huán)境④可得到的軟件工具⑤工程規(guī)模⑥軟件可移植性要求⑦程序員的知識5.1.2選擇程序設(shè)計語言的選擇標(biāo)準(zhǔn)2022/12/1352.實用標(biāo)準(zhǔn)5.1.2選擇程序設(shè)計語言的選擇標(biāo)準(zhǔn)20225.2程序設(shè)計風(fēng)格源程序文檔化數(shù)據(jù)說明的方法表達(dá)式和語句結(jié)構(gòu)輸入和輸出方法2022/12/1365.2程序設(shè)計風(fēng)格源程序文檔化2022/12/1165.2.1源程序文檔化1.標(biāo)識符:包括模塊名、變量名、常量名、標(biāo)號名、函數(shù)名、程序名、過程名、數(shù)據(jù)區(qū)名、緩沖區(qū)名等。2.注釋:分為序言性注釋和功能性注釋。序言性注釋通常在每個模塊的開始,它給出程序的整體說明,對于理解程序具有引導(dǎo)作用,其主要內(nèi)容有:
(1)說明每個模塊的用途、功能。(2)說明模塊的接口:調(diào)用形式、參數(shù)描述及從屬模塊的清單。(3)數(shù)據(jù)描述:重要數(shù)據(jù)的名稱、用途、限制、約束及其他信息(4)開發(fā)歷史:設(shè)計者、審閱者姓名及日期,修改說明及日期。
2022/12/1375.2.1源程序文檔化1.標(biāo)識符:包括模塊名、變量名、常量
功能性注釋在源程序當(dāng)中,它著重說明其后的語句或程序段的處理功能以及數(shù)據(jù)的狀態(tài)。書寫功能性注釋,要注意以下幾點:
(1)用于描述一段程序,而不是每一個語句;(2)用縮進(jìn)和空行,使程序與注釋容易區(qū)別;(3)注釋要正確;(4)有合適的,有助于記憶的標(biāo)識符和恰當(dāng)?shù)淖⑨?就能得到比較好的源程序內(nèi)部的文檔; (5)有關(guān)設(shè)計的說明,也可以作為注釋,嵌入源程序體內(nèi)。5.2.1源程序文檔化2022/12/138功能性注釋在源程序當(dāng)中,它著重說明其后3.源程序的布局常用方法有:(1)注釋部分和程序部分之間,完成不同功能的程序段之間都可以用空行顯式地隔開;(2)在注釋部分周圍加上邊框;(3)用分層縮進(jìn)的寫法顯示嵌套結(jié)構(gòu)層次;(4)每行只寫一條語句;(5)書寫表達(dá)式時適當(dāng)使用空格或圓括號作隔離符。5.2.1源程序文檔化2022/12/1393.源程序的布局5.2.1源程序文檔化2022/12/115.2.2數(shù)據(jù)說明1.數(shù)據(jù)說明的次序應(yīng)規(guī)范。2.當(dāng)用一個語句說明多個變量名時,應(yīng)當(dāng)對這些變量按字母的順序排列。3.如果設(shè)計了一個復(fù)雜數(shù)據(jù)結(jié)構(gòu),應(yīng)使用注釋說明在實現(xiàn)這個數(shù)據(jù)結(jié)構(gòu)的特點。2022/12/13105.2.2數(shù)據(jù)說明1.數(shù)據(jù)說明的次序應(yīng)規(guī)范。2022/5.2.3表達(dá)式和語句結(jié)構(gòu)1.首先應(yīng)考慮程序的清晰性和可讀性。1)在編程時盡量一行只寫一條語句;2)盡量采用簡單明了的語句,避免過多的循環(huán)嵌套;3)同時注意,在條件結(jié)構(gòu)或循環(huán)結(jié)構(gòu)的嵌套中,分層次縮進(jìn),即邏輯上屬于同一個層次的互相對齊,邏輯上屬于內(nèi)部層次的推到下一個對齊位置,這樣可以使程序的邏輯結(jié)構(gòu)更清晰;4)在混合使用互相無關(guān)的運算符時,用加括號的方式排除二義性;5)將復(fù)雜的表達(dá)式分解成簡單的容易理解的形式;避免浮點數(shù)的相等的比較等;6)程序中有一些諸如各種常數(shù)、數(shù)組的大小、字符位置、變換因子和程序中出現(xiàn)的其他以文字形式寫出的數(shù)值,對于這些數(shù)值應(yīng)命合適的名字,有必要的話加以適當(dāng)?shù)淖⑨?,加?qiáng)程序的可閱讀性、理解性。2022/12/13115.2.3表達(dá)式和語句結(jié)構(gòu)1.首先應(yīng)考慮程序的清晰性和可2.盡可能使用庫函數(shù)3.注意GOTO語句的使用4.使用層次結(jié)構(gòu),按照初始化或數(shù)據(jù)輸入、數(shù)據(jù)處理、結(jié)果輸出3部分安排層次結(jié)構(gòu)。5.2.3表達(dá)式和語句結(jié)構(gòu)2022/12/13122.盡可能使用庫函數(shù)5.2.3表達(dá)式和語句結(jié)構(gòu)20225.2.4輸入和輸出在設(shè)計和程序編碼時都應(yīng)考慮下列原則:①對所有輸入數(shù)據(jù)進(jìn)行檢驗,從而識別錯誤輸入,以保證每個數(shù)據(jù)的有效性。②檢查輸入項的各種重要組合的合理性,必要時報告輸入狀態(tài)信息。③使輸入的步驟和操作盡可能簡單,并保持簡單的輸入格式。④輸入數(shù)據(jù)時,應(yīng)允許使用自由格式輸入。⑤應(yīng)允許默認(rèn)值。2022/12/13135.2.4輸入和輸出在設(shè)計和程序編碼時都應(yīng)考慮下列原則:⑥輸入一批數(shù)據(jù)時,最好使用輸入結(jié)束標(biāo)志,而不要由用戶指定輸入數(shù)據(jù)數(shù)目。⑦在以交互式方式進(jìn)行輸入時,要在屏幕上使用提示符明確提示交互輸入請求,指明可使用選擇項的種類和取值范圍。同時,在數(shù)據(jù)輸入的過程中和輸入結(jié)束時,也應(yīng)屏幕上給出狀態(tài)信息。⑧當(dāng)程序語言對輸入格式有嚴(yán)格要求時,應(yīng)保持輸入格式與輸入語句要求的一致性。⑨給所有的輸出加注解,并設(shè)計輸出報表格式。5.2.4輸入和輸出2022/12/1314⑥輸入一批數(shù)據(jù)時,最好使用輸入結(jié)束標(biāo)志,而不要由用戶指定輸入5.3程序效率5.3.1代碼效率當(dāng)把詳細(xì)設(shè)計翻譯為代碼時,遵循以下準(zhǔn)則:(1)編碼之前應(yīng)先簡化算術(shù)和邏輯的表達(dá)式。(2)仔細(xì)研究嵌套的循環(huán),以確定是否有語句可以從內(nèi)層往外移。(3)盡量避免使用多維數(shù)組。(4)盡量避免使用指針和復(fù)雜的列表。(5)使用執(zhí)行時間短的算術(shù)運算。(6)在表達(dá)式中盡量避免出現(xiàn)不同的數(shù)據(jù)類型。(7)盡量位用整數(shù)表達(dá)式和布爾表達(dá)式。對于一些對效率要求高的系統(tǒng),可使用具有優(yōu)化特性的編譯程序自動生成目標(biāo)代碼。2022/12/13155.3程序效率5.3.1代碼效率2022/12/115.3.2存儲器效率在微型計算機(jī)系統(tǒng)中,常采用生成目標(biāo)代碼較短且有緊縮存儲器性能的編譯程序,必要時可采用匯編語言。在大中型計算機(jī)系統(tǒng)中,對內(nèi)存采取基于操作系統(tǒng)的分頁功能的虛擬存儲管理。采用結(jié)構(gòu)化程序設(shè)計,使每個模塊或一組密切相關(guān)模塊的程序占用空間與每頁容量相匹配。同時,提高程序執(zhí)行效率也能提高存儲器效率。2022/12/13165.3.2存儲器效率在微型計算機(jī)系統(tǒng)中,常采用生成目標(biāo)代5.3.3輸入/輸出效率從編碼角度看,提高輸入/輸出效率的原則:所有輸入/輸出都應(yīng)有緩沖,以避免過多的通信次數(shù);對于輔存(如磁盤)應(yīng)選用簡單有效的訪問方法;與輔存有關(guān)的輸入/輸出應(yīng)該以塊為單位進(jìn)行;與終端和打印機(jī)有關(guān)的輸入/輸出,應(yīng)當(dāng)考慮設(shè)備的特性,以提高輸入/輸出的質(zhì)量和速度;有的輸入/輸出方式盡管很高效,但難以被人們理解,也不應(yīng)當(dāng)采用;簡單、清晰的輸入/輸出設(shè)計風(fēng)格也是提高效率的關(guān)鍵;2022/12/13175.3.3輸入/輸出效率從編碼角度看,提高輸入/輸出效率5.4編程安全提高軟件質(zhì)量和可靠性的技術(shù)大致可分為兩類:·一類是避開錯誤技術(shù),即在開發(fā)的過程中不讓差錯潛入軟件的技術(shù)?!ち硪活愂侨蒎e技術(shù),即對某些無法避開的差錯,使其影響減至最小的技術(shù)。避錯技術(shù)是進(jìn)行質(zhì)量管理,實現(xiàn)產(chǎn)品應(yīng)有質(zhì)量所不可少的技術(shù),也就是軟件工程中所討論的先進(jìn)的軟件分析和開發(fā)技術(shù)和管理技術(shù)。即使采用了避錯技術(shù),系統(tǒng)還是會發(fā)生故障,因此需要采用容錯技術(shù)使得系統(tǒng)發(fā)生故障時,能自動恢復(fù)正常運行。實現(xiàn)容錯的主要手段是冗余和防錯程序設(shè)計。2022/12/13185.4編程安全提高軟件質(zhì)量和可靠性的技術(shù)大致可分為兩類:5.4.1冗余程序設(shè)計在硬件系統(tǒng)中,采用冗余技術(shù)是指提供額外的元件或系統(tǒng),使其與主系統(tǒng)并行工作。在軟件系統(tǒng)中,采用冗余技術(shù)主要指提供足夠的冗余信息和算法程序。冗余設(shè)計在提高軟件可靠性的同時,也增大了程序規(guī)模和系統(tǒng)資源的耗費,因此需要在可靠性和資源耗費之間進(jìn)行權(quán)衡。2022/12/13195.4.1冗余程序設(shè)計在硬件系統(tǒng)中,采用冗余技術(shù)是指提供5.4.2防錯程序設(shè)計防錯程序設(shè)計可分為主動式和被動式兩種。
主動式防錯程序設(shè)計(1)內(nèi)存檢查(2)標(biāo)志檢查(3)反向檢查(4)狀態(tài)檢查(5)連接檢查(6)時間檢查(7)其他檢查2022/12/13205.4.2防錯程序設(shè)計防錯程序設(shè)計可分為主動式和被動式兩被動式防錯程序設(shè)計(1)來自外部設(shè)備的輸入數(shù)據(jù),包括范圍、屬性是否正確;(2)由其他程序所提供的數(shù)據(jù)是合正確;(3)數(shù)據(jù)庫中的數(shù)據(jù),包括數(shù)組、文件、結(jié)構(gòu)、記錄是合正確;(4)操作員的輸入,包括輸入的性質(zhì),順序是否正確;(5)棧的深度是否正確;(6)數(shù)組界限是否正確;(7)表達(dá)式中是否出現(xiàn)零分母情況;(8)正在運行的程序版本是否是所期望的;(9)通過其他程序或外部設(shè)備的輸出數(shù)據(jù)是否正確。5.4.2防錯程序設(shè)計2022/12/1321被動式防錯程序設(shè)計5.4.2防錯程序設(shè)計2022/12/5.5結(jié)構(gòu)化程序設(shè)計方法1、結(jié)構(gòu)化程序設(shè)計:
結(jié)構(gòu)化程序設(shè)計的概念最早由EdsgerWybeDijkstra提出,他在1965年召開的國際信息處理聯(lián)合會(InternationalFederationforInformationProcessing,IEIP)上指出:“可以從高級語言中取消GOTO語句”,“程序的質(zhì)量與程序中包含的GOTO語句的數(shù)量成反比”。2022/12/13225.5結(jié)構(gòu)化程序設(shè)計方法1、結(jié)構(gòu)化程序設(shè)計:2022/15.5結(jié)構(gòu)化程序設(shè)計方法2、結(jié)構(gòu)化程序設(shè)計的原則:(1)使用語言中的順序、選擇、重復(fù)等有限的基本控制結(jié)構(gòu)表示程序邏輯。(2)選用的控制結(jié)構(gòu)只允許有一個入口和一個出口。(3)程序語句組成容易識別的塊,每塊只有一個入口和出口。(4)復(fù)雜結(jié)構(gòu)應(yīng)該用基本控制結(jié)構(gòu)進(jìn)行組合嵌套來實現(xiàn)。(5)語言中沒有的控制結(jié)構(gòu),可用一段等價的程序段模擬。(6)嚴(yán)格控制GOTO語句,僅在下列情形才可使用。2022/12/13235.5結(jié)構(gòu)化程序設(shè)計方法2、結(jié)構(gòu)化程序設(shè)計的原則:203、自項向下、逐步細(xì)化的設(shè)計方法逐步細(xì)化的步驟可以歸納為如下的三步:由粗到細(xì)地對程序進(jìn)行逐步的細(xì)化,每一步可選擇其中一條或數(shù)條將它們分解為更多或更詳細(xì)的程序步驟。在細(xì)化程序過程時,對數(shù)據(jù)的描述進(jìn)行細(xì)化。每步細(xì)化均使用相同的結(jié)構(gòu)語言,最后一步一般直接用偽碼來描述。5.5結(jié)構(gòu)化程序設(shè)計方法2022/12/13243、自項向下、逐步細(xì)化的設(shè)計方法5.5結(jié)構(gòu)化程序設(shè)計方5.5結(jié)構(gòu)化程序設(shè)計方法2022/12/1325自頂向下、逐步求精方法的優(yōu)點:符合人們解決復(fù)雜問題的普遍規(guī)律,可提高軟件開發(fā)的成功率和生產(chǎn)率。使程序具有清晰的層次結(jié)構(gòu),程序容易閱讀和理解。程序自頂向下,逐步細(xì)化,分解成一個樹形結(jié)構(gòu),在同一層的結(jié)點上做的細(xì)化工作相互獨立。在任何一步發(fā)生錯誤,一般只影響它下層的結(jié)點,同一層其他結(jié)點不受影響。程序清晰和模塊化,使得在修改和重新設(shè)計一個軟件時可復(fù)用的代碼量最大。每一步工作僅在上層結(jié)點的基礎(chǔ)上做不多的設(shè)計擴(kuò)展,便于檢查。有利于設(shè)計的分工和組織工作。5.5結(jié)構(gòu)化程序設(shè)計方法2022/12/1125自頂向下在編寫結(jié)構(gòu)化程序時,應(yīng)注意以下幾點:(1)使用語言中的順序、選擇、重復(fù)等有限的基本控制結(jié)構(gòu)表示程序邏輯。(2)選用的控制結(jié)構(gòu)只準(zhǔn)許有一個入口和一個出口。(3)程序語句組成容易識別的塊,每塊只有一個入口和出口。(4)復(fù)雜結(jié)構(gòu)應(yīng)該用基本控制結(jié)構(gòu)進(jìn)行組合嵌套來實現(xiàn)。(5)語言中沒有的控制結(jié)構(gòu),可用—段等價的程序段模擬。(6)嚴(yán)格控制GOT0語句,僅在下列情形才可使用:①用一個非結(jié)構(gòu)化的程序設(shè)計語言來實現(xiàn)一個結(jié)構(gòu)化的構(gòu)造。②在某種可以改善而不是損害程序可讀性的情況下。結(jié)構(gòu)化程序設(shè)計的缺點,就是目標(biāo)程序所需要的存儲容量和運行時間都有一些增加。5.5結(jié)構(gòu)化程序設(shè)計方法2022/12/1326在編寫結(jié)構(gòu)化程序時,應(yīng)注意以下幾點:5.5結(jié)構(gòu)化程序設(shè)計4、主程序員的組織形式
即開發(fā)程序的人員應(yīng)采用以一個主程序員(負(fù)責(zé)全部技術(shù)活動)、一個后備程序員(協(xié)調(diào)、支持主程序員)和一個程序管理員(負(fù)責(zé)事務(wù)性工作,如收集、記錄數(shù)據(jù),文檔資料管理等)三人為核心,再加上一些專家(如通信專家、數(shù)據(jù)庫專家)、其他技術(shù)人員組成小組。5.5結(jié)構(gòu)化程序設(shè)計方法2022/12/13274、主程序員的組織形式5.5結(jié)構(gòu)化程序設(shè)計方法20225.6程序的復(fù)雜性及度量
程序復(fù)雜性主要指模塊內(nèi)程序的復(fù)雜性。它直接關(guān)系到軟件開發(fā)費用的多少,開發(fā)周期的長短和軟件內(nèi)部潛伏錯誤的多少。同時它也是軟件可理解性的另一種度量。減少程序復(fù)雜性,可提高軟件的簡單清晰性和可理解性,并使軟件開發(fā)費用減少,開發(fā)周期縮短,軟件內(nèi)部潛藏錯誤減少。2022/12/13285.6程序的復(fù)雜性及度量程序復(fù)雜性主要5.6.1代碼行度量法
度量程序的復(fù)雜性,最簡單的方法就是統(tǒng)計程序的源代碼行數(shù)。此方法的基本考慮是統(tǒng)計一個程序的源代碼行數(shù),并以源代碼行數(shù)作為程序復(fù)雜性的度量。2022/12/13295.6.1代碼行度量法度量程序的復(fù)雜性5.6.2McCabe度量法
McCabe度量法是由ThomasMcCabe提出的一種基于程序控制流的復(fù)雜性度量方法。McCabe定義的程序復(fù)雜性度量值又稱環(huán)路復(fù)雜度,它基于一個程序模塊的程序圖中環(huán)路的個數(shù),因此計算它先要畫出程序圖。2022/12/13305.6.2McCabe度量法McCa下面給出計算環(huán)路復(fù)雜性的方法。
根據(jù)圖論,在一個強(qiáng)連通的有向圖G中,環(huán)的個數(shù)由以下公式給出:其中,是有向圖G中環(huán)路數(shù),是圖G中弧數(shù),是圖G中結(jié)點數(shù),是圖G中的強(qiáng)連通分量個數(shù)。在一個程序中,從程序圖的入口點總能到達(dá)圖中任何一個結(jié)點,因此,程序總是連通的,但不是強(qiáng)連通的。為了使圖成為強(qiáng)連通圖,從圖的入口到出口加一條用虛線表示的有向邊,使圖成為強(qiáng)連通圖。這樣可以使用上式計算環(huán)路復(fù)雜性。5.6.2McCabe度量法2022/12/1331下面給出計算環(huán)路復(fù)雜性的方法。5.6.2McCabe度量利用McCabe環(huán)路復(fù)雜度度量時,有幾點說明:(1)環(huán)路復(fù)雜度取決于程序控制結(jié)構(gòu)的復(fù)雜度。(2)環(huán)路復(fù)雜度是可加的。(3)對于復(fù)雜度超過10的程序,應(yīng)分成幾個模塊,使每個模塊復(fù)雜度小于10。(4)這種度量的缺點:不區(qū)分不同種類的控制流的復(fù)雜性。5.6.2McCabe度量法2022/12/1332利用McCabe環(huán)路復(fù)雜度度量時,有幾點說明:5.6.25.6.3Halstead度量法
當(dāng)給出的源程序時,Halstead度量法根據(jù)其中的運算符和操作數(shù)的總數(shù)來度量程序復(fù)雜性。它采用一組基本的度量值。其中n1表示程序中不同運算符(包括保留字)的個數(shù),令n2表示程序中不同運算對象的個數(shù),N1為程序中實際出現(xiàn)的運算符總個數(shù),N2為程序中實際出現(xiàn)的運算對象總個數(shù)。運算符包括算術(shù)運算符、關(guān)系運算符、邏輯運算符、賦值符(=或:=)、數(shù)組操作符、分界符(,或;或:)、于程序調(diào)用符、括號運算符、循環(huán)操作符等。2022/12/13335.6.3Halstead度量法當(dāng)給(1)程序長度,即預(yù)測的Halstead長度。(2)實際的Halstead長度(3)程序的詞匯表(4)程序量5.6.3Halstead度量法2022/12/1334(1)程序長度,即預(yù)測的Halstead長度。5.6.3(5)程序員工作量(6)程序的潛在錯誤(7)Halstead的重要結(jié)論之一:預(yù)測的Halstead長度H與實際的Halstead長度N非常接近。2022/12/1335(5)程序員工作量2022/12/1135Halstead度量法的缺點:①沒有區(qū)別自己編的程序與別人編的程序。這是與實際經(jīng)驗相違背的。這時應(yīng)將外部調(diào)用乘上一個大于1的常數(shù)Kf(應(yīng)在1~5之間,它與文檔資料的清晰度有關(guān))。②沒有考慮非執(zhí)行語句。補(bǔ)救辦法:在統(tǒng)計n1,n2,N1,N2時,可以把非執(zhí)行語句中出現(xiàn)的運算對象,運算符統(tǒng)計在內(nèi)。③在允許混合運算的語言中,每種運算符必須與它的運算對象相關(guān)。如果一種語言有整型、實型、雙精度型三種不同類型的運算對象,則任何一種基本算術(shù)運算符()實際上代表了種運算符。如果語言中有4種不同類型的算術(shù)運算對象,那么每一種基本算術(shù)運算符實際上代表種運算符。在計算時應(yīng)考慮這種因數(shù)據(jù)類型而引起差異的情況。2022/12/1336Halstead度量法的缺點:2022/12/11365.7軟件測試5.7.1軟件測試的意義
軟件測試是軟件開發(fā)過程的重要組成部分,是用來確認(rèn)一個系統(tǒng)的品質(zhì)或性能是否符合用戶提出的要求的標(biāo)準(zhǔn)。2022/12/13375.7軟件測試5.7.1軟件測試的意義2022/125.7.2軟件測試的基本概念1.軟件測試的概念2.軟件測試的角色3.關(guān)于軟件測試的一些常用術(shù)語(1)測試(2)測試用例(3)測試步驟2022/12/13385.7.2軟件測試的基本概念2022/12/1138測試步驟2022/12/1339測試步驟2022/12/11391.軟件測試的目的確認(rèn)軟件的質(zhì)量提供信息軟件測試不僅是在測試軟件產(chǎn)品的本身,而且還包括軟件開發(fā)的過程。5.7.3軟件測試的目的、任務(wù)、原則和研究對象2022/12/13401.軟件測試的目的5.7.3軟件測試的目的、任務(wù)、原則和2.軟件測試的任務(wù)測試人員在軟件開發(fā)過程中的任務(wù):(1)尋找Bug;(2)避免軟件開發(fā)過程中的缺陷;(3)衡量軟件的品質(zhì);(4)關(guān)注用戶的需求。5.7.3軟件測試的目的、任務(wù)、原則和研究對象2022/12/13412.軟件測試的任務(wù)5.7.3軟件測試的目的、任務(wù)、原則和3.軟件測試的原則(1)應(yīng)當(dāng)盡早地和不斷地進(jìn)行軟件測試(2)測試用例應(yīng)由測試輸入數(shù)據(jù)和與之對應(yīng)的預(yù)期輸出結(jié)果這兩部分組成(3)程序員應(yīng)避免檢查自己的程序(4)在設(shè)計測試用例時,應(yīng)當(dāng)包括有效的輸入條件和無效的輸入條件(5)充分注意測試中的群集現(xiàn)象(6)嚴(yán)格執(zhí)行測試計劃,排除測試的隨意性。(7)應(yīng)當(dāng)對每一個測試結(jié)果做全面檢查(8)妥善保存測試計劃、測試用例、出錯統(tǒng)計和最終分析報告,為維護(hù)提供方便。2022/12/13423.軟件測試的原則2022/12/11424.軟件測試中研究的對象軟件測試并不等于程序測試。軟件測試應(yīng)該貫穿軟件定義與開發(fā)整個期間。在對需求理解與表達(dá)的正確性、設(shè)計與表達(dá)的正確性、實現(xiàn)的正確性以及運行的正確性的驗證中,任何一個環(huán)節(jié)發(fā)生了問題都可能在軟件測試中表現(xiàn)出來。
5.7.3軟件測試的目的、任務(wù)、原則和研究對象2022/12/13434.軟件測試中研究的對象5.7.3軟件測試的目的、任務(wù)、5.7.4軟件測試的發(fā)展歷史及趨勢第一個階段是60年代及其以前第二個階段是70年代第三個階段是80年代及其以后
2022/12/13445.7.4軟件測試的發(fā)展歷史及趨勢2022/12/1145.7.5軟件測試的需求規(guī)格說明1.采用軟件需求規(guī)格說明模版2.指明需求來源3.為每項需求注上標(biāo)號4.記錄業(yè)務(wù)規(guī)范5.創(chuàng)建需求跟蹤能力矩陣2022/12/13455.7.5軟件測試的需求規(guī)格說明2022/12/11455.7.6軟件測試的設(shè)計說明
測試設(shè)計的以下幾個原則:(1)對被測試程序的每一個(公共)功能,都需要有一個測試用例(2)測試任何可能出錯的地方(3)測試邊界條件(4)測試設(shè)計前提(5)測試設(shè)計過程(6)建議程序開發(fā)時預(yù)留測試點2022/12/13465.7.6軟件測試的設(shè)計說明
測試設(shè)計的以下幾個原則:25.8軟件測試的方法
5.8.1靜態(tài)測試和動態(tài)測試1.靜態(tài)測試2.動態(tài)測試2022/12/13475.8軟件測試的方法
5.8.1靜態(tài)測試和動態(tài)測試205.8軟件測試的方法
5.8.2黑盒測試法和白盒測試法從測試是否針對系統(tǒng)的內(nèi)部結(jié)構(gòu)和具體實現(xiàn)算法的角度來看,可分為白盒測試和黑盒測試。2022/12/13485.8軟件測試的方法
5.8.2黑盒測試法和白盒測試5.8軟件測試的方法
1.黑盒測試(1)劃分等價類(2)確定測試用例(3)邊界值分析(4)錯誤推測(5)因果圖(6)綜合策略黑盒測試的優(yōu)點2022/12/13495.8軟件測試的方法
1.黑盒測試2022/12/115.8軟件測試的方法
(1)劃分等價類①如果某個輸入條件規(guī)定了取值范圍或值的個數(shù),則可確定一個有效的等價類(輸入值或某個數(shù)值在此范圍內(nèi))和兩個無效等價類(輸入值或某個數(shù)值小于這個范圍的最小值或大于這個范圍的最大值)。②如果規(guī)定了輸入數(shù)據(jù)的一組值,而且程序?qū)Σ煌妮斎胫底霾煌奶幚?,則每個允許輸入值是一個有效等價類,此處還有一個無效等價類(任何一個不允許的輸入值)。③如果規(guī)定了輸入數(shù)據(jù)必須遵循的規(guī)則,可確定一個有效等價類(符合規(guī)則)和若干個無效等價類(從各種不同角度違反規(guī)則)。④如果已劃分的等價類中各元素在程序中的處理方式不同,則應(yīng)將此等價類進(jìn)一步劃分為更小的等價類。2022/12/13505.8軟件測試的方法
(1)劃分等價類2022/12/5.8軟件測試的方法
(2)確定測試用例①為每一個等價類編號。②設(shè)計一個測試用例,使其盡可能多地覆蓋尚未覆蓋過的有效等價類。重復(fù)這步,直到所有有效等價類被測試用例覆蓋。③設(shè)計一個測試用例,使其只覆蓋一個無效等價類。例如,假設(shè)對某個列表測試刪除操作,必須選擇輸入值以便執(zhí)行操作之后,列表為充滿狀態(tài),具有若干元素或為空(采用它的所有等價類的值進(jìn)行測試)。2022/12/13515.8軟件測試的方法
(2)確定測試用例2022/125.8軟件測試的方法(3)邊界值分析①如果輸入條件規(guī)定了值的范圍,可以選擇正好等于邊界值的數(shù)據(jù)作為有效的測試用例②如果輸入條件指出了輸入數(shù)據(jù)的個數(shù),則按最大個數(shù)、最小個數(shù)、比最小個數(shù)少1、比最大個數(shù)多1等情況分別設(shè)計測試用例。③對每個輸出條件分別按照以上原則(1)或(2)確定輸出值的邊界情況。④如果程序的規(guī)格說明給出的輸入或輸出域是個有序集合2022/12/13525.8軟件測試的方法(3)邊界值分析2022/12/15.8軟件測試的方法(4)錯誤推測
在測試程序時,人們可能根據(jù)經(jīng)驗或直覺推測程序中可能存在的各種錯誤,從而有針對性地編寫檢查這些錯誤的測試用例,這就是錯誤推測法。2022/12/13535.8軟件測試的方法(4)錯誤推測2022/12/115.8軟件測試的方法判定表通常由四個部分組成:
條件樁(ConditionStub)動作樁(ActionStub)條件項(ConditionEntry)動作項(ActionEntry)規(guī)則:任何一個條件組合的特定取值及其相應(yīng)要執(zhí)行的操作。在判定表中貫穿條件項和動作項的一列就是一條規(guī)則。顯然,判定表中列出多少組條件取值,也就有多少條規(guī)則,即條件項和動作項有多少列。2022/12/13545.8軟件測試的方法判定表通常由四個部分組成:2022/5.8軟件測試的方法(6)綜合策略每種方法都能設(shè)計出一組有用例子,用這組例子容易發(fā)現(xiàn)某種類型的錯誤,但可能不易發(fā)現(xiàn)另一類型的錯誤。因此在實際測試中,聯(lián)合使用各種測試方法,形成綜合策略,通常先用黑盒測試設(shè)計基本的測試用例,再用白盒測試補(bǔ)充一些必要的測試用例。2022/12/13555.8軟件測試的方法(6)綜合策略2022/12/115.8軟件測試的方法黑盒測試的優(yōu)點:(1)基本上不需人監(jiān)控(2)設(shè)計完測試用例之后,接下來的工作就是很簡單了。黑盒測試的缺點:(1)結(jié)果取決于測試用例的設(shè)計,測試用例的設(shè)計部分來源于經(jīng)驗。(2)沒有狀態(tài)轉(zhuǎn)換的概念(3)就沒有狀態(tài)概念的測試來說,尋找和確定造成程序crash的測試用例很煩瑣,必須把周圍可能的測試用例單獨確認(rèn)。2022/12/13565.8軟件測試的方法黑盒測試的優(yōu)點:2022/12/115.8軟件測試的方法2.白盒測試2022/12/13575.8軟件測試的方法2.白盒測試2022/12/1155.8軟件測試的方法2022/12/13585.8軟件測試的方法2022/12/11585.8軟件測試的方法(1)語句覆蓋為了提高發(fā)現(xiàn)錯誤的可能性,在測試時應(yīng)該執(zhí)行到程序中的每一個語句。語句覆蓋是指設(shè)計足夠的測試用例,使被測試程序中每個語句至少執(zhí)行一次。(2)判定覆蓋判定覆蓋指設(shè)計足夠的測試用例,使得被測程序中每個判定表達(dá)式至少獲得一次“真”值和“假”值,從而使程序的每一個分支至少都通過一次,因此判定覆蓋也稱分支覆蓋。2022/12/13595.8軟件測試的方法(1)語句覆蓋2022/12/115.8軟件測試的方法(3)條件覆蓋條件覆蓋是指設(shè)計足夠的測試用例,使得判定表達(dá)式中每個條件的各種可能的值至少出現(xiàn)一次。(4)判定/條件測試該覆蓋標(biāo)準(zhǔn)指設(shè)計足夠的測試用例,使得判定表達(dá)式的每個條件的所有可能取值至少出現(xiàn)一次,并使每個判定表達(dá)式所有可能的結(jié)果也至少出現(xiàn)一次。2022/12/13605.8軟件測試的方法(3)條件覆蓋2022/12/115.8軟件測試的方法(5)多條件覆蓋多條件覆蓋也稱條件組合覆蓋,設(shè)計足夠的測試用例,使得每個判定中條件的各種可能組合都至少出現(xiàn)一次。(6)路徑覆蓋路徑覆蓋是指設(shè)計足夠的測試用例,覆蓋被測程序中所有可能的路徑。在實際的邏輯覆蓋測試中,一般以條件組合覆蓋為主設(shè)計測試用例,然后再補(bǔ)充部分用例,以達(dá)到路徑覆蓋測試標(biāo)準(zhǔn)。2022/12/13615.8軟件測試的方法(5)多條件覆蓋2022/12/15.8軟件測試的方法(7)修正條件判定覆蓋修正條件判定覆蓋是由歐美的航空/航天制造廠商和使用單位聯(lián)合制定的“航空運輸和裝備系統(tǒng)軟件認(rèn)證標(biāo)準(zhǔn)”,目前在國外的國防、航空航天領(lǐng)域應(yīng)用廣泛。這個覆蓋度量需要足夠的測試用例來確定各個條件能夠影響到包含判定的結(jié)果。它要求滿足兩個條件:首先,每一個程序模塊的入口和出口點都要考慮至少要被調(diào)用一次,每個程序的判定到所有可能的結(jié)果值要至少轉(zhuǎn)換一次;其次,程序的判定被分解為通過邏輯操作符(and、or)連接的布爾條件,每個條件對于判定的結(jié)果值是獨立的。2022/12/13625.8軟件測試的方法(7)修正條件判定覆蓋2022/15.8軟件測試的方法測試用例的設(shè)計:
下面是一段插入排序的程序,將R[k+1]插入到R[1…k]的適當(dāng)位置。{R[0]=R[k+1];j=k;while(R[j]>R[0]){R[j+1]=R[j];j--;}R[j+1]=R[0];}2022/12/13635.8軟件測試的方法測試用例的設(shè)計:2022/12/115.8軟件測試的方法2022/12/13645.8軟件測試的方法2022/12/11645.9軟件測試的步驟
單元測試集成測試確認(rèn)測試系統(tǒng)測試驗收測試
2022/12/13655.9軟件測試的步驟
單元測試2022/12/11655.9.1單元測試
1.單元測試的基本方法單元測試的對象是軟件設(shè)計的最小單位模塊。單元測試的依據(jù)是詳細(xì)設(shè)計描述,單元測試應(yīng)對模塊內(nèi)所有重要的控制路徑設(shè)計測試用例,以便發(fā)現(xiàn)模塊內(nèi)部的錯誤。單元測試多采用白盒測試技術(shù),系統(tǒng)內(nèi)多個模塊可以并行地進(jìn)行測試。2022/12/13665.9.1單元測試
1.單元測試的基本方法2022/125.9.1單元測試2.單元測試任務(wù)單元測試任務(wù)包括:(1)模塊接口測試;(2)模塊局部數(shù)據(jù)結(jié)構(gòu)測試;(3)模塊邊界條件測試;(4)模塊中所有獨立執(zhí)行通路測試;(5)模塊的各條錯誤處理通路測試。2022/12/13675.9.1單元測試2.單元測試任務(wù)2022/12/1165.9.1單元測試3.單元測試過程應(yīng)為測試模塊開發(fā)一個驅(qū)動模塊(driver)和(或)若干個樁模塊(stub),驅(qū)動模塊在大多數(shù)場合稱為“主程序”,它接收測試數(shù)據(jù)并將這些數(shù)據(jù)傳遞到被測試模塊,被測試模塊被調(diào)用后,“主程序”打印“進(jìn)入——退出”消息。2022/12/13685.9.1單元測試3.單元測試過程2022/12/1165.9.1單元測試4.單元測試工作內(nèi)容2022/12/13695.9.1單元測試4.單元測試工作內(nèi)容2022/12/15.9.1單元測試5.單元測試的優(yōu)點(1)是一種驗證行為(2)是一種設(shè)計行為(3)是一種編寫文檔的行為(4)具有回歸性2022/12/13705.9.1單元測試5.單元測試的優(yōu)點2022/12/115.9.1單元測試6.單元測試的范疇(1)行為和期望是否一致(2)行為和期望是否始終一致(3)是否可以依賴單元測試(4)單元測試是否說明了意圖2022/12/13715.9.1單元測試6.單元測試的范疇2022/12/15.9.2集成測試
集成測試過程
2022/12/13725.9.2集成測試集成測試過程2022/12/115.9.2集成測試(2)集成測試需求獲?、偌晒ぷ靼姹緫?yīng)分析其類協(xié)作與消息序列,從而找出該工作版本的外部接口。②由集成工作版本的外部接口確定集成測試用例。③測試用例應(yīng)覆蓋工作版本每一外部接口的所有消息流序列。2022/12/13735.9.2集成測試(2)集成測試需求獲取2022/15.9.2集成測試(3)集成測試工作內(nèi)容及其工作流程:
2022/12/13745.9.2集成測試(3)集成測試工作內(nèi)容及其工作流程:5.9.2集成測試(4)集成測試產(chǎn)生的工件清單①軟件集成測試計劃②集成測試用例③測試過程④測試腳本⑤測試日志⑥測試評估摘要
2022/12/13755.9.2集成測試(4)集成測試產(chǎn)生的工件清單20225.9.2集成測試(5)集成測試常用方案選型
1.自底向上集成測試2022/12/13765.9.2集成測試(5)集成測試常用方案選型20225.9.2集成測試2.核心系統(tǒng)先行集成測試步驟一:對核心系統(tǒng)中的每個模塊進(jìn)行單獨的、充分的測試,必要時使用驅(qū)動模塊和樁模塊;步驟二:對于核心系統(tǒng)中的所有模塊一次性集合到被測系統(tǒng)中,解決集成中出現(xiàn)的各類問題。在核心系統(tǒng)規(guī)模相對較大的情況下,也可以按照自底向上的步驟,集成核心系統(tǒng)的各組成模塊。
2022/12/13775.9.2集成測試2.核心系統(tǒng)先行集成測試2022/1
步驟三:按照各外圍軟件部件的重要程度以及模塊間的相互制約關(guān)系,擬定外圍軟件部件集成到核心系統(tǒng)中的順序方案。方案經(jīng)評審以后,即可進(jìn)行外圍軟件部件的集成。步驟四:在外圍軟件部件添加到核心系統(tǒng)以前,外圍軟件部件應(yīng)先完成內(nèi)部的模塊及集成測試。步驟五:按順序不斷加入外圍軟件部件,排除外圍軟件部件集成中出現(xiàn)的問題,形成最終的用戶系統(tǒng)。5.9.2集成測試2022/12/1378步驟三:按照各外圍軟件部件的重要程度以及模塊間的3.高頻集成測試步驟一:選擇集成測試自動化工具。如很多Java項目采用Junit+Ant方案來實現(xiàn)集成測試的自動化,也有一些商業(yè)集成測試工具可供選擇。步驟二:設(shè)置版本控制工具,以確保集成測試自動化工具所獲得的版本是最新版本。步驟三:測試人員和開發(fā)人員負(fù)責(zé)編寫對應(yīng)程序代碼的測試腳本。步驟四:設(shè)置自動化集成測試工具,每隔一段時間對配置管理庫的新添加的代碼進(jìn)行自動化的集成測試,并將測試報告匯報給開發(fā)人員和測試人員。步驟五:測試人員監(jiān)督代碼開發(fā)人員及時關(guān)閉不合格項。5.9.2集成測試2022/12/13793.高頻集成測試5.9.2集成測試2022/12/111.確認(rèn)測試標(biāo)準(zhǔn)
實現(xiàn)軟件確認(rèn)要通過一系列黑盒測試。無論是計劃還是過程,都應(yīng)該著重考慮軟件是否滿足合同規(guī)定的所有功能和性能,文檔資料是否完整、準(zhǔn)確人機(jī)界面和其他方面。確認(rèn)測試的結(jié)果有兩種可能:一種是功能和性能指標(biāo)滿足軟件需求說明的要求,用戶可以接受;另一種是軟件不滿足軟件需求說明的要求,用戶無法接受。5.9.3確認(rèn)測試2022/12/13801.確認(rèn)測試標(biāo)準(zhǔn)5.9.3確認(rèn)測試2022/12/1185.9.3確認(rèn)測試2.配置復(fù)審確認(rèn)測試的另一個重要環(huán)節(jié)是配置復(fù)審。復(fù)審的目的在于保證軟件配置齊全、分類有序,并且包括軟件維護(hù)所必需的細(xì)節(jié)。2022/12/13815.9.3確認(rèn)測試2.配置復(fù)審2022/12/11815.9.3確認(rèn)測試3.α、β測試
α測試是指軟件開發(fā)公司組織內(nèi)部人員模擬各類用戶對即將面市軟件產(chǎn)品(稱為α版本)進(jìn)行測試,試圖發(fā)現(xiàn)錯誤并修正。α測試的關(guān)鍵在于盡可能逼真地模擬實際運行環(huán)境和用戶對軟件產(chǎn)品的操作并盡最大努力涵蓋所有可能的用戶操作方式。經(jīng)過α測試調(diào)整的軟件產(chǎn)品稱為β版本。緊隨其后的β測試是指軟件開發(fā)公司組織各方面的典型用戶在日常工作中實際使用β版本,并要求用戶報告異常情況、提出批評意見。然后軟件開發(fā)公司再對β版本進(jìn)行改錯和完善。2022/12/13825.9.3確認(rèn)測試3.α、β測試2022/12/11825.9.4系統(tǒng)測試
系統(tǒng)測試流程圖
2022/12/13835.9.4系統(tǒng)測試
系統(tǒng)測試流程圖2022/12/115.9.4系統(tǒng)測試(1)角色與職責(zé)項目經(jīng)理設(shè)法組建富有成效的系統(tǒng)測試小組。系統(tǒng)測試小組的成員主要來源于:機(jī)構(gòu)獨立的測試小組;邀請其它項目的開發(fā)人員參與系統(tǒng)測試;本項目的部分開發(fā)人員;機(jī)構(gòu)的質(zhì)量保證人員;(2)啟動準(zhǔn)則產(chǎn)品需求和系統(tǒng)設(shè)計文檔完成之后。(3)輸入產(chǎn)品需求和系統(tǒng)設(shè)計文檔。2022/12/13845.9.4系統(tǒng)測試(1)角色與職責(zé)2022/12/115.9.4系統(tǒng)測試(4)主要步驟步驟一:制定系統(tǒng)測試計劃
項目經(jīng)理審批《系統(tǒng)測試計劃》。該計劃被批準(zhǔn)后,轉(zhuǎn)向步驟二。步驟二:設(shè)計系統(tǒng)測試用例該測試用例通過技術(shù)評審后,轉(zhuǎn)向步驟三。步驟三:執(zhí)行系統(tǒng)測試步驟四:缺陷管理與改錯從步驟一至步驟三,任何人發(fā)現(xiàn)軟件系統(tǒng)中的缺陷時都必須使用指定的“缺陷管理工具”。該工具將記錄所有缺陷的狀態(tài)信息,并可以自動產(chǎn)生《缺陷管理報告》。開發(fā)人員及時消除已經(jīng)發(fā)現(xiàn)的缺陷。開發(fā)人員消除缺陷之后應(yīng)當(dāng)馬上進(jìn)行回歸測試,以確保不會引入新的缺陷。2022/12/13855.9.4系統(tǒng)測試(4)主要步驟2022/12/1185.9.4系統(tǒng)測試(5)輸出消除了缺陷的最終軟件系統(tǒng)系統(tǒng)測試用例系統(tǒng)測試報告缺陷管理報告2022/12/13865.9.4系統(tǒng)測試(5)輸出2022/12/11865.9.4系統(tǒng)測試(6)結(jié)束準(zhǔn)則對于非嚴(yán)格系統(tǒng)可以采用“基于測試用例”的準(zhǔn)則:功能性測試用例通過率達(dá)到100%;非功能性測試用例通過率達(dá)到80%時。相鄰n個CPU每小時內(nèi)“測試期缺陷密度”全部低于某個值m。例如n大于10,m小于等于1;本規(guī)程所有文檔已經(jīng)完成。2022/12/13875.9.4系統(tǒng)測試(6)結(jié)束準(zhǔn)則2022/12/1185.9.4系統(tǒng)測試(7)度量測試人員和開發(fā)人員統(tǒng)計測試和改錯的工作量,文檔的規(guī)模,以及缺陷的個數(shù)與類型,并將此度量數(shù)據(jù)匯報給項目經(jīng)理。2022/12/13885.9.4系統(tǒng)測試(7)度量2022/12/11885.9.4系統(tǒng)測試(8)實施建議
對系統(tǒng)測試人員進(jìn)行必要的培訓(xùn),提高他們的測試效率。項目經(jīng)理和測試小組根據(jù)項目的資源、時間等限制因素,設(shè)法合理地減少測試的工作量。系統(tǒng)測試小組根據(jù)產(chǎn)品的特征,可以適當(dāng)?shù)匦薷谋疽?guī)范的各種文檔模板。對系統(tǒng)測試過程中產(chǎn)生的所有代碼和有價值的文檔進(jìn)行配置管理。為了調(diào)動測試者的積極性,建議企業(yè)或項目設(shè)立獎勵機(jī)制.2022/12/13895.9.4系統(tǒng)測試(8)實施建議2022/12/1185.9.4系統(tǒng)測試(9)系統(tǒng)測試的目標(biāo)確保系統(tǒng)測試的活動是按計劃進(jìn)行的;驗證軟件產(chǎn)品是否與系統(tǒng)需求用例不相符合或與之矛盾;建立完善的系統(tǒng)測試缺陷記錄跟蹤庫;確保軟件系統(tǒng)測試活動及其結(jié)果及時通知相關(guān)小組和個人;2022/12/13905.9.4系統(tǒng)測試(9)系統(tǒng)測試的目標(biāo)2022/12/5.9.4系統(tǒng)測試(10)系統(tǒng)測試的方針為項目指定一個測試工程師負(fù)責(zé)貫徹和執(zhí)行系統(tǒng)測試活動;測試組向各事業(yè)部總經(jīng)理/項目經(jīng)理報告系統(tǒng)測試的執(zhí)行狀況;系統(tǒng)測試活動遵循文檔化的標(biāo)準(zhǔn)和過程;向外部用戶提供經(jīng)系統(tǒng)測試驗收通過的預(yù)部署及技術(shù)支持;建立相應(yīng)項目的(bug)缺陷庫,用于系統(tǒng)測試階段項目不同生命周期的缺陷記錄和缺陷狀態(tài)跟蹤;定期的對系統(tǒng)測試活動及結(jié)果進(jìn)行評估,向各事業(yè)部經(jīng)理/項目辦總監(jiān)/項目經(jīng)理匯報/提供項目的產(chǎn)品質(zhì)量信息及數(shù)據(jù);2022/12/13915.9.4系統(tǒng)測試(10)系統(tǒng)測試的方針2022/125.9.4系統(tǒng)測試(11)系統(tǒng)測試的過程軟件項目立項測試工程師首先參與前期的需求分析活動、前景評審、業(yè)務(wù)培訓(xùn)、SRS評審測試工程師根據(jù)測試需求定義測試策略,并進(jìn)行工作量估計。測試工程師根據(jù)測試需求制定測試策略和方法。測試組長周期性地根據(jù)事業(yè)部項目的測試情況,進(jìn)行總體測試工作量估計并進(jìn)行測試任務(wù)分派。測試工程師組織《系統(tǒng)測試計劃》評審,測試組長根據(jù)評審意見審批《系統(tǒng)測試計劃》。2022/12/13925.9.4系統(tǒng)測試(11)系統(tǒng)測試的過程2022/12測試工程師根據(jù)《系統(tǒng)測試計劃》中的測試環(huán)境要求搭建測試環(huán)境。測試工程師檢查測試設(shè)計入口條件;測試用例設(shè)計。測試工程師組織《系統(tǒng)測試用例》評審。測試工程師定義系統(tǒng)測試用例執(zhí)行過程,并更新《系統(tǒng)測試用例》。測試工程師檢查測試執(zhí)行入口條件執(zhí)行系統(tǒng)測試并記錄測試結(jié)果。系統(tǒng)測試進(jìn)入產(chǎn)品穩(wěn)定期,由測試工程師召開缺陷評審會議。
如果根據(jù)系統(tǒng)測試結(jié)果,產(chǎn)品得以批準(zhǔn)通過。5.9.4系統(tǒng)測試2022/12/1393測試工程師根據(jù)《系統(tǒng)測試計劃》中的測試環(huán)境要求搭建測試環(huán)5.9.5驗收測試
1.軟件配置審核
對于一個外包的軟件項目而言,軟件承包方通常要提供如下相關(guān)的軟件配置內(nèi)容:(1)可執(zhí)行程序、源程序、配置腳本、測試程序或腳本。(2)主要的開發(fā)類文檔:《需求分析說明書》、《概要設(shè)計說明書》、《詳細(xì)設(shè)計說明書》、《數(shù)據(jù)庫設(shè)計說明書》、《測試計劃》、《測試報告》、《程序維護(hù)手冊》、《程序員開發(fā)手冊》、《用戶操作手冊》、《項目總結(jié)報告》。(3)主要的管理類文檔:《項目計劃書》、《質(zhì)量控制計劃》、《配置管理計劃》、《用戶培訓(xùn)計劃》、《質(zhì)量總結(jié)報告》、《評審報告》、《會議記錄》、《開發(fā)進(jìn)度月報》。2022/12/13945.9.5驗收測試
1.軟件配置審核2022/12/15.9.5驗收測試2.可執(zhí)行程序的測試
在真正進(jìn)行用戶驗收測試之前一般應(yīng)該已經(jīng)完成了以下工作(也可以根據(jù)實際情況有選擇地采用或增加):軟件開發(fā)已經(jīng)完成,并全部解決了已知的軟件缺陷。驗收測試計劃已經(jīng)過評審并批準(zhǔn),并且置于文檔控制之下。對軟件需求說明書的審查已經(jīng)完成。對概要設(shè)計、詳細(xì)設(shè)計的審查已經(jīng)完成。對所有關(guān)鍵模塊的代碼審查已經(jīng)完成。對單元、集成、系統(tǒng)測試計劃和報告的審查已經(jīng)完成。所有的測試腳本已完成,并至少執(zhí)行過一次,且通過評審。使用配置管理工具且代碼置于配置控制之下。軟件問題處理流程已經(jīng)就緒。已經(jīng)制定、評審并批準(zhǔn)驗收測試完成標(biāo)準(zhǔn)。
2022/12/13955.9.5驗收測試2.可執(zhí)行程序的測試2022/125.9.5驗收測試驗收測試工作流程圖
2022/12/13965.9.5驗收測試驗2022/12/11965.10調(diào)試
調(diào)試(也稱為糾錯)作為成功測試的后果出現(xiàn),也就是說,調(diào)試是在測試發(fā)現(xiàn)錯誤之后排除錯誤的過程。2022/12/13975.10調(diào)試調(diào)試(也稱為糾錯)作為成功測試的5.10調(diào)試5.10.1調(diào)試過程
調(diào)試不是測試,但是它總是發(fā)生在測試之后。調(diào)試過程從執(zhí)行一個測試用例開始,評估測試結(jié)果,如果發(fā)現(xiàn)實際結(jié)果與預(yù)期結(jié)果不一致,則這種不一致就是一個癥狀,它表明在軟件中存在著隱藏的問題。調(diào)試過程試圖找出產(chǎn)生癥狀的原因,以便改正錯誤。2022/12/13985.10調(diào)試5.10.1調(diào)試過程2022/12/1195.10.2調(diào)試途徑1、蠻干法2、回溯法3、原因排除法5.10調(diào)試2022/12/13995.10.2調(diào)試途徑5.10調(diào)試2022/12/11995.11測試設(shè)計和管理5.11.1錯誤曲線
估算錯誤產(chǎn)生頻度的一種方法是估算平均失效等待時間MTTF(MeanTimeToFailure)。MTTF估算公式(Shooman模型)是2022/12/131005.11測試設(shè)計和管理5.11.1錯誤曲線估算5.11.2測試用例設(shè)計1.基本路徑測試用例設(shè)計2.等價類劃分邊界值分析測試用例設(shè)計3.灰盒測試4.基于狀態(tài)的測試5.11測試設(shè)計和管理2022/12/131015.11.2測試用例設(shè)計5.11測試設(shè)計和管理20225.12軟件測試工具
測試工具分類自動測試的相關(guān)問題常用軟件測試工具及特點2022/12/131025.12軟件測試工具
測試工具分類2022/12/1115.12.1自動軟件測試的優(yōu)點
優(yōu)點:
(1)對程序的回歸測試更方便。(2)可以運行更多更繁瑣的測試。(3)可以執(zhí)行一些手工測試?yán)щy或不可能進(jìn)行的測試。(4)更好地利用資源。(5)測試具有一致性和可重復(fù)性。
(6)測試的復(fù)用性。(7)可以讓產(chǎn)品更快面向市場。(8)增加軟件信任度。2022/12/131035.12.1自動軟件測試的優(yōu)點
優(yōu)點:
2022/12/5.12.2測試工具分類
1.黑盒測試(功能測試)工具(1)功能測試工具:用于檢測被測程序能否達(dá)到預(yù)期的功能要求并正常運行。(2)性能測試工具:性能測試工具有助于確定軟件和系統(tǒng)的性能。2022/12/131045.12.2測試工具分類
1.黑盒測試(功能測試)工具5.12.2測試工具分類
2.白盒測試工具(1)靜態(tài)測試工具①代碼審查②一致性檢查③錯誤檢查④接口分析⑤輸入輸出規(guī)格說明分析⑥數(shù)據(jù)流分析⑦類型分析⑧單元分析⑨復(fù)雜度分析2022/12/131055.12.2測試工具分類
2.白盒測試工具2022/15.12.2測試工具分類
(2)動態(tài)測試工具①功能確認(rèn)與接口測試②覆蓋分析③性能分析④內(nèi)存分析2022/12/131065.12.2測試工具分類
(2)動態(tài)測試工具2022/5.12.3自動測試的相關(guān)問題
下面是普遍存在的問題:(1)不現(xiàn)實的期望;(2)缺乏測試實踐經(jīng)驗;(3)期望自動測試工具能取代手工測試;(4)期望自動測試發(fā)現(xiàn)新故障;(5)安全性錯覺;(6)測試自動化不能提高有效性;(7)自動測試的維護(hù)性;(8)測試自動化可能會制約軟件開發(fā);(9)組織問題;(10)工具本身沒有想象力。
2022/12/131075.12.3自動測試的相關(guān)問題
下面是普遍存在的問題:2小結(jié)
編碼,就是把軟件設(shè)計的結(jié)構(gòu)翻譯成用某種程序設(shè)計語言書寫的程序。程序的質(zhì)量主要取決于軟件設(shè)計的質(zhì)量,但是,程序設(shè)計語言的特性和編碼風(fēng)格也將對程序的可靠性、可讀件、可測試性、安全性和可維護(hù)性產(chǎn)生重要的影響。本章介紹了不同的程序設(shè)計語言及如何選擇語言的標(biāo)準(zhǔn);從四個方面闡述如何形成良好的程序設(shè)計風(fēng)格;給出了提高程序效率的原則和方法;討論了程序安全問題,并對維護(hù)程序可靠性提出了現(xiàn)有的一些方案;在程序設(shè)計方法中,對結(jié)構(gòu)化和面向?qū)ο蟮某绦蛟O(shè)計方法分別進(jìn)行了討論;程序復(fù)雜性主要指模塊內(nèi)程序的復(fù)雜性,分別對三種度量方法進(jìn)行了介紹。2022/12/13108小結(jié)編碼,就是把軟件設(shè)計的結(jié)構(gòu)翻譯成第5章編碼及測試本章要點程序設(shè)計語言的發(fā)展、分類及選擇的標(biāo)準(zhǔn)程序設(shè)計風(fēng)格、效率及安全程序復(fù)雜度及其度量方法軟件測試的基本概念軟件測試方法、步驟及工具測試設(shè)計和管理2022/12/13109第5章編碼及測試本章要點2022/12/1115.1程序設(shè)計語言5.1.1程序設(shè)計語言的發(fā)展及分類第一代語言是機(jī)器語言第二代語言是匯編語言第三代語言是高級程序設(shè)計語言
(1)按應(yīng)用特點分類:可以分為基礎(chǔ)語言、通用的結(jié)構(gòu)化程序設(shè)計語言、面向?qū)ο笤O(shè)計語言和專用語言四類。
(2)按語言內(nèi)在特點分類:可分為系統(tǒng)實現(xiàn)語言、靜態(tài)高級語言、塊結(jié)構(gòu)高級語言和動態(tài)高級語言4類。第四代語言(4GL)第五代語言2022/12/131105.1程序設(shè)計語言5.1.1程序設(shè)計語言的發(fā)展及分類5.1.1程序設(shè)計語言的發(fā)展及分類2022/12/131115.1.1程序設(shè)計語言的發(fā)展及分類2022/12/1135.1.2選擇程序設(shè)計語言的選擇標(biāo)準(zhǔn)1.理想標(biāo)準(zhǔn)應(yīng)該有理想的模塊化機(jī)制,以及可讀性好的控制結(jié)構(gòu)和數(shù)據(jù)結(jié)構(gòu),以使程序容易測試和維護(hù),同時減少軟件生存周期的總成本。應(yīng)該使編譯程序能夠盡可能多地發(fā)現(xiàn)程序中的錯誤,以便于調(diào)試和提高軟件的可靠性。應(yīng)該有良好的獨立編譯機(jī)制,以降低軟件開發(fā)和維護(hù)的成本。2022/12/131125.1.2選擇程序設(shè)計語言的選擇標(biāo)準(zhǔn)1.理想標(biāo)準(zhǔn)20222.實用標(biāo)準(zhǔn)①軟件的應(yīng)用領(lǐng)域②系統(tǒng)用戶的要求③軟件運行環(huán)境④可得到的軟件工具⑤工程規(guī)模⑥軟件可移植性要求⑦程序員的知識5.1.2選擇程序設(shè)計語言的選擇標(biāo)準(zhǔn)2022/12/131132.實用標(biāo)準(zhǔn)5.1.2選擇程序設(shè)計語言的選擇標(biāo)準(zhǔn)20225.2程序設(shè)計風(fēng)格源程序文檔化數(shù)據(jù)說明的方法表達(dá)式和語句結(jié)構(gòu)輸入和輸出方法2022/12/131145.2程序設(shè)計風(fēng)格源程序文檔化2022/12/1165.2.1源程序文檔化1.標(biāo)識符:包括模塊名、變量名、常量名、標(biāo)號名、函數(shù)名、程序名、過程名、數(shù)據(jù)區(qū)名、緩沖區(qū)名等。2.注釋:分為序言性注釋和功能性注釋。序言性注釋通常在每個模塊的開始,它給出程序的整體說明,對于理解程序具有引導(dǎo)作用,其主要內(nèi)容有:
(1)說明每個模塊的用途、功能。(2)說明模塊的接口:調(diào)用形式、參數(shù)描述及從屬模塊的清單。(3)數(shù)據(jù)描述:重要數(shù)據(jù)的名稱、用途、限制、約束及其他信息(4)開發(fā)歷史:設(shè)計者、審閱者姓名及日期,修改說明及日期。
2022/12/131155.2.1源程序文檔化1.標(biāo)識符:包括模塊名、變量名、常量
功能性注釋在源程序當(dāng)中,它著重說明其后的語句或程序段的處理功能以及數(shù)據(jù)的狀態(tài)。書寫功能性注釋,要注意以下幾點:
(1)用于描述一段程序,而不是每一個語句;(2)用縮進(jìn)和空行,使程序與注釋容易區(qū)別;(3)注釋要正確;(4)有合適的,有助于記憶的標(biāo)識符和恰當(dāng)?shù)淖⑨?就能得到比較好的源程序內(nèi)部的文檔; (5)有關(guān)設(shè)計的說明,也可以作為注釋,嵌入源程序體內(nèi)。5.2.1源程序文檔化2022/12/13116功能性注釋在源程序當(dāng)中,它著重說明其后3.源程序的布局常用方法有:(1)注釋部分和程序部分之間,完成不同功能的程序段之間都可以用空行顯式地隔開;(2)在注釋部分周圍加上邊框;(3)用分層縮進(jìn)的寫法顯示嵌套結(jié)構(gòu)層次;(4)每行只寫一條語句;(5)書寫表達(dá)式時適當(dāng)使用空格或圓括號作隔離符。5.2.1源程序文檔化2022/12/131173.源程序的布局5.2.1源程序文檔化2022/12/115.2.2數(shù)據(jù)說明1.數(shù)據(jù)說明的次序應(yīng)規(guī)范。2.當(dāng)用一個語句說明多個變量名時,應(yīng)當(dāng)對這些變量按字母的順序排列。3.如果設(shè)計了一個復(fù)雜數(shù)據(jù)結(jié)構(gòu),應(yīng)使用注釋說明在實現(xiàn)這個數(shù)據(jù)結(jié)構(gòu)的特點。2022/12/131185.2.2數(shù)據(jù)說明1.數(shù)據(jù)說明的次序應(yīng)規(guī)范。2022/5.2.3表達(dá)式和語句結(jié)構(gòu)1.首先應(yīng)考慮程序的清晰性和可讀性。1)在編程時盡量一行只寫一條語句;2)盡量采用簡單明了的語句,避免過多的循環(huán)嵌套;3)同時注意,在條件結(jié)構(gòu)或循環(huán)結(jié)構(gòu)的嵌套中,分層次縮進(jìn),即邏輯上屬于同一個層次的互相對齊,邏輯上屬于內(nèi)部層次的推到下一個對齊位置,這樣可以使程序的邏輯結(jié)構(gòu)更清晰;4)在混合使用互相無關(guān)的運算符時,用加括號的方式排除二義性;5)將復(fù)雜的表達(dá)式分解成簡單的容易理解的形式;避免浮點數(shù)的相等的比較等;6)程序中有一些諸如各種常數(shù)、數(shù)組的大小、字符位置、變換因子和程序中出現(xiàn)的其他以文字形式寫出的數(shù)值,對于這些數(shù)值應(yīng)命合適的名字,有必要的話加以適當(dāng)?shù)淖⑨?,加?qiáng)程序的可閱讀性、理解性。2022/12/131195.2.3表達(dá)式和語句結(jié)構(gòu)1.首先應(yīng)考慮程序的清晰性和可2.盡可能使用庫函數(shù)3.注意GOTO語句的使用4.使用層次結(jié)構(gòu),按照初始化或數(shù)據(jù)輸入、數(shù)據(jù)處理、結(jié)果輸出3部分安排層次結(jié)構(gòu)。5.2.3表達(dá)式和語句結(jié)構(gòu)2022/12/131202.盡可能使用庫函數(shù)5.2.3表達(dá)式和語句結(jié)構(gòu)20225.2.4輸入和輸出在設(shè)計和程序編碼時都應(yīng)考慮下列原則:①對所有輸入數(shù)據(jù)進(jìn)行檢驗,從而識別錯誤輸入,以保證每個數(shù)據(jù)的有效性。②檢查輸入項的各種重要組合的合理性,必要時報告輸入狀態(tài)信息。③使輸入的步驟和操作盡可能簡單,并保持簡單的輸入格式。④輸入數(shù)據(jù)時,應(yīng)允許使用自由格式輸入。⑤應(yīng)允許默認(rèn)值。2022/12/131215.2.4輸入和輸出在設(shè)計和程序編碼時都應(yīng)考慮下列原則:⑥輸入一批數(shù)據(jù)時,最好使用輸入結(jié)束標(biāo)志,而不要由用戶指定輸入數(shù)據(jù)數(shù)目。⑦在以交互式方式進(jìn)行輸入時,要在屏幕上使用提示符明確提示交互輸入請求,指明可使用選擇項的種類和取值范圍。同時,在數(shù)據(jù)輸入的過程中和輸入結(jié)束時,也應(yīng)屏幕上給出狀態(tài)信息。⑧當(dāng)程序語言對輸入格式有嚴(yán)格要求時,應(yīng)保持輸入格式與輸入語句要求的一致性。⑨給所有的輸出加注解,并設(shè)計輸出報表格式。5.2.4輸入和輸出2022/12/13122⑥輸入一批數(shù)據(jù)時,最好使用輸入結(jié)束標(biāo)志,而不要由用戶指定輸入5.3程序效率5.3.1代碼效率當(dāng)把詳細(xì)設(shè)計翻譯為代碼時,遵循以下準(zhǔn)則:(1)編碼之前應(yīng)先簡化算術(shù)和邏輯的表達(dá)式。(2)仔細(xì)研究嵌套的循環(huán),以確定是否有語句可以從內(nèi)層往外移。(3)盡量避免使用多維數(shù)組。(4)盡量避免使用指針和復(fù)雜的列表。(5)使用執(zhí)行時間短的算術(shù)運算。(6)在表達(dá)式中盡量避免出現(xiàn)不同的數(shù)據(jù)類型。(7)盡量位用整數(shù)表達(dá)式和布爾表達(dá)式。對于一些對效率要求高的系統(tǒng),可使用具有優(yōu)化特性的編譯程序自動生成目標(biāo)代碼。2022/12/131235.3程序效率5.3.1代碼效率2022/12/115.3.2存儲器效率在微型計算機(jī)系統(tǒng)中,常采用生成目標(biāo)代碼較短且有緊縮存儲器性能的編譯程序,必要時可采用匯編語言。在大中型計算機(jī)系統(tǒng)中,對內(nèi)存采取基于操作系統(tǒng)的分頁功能的虛擬存儲管理。采用結(jié)構(gòu)化程序設(shè)計,使每個模塊或一組密切相關(guān)模塊的程序占用空間與每頁容量相匹配。同時,提高程序執(zhí)行效率也能提高存儲器效率。2022/12/131245.3.2存儲器效率在微型計算機(jī)系統(tǒng)中,常采用生成目標(biāo)代5.3.3輸入/輸出效率從編碼角度看,提高輸入/輸出效率的原則:所有輸入/輸出都應(yīng)有緩沖,以避免過多的通信次數(shù);對于輔存(如磁盤)應(yīng)選用簡單有效的訪問方法;與輔存有關(guān)的輸入/輸出應(yīng)該以塊為單位進(jìn)行;與終端和打印機(jī)有關(guān)的輸入/輸出,應(yīng)當(dāng)考慮設(shè)備的特性,以提高輸入/輸出的質(zhì)量和速度;有的輸入/輸出方式盡管很高效,但難以被人們理解,也不應(yīng)當(dāng)采用;簡單、清晰的輸入/輸出設(shè)計風(fēng)格也是提高效率的關(guān)鍵;2022/12/131255.3.3輸入/輸出效率從編碼角度看,提高輸入/輸出效率5.4編程安全提高軟件質(zhì)量和可靠性的技術(shù)大致可分為兩類:·一類是避開錯誤技術(shù),即在開發(fā)的過程中不讓差錯潛入軟件的技術(shù)?!ち硪活愂侨蒎e技術(shù),即對某些無法避開的差錯,使其影響減至最小的技術(shù)。避錯技術(shù)是進(jìn)行質(zhì)量管理,實現(xiàn)產(chǎn)品應(yīng)有質(zhì)量所不可少的技術(shù),也就是軟件工程中所討論的先進(jìn)的軟件分析和開發(fā)技術(shù)和管理技術(shù)。即使采用了避錯技術(shù),系統(tǒng)還是會發(fā)生故障,因此需要采用容錯技術(shù)使得系統(tǒng)發(fā)生故障時,能自動恢復(fù)正常運行。實現(xiàn)容錯的主要手段是冗余和防錯程序設(shè)計。2022/12/131265.4編程安全提高軟件質(zhì)量和可靠性的技術(shù)大致可分為兩類:5.4.1冗余程序設(shè)計在硬件系統(tǒng)中,采用冗余技術(shù)是指提供額外的元件或系統(tǒng),使其與主系統(tǒng)并行工作。在軟件系統(tǒng)中,采用冗余技術(shù)主要指提供足夠的冗余信息和算法程序。冗余設(shè)計在提高軟件可靠性的同時,也增大了程序規(guī)模和系統(tǒng)資源的耗費,因此需要在可靠性和資源耗費之間進(jìn)行權(quán)衡。2022/12/131275.4.1冗余程序設(shè)計在硬件系統(tǒng)中,采用冗余技術(shù)是指提供5.4.2防錯程序設(shè)計防錯程序設(shè)計可分為主動式和被動式兩種。
主動式防錯程序設(shè)計(1)內(nèi)存檢查(2)標(biāo)志檢查(3)反向檢查(4)狀態(tài)檢查(5)連接檢查(6)時間檢查(7)其他檢查2022/12/131285.4.2防錯程序設(shè)計防錯程序設(shè)計可分為主動式和被動式兩被動式防錯程序設(shè)計(1)來自外部設(shè)備的輸入數(shù)據(jù),包括范圍、屬性是否正確;(2)由其他程序所提供的數(shù)據(jù)是合正確;(3)數(shù)據(jù)庫中的數(shù)據(jù),包括數(shù)組、文件、結(jié)構(gòu)、記錄是合正確;(4)操作員的輸入,包括輸入的性質(zhì),順序是否正確;(5)棧的深度是否正確;(6)數(shù)組界限是否正確;(7)表達(dá)式中是否出現(xiàn)零分母情況;(8)正在運行的程序版本是否是所期望的;(9)通過其他程序或外部設(shè)備的輸出數(shù)據(jù)是否正確。5.4.2防錯程序設(shè)計2022/12/13129被動式防錯程序設(shè)計5.4.2防錯程序設(shè)計2022/12/5.5結(jié)構(gòu)化程序設(shè)計方法1、結(jié)構(gòu)化程序設(shè)計:
結(jié)構(gòu)化程序設(shè)計的概念最早由EdsgerWybeDijkstra提出,他在1965年召開的國際信息處理聯(lián)合會(InternationalFederationforInformationProcessing,IEIP)上指出:“可以從高級語言中取消GOTO語句”,“程序的質(zhì)量與程序中包含的GOTO語句的數(shù)量成反比”。2022/12/131305.5結(jié)構(gòu)化程序設(shè)計方法1、結(jié)構(gòu)化程序設(shè)計:2022/15.5結(jié)構(gòu)化程序設(shè)計方法2、結(jié)構(gòu)化程序設(shè)計的原則:(1)使用語言中的順序、選擇、重復(fù)等有限的基本控制結(jié)構(gòu)表示程序邏輯。(2)選用的控制結(jié)構(gòu)只允許有一個入口和一個出口。(3)程序語句組成容易識別的塊,每塊只有一個入口和出口。(4)復(fù)雜結(jié)構(gòu)應(yīng)該用基本控制結(jié)構(gòu)進(jìn)行組合嵌套來實現(xiàn)。(5)語言中沒有的控制結(jié)構(gòu),可用一段等價的程序段模擬。(6)嚴(yán)格控制GOTO語句,僅在下列情形才可使用。2022/12/131315.5結(jié)構(gòu)化程序設(shè)計方法2、結(jié)構(gòu)化程序設(shè)計的原則:203、自項向下、逐步細(xì)化的設(shè)計方法逐步細(xì)化的步驟可以歸納為如下的三步:由粗到細(xì)地對程序進(jìn)行逐步的細(xì)化,每一步可選擇其中一條或數(shù)條將它們分解為更多或更詳細(xì)的程序步驟。
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 工廠原料轉(zhuǎn)讓合同范例
- 托管運營合同范文
- 攝影設(shè)備租借合同范本
- 包裝服務(wù)合同模板2024年
- Castleman病的診斷與治療
- 2024年房屋建筑施工安全責(zé)任協(xié)議書范文
- 產(chǎn)品與企業(yè)文化廣告創(chuàng)意合作協(xié)議
- 合伙權(quán)益出售合同樣本
- 居間合同范本樣本
- 高校校舍擴(kuò)建協(xié)議范本
- 2024年物業(yè)管理師(中級四級)考試題庫大全-上(單選、多選題)
- 2024年人教部編版語文六年級上冊期中測試題及答案(一)
- 2024年10月福建三明寧化縣城市管理和綜合執(zhí)法局公開招聘非在編協(xié)管員11人筆試歷年典型考點(頻考點試卷)解題思路附帶答案詳解
- 2024年環(huán)保知識生態(tài)建設(shè)知識競賽-環(huán)?;A(chǔ)知識競賽考試近5年真題附答案
- 2024中國郵政集團(tuán)河北省分公司春季校園招聘高頻難、易錯點500題模擬試題附帶答案詳解
- 人教版(2019)必修 第三冊Unit 5 The value of money 單元集體備課教案
- 20242025七年級上冊科學(xué)浙教版新教材第1章第2節(jié)科學(xué)測量1長度測量講義教師版
- 部編版小學(xué)三年級道德與法治上冊單元測試題含答案(全冊)
- 政務(wù)大廳裝修改造工程施工設(shè)計方案
- 2024年山東普通高中學(xué)業(yè)水平等級考試政治(解析版)
- 上海生活垃圾分類現(xiàn)狀調(diào)查報告
評論
0/150
提交評論