第一篇:軟件測試期末復習知識點總結大全
1.軟件測試:是由“驗證(verrificatione)”和“有效性確認(validation)”活動構成的整體: “驗證”是檢驗軟件是否已正確地實現了產品規格書所定義的系統功能和特性。驗證過程提供證據表明軟件相關產品與所有生命周期活動的要求(如正確性、完整性、一致性、準確性等)相一致。相當于以軟件產品設計規格說明書為標準進行軟件測試的活動。
“有效性確認”是確認所開發的軟件是否滿足用戶真正需求的活動。一切從客戶出發,理解客戶的需求,對軟件需求定義、設計的懷疑,發現需求定義和產品設計中的問題。這主要通過各種軟件評審活動來實現,包括讓客戶參加評審、測試活動。
軟件測試過程:(1)測試組織和管理(2)測試計劃(3)測試用例實際(4)測試實施(5)測試結果分析(6)測試評審與報告 軟件測試方法:白盒測試方法、黑盒測試方法、靜態測試與動態測試、主動測試與被動測試、形式化測試方法、基于風險的測試、模糊測試方法、ALAC測試和隨機測試方法
2.單元測試:是對軟件基本組成單元進行的測試,而且軟件單元是在與程序的其他部分相隔離的情況下進行獨立的測試。
靜態測試就是靜態分析,對模塊的源代碼進行研讀,查找錯誤或收集一些度量數據,并不需要對代碼進行編譯和仿真運行。
動態測試是通過真正運行程序發現錯誤,通過觀察代碼運行過程,來獲取系統行為、變量實時結果、內存、堆棧、線程以及測試覆蓋度等各方面的信息,來判斷系統是否存在問題,或者通過有效的測試用例,對于的輸入輸出關系來分析被測程序的運行情況,來發現缺陷。靜態測試、動態測試的區別:1.靜態測試用于預防,動態測試用于矯正;2.多次的靜態測試比動態測試的效率高;3,靜態測試綜合測試程序代碼;4.在相當短的時間里,測試的覆蓋率能達到100%,而動態測試經常只能達到50%測試左右;5.動態測試比靜態測試更花時間; 6.靜態測試比動態測試更能發現bug;7.靜態測試的執行可以在程序編碼編譯前,動態是中能在編譯后才能執行。
3.功能測試:一般須在完成集成測試后進行,而且是針對應用系統進行測試是根據產品規格說明書,來檢驗被測試的系統是否滿足各方面功能的使用要求。
集成測試:也叫組裝測試或聯合測試。在單元測試的基礎上,將所有模塊按照設計要求,組裝成為子系統或系統,進行集成測試,其主要目的是檢查軟件單位之間的接口是否正確。集成測試包括非增量測試和增量測試兩種方式,集成測試的策略主要有自頂向下和自底向上兩種。
功能測試、集成測試區別:
4.回歸測試:目的是在程序有修改的情況下,保證原有功能正常的一種測試策略和方法。程序在發現嚴重軟件缺陷要進行修改或版本升級要新增功能,這時需要對軟件進行修改,修改后的程序要進行測試,這時要檢驗軟件所進行的修改是否正確,保證改動不會帶來新的嚴重錯誤。
5.樁程序(Stub),也稱樁模塊:用以模擬被測模塊工作過程中所調用的下層模塊。樁模塊由被測模塊調用,它們一般只進行很少的數據處理,例如打印入口和返回,以便于檢驗被測模塊與其下級模塊的接口。驅動程序(Driver),也稱驅動模塊:用以模擬被測模塊的上級模塊,能夠調用被測模塊。在測試過程中,驅動模塊接受測試數據,調用被測模塊并把相關的數據傳送給被測模塊。
軟件缺陷:軟件缺陷是指計算機系統或者程序中存在的任何一種破壞正常運行能力的問題、錯誤,或者隱藏的功能缺陷、瑕疵,其結果會導致軟件產品在某種程度上不能滿足用戶的需求。標準定義,從產品內部看,軟件缺陷是軟件產品開發或維護過程中所存在的錯誤、毛病等各種問題;從外部看,軟件缺陷是系統所需要實現的某種功能的失效或違背。
軟件測試步驟: 即單元測試、集成測試、確認測試和系統測試。
1.開始是單元測試,集中對用源代碼實現的每一個程序單元進行測試,檢查各個程序模塊是否正確地實現了規定的功能。2.集成測試把已測試過的模塊組裝起來,主要對與設計相關的軟件體系結構的構造進行測試。3.確認測試則是要檢查已實現的軟件是否滿足了需求規格說明中確定了的各種需求,以及軟件配置是否完全、正確。4.系統測試把已經經過確認的軟件納入實際運行環境中,與其它系統成份組合在一起進行測試。
軟件測試流程:需求分析和定義、系統設計、詳細功能設計、編碼、單元測試、功能測試、系統測試、驗收測試
軟件測試涉及的關鍵問題:1.測試過程和開發過程是同時開始,同時結束的,兩者保持同步的關系;2.測試過程是對開發過程中階段性成果和最終產品進行驗證的過程,所以兩者相互依賴;3.測試過程中的工作重點和開發工作的重點可能不一樣,兩者有各自的特點
黑盒測試的特點:1.不基于對系統內部的設計和實現。2.用例設計基于功能的定義和需求說明書。3.關注于測試數據的選擇和測試結果的分析。
測試方法有:等價類劃分、邊界值分析法、判定表方法、因果圖法、正交實驗法、功能圖法、錯誤推測法
黑盒測試缺點:1.對用例設計人員的經驗要求較高,包括數據的選擇,對潛在錯誤的敏感性;2.對于內部實現的bug不容易發現;3.不能提供直觀的測試覆蓋率。
白盒測試的特點:1.需要了解系統的整體設計和實現;2.對源代碼進行審查;3.在單元測試階段發現大量的缺陷;4.關注于系統的控制流和數據流;
測試方法有:語句覆蓋、判定覆蓋、條件覆蓋、判定-條件覆蓋、條件組合覆蓋、路徑覆蓋、基本路徑測試法
白盒測試缺點:1.不能確保系統是否完全符合需求說明書;2.白盒測試的代價會大于黑盒測試;3.需要源代碼首先完成才能進行測試;
集成測試中自頂向下和自底向上方法
自頂向下法:從主控模塊(主程序)開始,沿著軟件的控制層次向下移動,從而逐漸把各個模塊結合起來。具體步驟是:1.對主控模塊進行測試,測試時用樁程序代替所有直接附屬于主控模塊的模塊;2.根據選定的結合策略,每次用一個實際模塊代替一個樁程序;3.在結合下一個模塊的同時進行測試;4.為了保證加入模塊沒有引進新的錯誤,可能需要進行回歸測試。優點:不需要測試驅動程序,能夠在測試階段的早期實現并驗證系統的主要功能,而且能在早期發現上層模塊的接口錯誤。缺點:需要樁程序,可能遇到與此相聯系的測試困難,低層關鍵模塊中的錯誤發現較晚,而且用這種方法在早期不能充分展開人力
自底向上法:從“原子”模塊(即在軟件結構最底層的模塊)開始集成以進行測試,具體策略是:1.把底層模塊組合成實現某個特定的軟件子功能的族;2.寫一個驅動程序,協調測試數據的輸入輸出;3.對由模塊組成的子功能族進行測試;4.去掉驅動程序,沿軟件結構自下向上移動,把子功能族組合起來形成更大的子功能族。優缺點:剛好和自頂向上相反
簡述增量式集成測試的自頂向下和自底向上兩種測試方法:自頂向下增量式測試的主要優點在于它可以自然地做到逐步求精,一開始便能讓測試者看到系統的框架。它的主要缺點是
需要提供被調用模擬子模塊,被調用模擬子模塊可能不能反映真實情況,因此測試有可能不充分。自底向上測試的優點在于,由于驅動模塊模擬了所有調用參數,即使數據流并未構成有向的非環狀圖,生成測試數據也沒有困難。它的缺點在于,直到最后一個模塊被加入進去之后才能看到整個程序(系統)的框架
集成測試自底向上和自頂向下集成方法優缺點是什么?
自底向上集成方法盡早的對底層實用歷程進行測試,可以避免編寫眾多的樁模塊,使得系統底層的眾多問題及早得到解決。缺點是在一些頂層構件非常重要的情況下,卻將其放到了最后集成。
自頂向下集成方法則盡早進行了頂層控制模塊的測試和集成,使得系統整體上得到驗證,但卻將底層實用歷程的測試放到了最后。某些具有關鍵性能或作用的底層模塊的問題將在最后才可能被發現。
簡述系統測試過程的主要步驟及每個步驟的測試依據。
功能測試:測試依據是系統功能需求;
性能測試:測試依據是其他軟件需求;
驗收測試:測試依據是客戶需求規格說明書;
安裝測試:測試依據是用戶環境
第二篇:軟件測試期末復習
一、單項選擇題:共20小題,每小題2 分,滿分40分。
1.軟件測試按照測試層次可以分為(C)A.黑盒測試、白盒測試//測試方式 B.功能性測試和結構性測試//測試目的 C.單元測試、集成測試和系統測試
D、動態測試和靜態測試//測試方式
2、軟件測試是采用(測試用例)執行軟件的活動。
A.測試用例 B.輸入數據 C.測試環境 D.輸入條件
3.軟件測試是軟件開發過程的重要階段,是軟件質量保證的重要手段,下列哪個(些)是軟件測試的任務?答案:(D)
1預防軟件發生錯誤 2發現程序錯誤 3提供診斷錯誤信息 A.只有1 B.只有2 C.只有3 D.都是
4、導致軟件缺陷的最大原因是:(A)
A.軟件需求說明書
B.設計方案 C.編碼
D.維護
5、測試用例是為達到最佳的測試效果或高效的揭露隱藏的錯誤而精心設計的少量測試數據,至少應該包括(A)
A、測試輸入、執行條件和預期的結果。
B、測試目標、測試工具 C、測試環境
D、測試配置
6、對已經發現的錯誤進行錯誤定位和確定出錯性質,并改正這些錯誤,同時修改相關的文檔,這種行為屬于(B)
A.測試
B.調試 C.回歸測試
D.單元測試
軟件測試是軟件測試人員和程序員都參與的一項工作,是貫穿整個生命周期的,只需要發現軟件的錯誤,而軟件調試主要是程序員自己參與,對程序(設計、編碼)進行修改、排除錯誤,主要是在開發階段。
7、軟件缺陷修復的代價最高的階段為(A)
A、發布階段
B、需求階段 C、設計階段
D、編碼階段
8、下列(B)是關于軟件缺陷的描述。
A.導致軟件包含故障的人的行為//軟件錯誤 B.產品的異常情況
C.引起一個功能部件不能完成所要求的功能的一種意外情況 D.功能部件執行其規定功能的能
軟件錯誤是指在軟件生存期內的不希望出現或不可接收的人為錯誤,軟件錯誤導致軟件缺陷的產生。
軟件缺陷是存在于軟件(文檔,數據,程序)之中不希望出現或不可接收的偏差;軟件缺陷導致軟件在運行某一特定條件時出現軟件故障;這時軟件缺陷被激活。
軟件故障是指軟件在運行過程中產生的不希望出現或不可接收的內部狀態,對軟件故障若無適當措施加以及時處理,就會是軟件失效。
軟件失效是指軟件在運行時產生的不希望出現或不可接受的外部行為結果。
9、可作為測試停止的標準是(D)
A.當時間用光時
B.執行了所有的測試用例,但沒有發現故障 C.當所有缺陷都已經清除時 D.當達到所要求的覆蓋時
10、下列描述錯誤的是(A)
A.軟件發布后如果發現質量問題,那是軟件測試人員的錯 B.窮盡測試實際上在一般情況下是不可行的 C.軟件測試自動化不是萬能的
D.測試能由非開發人員進行,調試必須由開發人員進行。
11、如下圖所示的N-S圖,至少需要(B)個測試用例完成邏輯覆蓋。
A.15 B.16 C.17 D.18
12、下列(C)方法設計出的測試用例發現程序錯誤的能力最強。
A.等價類劃分法 B.場景法
C.邊界值分析法 D.決策表法
13、功能性測試是根據(A)來設計測試用例。
A、軟件的規格說明 B、設計文檔
C、程序的內部邏輯 D、維護手冊
14、在軟件修改之后,再次運行以前為發現錯誤而執行程序曾用過的測試用例,這種測試稱之為(C)
A.單元測試 B.集成測試 C.回歸測試 D.驗收測試
15、(C)方法是根據輸出對輸入的依賴關系來設計測試用例的。
A.邊界值分析 B.等價類 C.因果圖法 D.錯誤推測法
16、測試工程師的工作范圍會包括檢視代碼、評審開發文檔,這屬于(B)
A.動態測試
B.靜態測試 C.黑盒測試
D.白盒測試
17、下列(B)是對程序流程圖進行簡化后得到的,它可以更加突出的表示程序控制流的結構,且不包含復合條件。
A.DD-路徑圖
B. 控制流圖 C.MM-路徑圖
D. 模塊調用圖
18、自底向上增量式集成測試中,下面(C)描述是正確的。
A.測試由樁模塊控制
B.最上面的模塊最先測試
C.父單元用測試過的子單元測試
D.包含樹的深度優先或廣度優先遍歷過程
19、以下關于測試用例特征的描述錯誤的是(C)A.最有可能抓住錯誤的; B.一定會有重復的、多余的; C.一組相似測試用例中最有效的; D.既不是太簡單,也不是太復雜。20、(D)是一種關注變量定義賦值點(語句)和引用或使用這些值的點(語句)的結構性測試,主要用作路徑測試的真實性檢查。
A、基本路徑測試
B、邏輯覆蓋 C、決策表
D、數據流測試
二、判斷題:共20小題,每題1分,滿分20分)
1.軟件測試是有風險的行為,并非所有的軟件缺陷都能夠被修復。(T)2.軟件質量保證和軟件測試是同一層次的概念。(F)
3.我們有理由相信只要能夠設計出盡可能好的測試方案,經過嚴格測試之后的軟件可以沒有缺陷。(F)
4.程序員兼任測試員可以提高工作效率。(F)
5.在設計測試用例時,應當包括合理的輸入條件和不合理的輸入條件。(T)6.傳統測試是在開發的后期才介入,現在測試活動已經擴展到了整個生命周期。(T)7.傳統測試以發現錯誤為目的,現在測試已經擴展到了錯誤預防的范疇。T 8.軟件測試的生命周期包括測試計劃、測試設計、測試執行、缺陷跟蹤、測試評估。(T)9.調試從一個已知的條件開始,使用預先定義的過程,有預知的結果;測試從一個未知的條件開始,結束的過程不可預計。(F)
10.白盒測試往往會造成測試用例之間可能存在嚴重的冗余和未測試的功能漏洞。(F)11.在所有的黑盒測試方法中,基于決策表的測試是最為嚴格、最具有邏輯性的測試方法。(∨)12.永遠有缺陷類型會在測試的一個層次上被發現,并且能夠在另一個層次上逃避檢測。(∨)13.測試用例的數目越多,測試的效果越好。(x)
14.只要能夠達到100%的邏輯覆蓋率,就可以保證程序的正確性。(x)15.單元測試屬于動態測試。(∨)16.驗收測試是以最終用戶為主的測試。(∨)17.沒有發現錯誤的測試是沒有價值的。(∨)18.可以把不合格的開發人員安排做測試。(x)19.每一個軟件項目都有一個最優的測試量。(∨)
20.黑盒測試往往會造成測試用例之間可能存在嚴重的冗余和未測試的功能漏洞。(∨)
三、簡答題:共4小題,每題5分,滿分20分。
1、簡單描述一下軟件測試工程師一般會承擔的一些具體工作。1:檢視代碼,評審開發文檔(靜態測試方法)
2:進行測試設計,寫作測試文檔(測試計劃,測試方案,測試用例等)3:執行測試,發現軟件缺陷,提交缺陷報告,并確認缺陷最終得到了修正。4:通過測試度量軟件的質量。
2、黑盒測試與白盒測試各有哪些優缺點?
黑盒測試與軟件如何實現無關,測試用例開發可以實現并行進行,因此可以壓縮總的項目開發時間,缺點:測試用例可以之間可能存在嚴重的冗余。還會有未測試的軟件漏洞。白盒測試局限于已經完成的代碼行為當中,離代碼太近,如果黑盒測試結合白盒測試的覆蓋率指標執行,冗余和漏洞問題會被發現并解決。如果發現同一條程序路徑被多個功能性測試用例遍歷,就可以懷疑這種冗余不會發生新的缺陷。
3、畫圖描述測試層次與傳統開發V型瀑布模型的對應
4、有函數f(x,y,z),其中x∈[1900,2100],y∈[1,12],z∈[1,31]的。請寫出該函數采用基本邊界值分析法設計的測試用例。
(2000,6,1),(2000,6,2),(2000,6,30),(2000,6,31),(2000,1,15),(2000,2,15)(2000,13,15),(2000,12,15),(1900,6,15),(1901,6,15),(1999,6,15),(2100,6,15)(2000,6,15)
測試用例來自等價類的邊界;正好等于;剛剛大于;剛剛小于邊界的值
四、綜合題:共1小題,每題20分,滿分20分。
1、使用基本路徑測試方法,為以下程序段設計測試用例。(1)畫出程序的控制流圖。
(2)計算程序的循環復雜度,導出程序基本路徑集中的獨立路徑條數。
(3)導出基本路徑集,確定程序的獨立路徑。
(4)根據(3)中的獨立路徑,設計測試用例(確保基本路徑集中的每一條路徑的執行)的輸入數據和預期輸出。
void Do(int X,int A,int B){ 1 if((A>1)&&(B=0))2 X = X/A;3 if((A=2)||(X>1))4 X = X+1;5 }
由于控制流圖假設的是單條件,因此對于復合條件,可將其分解為多個單個條件,并映射成控制流圖。1: A>1; 2: B=0 ; 3: X = X/A ; 4: A=2 ; 5:X>1 ; 6: X = X+1; 7: }
第三篇:軟件測試期末總結
1.下列關于軟件測試的敘述錯誤的是(D)。
A.軟件測試可以作為度量軟件與用戶需求間差距的手段 B.沒有發現錯誤的測試也是有價值的
C.軟件測試的根本目的是盡可能多地發現軟件中存在的問題,最終把一個高質量的軟件系統交給用戶使用
D.軟件測試的主要工作內容包括發現軟件中存在的錯誤并解決存在的問題
2.軟件測試技術可以分為靜態測試和動態測試,下列說法中錯誤的是(D)A.靜態測試是指不運行實際程序,通過檢查和閱讀等手段來發現程序中的錯誤。B.動態測試是指實際運行程序,通過運行的結果來發現程序中的錯誤。C.動態測試包括黑盒測試和白盒測試。
D.白盒測試是靜態測試,黑盒測試是動態測試。
3.月收入<=800元者免稅,現用輸入數800元和801元測試程序,則采用的是(A)方法。A.邊界值分析 B.條件覆蓋 C.錯誤推測 D.邏輯覆蓋
4.等價類劃分法的關鍵是(C)。A.確定等價類的邊界條件 B.按照用例來確定等價類 C.劃分等價類
D.確定系統中相同和不同的部分
5.某教學設備銷售部門制定一項銷售優惠政策,一次購買100臺或100臺以上者按八五折優惠,購買者是教師、學生按九折優惠。設C1表示購買的臺數,C2為1、2、0分別表示教師、學生和其他人員,則符合九折優惠判定條件為(A)。A.(C1<100)AND NOT(C2=0)B.(C1<100)AND NOT(C2>0)C.NOT(C1>100)AND(C2=0)D.NOT(C1<100)AND(C2>0)
6.(D)能夠有效地檢測輸入條件的各種組合可能會引起的錯誤。A.等價類劃分 B.邊界值分析 C.錯誤推測 D.因果圖
7.軟件測試用例主要由輸入數據和(C)兩部分組成。A.測試計劃 B.測試規則 C.預期輸出結果
D.以往測試記錄分析
8.在用白盒測試中的邏輯覆蓋法設計測試用例時,有語句覆蓋、分支覆蓋、條件覆蓋、判定-條件覆蓋、條件組合覆蓋和路徑覆蓋等,其中(A)是最弱的覆蓋準則。A.語句覆蓋 B.條件覆蓋
C.判定-條件覆蓋 D.條件組合覆蓋 9.以下不屬于白盒測試技術的是(D)A.邏輯覆蓋 B.基本路徑測試 C.循環覆蓋測試 D.等價類劃分
10.集成測試的策略一般分為:一次性集成和漸增式集成。下面哪一條真實地反映了前者與后者的不同?(A)。
A.后者比前者更適合大規模應用系統的集成測試
B.在集成測試中發現問題時,前者比后者更容易進行問題定位
C.前者需要開發驅動模塊和樁模塊,而后者不需要開發驅動模塊和樁模塊 D.前者不需要所有模塊就緒,而后者需要所有模塊就緒 11.集成測試又稱為組裝測試,其主要內容包括(C)。A.對整體的性能進行測試
B.用白盒法設計測試用例進行測試 C.確定組裝策略和次序 D.對運行過程進行測試
12.全局數據結構的錯誤通常在(C)中檢查。A.單元測試 B.有效性測試 C.集成測試 D.確認測試
13.軟件開發公司組織內部人員,模擬各類用戶行為對即將面市的軟件產品進行的測試我們稱之為(B)。A.系統測試
B.α測試 C.β測試 D.綜合測試
14.對一個網站的連接速度測試屬于(C)?
A.功能測試
B.客戶端兼容性測試
C.性能測試 D.安全測試
15.軟件測試管理是軟件工程的保護性活動,其基本內容不包括(C)。A.測試組織管理 B.測試過程管理 C.效益管理
D.資源和配置管理
32.下面對軟件測試流程的描述,哪個是正確的?(A)
A.制定測試計劃->設計測試方案及測試用例->部署實施測試->執行測試->缺陷跟蹤管理->測試總結報告
B.制定測試計劃->部署實施測試->設計測試方案及測試用例->執行測試->缺陷跟蹤管理->測試總結報告
C.部署實施測試->制定測試計劃->設計測試方案及測試用例->執行測試->缺陷跟蹤管理->測試總結報告 D.制定測試計劃->設計測試方案及測試用例->執行測試->部署實施測試->缺陷跟蹤管理->測試總結報告
15.與設計測試數據無關的是(D)A.該軟件的設計人員 B.程序的復雜程度 C.源程序
D.項目開發計劃
18.McCabe復雜性度量又稱(B)。A.代碼行度量 B.環路度量 C.程序量度量 D.功能性度量
1.(A)說明了軟件測試與開發的并行關系,體現了測試貫穿于整個開發過程的思想。A.W模型 B.V模型 C.H模型 D.X模型
2.在下面幾句中,判斷哪一個是正確的。(D)。A.測試工作應在編碼階段結束后開始。
B.測試設計工作與軟件開發活動是相互獨立、相互無關的。
C.測試腳本是指一個測試包,它由一組邏輯相關的測試用例組成。D.過度測試會影響進度和增加成本。
3.以下哪種測試方法屬于黑盒測試技術(C)。A.基本路徑測試 B.循環覆蓋測試 C.邊界值分析測試 D.語句覆蓋測試
4.程序功能說明中指出:由三個輸入數據表示一個三角形的三條邊長。根據黑盒法中的邊界值分析法設計測試用例,應選(D)。A.a=3,b=4,c=5 B.a=1,b=2,c=4 C.上述A、B項目都應選上 D.a=1,b=2,c=3 5.某程序功能說明中列出“規定每個運動員參賽項目為1——3項”,應用黑盒法中的等價類劃分法確定等價類是(D)。A.1<=項目數<=3 B.項目數<1 C.項目數>3 D.以上都是
6.如果某個程序的輸入數據的可能值劃分為n個合理等價類,m個不合理等價類,這些等價類均為數軸上的一個有限區間范圍,則采用邊界值測試方法至少需要(D)個測試用例。A.m+n B.2m+n C.2n+m D.2(m+n)7.在用白盒測試中的邏輯覆蓋法設計測試用例時,有語句覆蓋、分支覆蓋、條件覆蓋、判定-條件覆蓋、條件組合覆蓋和路徑覆蓋等,在下列覆蓋中,(D)是最強的覆蓋準則。A.語句覆蓋 B.條件覆蓋
C.判定-條件覆蓋 D.條件組合覆蓋 8.{ void SelectSort(datalist & list){ //對表list.V[0]到list.V[n-1]進行排序, n是表當前長度。
for(int i = 0;i < list.n-1;i++){ int k = i;
//在list.V[i].key到list.V[n-1].key中找具有最小關鍵碼的對象 for(int j = i+1;j < list.n;j++)if(list.V[j].getKey()< list.V[k].getKey())k = j;
//當前具最小關鍵碼的對象
if(k!= i)Swap(list.V[i], list.V[k]);//交換
} } 上面是選擇排序的程序,其中datalist是數據表,它有兩個數據成員:一是元素類型為Element的數組V,另一個是數組大小n。算法中用到兩個操作,一是取某數組元素V[i]的關鍵碼操作getKey(),一是交換兩數組元素內容的操作Swap():請問該程序段的McCabe環路復雜性為多少?(D)} A.2 B.3 C.4 D.5 9.對于傳統軟件來說,按集成粒度不同可以把集成測試分為(C)。①模塊間集成測試 ②類內集成測試 ③類間集成測試 ④子系統內集成測試 ⑤ 子系統間集成測試 A.①②③ B.②③④ C.①④⑤ D.②③⑤
10.在有關集成測試的敘述中,(A)是正確的。A.測試底層模塊時不需要樁模塊 B.驅動模塊的作用是模擬被調模塊 C.自頂向下測試方法易于設計測試結果
D.自底向上測試方法有有利于提前預計測試結果 11.系統測試中主要用到的測試技術是(B)A.回歸測試 B.黑盒測試 C.白盒測試 D.功能測試
12.不斷執行同樣的操作,如不停地啟動或關閉程序、反復讀寫數據或者選擇同一個操作。這種測試我們稱之為(B)測試。A.強度 B.重復 C.壓迫 D.重負
13.以下關于測試管理原則的描述中不正確的是(C)。A.實施全過程測試,有助于及時應對項目變化,降低測試風險。
B.軟件應全面測試,不僅對所有產品進行測試,還要求開發人員和測試人員全面參與。C.不能將測試過程從開發過程中抽象出來,作為一個獨立的過程進行管理。
D.盡早開展測試準備工作,能使測試人員較早了解測試難度、預測風險、提高效率。14.下面敘述中,哪一項不是測試項目管理者的職責?(B)。A.合理分配任務 B.負責建立測試環境 C.制訂測試策略
D.將已有經驗靈活應用到新項目中
15.下列所述的測試原則中,錯誤的是(D)。A.應設計非法輸入的測試用例 B.測試用例要給出測試的預期結果 C.因維護修改程序后需回歸測試 D.開發小組與測試小組合并
1.對于軟件測試分類,下列各項都是按照不同階段來進行的劃分,除了(C)。A.單元測試 B.集成測試 C.黑盒測試 D.系統測試
2.在軟件測試中,確認測試主要用于發現(B)階段的錯誤。A.軟件計劃 B.需求分析 C.軟件設計 D.編碼
3.(C)方法根據輸出對輸入的依賴關系設計測試用例。A.路徑測試 B.等價類 C.因果圖
D.邊界值分析
4.在功能測試中,假設求實數x的平方根,我們第1次輸入“最小的負實數”進行測試,第2次輸入“稍小于0”進行測試,第3次輸入0進行測試,第4次輸入“稍大于0”進行測試,第5次輸入“最大的正實數”進行測試,那么這種測試屬于(A)。A.邊界值分析法 B.絕對值分析法 C.相對值分析法 D.等價類劃分法
5.為了提高測試的效率,應該(D)。A.隨機地選取測試數據 B.取一切可能的輸入數據作為測試數據 C.在完成編碼以后制定軟件的測試計劃
D.選擇發現錯誤可能性大的數據作為測試數據
6.現有一個計算類型的程序,它的輸入只有一個Y,其范圍是—50≤Y≤50。現從輸入的角度考慮設計了一組測試用例:—100,100,0。設計這組測試用例的方法是(B)。A.條件覆蓋法 B.等價類劃分法 C.邊界值分析法 D.錯誤推測法
7.實際的邏輯覆蓋測試中,一般以(C)為主設計測試用例。A.條件覆蓋 B.判定覆蓋 C.條件組合覆蓋 D.路徑覆蓋 8.{ PROCEDURE averagy i = 1;total.input = total.valid = 0;sum = 0;DO WHILE value[i] <>-999 AND total.input < 100 increment total.valid by 1;IF value[i] >= minimum AND value[i] <= maximum THEN increment total.valid[i];ELSE skip;ENDIF Increment i by 1;ENDDO IF total.valid > 0 THEN averagy = sum / total.valid;ELSE averagy =-999;ENDIF END averagy 上面是一個求平均值的程序,請問該程序段的McCabe環路復雜性為多少?(C)} A.4 B.5 C.6 D.7 9.測試人員在提交軟件缺陷報告后,很可能發現開發人員對報告的缺陷存在異議。因此需要一個雙方認同的準則,用于判定軟件產品是否存在軟件缺陷。在實際的軟件項目工作中,我們通常采納的判定準則是(B)。A.測試人員提供的這個軟件缺陷的證據
B.軟件產品的運行結果與需求規格說明書不一致 C.可以客觀地描述這個軟件缺陷 D.軟件產品的運行結果與測試人員預期的不一致
10.從供選擇的答案中選出同下列關于軟件測試的各條敘述關系最密切的字句。
在測試具有層次結構的大型軟件時,有一種方法是從上層模塊開始,由上到下進行測試。此時,有必要用一些模塊替代尚未測試過的下層模塊。(A)A.樁 B.仿真器 C.模擬器 D.原型
11.集成測試時,能較早發現高層模塊接口錯誤的測試方法為(A)。A.自頂向下漸增式測試 B.自底向上漸增式測試 C.非漸增式測試 D.系統測試
12.系統測試一般從客戶角度考察和評價軟件產品的質量,不考慮開發方關注的質量特性。那么,下面那一個質量特性一般不是系統測試的重點?(D)A.是否符合有關的國家和行業標準 B.產品版本升級是否容易
C.軟件產品是否易于理解和使用 D.可復用的軟件部件所占的比例
13.同時啟動上百個模擬連接去請求服務器的服務,這種測試我們稱之為(D)測試。A.安全 B.重復 C.容量 D.壓力
14.在軟件質量概念中,不屬于測試要達到的目標為(D)A.確保建立了測試計劃,并按照測試計劃進行測試 B.確保測試計劃覆蓋了所有的系統規格定義和系統需求 C.確保經過測試和調試,軟件仍舊符合系統規格和需求定義 D.確保設計變更被正確的跟蹤、控制、文檔化
15.軟件測試是軟件質量保證的重要手段,下述哪種測試是軟件測試的最基礎環節?(B)A.功能測試 B.單元測試 C.結構測試 D.確認測試
1.提高測試的有效性十分重要,“高產”的測(C)。A.用適量的測試用例運行程序,證明被測程序正確無誤
B.用適量的測試用例運行程序,證明被測程序符合相應的要求 C.用少量的測試用例運行程序,發現被測程序盡可能多的錯誤 D.用少量的測試用例運行程序,糾正被測程序盡可能多的錯誤 2.在一個軟件項目中,開發人員主要承擔哪項工(D)A.驗收測試 B.系統測試 C.回歸測試 D.單元測試
3.某信息管理系統中,允許用戶輸入8位數字的市話號碼。如果使用等價類劃分法來設計測試用例,從保證測試效果的角度看,你認為哪一組是最佳的選擇(C)。A.63570007、80603805、100080、39103825 B.62570007、80603805 C.62570007、391038255、8252323、空值、h? D.39103825、8252323、@、*** 4.如果一個排序程序所設定的測試用例為:(1)表空
(2)表中只有一個元素
(3)表中均有相同的關鍵字值
(4)元素已排序,則此測試方法稱為(D)。A.等價類劃分法 B.邊界值分析法 C.因果圖法 D.錯誤推測法
5.軟件測試方法中,黑盒、白盒測試法是常用的方法,其中黑盒測試主要用于測試(B)。A.結構合理性 B.軟件的功能 C.程序正確性 D.程序內部邏輯
6.若有一個計算類型的程序,它的輸入量只有一個X,其范圍是[-1.0,1.0],現從輸入的角度考慮一組測試用例:-1.001,-1.0,1.0,1.001。設計這組測試用例的方法是(C)A.條件覆蓋法 B.等價分類法 C.邊界值分析法 D.錯誤推測法 7.{
int GetMax(int n, int datalist[ ])
{
intk=0;
for(int j=1;j if(datalist[j] > datalist[k])k=j; returnk; } 上面是一段求最大值的程序,其中datalist是數據表,n是datalist的長度。請問該程序段的McCabe環路復雜性為多少?(B)} A.2 B.3 C.4 D.5 8.使用程序設計的控制結構導出測試用例的測試方法是(B)A.黑盒測試 B.白盒測試 C.邊界測試 D.系統測試 9.集成測試也叫做(A)。①單元測試 ②部件測試 ③組裝測試 ④系統測試 ⑤確認測試 ⑥聯合測試 A.③⑥ B.①② C.⑤⑥ D.③④ 10.漸增式集成測試是將模塊一個一個地連入系統,每連入一個模塊(C)。A.只需要對新連入的模塊進行測試 B.都不需要再進行測試 C.要對新子系統進行測試 D.都要進行回歸測試 11.軟件開發公司組織各方面的典型用戶在日常工作中對軟件進行實際使用,并要求用戶報告異常情況,這種測試我們稱之為(C)。A.系統測試 B.α測試 C.β測試 D.綜合測試 12.單元測試是發現編碼錯誤,集成測試是發現模塊的接口錯誤,確認測試是為了發現功能錯誤,那么系統測試是為了發現(C)的錯誤。A.接口錯誤 B.編碼錯誤 C.性能、質量不合要求 D.功能錯誤 13.在實際的軟件項目工作中,測試人員運行測試用例,觀察運行結果,當發現軟件缺陷時提交軟件缺陷報告。那么,測試人員判定一個運行結果中存在缺陷的準則是(C)。A.這個運行結果與測試人員預期的不一致 B.測試人員可以從中找到缺陷的證據 C.這個運行結果與測試用例中的預期結果不一致 D.開發人員承認這個運行結果中存在缺陷 14.軟件測試計劃開始于需求分析階段,完成于(B)階段。A.需求分析 B.軟件設計 C.軟件實現 D.軟件測試 15.與設計測試用例無關的文檔是(A)。A.項目開發計劃 B.需求規格說明書 C.設計說明書 D.源程序 1.下面說法正確的是(C)。 A.經過測試沒有發現錯誤說明程序正確 B.測試的目標是為了證明程序沒有錯誤 C.成功的測試是發現了迄今尚未發現的錯誤的測試 D.成功的測試是沒有發現錯誤的測試 2.不屬于白盒測試的技術是(C)。A.語句覆蓋 B.判定覆蓋 C.邊界值分析 D.基本路徑測試 3.單元測試主要針對模塊的幾個基本特征進行測試,該階段不能完成的測試是(A)。A.系統功能 B.局部數據結構 C.重要的執行路徑 D.錯誤處理 4.軟件測試過程中的集成測試主要是為了發現(B)階段的錯誤。A.需求分析 B.概要分析 C.詳細設計 D.編碼 5.軟件測試不需要了解軟件設計的(D)。 A.功能 B.內部結構 C.處理過程 D.條件 6.(C)方法根據輸出對輸入的依賴關系設計測試用例。A.路徑測試 B.等價類 C.因果圖 D.邊界值分析 7.通常,在(D)的基礎上,將所有模塊按照設計要求組裝成系統 A.組裝測試 B.系統測試 C.驗收測試 D.單元測試 9.使用白盒測試方法時,確定測試數據應根據(A)和指定的覆蓋標準。 A.程序內部邏輯 B.程序的復雜度 C.使用說明書 D.程序的功能 10.與設計測試用例無關的文檔是(A)。A.項目開發計劃 B.需求規格說明書 C.設計說明書 D.源程序 1.負載測試是驗證要檢驗的系統的能力最高能達到什么程度。錯 2.健壯性測試的測試重點為當出現故障時,是否能夠自動恢復或忽略故障繼續運行。對 3.可用性測試是對于用戶友好性的測試,是指在設計過程中被用來改善易用性的一系列方法。對 4.軟件測試管理原則之一是全面測試,它的含義:一是對軟件的所有產品進行全面的測試;二是測試人員應對測試的全過程進行全程的跟蹤。錯 5.程序代碼編寫完成之后,軟件測試工作開始。錯 6.軟件測試是測試人員的事,與開發人員無關。錯 7.軟件的Bug就是指程序運行時出現的故障。錯 8.在n個變量的程序中,用邊界值分析法設計測試用例,測試用例的個數為4n+1。對 9.缺陷狀態為“已解決”表示該缺陷已經被測試人員回歸測試完畢,準備歸檔移除。錯 10.處于“已解決”狀態的缺陷,下一步狀態只能是“重新提交”或者“已關閉”。對 1.在進行負載測試的同時進行安全性測試是不合情理的。錯 2.在性能測試中,如果發現SQLServer資源監控中的一個指標緩存點擊率偏高,這說明系統運行效率較高。對 3.在程序有修改的情況下保證原有功能正常的一種測試方法是回歸測試。對 4.所有測試的標準都是建立在用戶需求之上。對 5.黑盒測試用例在軟件編碼完成后才可以設計。錯 6.軟件測試技術要求不高,至少比編程容易多了。錯 7.設計-實現-測試,軟件測試是開發后期的一個階段。錯 8.在n個變量的程序中,采用健壯性邊界值分析法設計測試用例,測試用例的個數為6n+1。對 9.缺陷狀態為“打開”表示該缺陷已被開發人員看到。對 10.缺陷狀態為“已拒絕”表示該缺陷開發人員拒絕修改。對 1.系統測試的目標是要找出軟件在與系統其他部分協調工作時出現的所有故障。錯 2.壓力測試是通過逐步增加系統負載來測試系統性能的變化,并最終確定在什么負載條件下系統性能處于失效狀態,以此來獲得系統性能提供的最大服務級別的測試。對 3.安全性測試最終證明應用程序是安全的。錯 4.軟件開發是一個漸進的過程,測試計劃需要根據需求變更及時調整。對 5.項目立項前測試人員不需要提交任何工件。對 6.軟件測試隨便找一個能力差的人就能做。錯 7.永遠也不可能完成軟件測試,這個重擔將從開發方轉移到客戶/用戶的身上,用戶的每一次使用就是一次測試。對 8.當被測軟件仍存在嚴重影響系統功能實現的缺陷,但存在合理的更正辦法時,該軟件可以發布。錯 9.缺陷狀態為“打開”表示該缺陷剛提交,開發人員還未看到該缺陷。錯 10.處于“已拒絕”狀態的缺陷,下一步狀態只能是“重新提交”或者“已關閉”。對 1.性能測試的重點在于前期數據的設計與后期數據的分析。對 2.通常使用平均無故障時間MTBF來衡量系統的可靠性。對 3.先對每個模塊分別測試,然后統一組裝成軟件系統的方法稱為漸增式測試。錯 4.測試計劃是做好測試工作的前提。對 5.如果發布出去的軟件有質量問題,那是軟件測試人員的錯。錯 6.有時間就多測試一些,來不及就少測試一些。錯 7.當用于軟件測試的時間或資金不夠用時,就完成了軟件測試。錯 8.當被測軟件仍存在嚴重影響系統功能實現的缺陷,但不存在合理的更正辦法時,該軟件可以發布。錯 9.缺陷狀態為“已解決”表示該缺陷已經被開發人員修改好,但是測試人員還未進行回歸測試。對 10.處于“打開”狀態的缺陷,下一步狀態只能是“已解決”或者“已拒絕”。對 一、方法論模型。 1、BOOCH、OMT、OOSE、Coad-Yourdon(前三者組成UML) 2、UML包括9種圖,分別為用例圖、靜態圖(包圖、類圖、對象圖)、實現圖(構件圖、部署圖)、行為圖(活動圖、狀態圖、交互圖(順序圖、協作圖))基本規范,泛化關聯,包含關聯,擴展關聯 3、基本模型——類圖、需求模型——用例圖、輔助模型——其他各種圖 4、兩大工具:Rose、PowerDesigner 5、方法三要素:模型、工具和過程 6、結構化分析三視圖模型E-R、DFD、STD 7、OMT方法的三大模型:對象模型、功能模型、動態模型 8、Coad/Yourdon方法的五大層次:對象-類、結構、主題、屬性、服務 二、基本建模(類圖與對象圖) 1、類之間的關系:關聯關系、依賴關系、泛化關系。 2、抽象類與接口:抽象類有些方法可以提供實現代碼,接口所有的方法都沒有提供實現代碼。抽象類只能被繼承,接口只能被實現。 3、類的版型:實體類(數據庫、文件等)、邊界類(如窗體、對話框)、控制類(協調交互) 三、需求建模(用例圖) 1、參與者指系統以外的、需要使用系統或與系統交互的外部實體。可以分為:人、外部設備、外部系統。 2、參與者之間的關系:泛化關系,參與者與用例之間的關系:關聯關系。用例之間的關系:泛化關系,包含關系,擴展關系。包含關系和擴展關系都是依賴關系的特例。 3、用例是對一個參與者使用系統的一項功能時所進行的交互過程的一個文字描述序列。是參與者可以感受到的系統服務或功能單元。 4、用例描述是一個關于參與者與系統如何交互的規范說明(包含用例用例名稱、用例描述、基本事件流、參與者、前置后置條件等) 5、用例的進一步描述:活動圖、順序圖(通信圖) 四、行為建模(狀態圖與活動圖) 1、行為模型包括:狀態模型(狀態圖,單對象)、活動模型(活動圖,多對象)、交互模型(順序圖,多對象)。 2、調用事件表示的是對操作的調用,變化事件一個布爾表達式變量的值發生變化。時間事件滿足某一時間表達式的情況的出現。信號事件就是由一個對象異步地發送、并由另一個對象(即狀態圖所對應的對象)接收的已命名的實體。調用事件狀態圖內對象和外部對象都能發起,信號事件只能由外部發起。 3、對象處于不同的狀態,導致后續要執行不同的操作。這些操作可能歸屬于不同的用例。一個用例的執行對應一個順序圖。順序圖刻畫了多個對象之間的消息發送關系。需要多個用例的順序圖,來融合地描述一個對象的完整狀態圖。 4、活動表示的是某流程中的任務的執行,它可以表示某算法過程中語句的執行。 5、分叉表示的是一個控制流被兩個或多個控制流代替,經過分叉后,這些控制流是并發進行的。匯合正好與分叉相反,表示兩個或多個控制流被一個控制流代替。 6、泳道(swimlane)是活動圖中的區域劃分,根據每個活動的職責對所有活動進行劃分,每個泳道代表一個責任區。關心的是其所代表的職責。 7、活動圖用途:對業務過程進行建模。對某個方法具體過程建模。 8、狀態與活動的區別:狀態是一個對象所處的境況。通常是執行了一個(或多個)活動后的結局。活動是一段程序代碼的執行,對應于若干個步驟的集成。不同的狀態會導致不同的功能(對應于若干個活動)的執行。一個方法可能需要多個(也可以是一個)活動來完成。一個活動只能屬于一個方法。一個用例對應于若干個活動。 五、交互建模(順序圖和協作圖) 1、靜態結構使用類圖,動態結構使用順序圖、協作圖、狀態圖、活動圖。 2、對象:同類圖中的對象,是類的實例 生命線:從對象圖標向下延伸的一條虛線,表示對象存在的生命期 控制焦點(激活期):對象執行一個動作的時間段 消息:對象間的一次通信 調用消息的發送者把控制傳遞給消息的接收者,然后停止活動,等待消息接收者放棄或返回控制。調用消息可以用來表示同步的意義。 3、順序圖一般對應一個用例。一個類中的職責對應該對象執行一個動作。 4、對象:同類圖中的對象,是類的實例 ;鏈:對象之間的連接關系;消息:對象間的一次通信;對象生命周期:對象名稱之后標以{new}約束表示創建對象,標以{destroy}約束表示銷毀對象 5、協作圖的建模同順序圖的建模,或者:可以從順序圖直接變換過來,或者:根據類圖,畫出對應的對象圖。在鏈上附著消息。 6、順序圖和協作圖的聯系:都用于描述系統中對象之間的交互協作完成一項功能,彼此可以相互轉換。區別:順序圖強調的是消息的時間順序;協作圖強調的是對象的空間位置關系。順序圖中有對象生命線和控制焦點;協作圖中有路徑,消息必須要有消息順序號。順序圖可以表示生命線的分叉;協作圖可以表示多對象、主動對象。 西南交通大學軟件項目管理期末復習 第一章、第二章(略)第三章 1、軟件過程模型的特征: 原型模型:創新性項目;技術攻關;快速驗證。線性模型:一般性的軟件開發過程(可定量管理)增量模型:軟件產品。(可定量管理) 2、軟件過程的選擇依據 ? 軟件需求的確定性程度 ? 似軟件項目的開發經驗 ? 軟件項目的性質(項目類型/產品類型)? 客戶的時間要求。 3、軟件管理與工程的區別 工程:專注于事,專注于過程,專注于實施 管理:專注于人,專注于結果,專注于協調 4、軟件管理要解決的問題 ? 目標問題? 范圍問題? 資源問題? 組織問題? 計劃問題? 實施控制 第四章 1、管理的地位 低于決策層而高于執行層 2、管理的基本職能 領導、組織、計劃、指揮(控制)、協調 3、管理的過程 分析、計劃、實施控制、總結檢查 戴明環:計劃、執行、檢查、改進 第五章 組織+流程=業務 項目是一種旨在創造某種獨特產品或服務的臨時性努力。2 項目的內容 ? 項目目標 ? 項目范圍 ? 項目時間 ? 項目投入 ? 項目質量 ? 項目風險 項目管理:是通過項目經理和項目組織的努力,運用系統 理論和方法對項目及其資源進行計劃、組織、協調、控制,旨在實現項目的特定目標的管理方法體系。4 項目管理的內容 ? 定義項目 ? 制定項目計劃 ? 項目組織實施 ? 項目控制 ? 項目的結束 5 項目管理的特點 ? 項目管理是一項復雜的工作。? 項目管理具有創造性。? 項目管理需要集權領導和建立專門的項 目組織。? 項目負責人在項目管理中起著非常重要 的作用。6 項目管理的理解 ? 項目管理是一種管理方法體系。 ? 項目管理對象是項目,目的是更好地實現項目目標。? 項目管理的任務、職能:對資源進行計劃、組織與控制。 ? 項目管理職能主要是由項目經理執行的。 第六章 1 項目管理的核心內容 ? 項目范圍管理? 項目時間管理? 項目成本管理 2 項目的基本目標 – 技術目標(內容、質量)– 經濟目標(成本、利潤) – 時間目標(完成時間、交付時間)3 項目目標的概括 ? 項目的基本目標:在規定的時間內,在規定的經費預算內,保證項目 任務符合質量地完成。 ? 項目 基本目標中,包括了范圍、時間與經費的要求。對應這三項基本 目標三大管理領域:項目范圍管理、項目時間管理、項目成本管理。 第七章項目的啟動與組織 1、立項申請。 2、組建項目組 2.1組織設計原理 ? 組織設計的目的是解決勞動分工的問題。 ? 組織設計的任務是提供組織結構圖和編制職務說明書。 ? 組織設計要點: – 職務設計與分析 – 部門劃分 – 結構的調整與平衡 ? 組織設計的原則 – 因事設職與因人設職相結合 – 權責對等的原則 – 命令統一的原則 2.2項目的組織模式 職能式、項目式、矩陣式、混合式 軟件項目組的角色 – 項目經理 – 架構設計師(總工/技術負責人)– 設計人員 – 程序員 – 配置人員 – 測試人員 2.3項目經理應具備的素質 領導能力 溝通能力 談判能力 問題解決能力 影響組織能力 3、策劃/制作任務書 項目任務書:描述、里程碑、評價標準、假設與約束條件、利益干系人 4、項目開工會 第八章 范圍管理 1、范圍管理的三大工作:項目范圍的識別、安排、控制 2、一個思維——自頂向下,逐步細化 一個分析工具——層次方框圖 3、軟件生命周期與項目生命周期的區別 4、軟件產品的結構 ? 軟件產品結構是用戶需求的概覽; ? 需求分析是軟件產品范 圍核定的主要方法,由 需求規格說明書進行描述。? 需求規格書的主要內容: – 功能要求 – 性能要求 – 運行環境要求 ? 需求規格決定了產品范圍 5、軟件項目的工作結構——WBS ? 軟件生命周期、項目生命 周期決定了軟件的工作結構;工作結構決定了項目 范圍。 ? 項目范圍是指交付具有規定特征和功能的產品或服務所必須完成的工作。 ? WBS的用途 – 項目范圍控制 – 工作任務分配 – 資源分配 – 計劃制定 – 費用估算 ? WBS分解原則:可執行、全覆蓋、80小時原則 6、項目范圍的安排:項目計劃 ? 項目計劃的內容:任務安排、時間安排、資源安排 ? 任務的先后順序及時間需求是項目時間、資源計劃的基礎。 ? 注意可平行執行的任務與具有先后順序的任務。 第九章 時間管理 1、三大工作:項目活動的時間分析、項目時間的計劃、項目進度的控制 2、時間管理的五個主要過程 2.1活動定義 --確定為完成各種項目可交付成果所必須進行的諸項具體活動 2.2活動順序 --確定活動之間的依賴關系,并形成文檔; 2.3活動時間估算 --估算完成單項活動所需要的工作時段數; 2.4制定進度計劃 --分析活動順序、活動歷時和資源需求,編制進度 計劃; 2.5進度計劃控制 --控制項目進度計劃的變化。 3、項目活動圖 項目活動圖是項目活動及其邏輯關系(依賴關系)的圖解表示。 3.1箭頭圖 基本符號: 活動(任務),箭線表示,箭尾i表示作業開始,箭頭表示作業結束。事件,用 “○”表示,“○”是兩條或兩條以上箭線的交結點,又稱為結點。 路徑,自活動始點開始,順著箭線的方向,經過一系列連續不斷的作業和事件直至網絡終點的通道。 一條路線上各項作業的時間之和是該路線的總長度(路長)。 關鍵路徑,在一個網絡圖中有很多條路線,其中總長度最長的路線稱為“關鍵路線”,關鍵路線上的各事件為關鍵事件,關鍵時間的周期等于整個工程的總工期。 3.2前導圖 ?基本符號: ? 項目任務,由矩形節點表示。? 箭頭,代表任務之間的依賴關系。? 節點的描述 ? 最早開始時間(ES)? 最遲開始時間(LS)? 最早結束時間(EF)? 最遲結束時間(LF)。 浮動時間性是關于活動的機動性的術語,它是一個活動在不影響項目完成時間下可以延遲的時間量。 浮動時間的計算 PLOAT TIME=LS-ES=LF-EF ? 關鍵路徑 是決定項目歷時的一系列活動,是項目整個過程中最長的路徑。浮動時間小于或等于某指定值(通常是0)的活動來確定關鍵路徑,關健路徑上的任何活動延遲,都會導致整個項目完成時間的延遲,代表可以完成項目的最短時間量。關健活動,關健路徑上的任一個活動均是關健活動。 4、進度計劃 4.1進度計劃表 4.2進度計劃圖 5、資源分配 5.1資源是指人員、設備和材料 5.2 資源分配是向一個項目的活動指派資源 5.3資源表:將所需每種資源的多少量化。 5.4資源甘特圖:類似于甘特圖,確定一個活動所用資源的時間段。5.5 資源柱狀圖: 也稱資源負荷圖,用于表明所需資源的總數。 6、兩類不同計劃方法的項目:受資源約束的進度計劃與受時間約束的進度計劃 6.1 基于資源的方法(也稱受資源約束的進度計劃):將可利用的資源分 配到活動,根據所識別的資源的可利用性,允許改變網絡進度計劃,歷時可能會延長。 6.2受時間約束的進度計劃:網絡進度是固定的。缺少活動所需的資源用 負的浮動時間表示,浮動時間可能會變成負值。 7、進度控制 7.1進度記載 基于網絡計劃的進度記載 1、各活動實際作業時間記載 2、各活動實際開始、結束日期記載 3、已完活動記載 4、繪制實際網絡圖 7.2計劃檢查 檢查關鍵路徑的情況; ? 檢查其它路徑的情況,查看是否有新的關鍵路徑; 7.3計劃調整 ? 調整方法 – 采取組織措施或技術措施縮短關鍵路徑上的后繼作業時間; – 重新安排活動次序,調整力量,重新編制網絡計劃。?歷時壓縮:如何縮短進度計劃 ? 趕工:采取措施壓縮項目總歷時,在成本與進度間權衡,向關鍵活動增加資源,趕工經常會增加成本。 ? 快速跟進:通常按順序進行的活動,如設計和施工,因為要壓縮項目進度,而將其重疊安排。快速跟進常常要重新返工,通常會增加風險。 ? 趕工與快速跟進,首先均是在關鍵路徑上進行,一旦壓縮了歷時,就要重新檢查關健路徑。歷時壓縮后,可能出現新的關健路徑。 ?資源利用:如何提高資源使用率或生產率 ? 加班工作:增加勞動力費用,可能會降低生產率。? 倒班工作:提高設備使用率。? 學習曲線:重復的工作可以提高生產率。 第十講 成本管理 1、三大工作 項目成本分析與估算、項目成本計劃(財務預算)、項目成本控制 2、成本管理與范圍界定 項目范圍是項目成本估算的依據,項目成本估算反作用于項目范圍,如根據估算結果更改項目范圍。 3、項目成本估算過程 3.1估算依據 ? WBS ? 資源需求 ? 活動工期 ? 估算資料 ? 歷史信息 ? 成本會計科目 ? 已識別風險 3.2 成本估算 ? 類比估算法 以過去類似活動的參數值或規模指標為基礎,估算未來活動。 ? 參數估算法 利用歷史數據(如軟件的代碼行數)之間的統計關系來估算范圍、成本,計劃工作量ⅹ歷史單位成本=活動成本 ? 自下而上估算法 對工作組成部分進行估算,最后匯總得到整個工作的總投入。 ? 三點估算法 ?最可能的時間(Tm)、最樂觀時間(To)、最悲觀時間(Tp),按公式(To+4Tm+Tp)/6 3.3成本計劃 ?成本管理計劃(財務預算) 4、財務管理工具 4.1資產負債表 4.2現金流量表 4.3利潤表 4.4會計科目 5、項目融資 股權融資+債券融資= 項目融資 6、項目成本控制 6.1項目成本控制涉及對于各種能夠引起項目成本變化因素的控制(事前控制),項目實施過程的成本控制(事中控制)和項目實際成本變動的控制(事后控制)三個方面。6.2控制依據: ? 項目成本基線; ? 項目的成本管理績效報告; ? 項目的變更請求; ? 項目成本管理計劃。 6.3項目成本控制的關鍵是項目不確定性成本的控制。項目不確定性成本控制的根本任務是識別和消除不確定性事件,從而避免不確定性成本發生。6.4項目不確定性成本的成因: ? 項目具體活動本身的不確定性(可發生或不發生); ? 活動規模及其所耗資源數量的不確定性; ? 項目活動所耗資源價格的不確定性(價格可高可低)。 第十一章 軟件項目計劃管理 1、計劃階段任務 工作分解結構-活動排序-資源工期成本估算-進度計劃-風險溝通計劃-項目計劃 2、工作分解結構 2.1分解原則 完全窮盡,彼此獨立 2.2最底層的特征 一個清晰的任務完成,一個清晰的責任人,能夠估算工作量和工期,長度小于80小時 2.3 WBS與責任落實 3、活動排序 3.1 方法 按照客觀規律排序、按照目標要求排序、按照輕重緩急排序、按照項目內在關系。3.2技巧 利用WBS,由低到高 3.3工期 4、前導圖(PDM)資源、工期和成本估算 4.1資源類型:人員、物資、技術 4.2 考慮因素:我需要什么?什么時候需要?需要多少?由誰拍板? 4.3 估算方法: 參照第十章3.2+專家判斷法 5、進度計劃 5.1 進度計劃:根據WBS、活動排序、工期估算和所需資源的結果進行分析,制定出項目計劃。5.2 工具 甘特圖法與關鍵路徑法(參照第九章3.1) 6、風險溝通計劃 6.1識別風險 頭腦風暴法 6.2評估風險等級 用高、中、低評價考慮發生的可能性、對項目產生的影響。6.3制定風險響應計劃 規避、轉移、減輕、接受 6.4溝通計劃 “四個適當”—適當時間將適當信息通過適當的渠道發送給適當的利益干系人。溝通原則:及時準確,信息量恰到好處 7、項目計劃 7.1關鍵點: 明確項目范圍、全面的風險識別、各關鍵干系人的識別和溝通計劃 7.2常見問題: 對任務的分解不充分 風險防范意識不強和沒有溝通計劃 計劃通常由個人制定,沒有達到團隊共識 第十二章 質量管理1、2、三個過程:質量計劃編制-質量保證-質量控制 PDCA循環(By戴明) 計劃(Plan)→實施(Do)→檢查(Chick)→行動(Act)→計劃(Plan) 3、質量計劃編制 3.1 輸入:關于質量的組織政策、特定的項目范圍 說明書、產品描述、相關標準和準則。 3.2 輸出:質量管理計劃和為確保整個項目生命周期質量的各種檢查表 3.3 IT項目中影響質量的范圍部分包括 – 功能性 – 特色 – 系統輸出 – 性能 – 可靠性 – 可維護性 4、質量保證 4.1 質量保證包括與滿足一個項目相關的質量標準有關的所有資源與活動。4.2 工具 ? 實驗設計:也可以用來幫助保證和提高產品質量 ? 基準比較分析法:是用于質量改進的技術,它是將具體項目時間或產品特性與那些在項目執行組織內部或外部的其他項目或產品的相應特性進行比較,從而產生質量改進的思想。 ? 質量審計:是對特定質量管理活動的結構化審查,找出教訓,改進現在或將來項目的執行。 5、質量控制 5.1質量控制:指監視項目的具體結果,確定其是否符合相關 的質量標準,并判斷如何杜絕造成不合格結果的根源。質量控制應貫穿于項目的始終。5.2輸入:接受決策、返工和過程調整。 – 接受決策:作為項目一部分而生產的產品或服務是否被接受或拒 絕。– 返工:指采取行動,是拒收事項達到和滿足產品需求或規范或干 系人的其他期望。返工非常昂貴,要盡量避免。– 過程調整:是指在質量控制度量的基礎上,糾正或防止進一步質 量問題的發生。 5.3 質量控制工具 5.3.1帕累托圖: 5.3.2 6σ標準: 標準差在質量控制上很重要,因為它是一個決 定有缺陷個體的可接收數據的關鍵因素。6σ很常用。 5.3.3 測試 – 單元測試 – 綜合測試 – 系統測試 – 用戶驗收測試 6、CMM/CMMI 6.1 CMM:軟件能力成熟度模型 CMMI:綜合能力成熟度模型 6.2基本原理 CMM強調連續的軟件過程改進。該連續的改進基于多個演化步驟。CMM將這些演化步驟劃分成五個級別。這種分級結構的理論依據是軟件質量原理。每一級別都包括若干目標。當滿足某一目標后,軟件過程的相應部分便確定下來。五級成熟度定義了一個標準,用以度量機構的軟件過程成熟度和評價其軟件過程能力。 6.3基本內容 ? 機構和資源的管理:涉及機構本身的責任,人員和其它資源設施。 ? 軟件工程過程及其管理:涉及軟件工程過 程,即軟件過程的深度、范圍和完整性以 及如何度量、管理和改進這樣的過程。 ? 工具和技術:軟件工程過程中使用的開發 工具和技術。 6.4CMM的五個成熟度級別 ? 初始級 : 混沌 ? 可重復級:有規章、經過訓練的過程 ? 定義級:標準化、一致的過程 ? 管理級:可預測過程 ? 優化級:可持續改進的過程 6.5關鍵實施KP ? 關鍵過程域KPA(Key Process Areas) 一組相關聯的活動;通過執行這些活動可以實現既定的過程能力。 ? 關鍵實施KP(Key Practices) 使關鍵過程域得以有效實現和制度化的最大的基礎設施和活動。 除第一級外,SW-CMM的每一級都是按完全相同的結構組 成的。每一級包含了實現這一級目標的若干關鍵過程域(KPA),每個KPA進一步包含若干關鍵實施活動(KP),無論 哪個KPA,它們的實施活動都統一按五個公共屬性進行組織。 1、目標 每一個KPA都確定了一組目標,若這組目標在每一個項目都能實現,則 說明企業滿足了該KPA的要求。若滿足了一個級別的所有KPA要求,則表明達到了這個級別 所要求的能力。 2、實施能力 實施能力一般包括資源保證、人員培訓等內容。它是企業實施KPA的前提條件。企業必須采取措施,在滿足了這些條件后,才有可能執行KPA的活動。 3、執行活動 執行過程描述了執行KPA所需求的必要角色和步驟,一般包括計劃、執行的任務、任務執行的跟蹤等。在五個公共屬性中,執行活動是唯一與項目執行相關的屬性,其余四個屬性則涉及企業CMM能力基礎設施的建立。 4、度量分析 描述了過程的度量和度量分析要求。典型的度量和度量分析的要求是確定執行活動的狀態和執行活動的有效性。 5、實施驗證 驗證執行活動是否與建立的過程一致。實施驗證涉及到管理的評審和審計以及質量保證活動 6.6 五個公共屬性 第十三章 軟件項目的實施、監控與收尾 1、實施、監控階段任務 溝通--項目監控--變更管理 2、溝通 2.1組內溝通 溝通需求:職責、授權、協調、狀態。 會議:項目開工會、成員進度匯報、項目進展回(及時公開恰到好處)2.2 與高層、客戶溝通 誰?為什么需要信息?需要什么樣的信息?何種詳盡程度?頻度如何?你的目標?什么樣的方法? 2.3 項目溝通要點 全體成員達成共識、溝通項目計劃、規則,互相尊重,主動傾聽,雙贏。 3、項目監控 3.1 監控要點--高風險的任務 --與項目里程碑有關的進展--使用的資源和費用--人員的表現 3.2監控的方法和工具 項目進度計劃表、會議、觀察檢查、跟蹤行動計劃、定期反饋及報告 4、變更管理 4.1變更源頭 委托人:新的想法和欲望 團隊:沖突 優先級:市場、其他項目影響 其他:法規、環境、企業變革等 4.2變更過程 提交變更申請-申請影響分析-評審分析結果-批準-實施變更,跟蹤及發布動態 5、項目收尾 5.1評估與驗收 財務、時間、質量、人力資源、環境、項目計劃、項目控制 5.2 項目總結 5.3文件歸檔 第十四講 企業人才類型與素質結構 高級技術人才:預備程序員-初級程序員-中級程序員-高級程序員-設計員-分析員-架構師 高級管理人才:預備程序員-配置經理-SQA經理-產品經理-研發部經理 高級綜合人才:預備程序員-項目組長-項目負責人-項目經理-項目總監-技術總監第四篇:《軟件系統分析與設計》期末復習知識點總結
第五篇:《軟件項目管理》期末復習知識點總結