一、軟件工程知識點 簡要總結
1.軟件基礎知識
瀑布模型:
我感覺整個《軟件工程》書的布局就是按照瀑布模型來的,上面右圖少個運維。
2.UML圖
2.1 用例圖 UseCase Diagram
用例圖主要回答了兩個問題:1、是誰用軟件。2、軟件的功能。
從用戶的角度描述了系統的功能,並指出各個功能的執行者,強調用戶的使用者,系統為執行者完成哪些功能。
2.2 類圖 Class Diagram
用戶根據用例圖抽象成類,描述類的內部結構和類與類之間的關系,是一種靜態結構圖。 在UML類圖中,常見的有以下幾種關系: 泛化(Generalization), 實現(Realization),關聯(Association),聚合(Aggregation),組合(Composition),依賴(Dependency)。
各種關系的強弱順序: 泛化 = 實現 > 組合 > 聚合 > 關聯 > 依賴
例子:
2.3 時序圖 Sequence Diagram
時序圖:描述了對象之間消息發送的先后順序,強調時間順序。
時序圖的主要用途是把用例表達的需求,轉化為進一步、更加正式層次的精細表達。用例常常被細化為一個或者更多的序列圖。同時序列圖更有效地描述如何分配各個類的職責以及各類具有相應職責的原因。
3. 設計模式 Design Pattern
幾種主要的Java設計模式:
4. 軟件測試方法
1. 軟件測試方法:白盒測試、黑盒測試、灰盒測試、靜態測試、動態測試
2. 白盒測試:是一種測試用例設計方法,在這里盒子指的是被測試的軟件,白盒,顧名思義即盒子是可視的,你可以清楚盒子內部的東西以及里面是如何運作的,因此白盒測試需要你對系統內部的結構和工作原理有一個清楚的了解,並且基於這個知識來設計你的用例。
白盒測試技術一般可被分為靜態分析和動態分析兩類技術。
2.1 靜態分析主要有:控制流分析技術、數據流分析技術、信息流分析技術。
2.2 動態分析主要有:邏輯覆蓋率測試(分支測試、路徑測試等),程序插樁等。
白盒測試優點:迫使測試人員去仔細的思考軟件的實現;可以檢測代碼中的每條分支和路徑;揭示隱藏在代碼中的錯誤;對代碼的測試比較徹底;最優化。
白盒測試缺點:昂貴;無法檢測代碼中遺漏的路徑和數據敏感性錯誤;不驗證規格的正確性。
3. 黑盒測試又叫功能測試,這是因為在黑盒測試中主要關注被測軟件的功能實現,而不是內部邏輯。在黑盒測試中,被測對象的內部結構,運作情況對測試人員是不可見的,測試人員對被測產品的驗證主要是根據其規格,驗證其與規格的一致性。
在絕大多數沒有用戶參與的黑盒測試中,最常見的測試有:功能性測試、容量測試、安全性測試、負載測試、恢復性測試、標桿測試、穩定性測試、可靠性測試等。
4. 灰盒測試:白盒測試和黑盒測試往往不是決然分開的,一般在白盒測試中交叉使用黑盒測試的方法,在黑盒測試中交叉使用白盒測試的方法。灰盒測試就是這類界於白盒測試和黑盒測試之間的測試。
最常見的灰盒測試是集成測試。
5. 靜態測試:是一種不通過執行程序而進行測試的技術。它的關鍵功能是檢查軟件的表示和描述是否一致,沒有沖突或者沒有歧義。
6. 動態測試:包含了程序在受控的環境下使用特定的期望結果進行正式的運行。它顯示了一個系統在檢查狀態下是正確還是不正確。
單元測試屬於白盒測試范疇;集成測試屬於灰盒測試范疇;系統測試屬於黑盒測試范疇。
二、軟件工程測試題(參考百度文庫)
單項選擇題
1.瀑布模型的存在問題是( B )
A.用戶容易參與開發 B.缺乏靈活性
C.用戶與開發者易溝通 D.適用可變需求
解析:瀑布模型各個階段的划分完全固定、模型是線性的,用戶只有等到整個過程的末期才能見到開發成果,不適應需求的變化,缺乏靈活性。
2.下列哪個階段不屬於軟件生存周期的三大階段(C )。
A、計划階段 B、開發階段
C、編碼階段 D、維護階段
解析:軟件的生存周期包括:計划階段、開發階段、維護階段。編碼是開發階段的一部分。
3.在設計測試用例時,( A )是用得最多的一種黑盒測試方法。
A. 等價類划分 B. 邊界值分析 C. 因果圖 D. 判定表
解析:等價類划分是一種典型的黑盒測試方法。等價類划分是指分步驟把海量的測試用例集減得很小但過程同樣有效。也就是說,選取足夠小測試用例,發現更多軟件缺陷。
解析:深度為3,寬度為3。A的扇出為3,t的扇入為2。 題目考察模塊化編程中,各個函數的調用關系。 扇入:該模塊被調用的次數,扇入大,說明該模塊的復用性好;扇出:該模塊調用其他模塊的個數,扇出大,說明該模塊的業務邏輯復雜。一般設計高扇入合理扇出(3到4)的函數。
5.設函數C(X)定義問題X的復雜程序,函數E(X)確定解決問題X需要的工作量(時間)。
對於兩個問題P1和P2,如果C(P1)>C(P2)顯然E(P1)>E(P2),則得出結論E(P1+P2)>E(P1)+E(P2)就是:( A )
A.模塊化的根據 B.逐步求精的根據 C.抽象的根據 D.信息隱藏和局部化的根據
解析:從 E(P1+P2)> E(P1)+E(P2)看出:整體的復雜性大於局部之和,所以需要模塊化降低耦合帶來的復雜性。
6.下列哪個圖是N-S圖(盒圖)的構件( C )。
解析:A是PAD圖,B是流程圖,C是盒圖,D是PAD圖。
填空題
1. 軟件生存周期一般可分為__________、可行性研究、__________、設計編碼、__________、運行與維護階段。
答案:問題定義 需求分析 測試
2. 大型軟件測試包括__________、__________、確認測試和驅動測試四個步驟。
答案:單元測試 集成測試
3.將下面的關系按繼承關系、聚集關系或普通關聯進行分類。
小汽車---------Tesla Model S跑車 __________ 答案: 繼承
小汽車---------駕駛員 __________ 答案: 普通關聯
班級------------學生 __________ 答案: 聚集
判斷題
1.軟件生存周期是從軟件開始開發到開發結束的整個時期。( × )
解析:軟件生命周期包含3大階段: 計划階段、開發階段、維護階段。 開發只是其中一個階段。
2.扇出是一個模塊直接調用的模塊數目,一般推薦的扇出為3或4。( √ )
解析:扇出是一個模塊調用其他模塊的數目,如果扇出過大,說明該模塊的業務邏輯復雜,一般增加調用層數來降低扇出。
3.耦合用於衡量一個模塊內部的各個元素彼此結合的緊密程度。( × )
解析:內聚衡量模塊內部緊密程度,耦合衡量模塊之間的緊密程度。
4.軟件測試的目的是證明程序沒有錯誤。 ( × )
解析:軟件測試一般達到一定程度就結束了,A、B類核心代碼100%無缺陷,C、D、E類缺陷允許存在一些。
簡答題
1. 軟件生命期各階段的任務是什么?
答:軟件生命期分為7個階段:(階段划分言之有理即可,也可以不是這7個階段)
(1、問題定義:要解決的問題是什么
(2、可行性研究:確定問題是否值得解,技術可行性、經濟可行性、操作可行性
(3、需求分析:系統必須做什么
(4、總體設計:系統如何實現,包括系統設計和結構設計
(5、詳細設計:具體實現設計的系統
(6、實現:編碼和測試
(7、運行維護:保證軟件正常運行。
2. 軟件危機產生的原因是什么?
答:軟件危機的原因:
a) 軟件不同與硬件,是邏輯部件;
b) 軟件規模龐大,邏輯結構復雜;
c) 軟件開發人員和管理人員只重視設計程序而輕視用戶的需求分析,導致最后研制出的軟件產品無法滿足用戶的需求;
d) 軟件設計技術和管理技術落后,沒有統一的軟件質量管理規范;
e) 在軟件的開發與維護關系問題上存在錯誤的概念,重視開發,而輕視維護。
3. 面向對象方法的優點有哪些?
答:面向對象方法學的優點:
(1)多角度模擬客觀世界;
(2)具有較高的穩定性;
(3)重用性好;
(4)適合開發大型軟件。
4. 什么是白盒測試?什么是黑盒測試?
答:白盒測試又稱為結構測試,它的前提條件是可以看成將程序放在一個透明的白盒子中,也就是完全了解了軟件系統的結構和整個處理過程。
黑盒測試又稱為功能測試,它把程序看成是一個不透明的黑盒子,完全不去考慮程序的內部結構和處理過程。
5. 簡述軟件質量三要素及其具體包括的內容。
答:軟件質量要素可以分為三類,
第一類要素表現軟件的運行特征,包括正確性、可靠性、有效性、安全性和可用性;
第二類要素表現軟件承受修改的能力,包括可維護性、靈活性和可測試性;
第三類要素表現軟件對新環境的適應程度,包括可移植性、可重用性和可互操作性。
應用題
一、某一新聞管理系統主要用來發布新聞,管理員只需要一個,登錄后可以 在后台發布新聞。任何人可以瀏覽新聞,瀏覽者可以注冊成為系統會員,注冊后 可對新聞進行評論。管理員在后台可以對新聞、評論、注冊會員進行管理,如修改、刪除。
請畫出該新聞管理系統的用例圖:
二、輸入三整數,判斷是否構成三角形,如構成三角形,則輸出三條邊的值,否則輸出”不能構成三角形”.
(1)用程序流程圖表示該問題的算法;
(2)計算程序復雜度(路徑個數);
(3)設計路徑覆蓋的測試用例。
答案:
(1)程序流程圖:
(2)
(3)
試題參考百度文庫:https://wenku.baidu.com/view/adf7f013e55c3b3567ec102de2bd960590c6d9a0.html