《軟件工程》是計算機應用專業(本科)非常重要的一門專業課,該課程包括筆試和試驗兩部分,并且也是課程設計的科目之一。學習 《軟件工程》,考生不僅需要掌握至少一門程序設計語言,還需要對數據結構、數據庫、操作系統等課程有一定的了解,可以說綜合性很強。
從2002年起,《軟件工程》的教材改由北京大學出版,相應的考試命題工作,也改由北京大學負責。
為了廣大考生能更好的學習《軟件工程》,我總結了全書的基礎知識點、歷年考試題型、試驗題目于下,希望可以幫助大家完成《軟件工程》的學習。
學習《軟件工程》必備書籍:
1.教材,《軟件工程》(黑皮),北京大學出版,2002年,王立福等
2輔導,《計算機上機實驗考試應試指導》(藍皮),北京大學出版,2003年,孫家肅
《軟件工程》筆試分為理論部分和設計部分,比例大致相當,在下面的復習大綱中將隨即提到,不再細分。另外,實驗部分也會在文中提及,希望讀者注意。
第一章 軟件工程概論
1. 軟件工程的目的:
倡導以工程的原理、原則和方法進行軟件開發,以解決當時出現的軟件危機。
2. 軟件危機:
在計算機軟件開發和維護過程中所遇到的一系列問題。
3. 軟件及組成:
計算機系統中的程序和文檔稱為軟件,程序是計算機任務的處理對象和處理規則的描述,文檔是為了理解程序所需的闡述性資料。
4. 軟件工程定義:
軟件工程是一類求解軟件的工程,它應用計算機科學、數學及管理科學等原理,借鑒傳統工程的原則、方法,創建軟件以達到提高質量、降低成本的目的。其中,計算機科學、數學用于構造模型與算法,工程科學用于制定規范、設計范型、評估成本及確定權衡,管理科學用于計劃、資源、質量、成本等管理。軟件工程是一門指導計算機軟件開發和維護的工程學科。
5. 軟件工程框架及其內容:
目標、活動和原則。軟件工程的目標為,生產具有正確性、可用性以及開銷合宜的產品。軟件工程活動定義為,生產一個最終滿足需求且達到工程目標的軟件產品所需要的步驟,主要包括需求、設計、實現、確認以及支持等活動。軟件工程設計原則為,選取適宜的開發模型,采用合適的設計方法,提供高質量的工程支持,重視開發過程的管理。(參考教材教材第2頁圖1.1,更有利于記憶)
6. 軟件工程研究的內容:
軟件開發模型、軟件開發方法、軟件過程、軟件工具、軟件開發環境、計算機輔助軟件工程(CASE)、軟件經濟學等。
7. 軟件開發方法學定義:
是一種已定義好的技術集和符號表示習慣,來組織軟件開發的過程,一般表示為一系列步驟,包括結構化方法、面向對象方法、Jackson方法等等。
第二章 軟件開發模型
1. 軟件開發模型定義:
是軟件開發全部過程、活動和任務的結構框架。
2. 瀑布模型內容及特點:
瀑布模型將軟件生存周期的各項活動規定為依固定順序連接的軟干階段工作,是一種線性模型。各階段活動為,提出系統需求、提出軟件需求、需求分析、設計、編碼、測試和運行。每個開發階段具有以下特征,從上一階段接受本階段工作的對象作為輸入,對上述輸入實施本階段的活動,給出本階段的工作成果作為輸出傳入下一階段,對本階段工作進行評審,若本階段工作得到確認,則繼續下階段工作,否則返回前一階段甚至更前階段。瀑布模型最為突出的缺點是該模型缺乏靈活性。
3. 演化模型內容及特點:
演化模型主要針對事先不能完整定義需求的軟件開發,其開發過程一般是首先開發核心系統,當核心系統投入運行后,軟件開發人員根據用戶的反饋,實施開發的迭代過程,每一迭代過 程均由需求、設計、編碼、測試、集成等階段組成,直到軟件開發結束。演化模型在一定程度上減少了軟件開發活動的盲目性。
4. 螺旋模型內容及特點:
它是在瀑布模型和演化模型的基礎上,加入兩者所忽略的風險分析所建立的一種軟件開發模型。沿螺旋模型順時針方向,依次表達了四個方面的活動,制定
計劃、風險分析、實施工程、客戶評估。
5. 噴泉模型內容及特點:
它體現了軟件創建所固有的迭代和無間隙特征,噴泉模型主要用于支持面向對象開發過程。
6. 增量模型內容:
在設計了軟件系統整體體系結構之后,首先完整的開發系統的一個初始子集,繼之,根據這一子集,建造一個更加精細的版本,如此不斷的進行系統的增量開發。
7. 瀑布模型、演化模型、螺旋模型之間的聯系:相同點是這三個模型都分為多個階段,而瀑布模型一次完成軟件,演化模型分為多次完成,每次迭代完成軟件的一個部分,螺旋模型也分為多次完成,每次完成軟件的一個新原型,并考慮風險分析。
8. 演化模型和增量模型之間的區別
演化模型首先開發核心系統,每次迭代為系統增加一個子集,整個系統是增量開發和增量提交,增量模型首先完整的開發系統的一個初始子集,然后不斷的建造更精細的版本。
第三章 結構化設計
1. 軟件設計階段的主要任務、方法、階段:
需求分析階段的主要任務是確定系統必須“做什么”,形成軟件的需求規格說明書,軟件設計階段的主要任務是確定系統“怎么做”,從軟件需求規格說明書出發,形 成軟件的具體設計方案,軟件設計可以采用多種方法,如結構化設計方法、面向數據結構的設計方法、面向對象的設計方法等,結構化軟件設計可以分為總體設計和詳細設計兩個階段。
2. 總體設計階段的主要任務及其內容:
總體設計階段的主要任務是把系統的功能需求分配給軟件結構,形成軟件的模塊結構圖(MSD),在結構圖中矩形表示功能單元,稱為“模塊”,連接上下層模塊的線段表示它們之間的調用關系,在總體設計階段,每個模塊還處于黑盒子級,模塊通過外部特征標識,名字、輸入、輸出。
3. 總體設計的表示形式及其內容(層次圖、HIPO圖、結構圖):
層次圖是軟件總體設計階段最常使用的表示形式之一,用來描繪軟件的層次結構,圖中的每個方框代表一個模塊,方框間的連線表示模塊的調用關系,層次圖很適合于在自頂向下設計軟件的過程中使用;
HIPO圖是由美國IBM公司發明的“層次圖+輸入/處理/輸出圖”的英文縮寫,HIPO圖實際上由H圖和IPO圖兩部分組成,H圖就是上面提到的層次圖,為了能使HIPO圖具有可跟蹤性,在H圖里除了最頂層的方框之外,每個方框都加了編號;
結構圖和層次圖類似,圖中每個方框代表一個模塊,方框之間的箭頭(或直線)表示模塊的調用關系,在結構圖中通常還用帶注釋的箭頭表示模塊調用過程中來回傳遞的信息,尾部是空心圓表示傳遞的是數據,實心圓表示傳遞的是控制信息。
4. 模塊及其組成:
模塊是執行一個特殊任務或實現一個特殊的抽象數據類型的一組例程和數據結構,模塊由兩部分組成,接口和實現模塊功能的執行機制。
5. 面向數據流的設計方法(綜合應用):
面向數據流的設計方法把數據流圖映射成為軟件結構,數據流圖的類型決定了映射的方法,數據流圖可以分為變換型數據流圖和事務型數據流圖,具有較明顯的輸入、變換(或稱主加工)和輸出界面的數據流圖稱為變換型數據流圖,數據沿輸入通路到達一個處理模塊,這個處理模塊根據輸入數據的類型在若干動作序列中選出一個來執行,這類數據流圖稱為事務型數據流圖,并且稱這個模塊為事務中心,它完成如下任務,接收輸入數據、分析數據并確定數據類型、根據數據類型選取一條活動通路。
6. 評價軟件設計質量的主要準則(模塊化、抽象、耦合、內聚)及詳細內容:
模塊化是好的軟件設計的一個基本準則;
抽象就是抽出事務的本質特性而暫時不考慮它們的細節,模塊是按照不同的抽象級別安排的,高層抽象模塊向讀者隱藏了功能實現的細節,這就是信息隱蔽,模塊之間相互隱藏自身的實現細節對一個好的設計來說是至關重要的;
耦合是對不同模塊之間相互依賴程度的度量,緊密耦合是指兩個模塊之間存在著很強的依賴關系,松散耦合是指兩個模塊之間存在一些依賴關系,但他們之間的連接比較弱,無耦合是指模塊之間根本沒有任何連接;
耦合的強度依賴于以下四個因素,一個模塊對另一個模塊的引用,一個模塊向另一個模塊傳遞的數據量,一個模塊施加到另一個模塊的控制的數量,模塊之間接口的復雜程度;
從強到弱的幾種常見的耦合類型,內容耦合,一個模塊直接修改或操作另一個模塊的數據;公共耦合,兩個以上的模塊共同引用一個全局數據項;控制耦合,一個模塊在界面上傳遞一個信號控制另一個模塊,接收信號的模塊的動作根據信號值進行調整,稱為控制耦合;標記耦合,若兩個模塊至少有一個通過界面傳遞的公共參數包含內部結構;數據耦合,模塊間通過參數傳遞基本類型的數據,數據耦合是最簡單的耦合形式,系統中至少必須存在這種類型的耦合;
內聚度量的是一個模塊內部各成分之間相互關聯的強度,如果一個模塊的所有成分都直接參與并且對于完成同一功能來說都是最基本的,則該模塊是高內聚的;
從低到高的幾種常見的內聚類型,偶然內聚,一個模塊的各個成分之間毫無關系;邏輯內聚,幾個邏輯上相關的功能被放在同一模塊中;時間內聚,一個模塊完成的功能必須在同一時間內執行,但這些功能只是因為時間因素關聯在一起;過程內聚,一個模塊內部的處理成分是相關的,而且這些處理必須以特定的次序執行;通信內聚,一個模塊的所有成分都操作同一數據集或生成同一數據集;順序內聚,一個模塊的各個成分和同一個功能密切相關,而且一個成分的輸出作為另一個的成分;功能內聚,最理想的內聚是功能內聚,模塊的所有成分對于完成單一的功能都是基本的;
內聚和耦合是密切相關的,在進行軟件設計時,應力爭做到強內聚、弱耦合。
7. 結構化設計的啟發式規則:
改進軟件結構提高模塊獨立性,模塊規模應該適中,深度、寬度、扇入和扇出應適中,模塊的作用域應該在控制域之內,力爭降低模塊接口的復雜性,模塊功能應該可以預測;
模塊的作用域定義為受該模塊內一個判定影響的所有模塊的集合,模塊的控制域是這個模塊本身以及所有直接或間接從屬于它的模塊的集合。
8. 結構化分析與結構化設計的區別:
結構化分析得到數據流圖、數據字典等,屬于邏輯模型,結構化設計得到模塊結構圖,屬于程序模型。
9. 詳細設計階段的目標、表現、內容:
詳細設計階段的根本目標是確定怎樣具體的實現所要求的系統,詳細設計以總體設計階段的工作為基礎,但又不同于總體設計,主要表現在,在總體設計階段,數據項和數據結構以比較抽象的方式描述,詳細設計要提供關于算法的更多細節;
詳細設計的模塊包含實現對應的總體設計的模塊所需要的處理邏輯,主要有,詳細的算法,數據表示和數據結構,實施的功能和使用的數據之間的關系。
10.結構化程序的三種基本結構,結構化設計的目標:
結構化程序設計技術采用自頂向下逐步求精的設計方法和單入口單出口的控制結構,并且只包含順序、選擇和循環三種結構,結構化程序設計的目標之一是使程序的控制流程線性化,即程序的動態執行順序符合靜態書寫結構,結構化程序設計的觀點是要求設計好結構的程序。
11.詳細設計的任務,詳細設計的工具及其內容特點:
詳細設計的任務是給出軟件模塊結構中各個模塊的內部過程描述,也就是模塊內部的算法設計,詳細設計的工具可以分為圖形、表格、語言三種,包括程序流程圖、盒圖(N-S圖)、PAD圖、類程序設計語言(PDL);
程序流程圖中使用的主要符號包括順序、選擇、循環結構,它的主要缺點如下,程序流程圖本質上不是逐步求精的好工具,它誘使程序員過早的考慮程序的控制流程,而不去考慮程序的全局結構,程序流程圖中用箭頭代表控制流,因此程序員不受任何約束,可以完全不顧結構程序設計的精神,隨意轉移控制,程序流程圖不易表示數據結構;
PAD是問題分析圖的英文縮寫,它用二維樹形結構的圖表示程序的控制流,PAD圖的主要優點如下,使用表示結構化控制結構的PAD符號所設計出來的程序必然是結構化程序,PAD圖所描述的程序結構十分清晰,用PAD圖表現程序邏輯,易讀、易懂、易記,很容易將PAD圖轉換成高級語言源程序,既可用于表示程序邏輯,也可用于描述數據結構,PAD圖的符號支持自頂向下逐步求精的使用,PAD圖是面向高級程序設計語言的;
類程序設計語言也稱為偽碼,它是用正文形式表示數據結構和處理過程的設計工具,PDL具有以下特點,關鍵字的固定語法,提供了結構化控制結構、數據說明和模塊化的手段,自然語言的自由語法,用于描述處理過程和判定條件,數據說明的手段,既包括簡單的數據結構,又包括復雜的數據結構,模塊定義和調用的技術,提供各種 接口描述模式;
PDL作為一種設計工具有如下一些優點,可以作為注釋直接插在源程序中間,可以使用普通的正文編輯程序或文字處理系統,很方面的完成PDL的書寫和編輯工作,已經有自動處理程序存在,而且可以自動由PDL生成程序代碼,PDL的缺點是不如圖形工具形象直觀,描述復雜的條件組合與動作間的對應關系時,不如判定表或判定樹清晰簡單。
本章設計題為DFD到模塊結構圖的轉換和詳細設計工具的具體應用,為筆試和試驗的必考題型,非常重要,請考生參考輔導第256頁(1)~(7)題,務必每一種題型都熟練掌握。
第四章 面向對象方法
1.基本概念:
(1)對象 在系統分析和系統構造中,對象是對客觀世界事務的一種抽象,是由數據(屬性)及其上操作(行為)組成的封裝體。
(2)類 是具有相同結構、行為和關系的一組對 象的描述。
(3)屬性 每一對象的屬性是一些有著確定值的、用于描述對象狀態信息的數據。
(4)服務 為了完成某一任務,一個對象所提供的、并體現其責任的操作。
(5)消息 一個對象為實現其責任而與其他對象的通信,在面向對象方法中,對象之間只能通過消息進行通信。
(6)繼承 表達類之間相似性的一種機制,即在已有的類的基礎之上增量構造新的類,前者稱為父類(或超類),后者稱為子類,如果子類只從一個父類繼承,則稱為單繼承,如果子類從一個以上父類繼承,則稱為多繼承。
(7)操作 是類的實例被要求執行的服務。
(8)關聯 把一組具有相同結構特性、行為特征和語義的鏈的描述稱為關聯。
(9)鏈 是對象引用的元組(列表)。
(10)依賴 一個依賴規約了兩個模型元素(或兩個模型元素集合)之間的一種語義關系。
(11)狀態 一個狀態是在對象的生命期內的一個條件,或在對象滿足某個條件,進行某個動作或等待某個事件的期間內的一個交互。
(12)事件 指可以引發狀態轉換的所發生的事情。
2.對象的特點:
自治性,對象具有一定的獨立計算能力,封閉性,對象具有信息隱蔽的能力,通信性,對象具有與其他對象通信的能力。
3.面向對象方法同結構化方法的比較:
結構化方法強調過程抽象和模塊化,將現實世界映射為數據流和加工,加工之間通過數據流進行通信,數據作為被動的實體被主動地操作所加工,是以過程(或操作)為中心來構造系統和設計程序的;
面向對象方法把世界看成是獨立對象的集合,對象將數據和操作封裝在一起,提供有限的接口,其內部的實現細節、數據結構及對它們的操作是外部不可見的,對象之間通過消息相互通信,面向對象方法具有的繼承性和封裝性支持軟件復用,并易于擴充,能較好的適應復雜大系統不斷發展和變化的要求。
4.Coad-Yourdon方法:
該方法認為,人類在認識和理解現實世界的過程中,普遍運用著下面三個構造法則,區分對象及其屬性,區分整體對象及其組成部分,不同對象類的形成及區分。
5.面向對象方法分析階段的五個主要活動及其內容:
標識類及對象、標識結構、標識主體、定義屬性及實例連接、定義服務及消息連接;
兩層矩形符號表示類及對象,內層矩形表示類,分為三部分,類名、屬性名、服務名,外層矩形表示該類的對象;
標識的結構有兩種,一般/特殊結構和整體/部分結構;
精煉主題可以從問題域和接口復雜性兩方面入手;
可以從四方面考慮標識屬性,原子概念,規范化,標識機制,保持一個可導出的屬性。
6.面向對象設計(OOD):
OOD分為四部分,問題域部分,保持系統總體結構的穩定性,人機交互部分,任務管理部分,簡化總體設計和編碼,數據管理部分,包括數據存放方法的設計和相應服務的設計。
7.三種面向對象的設計模型(OSA模型):
對象關系模型、對象行為模型、對象相互作用模型。
8.面向對象中特殊的關系集合:
一般關系(is a),一個對象類中的每一對象是另一對象類的一個對象,聚合關系(is part of),一個對象,稱之為聚合,是由一些稱之為成分的對象構成的,聯合關系(is member of),該關系用于生成一個由對象構成的集合,并把該集合看作是一個對象,is member of關系總是二元關系;
成員類
是聯合的子集,對象是成員類的子集,對象是聯合子集的子集。
9.對象關系模型圖(ORM),對象行為模型,對象交互模型:
對了構造ORM圖,OSA給出了五個基本概念,對象、關系、對象類、關系集合、約束為了構造對象行為模型,OSA集中于三個基本概念,狀態、觸發、動作,OSA借助于狀態網,描述對象間 的同步交互。
10.統一軟件開發過程(USDP)及其階段:
USDP是以用況為驅動的、以體系結構為中心的、迭代、增量的過程,分為初始、細化、構造、移交四個階段。
本章設計題為標識類、對象,及其屬性與操作等,一般與DFD建模題在一起,考參考輔導
第264頁建模題的第2問,另外,對象標識在試驗考試中也會出現,希望考生多加練習,重點掌握。
本章的理論比較靈活,需理解的記憶,考試的時候要做到舉一反三,不能只局限于文字定義。
第五章 軟件測試
1.兩種常用的測試技術:
軟件產品與其他產品不同,其最大的成本是檢驗軟件的錯誤、修正錯誤的成本,以及為了發現這些錯誤所進行的設計測試程序和運行測試程序的成本,兩種常用的測試技術為,基于“白盒” 的路徑測試技術和基于“黑盒”的事務處理流程測試技術,白盒測試技術依據的是程序的邏輯結構,黑盒測試技術依據的是軟件行為的描述。
2.軟件測試及其目標:
軟件測試可以定義為,按照規定規程,發現軟件錯誤的過程,軟件測試有兩個目標,一為預防錯誤,二為發現錯誤。
3.軟件測試和軟件調試的區別:
測試從一個側面證明程序員的“失敗”,而調試是為了證明程序員的正確,測試以已知條件開始,使用預先定義的程序,且有預知的結果,不可預見的僅是程序員是否通過測試,調試一般是以不可知的內部條件開始,除統計性調試外,結果是不可預見的,測試是有計劃的,并要進行測試設計,而調試是不受時間約束的,測試是一個發現錯誤、改正錯誤、重新測試的過程,而調試是一個推理過程,測試的執行是有規程的,而調試的執行往往要求程序員進行必要推理以至直覺的“飛躍”,測試經常是由獨立的測試組在不了解軟件的條件下完成的,而調試必須由了解詳細設計的程序員完成,大多數測試的執行和設計可由工具支持,而調試時,程序員能利用的工具主要是調試器。
4.測試用例:
指的是為了發現程序中的故障而專門設計的一組或多組數據。
5.測試過程模型:
環境模型、對象模型、錯誤模型。
6.軟件錯誤類別:
結構錯誤、數據錯誤、編程錯誤、接口錯誤。
7.控制流程圖及組成:
控制流程圖是程序控制結構的圖形表示,其基本元素是過程塊、節點、判定,控制流程圖與程序流程圖之間的差異是在控制流程圖中,不顯示過程塊的細節,而在程序流程圖中,著重于過程屬性的描述。
8.路徑測試的基本策略:
路徑測試技術的三種基本策略為,路徑測試(PX),執行所有可能的穿過程序的控制流程路徑,語句測試(P1),至少執行程序中所有語句一次,100%語句覆蓋率(C1)的邏輯覆蓋程序最弱,分支測試(P2),至少執行程序中每一分支一次(至少每個判定都獲得一次“真”和“假”),100%分支覆蓋率(C2)比100%語句覆蓋在邏輯上要強,條件組合測試,在邏輯上比C1,C2更強。
9.路徑選取的一般規則:
選取最簡單的、具有一定功能含義的入口/出口路徑,對已選的路徑進行演化,選取無循環的路徑、短路徑、簡單路徑,選取沒有明顯功能含義的路徑。
10.路徑測試的目標:
執行足夠的測試,以確保最小的C1+C2覆蓋率。
11.事務處理流程圖與控制流程圖的區別與聯系:
事務處理流程圖與控制流程圖的類同點是使用了相同的概念成分,不同之處是事務流程圖是一種數據流程圖,鏈支和過程塊的定義有所差異,另外事務流程圖的判定節點可能是一個復雜的過程,從而事務流程圖中的判定只能是“抽象”,第三點不同之處是事務流程圖中存在“中斷”的作用,中斷可以把一個過程等價的變換為具有繁多出口的鏈支,對此也要予以抽象。
12.事務處理流程測試的步驟:
獲得事務處理流程圖,瀏覽、復審,用例設計。
13.事務處理流程測試要解決的問題:
路徑選取、激活、測試設備、測試數據庫。
14.合理的測試序列:
單元測試、集成測試、有效性測試、系統測試。
15.單元測試及其內容:
單元測試主要檢驗軟件設計的最小單位—模塊,單元測試一般采用白盒測試技術,在單元測試期間,通常考慮模塊的四個特征,模塊接口、局部數據結構、“重要的”執行路徑、錯誤執行路徑,單元測試步驟分四部分,首先測試穿過模塊接口的數據流,繼之進行數據結構的測試,還要進行執行路徑的選擇測試,邊界測試是單元測試中的最后工作,也是最重要的工作。
16.集成測試及其內容:
集成測試是軟件組裝的一個系統化技術,其目標是發現與接口有關的 錯誤,集成測試是以主控模塊為測試驅動模塊,設計承接模塊替代其直接的下屬模塊,依據所選取的測試方式,在組合模塊時進行測試。
17.有效性測試及其手段:
有效性測試的目標是發現軟件實現的功能與需求規格說明書不一致的錯誤,有效性測試通常采用黑盒測試技術。
第六章 軟件測試
1.兩種常用的測試技術:
軟件產品與其他產品不同,其最大的成本是檢驗軟件的錯誤、修正錯誤的成本,以及為了發現這些錯誤所進行的設計測試程序和運行測試程序的成本,兩種常用的測試技術為,基于“白盒”的路徑 測試技術和基于“黑盒”的事務處理流程測試技術,白盒測試技術依據的是程序的邏輯結構,黑盒測試技術依據的是軟件行為的描述。
2.軟件測試及其目標:
軟件測試可以定義為,按照規定規程,發現軟件錯誤的過程,軟件測試有兩個目標,一為預防錯誤,二為發現錯誤。
3.軟件測試和軟件調試的區別:
測試從一個側面證明程序員的“失敗”,而調試是為了證明程序員的正確,測試以已知條件開始,使用預先定義的程序,且有預知的結果,不可預見的僅是程序員是否通過測試,調試一般是以不可知的內部條件開始,除統計性調試外,結果是不可預見的,測試是有計劃的,并要進行測試設計,而調試是不受時間約束的,測試是一個發現錯誤、改正錯誤、重新測試的過程,而調試是一個推理過程,測試的執行是有規程的,而調試的執行往往要求程序員進行必要推理以至直覺的“飛躍”,測試經常是由獨立的測試組在不了解軟件的條件下完成的,而調試必須由了解詳細設計的程序員完成,大多數測試的執行和設計可由工具支持,而調試時,程序員能利用的工具主要是調試器。
4.測試用例:
指的是為了發現程序中的故障而專門設計的一組或多組數據。
5.測試過程模型:
環境模型、對象模型、錯誤模型。
6.軟件錯誤類別:
結構錯誤、數據錯誤、編程錯誤、接口錯誤。
7.控制流程圖及組成:
控制流程圖是程序控制結構的圖形表示,其基本元素是過程塊、節點、判定,控制流程圖與程序流程圖之間的差異是在控制流程圖中,不顯示過程塊的細節,而在程序流程圖中,著重于過程屬性的描述。
8.路徑測試的基本策略:
路徑測試技術的三種基本策略為,路徑測試(PX),執行所有可能的穿過程序的控制流程路徑,語句測試(P1),至少執行程序中所有語句一次,100%語句覆蓋率(C1)的邏輯覆蓋程序最弱,分支測試(P2),至少執行程序中每一分支一次(至少每個判定都獲得一次“真”和“假”),100%分支覆蓋率(C2)比100%語句覆蓋在邏輯上要強,條件組合測試,在邏輯上比C1,C2更強。
9.路徑選取的一般規則:
選取最簡單的、具有一定功能含義的入口/出口路徑,對已選的路徑進行演化,選取無循環的路徑、短路徑、簡單路徑,選取沒有明顯功能含義的路徑。
10.路徑測試的目標:
執行足夠的測試,以確保最小的C1+C2覆蓋率。
11.事務處理流程圖與控制流程圖的區別與聯系:
事務處理流程圖與控制流程圖的類同點是使用了相同的概念成分,不同之處是事務流程圖是一種數據流程圖,鏈支和過程塊的定義有所差異,另外事務流程圖的判定節點可能是一個復雜的過程,從而事務流程圖中的判定只能是“抽象”,第三點不同之處是事務流程圖中存在“中斷”的作用,中斷可以把一個過程等價的變換為具有繁多出口的鏈支,對此也要予以抽象。
12.事務處理流程測試的步驟:
獲得事務處理流程圖,瀏覽、復審,用例設計。
13.事務處理流程測試要解決的問題:
路徑選取、激活、測試設備、測試數據庫。
14.合理的測試序列:
單元測試、集成測試、有效性測試、系統測試。
15.單元測試及其內容:
單元測試主要檢驗軟件設計的最小單位—模塊,單元測試一般采用白盒測試技術,在單元測試期間,通常考慮模塊的四個特征,模塊接口、局部數據結構、“重要的”執行路徑、錯誤執行路徑,單元測試步驟分四部分,首先測試穿過模塊接口的數據流,繼之進行數據結構的測試,還要進行執行路徑的選擇測試,邊界測試是單元測試中的最后工作,也是最重要的工作。
16.集成測試及其內容:
集成測試是軟件組裝的一個系統化技術,其目標是發現與接口有關的錯誤, 集成測試是以主控模塊為測試驅動模塊,設計承接模塊替代其直接的下屬模塊,依據所選取的測試方式,在組合模塊時進行測試。
17.有效性測試及其手段:
有效性測試的目標是發現軟件實現的功能與需求規格說明書不一致的錯誤,有效性測試通常采用黑盒測試技術。
聲明:
(一)由于考試政策等各方面情況的不斷調整與變化,本網站所提供的考試信息僅供參考,請以權威部門公布的正式信息為準。
(二)本網站在文章內容來源出處標注為其他平臺的稿件均為轉載稿,免費轉載出于非商業性學習目的,版權歸原作者所有。如您對內容、版權等問題存在異議請與本站聯系,我們會及時進行處理解決。
相關推薦
2022年浙江自考《當代中國政治制度》復習筆記匯總
09-152023年浙江自考西方行政學說史復習資料:西方行政學的產生
03-022023年10月浙江自考傳播學概論復習資料:有限效果論
08-302022年浙江自考中國古代文學史(一)第三編第九章復習資料
10-31自考輔導資料:2019年10月《美學》知識點-崇高的內涵與特點
09-172023年4月浙江自考中外教育簡史復習筆記:英國近代教育制度
12-08自考輔導資料:2021年10月《學前教育史》—論幼稚師范教育
06-05自考輔導資料:2021年10月《學前教育史》—雅典的學前教育
06-072022年10月浙江自考《政治經濟學》重點復習第十三章
07-062023年4月浙江自考新聞學概論復習筆記:堅持和實現正確的輿論導向
12-02