一、判斷題
1. 軟件測試就是為了驗證軟件功能實現(xiàn)的是否正確,是否完成既定目標的活動,所以軟件測試在軟件工程的后期才開始具體的工作。(?)
分析:軟件測試人員應在需求階段就加入到開發(fā)過程中。因為軟件的質(zhì)量問題會隨著軟件開發(fā)周期的不斷展開而不斷放大的,而更正質(zhì)量問題的成本也是不斷放大的,也就是說在需求階段出現(xiàn)的小問題,到開發(fā)完成后缺陷可能成幾何倍數(shù)放大,而修改所需要的成本也會不斷的放大,如果測試工程師能夠盡早的加入其中的話可以盡早的找出問題,及時發(fā)現(xiàn),避免問題最后放大到不可收拾。
2. 發(fā)現(xiàn)錯誤多的模塊,殘留在模塊中的錯誤也多。(??)
分析:開發(fā)人員能力參差不齊,當發(fā)現(xiàn)某模塊bug數(shù)越多,修改的bug越多,則引入新的bug就會越多,那么這些新的bug發(fā)現(xiàn)的難度要比修改前發(fā)現(xiàn)bug要大的多,其隱藏未發(fā)現(xiàn)的bug數(shù)量就越多,那么相應的模塊質(zhì)量也就越差。代碼復用也可能造成該模塊的bug比較多。
3. 測試人員在測試過程中發(fā)現(xiàn)一處問題,如果影響不大,而自己又可以修改,應立即將此問題正確修改,以加快、提高開發(fā)的進程。(?)
分析:正確流程應提交錯誤缺陷,此時開發(fā)組人員會有記錄,并修改此問題。如果測試人員自己修改,會導致開發(fā)人員無記錄,容易出現(xiàn)冗余系統(tǒng)版本,并不清楚哪個為最終版本。
4. 單元測試通常應該先進行“人工走查”,再以白盒法為主,輔以黑盒法進行動態(tài)測試。(??)
5. 功能測試是系統(tǒng)測試的主要內(nèi)容,檢查系統(tǒng)的功能、性能是否與需求規(guī)格說明相同。(??)
6. 軟件質(zhì)量管理即QM是由QA和QC構(gòu)成,軟件測試屬于QC的核心工作內(nèi)容。(??)
補充:
QA(Quality Assurance)品質(zhì)保證;
QC(Quality Conterller)品質(zhì)控制員
7. 軟件測試只能發(fā)現(xiàn)錯誤,但不能保證測試后的軟件沒有錯誤。(??)
8. 軟件就是程序。(?)
概念:軟件是計算機程序,程序所用的數(shù)據(jù)以及相關(guān)文檔資料的結(jié)合。軟件又分為系統(tǒng)軟件和應用軟件兩大類。
9. 測試只要做到語句覆蓋和分支覆蓋,就可以發(fā)現(xiàn)程序中的所有錯誤。(?)
分析:白盒測試用例設(shè)計6種覆蓋方法:
a. 語句覆蓋 b. 判定覆蓋 c. 條件覆蓋 d.判定/條件覆蓋 e. 組合覆蓋 f. 路徑覆蓋
軟件測試的目的是發(fā)現(xiàn)軟件中的錯誤,但不能保證軟件沒有錯誤。
10. I18N測試是指對產(chǎn)品做出具有國際性的規(guī)劃,而L10N測試則是指軟件做出符合本地的工作。(??)
補充:
- I18N是L10N的基礎(chǔ)和前提,為L10N做準備
- L10N是I18N向特定本地語言環(huán)境的轉(zhuǎn)換
- I18N是軟件產(chǎn)品源語言開發(fā)的一部分,屬于Engineering
- L10N可以獨立于Engineering,可由第三方完成
11. 測試人員要堅持原則,缺陷未修復完堅決不予通過(?)
分析:該題沒有正確答案,缺陷是否修復需要聽取測試人員的意見,但測試人員的意見非決定性。所以還是要看一個企業(yè)賦予測試人員有多大的權(quán)力。
12. 軟件測試的目的是盡可能多的找出軟件的缺陷。(??)
13. Beta測試是驗收測試的一種。(??)
補充:軟件驗收測試包括:正式驗收測試,alpha測試,beta測試
14. 驗收測試是由最終用戶來實施的。(?)
15. 項目立項前測試人員不需要提交任何工件。(??)
16. 單元測試能發(fā)現(xiàn)約80%的軟件缺陷。(??)
二、選擇題
1. 進行軟件質(zhì)量管理的重要性有:(ABCD)
A. 維護降低成本
B. 法律上的要求
C. 市場競爭的需要
D. 質(zhì)量標準化的趨勢
E. 軟件工程的需要
F. CMM過程的一部分
G. 方便與客戶進一步溝通為后期的實施打好基礎(chǔ)
2. 以測試的形態(tài)分測試可以分為:(ABC)
A. 建構(gòu)性測試
B. 系統(tǒng)測試
C. 專項測試
D. 單元測試
E. 組件測試
F. 集成測試
3. 選出屬于黑盒測試方法的選項(ABC)
A. 測試用例覆蓋
B. 輸入覆蓋
C. 輸出覆蓋
D. 分支覆蓋
E. 語句覆蓋
F. 條件覆蓋
4. 編寫測試計劃的目的是:(ABC)
A. 使得測試工作順利進行
B. 使項目參與人員溝通更舒暢
C. 使測試工作更加系統(tǒng)化
D. 軟件工程以及軟件過程的需要
E. 軟件過程規(guī)范化的要求
F. 控制軟件質(zhì)量
5. 依存關(guān)系有4種分別是(ABCD)
A. 開始-結(jié)束
B. 開始-開始
C. 結(jié)束-開始
D. 結(jié)束-結(jié)束
E. 開始-實施-結(jié)束
F. 結(jié)束-審核-開始
6. 軟件質(zhì)量管理(QM)應有質(zhì)量保證(QA)和質(zhì)量控制(QC)組成,下面的選項屬于QC的是:(ABC)
A. 測試
B. 跟蹤
C. 監(jiān)督
D. 制定計劃
E. 需求審查
F. 程序代碼審查
7. 實施缺陷跟蹤的原因是:(ABCD)
A. 軟件質(zhì)量無法控制
B. 問題無法量化
C. 重復問題接連產(chǎn)生
D. 解決問題的知識無法保留
E. 確保缺陷得到解決
F. 使問題形成完成的閉環(huán)處理
8. 使用軟件測試工具的目的是:(ABC)
A. 幫助測試尋找問題
B. 協(xié)助問題的診斷
C. 節(jié)省測試時間
D. 提高Bug的發(fā)現(xiàn)率
E . 更好的控制缺陷提高軟件質(zhì)量
F. 更好的協(xié)助開發(fā)人員
9. 典型的瀑布模型的四個階段是:(ABCD)
A. 分析
B. 設(shè)計
C. 編碼
D. 測試
E. 需求調(diào)研
F. 實施
補充:軟件的生命周期劃分為:制定計劃、需求分析、軟件設(shè)計、程序編寫、軟件測試和運行維護等6個基本活動。
五種典型開發(fā)周期模型:瀑布、V、原型化、螺旋、迭代

10. PSP是指個人軟件過程 ,是一種可用于( A )、( B )和( C )個人軟件工作方式的自我改善過程。
A.控制
B.管理
C.改進
D.高效
E.充分
F. 適宜
11. 確保測試與(A)無關(guān),不要依賴使用過期的數(shù)據(jù)進行測試。
A. 時間
B. 地點
C. 軟硬件資源
D. 測試人員
12. 測試驅(qū)動開發(fā)的簡稱是(C)
A. ADD
B. TTD
C. TDD
D. TDT
13. Web測試的一個重要特征是(C)
A. 圖片
B. 文字
C. 鏈接
D. 視頻
三、問答題
1. 測試人員在軟件開發(fā)過程中的任務是什么?
a. 參與需求分析;
b. 編寫測試用例;
c. 尋找Bug;
d. 避免軟件開發(fā)過程中的缺陷;
e. 衡量軟件的品質(zhì);
f. 關(guān)注用戶的需求。
總的目標:確保軟件質(zhì)量。
2. 在您以往的工作中,一條軟件缺陷(或者叫Bug)記錄都包含了哪些內(nèi)容?如何提交高質(zhì)量的軟件缺陷(Bug)記錄?
答:一條Bug記錄最基本應包含:編號、Bug所屬模塊、Bug描述、Bug級別、發(fā)現(xiàn)日期、發(fā)現(xiàn)人、修改日期、修改人、修改方法、回歸結(jié)果等等;
要有效的發(fā)現(xiàn)Bug需參考需求以及詳細設(shè)計等前期文檔設(shè)計出高效的測試用例,然后嚴格執(zhí)行測試用例,對發(fā)現(xiàn)的問題要充分確認肯定,然后再向外發(fā)布如此才能提高提交Bug的質(zhì)量。
3. 軟件缺陷的等級應如何劃分?
1)致命錯誤:造成系統(tǒng)崩潰、死機、死循環(huán),導致數(shù)據(jù)庫數(shù)據(jù)丟失,與數(shù)據(jù)庫連接錯誤,主要功能喪失,基本模塊缺失等問題。
2)嚴重錯誤:系統(tǒng)主要功能部分喪失,數(shù)據(jù)庫保存調(diào)用錯誤,用戶數(shù)據(jù)丟失,以及功能菜單不能使用但是不影響其他功能的測試。功能設(shè)計與需求嚴重不符,模塊無法啟動或調(diào)用,程序重啟,自動退出,關(guān)聯(lián)程序間調(diào)用沖突,安全問題、穩(wěn)定性等。
3)一般錯誤:功能沒有完全實現(xiàn)但不影響使用,功能菜單存在缺陷但不影響系統(tǒng)穩(wěn)定性。
4)建議問題:界面,性能缺陷,建議類問題,不影響操作功能的執(zhí)行,可以優(yōu)化性能的方案等。如:錯別字、界面格式不規(guī)范,頁面顯示重疊、不該顯示的要隱藏,描述不清楚,提示語丟失,文字排列不整齊,光標位置不正確,用戶體驗感受不好,可以優(yōu)化性能的方案等。
4. 黑盒測試和白盒測試是軟件測試的兩種基本方法,請分別說明各自的優(yōu)點和缺點!
答:黑盒測試的優(yōu)點有:
1)比較簡單,不需要了解程序內(nèi)部的代碼及實現(xiàn);
2)與軟件的內(nèi)部實現(xiàn)無關(guān);
3)從用戶角度出發(fā),能很容易的知道用戶會用到哪些功能,會遇到哪些問題;
4)基于軟件開發(fā)文檔,所以也能知道軟件實現(xiàn)了文檔中的哪些功能;
5)在做軟件自動化測試時較為方便。
黑盒測試的缺點有:
1)不可能覆蓋所有的代碼,覆蓋率較低,大概只能達到總代碼量的30%;
2)自動化測試的復用性較低。
白盒測試的優(yōu)點有:
幫助軟件測試人員增大代碼的覆蓋率,提高代碼的質(zhì)量,發(fā)現(xiàn)代碼中隱藏的問題。
白盒測試的缺點有:
1)程序運行會有很多不同的路徑,不可能測試所有的運行路徑;
2)測試基于代碼,只能測試開發(fā)人員做的對不對,而不能知道設(shè)計的正確與否,可能會漏掉一些功能需求;
3)系統(tǒng)龐大時,測試開銷會非常大。
5. 如果完美執(zhí)行黑盒測試,還需要進行白盒測試嗎?
軟件的黑盒測試意味著測試要在軟件的接口處進行。這種方法是把測試對象看做一個黑盒子,測試人員完全不考慮程序內(nèi)部的邏輯結(jié)構(gòu)和內(nèi)部特性,只依據(jù)程序的需求規(guī)格說明書,檢查程序的功能是否符合它的功能說明。因此黑盒測試 又叫功能測試或數(shù)據(jù)驅(qū)動測試。黑盒測試主要是為了發(fā)現(xiàn)以下幾類錯誤:
a. 是否有不正確或遺漏的功能?
b. 在接口上,輸入是否能正確的接收?能否輸出正確的結(jié)果?
c. 是否有數(shù)據(jù)結(jié)構(gòu)錯誤或外部信息(例如數(shù)據(jù)文件)訪問錯誤?
d. 性能上是否能夠滿足要求?
e.是否有初始化或終止性錯誤?
軟件的白盒測試是對軟件的過程性細節(jié)做細致的檢查。這種方法是把測試對象看做一個打開的盒子,它允許測試人員利用程序內(nèi)部的邏輯結(jié)構(gòu)及有關(guān)信息,設(shè)計或選擇測試用例,對程序所有邏輯路徑進行測試。通過在不同點檢查程序狀態(tài),確定實際狀態(tài)是否與預期狀態(tài)一致,因此白盒測試又稱為結(jié)構(gòu)測試或邏輯驅(qū)動測試。白盒測試主要是相對程序模塊進行如下檢查:
a. 對程序模塊的所有獨立的執(zhí)行路徑至少測試一遍。
b. 對所有的邏輯判定,取‘真’與取‘假’的兩種情況都能至少測一遍。
c. 在循環(huán)的邊界和運行的界限內(nèi)執(zhí)行循環(huán)體。
d. 測試內(nèi)部數(shù)據(jù)結(jié)構(gòu)的有效性,等等。
6. 根據(jù)自己的理解回答什么是軟件測試,軟件測試分為哪幾個階段。(初級)(5分)
答:軟件測試是一個為了尋找軟件中的錯誤而運行軟件的過程,一個成功的測試是指找到了迄今為止尚未發(fā)現(xiàn)的錯誤的測試。
軟件測試一般分為單元測試、集成測試、系統(tǒng)測試、驗收測試。
驗收測試階段: 由用戶參與完成的過程。
(1)alpha階段:在軟件開發(fā)過程中由最終用戶對軟件進行檢查
(2)beta階段:在最終用戶的實際環(huán)境中由最終用戶對軟件進行檢查
7. 根據(jù)自己的理解什么是測試用例和測試規(guī)程,設(shè)計一個測試用例應當從哪幾方面考慮?
答:狹義的講,一個測試用例就是測試人員用以測試被測軟件的某個特性或特性組合的一組數(shù)據(jù)。這組數(shù)據(jù)可能是從用戶處得來的實際的一組數(shù)據(jù),也可能是測試人員專門設(shè)計出來的測試軟件某些功能的一組數(shù)據(jù)。
測試規(guī)程就是詳細的對測試用例設(shè)計方法、測試方法、測試工具、測試環(huán)境和測試數(shù)據(jù)進行描述的文檔,還可以包括能把某個或某一組測試用例應用到被測軟件上完成某項測試的一系列的操作步驟。
設(shè)計測試用例應當從以下幾方面考慮:邊界值,等價類劃分,有效/無效值等。
8. 什么是軟件質(zhì)量保證?軟件質(zhì)量保證人員與開發(fā)人員的關(guān)系如何?
答:軟件質(zhì)量保證就是通過確保軟件過程的質(zhì)量,來保證軟件產(chǎn)品的質(zhì)量。
軟件質(zhì)量保證人員和開發(fā)人員之間具有管理上的嚴格的獨立性,兩個小組的管理員都不能越權(quán)管理另一組,但都可以向更高層的管理者匯報軟件開發(fā)中的問題
9. 軟件開發(fā)過程中測試人員常遇到的問題:
1.需求變化太多太亂,相關(guān)文檔沒有隨之更新,文檔與項目實際功能不相符;造成很多時候最新的需求都只是藏在個別人的腦中,而測試人員總是最后一個知道需求變化的人。
改進建議:能夠建立需求變更體系,到什么階段必須停止需求變更(必須在項目前期就讓需求提出人明確這一點);每次需求變更必須讓需求提出人員確認,需求變化后必須有專人更新相關(guān)文檔(這些文檔都是測試人員編寫計劃及用例的依據(jù));并能知會相關(guān)人員,這樣才能做到程序人員修改相應的程序,測試人員修改相應的用例,且能對需求變更后的程序進行正確的測試
10. 什么是冒煙測試?
使用較少的人但經(jīng)驗較豐富,在較短的時間內(nèi)測試整個系統(tǒng)的主要功能、主要業(yè)務流程是否實現(xiàn),是否穩(wěn)定。
11. 測試結(jié)束的標準?
a.模塊測試用例執(zhí)行完畢,覆蓋了全部軟件需求;
b.缺陷收斂趨勢符合質(zhì)量要求;
c. 缺陷修復率達到產(chǎn)品設(shè)計人員的需求;
d. 達到預先的缺陷度量原則
12. 系統(tǒng)測試的策略有:功能測試,性能測試,可靠性測試,負載性測試,強度測試,安全測試,配置測試,安裝測試,卸載測試,文檔測試,故障恢復測試,界面測試,容量測試,兼容性測試,分布性測試,可用性測試。
四、邏輯題
1. 一個蛋糕平均分成8等份,并分別給8個人,請問還剩下一塊蛋糕,是怎么分的?
答:平均分成8份,前邊7個人拿走7塊,最后一個人把盒子里的蛋糕一起拿走。
2. 有20個人要到河的對岸去,河邊只有1條小船,船上每一次只能只能坐5人,小船至少要載( )次,才能過河。
答:每次只能有5-1=4(個)人過河,那么,小船至少要載20÷4=5(次)才能全部過河。
3. 根據(jù)前四個圖形找規(guī)律,找出第五個圖。圖片如下

分析:
圖中有兩種圖形,一種是三角形,有兩個;一種是五角形,有兩個;
三角形的要求是,兩個三角形都貼邊,但不能在同一行或同一列上;
五角形的要求是,一是兩個五角形都不貼邊,必須在同一行或同一列上;二是一個五角形在角上,另一個五角形不能在同一行或同一列上,也不能在斜線上;
圖A
一個五角形在角上,另一個五角在同一行上,所以不符合要求;
圖B
一個三角形貼邊,另一個三角形不貼邊,所以也不符合要求;
圖C
一個三角形貼邊,另一個三角形不貼邊;
兩個五角形都不貼邊,且不在同一行或同一列上,兩者都不符合要求;
圖D
兩個三角形都貼邊,且不在同一行或同一列上;
一個五角形在角上,另一個五角形也不在同一行或同一列上,也不在斜線上;所以答案應是D.