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