以下是由本站網小編為您整理推薦的《企業面試題試卷附帶答案》正文,歡迎閱讀參考。
1.試述軟體的概念和特點?軟體複用的含義?構件包括哪些?
2.瀑布模型和螺旋模型的主要區別是什麼?
3.軟體生存週期及其模型是什麼?
4.什麼是軟體測試?軟體測試的目的與原則
5.淨室軟體工程的策略是什麼?
6.軟體配置管理的作用?軟體配置包括什麼?
7.什麼是軟體質量?軟體包是什麼?
8.目前主要的測試用例設計方法是什麼?
9.軟體的安全性應從哪幾個方面去測試?
1、答案如下:
a)軟體是計算機系統中與硬體相互依存的另一部分,它是包括程式、文件的完整集合。
b)軟體複用(Software Reuse)是將已有軟體的各種有關知識用於建立新的軟體,以縮減軟體開發和維護的花費。軟體複用是提高軟體生產力和質量的一種重要技術。早期的軟體複用主要是程式碼級複用,被複用的知識專指程式,後來擴大到包括領域知識、開發經驗、設計決定、體系結構、需求、設計、程式碼和文件等一切有關方面。
c)可以被複用的軟體成分一般稱作可複用構件
2、答案如下:
a)參照TP書上第六章45/46頁的講解,參考一下書上的說法進行對比即可。考慮彈性、風險、成本,等幾個方面。
3、答案如下:
a)軟體生存週期是軟體開發全部過程、活動和任務的結構框架,是從可行性研究到需求分析、軟體設計、編碼、測試、軟體釋出維護的過程。
b)在經歷需求、分析、設計、實現、部署後,軟體將被使用並進入維護階段,直到最後由於缺少維護費用而逐漸消亡。這樣的一個過程,稱為”生命週期模型”(Life Cycle Model)。
4、答案如下:
a)使用人工或自動手段,來執行或測試某個系統的過程。其目的在於檢驗它是否滿足規定的需求或弄清預期結果與實際結果之間的差別。
b)軟體測試的目的:
i.測試是程式的執行過程,目的在於發現錯誤
ii.一個成功的測試用例在於發現至今未發現的錯誤
iii.一個成功的測試是發現了至今未發現的錯誤的測試
iv.確保產品完成了它所承諾或公佈的功能,並且使用者可以訪問到的功能都有明確的書面說明。
v.確保產品滿足效能和效率的要求
vi.確保產品是健壯的和適應使用者環境的
c)軟體測試的原則:
教材的說法:
i.軟體測試應儘早執行,並貫穿於整個軟體生命週期
ii.軟體測試應追溯需求
iii.測試應由第三方來構造
iv.窮舉測試是不可能的,要遵循Good-enough原則
v.必須確定預期輸出(或結果)
vi.必須徹底檢查每個測試結果
vii.充分注意測試中的群集現象
viii.缺陷的二八定理
ix.嚴格執行測試計劃,排除測試的隨意性
x.注意合法合理的輸入,也要注意非法的非預期的輸入
xi.檢查程式是否是否做了不該做的
xii.測試應從“小規模”開始,逐步轉向“大規模”
xiii.反覆使用同樣的測試會使軟體具有抵抗力
xiv.關注缺陷的修復
另一種說法:
i.應當把“儘早和不斷地測試”作為開發者的座右銘。
ii.程式設計師應該避免檢查自己的程式,測試工作應該由獨立的專業的軟體測試機構來完成。
iii.設計測試用例時,應該考慮到合法的輸入和不合法的輸入,以及各種邊界條件,特殊情況下要製造極端狀態和意外狀態,比如網路異常中斷、電源斷電等情況。
iv.一定要注意測試中的錯誤集中發生現象,這和程式設計師的程式設計水平和習慣有很大的關係。
v.對測試錯誤結果一定要有一個確認的過程。一般有A測試出來的'錯誤,一定要有一個B來確認,嚴重的錯誤可以召開評審會進行討論和分析。
vi.制定嚴格的測試計劃,並把測試時間安排得儘量寬鬆,不要希望在極短的時間內完成一個高水平的測試。
vii.迴歸測試的關聯性一定要引起充分的注意,修改一個錯誤而引起更多錯誤出現的現象並不少見。
viii.妥善儲存一切測試過程文件,意義是不言而喻的,測試的重現性往往要靠測試文件。
5、答案如下:
a)增量計劃。開發一個採用增量策略的專案計劃,建立每個增量的功能、它的專案大小、以及淨室開發進度表。必須特別小心以保證通過認證的增量將被定時整合。
b)需求收集。使用類似於在第11 章引入的技術,為每個增量開發一個客戶級需求的更詳細的描述。
c)盒結構規約。使用一個運用盒結構的規約方法[HEV93]來描述功能規約。遵從操作分析原則,盒結構“在每一個精化級別上分離和分開行為、資料及過程的創造性定義”。
d)形式化設計。使用盒結構方法,淨室設計是規約的自然的無縫的擴充套件。雖然,在兩個活動間可進行清楚的區分,但是,規約(稱為“黑盒”)是被遞進地求精(在一個增量內)以成為類似於體系結構的和過程的設計(分別稱為“狀態盒”和“清晰盒”)。
e)正確性驗證。淨室小組對設計及程式碼進行一系列嚴格的正確性驗證活動。驗證從最高層次的盒結構(規約)開始,然後移向設計細節和程式碼。正確性驗證的第一層次通過應用一組“正確性問題”[LIN88]來進行,如果這沒有證明規約是正確的,則使用更形式化的(數過學的)驗證方法。
f)程式碼生成、檢查和驗證。以某種專門語言表示的盒結構規約被轉換為合適的程式設計語言。然後,使用標準的走查或檢查技術(第8 章)來保證程式碼和盒結構的語義相符性,以及程式碼的語法正確性。然後,對原始碼進行正確性驗證。
g)統計性測試計劃。分析軟體的專案級使用情況,計劃和設計一組執行用途的“概率分佈”的測試用例(25.4 節)。如圖25-1 所示,這個淨室活動是和規約、驗證及程式碼生成並行進行的。
h)統計性使用測試。記住,對計算機軟體進行徹底測試是不可能的,因此,總需要設計有限數量的測試用例。統計性使用技術[POO88]執行一系列由特定物件的所有使用者的所有可能的程式執行的統計樣本(上面提到的概率分佈)所匯出的測試。認證。一旦完成驗證、檢查和使用測試(並且所有錯誤被修正),則開始進行增量整合前的認證工作。
6、答案如下:
a)軟體配置管理作為軟體開發過程的必要環節和軟體開發管理的基礎,貫穿整個軟體生命週期,同時對軟體開發過程的巨集觀管理即專案管理也有重要的支援作用。一個軟體開發組織真正有效的實施軟體配置管理,將會使軟體開發過程有更好的可預測性,使系統具有可重複性,大大提高軟體組織的競爭力。
b)軟體配置包括如下內容:
i.配置項識別
ii.工作空間管理
iii. 版本控制
iv. 變更控制
v. 狀態報告
vi. 配置審計
7、 答案如下:
a) 簡單的說:軟體質量:軟體產品的特性可以滿足使用者的功能、效能需求的能力。
比較長的說法:
現代質量管理認為,質量是客戶要求或者期望的有關產品或者服務的一組特性,落實到軟體上,這些特性可以是軟體的功能、效能和安全性等等。這些特性決定了軟體產品保證客戶滿意的能力,並且,這些特性應該是可以度量的。
我們還可以從另一個角度,即軟體產品是如何生產出來的,來間接的推斷軟體質量。我們稱之為軟體的流程質量,以有別於前面所說的軟體產品質量。所謂流程,我們可以將其理解為一個活動序列和與此相關的輸入、輸出、約束條件、實現方法、輔助工具等等因素共同組成的系統。ISO9001 和SW-CMM 都主要是從流程角度來探討軟體質量和質量改進的。
當然,我們還能從其它角度,比如軟體的生產者-人的素質,來詮釋軟體質量,但不管怎樣,軟體的產品質量是最終的檢驗標準,而最終的檢驗者就是客戶。從這個意義上說,軟體質量就是客戶滿意度。
b) 軟體包(Software Package)是指具有特定的功能,用來完成特定任務的一個程式或一組程式。可分為應用軟體包和系統軟體包兩大類。應用軟體包與特定的應用領域有關,又可分為通用包及專用包兩類。通用軟體包根據社會的一些共同需求開發,專用軟體包則是生產者根據使用者的具體需求定製的,可以為適合其特殊需要進行修改或變更。
8、 答案如下:
a) 白盒測試:
i. 邏輯覆蓋
ii. 迴圈覆蓋
iii. 基本路徑覆蓋
b) 黑盒測試:
i. 邊界值分析法
ii. 等價類劃分
iii. 錯誤猜測法
iv. 因果圖法
v. 狀態圖法
vi. 測試大綱法
vii. 隨機測試
viii. 場景法
9、 答案如下:
軟體安全性測試包括程式、資料庫安全性測試。根據系統安全指標不同測試策略也不同。
a) 使用者認證安全的測試要考慮問題:
i. 明確區分系統中不同使用者許可權
ii. 系統中會不會出現使用者衝突
iii. 系統會不會因使用者的許可權的改變造成混亂
iv. 使用者登陸密碼是否是可見、可複製
v. 是否可以通過絕對途徑登陸系統(拷貝使用者登陸後的連結直接進入系統)
vi. 使用者退出系統後是否刪除了所有鑑權標記,是否可以使用後退鍵而不通過輸入口令進入系統
b) 系統網路安全的測試要考慮問題
i. 測試採取的防護措施是否正確裝配好,有關係統的補丁是否打上
ii. 模擬非授權攻擊,看防護系統是否堅固
iii. 採用成熟的網路漏洞檢查工具檢查系統相關漏洞(即用最專業的黑客攻擊工具攻擊試一下,現在最常用的是 NBSI 系列和 IPhacker IP )
iv. 採用各種木馬檢查工具檢查系統木馬情況
v. 採用各種防外掛工具檢查系統各組程式的外掛漏洞
c) 資料庫安全考慮問題:
i. 系統資料是否機密(比如對銀行系統,這一點就特別重要,一般的網站就沒有太高要求)
ii. 系統資料的完整性(我剛剛結束的企業實名核查服務系統中就曾存在資料的不完整,對於這個系統的功能實現有了障礙)
iii. 系統資料可管理性
iv. 系統資料的獨立性
v. 系統資料可備份和恢復能力(資料備份是否完整,可否恢復,恢復是否可以完整)