測試工程師筆/面試題目

1. 什麼是軟件測試?

軟件測試是爲了發現錯誤而執行程序的過程.
精心設計一批測試用例(即輸入數據及其預期的輸出結果), 並利用這些測試用例去運行程序, 以發現程序錯誤的過程.

2. 軟件測試的目的?

測試的目的是想以最少的成本找出軟件中潛在的各種錯誤和缺陷, 通過修正錯誤和缺陷提高軟件質量.

3. 什麼是需求文檔測試?

需求中是否存在邏輯矛盾以及需求在技術上是否可以實現.

4. 什麼是設計文檔測試?

測試設計是否符合全部需求以及設計是否合理.

5. 什麼是α測試?

α測試的人員: 是由一個用戶開發環境下進行的測試, 也可以是公司內部的用戶模擬實際操作環境下進行的受控測試. 不能由程序員或測試員完成.
Alpha測試發現的錯誤, 可以在測試現場立刻反饋給開發人員, 由開發人員及時分析和處理.
α測試的目的是評價軟件產品的功能、可使用性、可靠性、性能和支持。尤其注重產品的界面和特色。
Alpha測試可以從軟件產品編碼結束之後開始,或在模塊(子系統)測試完成後開始,也可以在確認測試過程中產品達到一定的穩定和可靠程度之後再開始。有關的手冊(草稿)等應該在Alpha測試前準備好。

6. 什麼是β測試?

Beta測試(β測試)是軟件的多個用戶在一個或多個用戶的實際使用環境下進行的測試。Beta測試不能由程序員或測試員完成.
開發者通常不在測試現場
因而,Beta測試是在開發者無法控制的環境下進行的軟件現場應用
在Beta測試中,由用戶記下遇到的所有問題,包括真實的以及主管認定的,定期向開發者報告,開發者在綜合用戶的報告後,做出修改,最後將軟件產品交付給全體用戶使用。
Beta測試着重於產品的支持性,包括文檔、客戶培訓和支持產品的生產能力。
只有當Alpha測試達到一定的可靠程度後,才能開始Beta測試。由於Beta測試的主要目標是測試可支持性,所以Beta測試應該儘可能由主持產品發行的人員來管理。

7. 什麼是驅動模塊?

驅動模塊在大多數場合稱爲“主程序”,它接收測試數據並將這些數據傳遞到被測試模塊.
單獨測試一個函數單元時,被測單元本身是不能獨立運行的,需要爲其傳送數據,爲此寫驅動
驅動模塊主要完成以下事情:
1、接受測試輸入;
2、對輸入進行判斷;
3、將輸入傳給被測單元,驅動被測單元執行;
4、接受被測單元執行結果,並對結果進行判斷;
5、將判斷結果作爲用例執行結果輸出測試報告

8. 什麼是樁模塊?

樁模塊(Stub)是指模擬被測試的模塊所調用的模塊,而不是軟件產品的組成的部分。主模塊作爲驅動模塊,與之直接相連的模塊用樁模塊代替。在集成測試前要爲被測模塊編制一些模擬其下級模塊功能的“替身”模塊,以代替被測模塊的接口,接受或傳遞被測模塊的數據,這些專供測試用的“假”模塊稱爲被測模塊的樁模塊。
比如對函數A做單元測試時,被測的函數單元下還包括了一個函數B,爲了更好的發現錯誤,定位錯誤,就要爲函數B寫樁,來模擬函數B的功能,保證其正確。

9. 什麼是白盒測試?

白盒測試(White-box Testing,又稱邏輯驅動測試,結構測試), 它是知道產品內部工作過程,可通過測試來檢測產品內部動作是否按照規格說明書的規定正常進行,按照程序內部的結構測試程序,檢驗程序中的每條通路是否都有能按預定要求正確工作,而不顧它的功能,白盒測試的主要方法有邏輯驅動、基路測試等,主要用於軟件驗證。
對開發語言的支持:白盒測試工具是對源代碼進行的測試,測試的主要內容包括詞法分析與語法分析、靜態錯誤分析、動態檢測等。目前測試工具主要支持的開發語言包括:標準C、C++、Visual C++、Java、Visual J++等。

10. 白盒測試有哪幾種方法?

白盒測試的主要方法有邏輯驅動、基路測試等,主要用於軟件驗證。“白盒”法全面瞭解程序內部邏輯結構、對所有邏輯路徑進行測試。“白盒”法也是窮舉路徑測試

11. 什麼是靜態測試?

通過運行程序測試軟件測試軟件稱爲動態測試. 在動態測試中, 通常使用白盒測試和黑盒測試從不同的角度設計測試用例, 查找軟件代碼中的錯誤.
通過評審文檔、閱讀代碼等方式測試軟件稱爲靜態測試. 靜態測試方法是指不運行被測程序本身,僅通過分析或檢查源程序的語法、結構、過程、接口等來檢查程序的正確性。對需求規格說明書、軟件設計說明書、源程序做結構分析、流程圖分析、符號執行來找錯。靜態方法通過程序靜態特性的分析,找出欠缺和可疑之處,例如不匹配的參數、不適當的循環嵌套和分支嵌套、不允許的遞歸、未使用過的變量、空指針的引用和可疑的計算等。靜態測試結果可用於進一步的查錯,並爲測試用例選取提供指導

12. 什麼是迴歸測試?

迴歸測試的目的是在程序有修改的情況下,保證原有功能正常的一種測試策略和方法。
說白了就是,我們測試人員在對程序進行測試時發現bug,然後返還程序員修改,程序員修改後發佈新的軟件包或新的軟件補丁包給我們測試人員,我們就要重新對這個程序測試,以保證程序在修正了以前bug的情況下正常運行,且不會帶來新的錯誤的這樣一個過程。 一般情況下是不需要全面測試的,而是根據修改的情況進行有效的測試。

13. 軟件的缺陷等級應如何劃分?

軟件缺陷的等級可以用嚴重性和優先級來描述;
嚴重性:衡量缺陷對客戶滿意度影響的滿意程度,分爲
1,致命錯誤,可能導致本模塊以及其他相關的模塊異常,死機等問題;
2.嚴重錯誤,問題侷限在本模塊,導致模塊功能失常或異常退出;
3.一般錯誤,模塊功能部分失效;
4.建議模塊,由問題提出人對測試模塊的改進建議;
優先級:缺陷被修復的緊急程度:
1.立即解決(P1級):缺陷導致系統功能幾乎不能使用或者測試不能繼續,需立即修復;
2.高優先級(P2級):缺陷嚴重,影響測試,需優先考慮;
3.正常排隊(P3級):缺陷需要正常排隊等待修復;
4.低優先級(P4級):缺陷可以在有時間的時候被糾正;

14. 如果能夠執行完美的黑盒測試,還需要進行白盒測試嗎?(白盒與黑盒的區別)

任何工程產品(注意是任何工程產品)都可以使用以下兩種方法之一進行測試。
黑盒測試:已知產品的功能設計規格,可以進行測試證明每個實現了的功能是否符合要求
白盒測試:已知產品的內部工作過程,可以通過測試證明每種內部操作是否符合設計規格要求,所有內部成分是否以經過檢查。
軟件的黑盒測試意味着測試要在軟件的接口處進行。這種方法是把測試對象看做一個黑盒子,測試人員完全不考慮程序內部的邏輯結構和內部特性,只依據程序的需求規格說明書,檢查程序的功能是否符合它的功能說明。因此黑盒測試又叫功能測試或數據驅動測試。黑盒測試主要是爲了發現以下幾類錯誤:
1、是否有不正確或遺漏的功能?
2、在接口上,輸入是否能正確的接受?能否輸出正確的結果?
3、是否有數據結構錯誤或外部信息(例如數據文件)訪問錯誤?
4、性能上是否能夠滿足要求?
5、是否有初始化或終止性錯誤?
軟件的白盒測試是對軟件的過程性細節做細緻的檢查。這種方法是把測試對象看做一個打開的盒子,它允許測試人員利用程序內部的邏輯結構及有關信息,設計或選擇測試用例,對程序所有邏輯路徑進行測試。通過在不同點檢查程序狀態,確定實際狀態是否與預期的狀態一致。因此白盒測試又稱爲結構測試或邏輯驅動測試。白盒測試主要是想對程序模塊進行如下檢查:
1、對程序模塊的所有獨立的執行路徑至少測試一遍
2、對所有的邏輯判定,取“真”與取“假”的兩種情況都能至少測一遍。
3、在循環的邊界和運行的界限內執行循環體。
4、測試內部數據結構的有效性,等等。
以上事實說明,軟件測試有一個致命的缺陷,即測試的不完全、不徹底性。由於任何程序只能進行少量(相對於窮舉的巨大數量而言)的有限的測試,在未發現錯誤時,不能說明程序中沒有錯誤

15. 軟件測試應該劃分幾個階段?簡述各個階段應重點測試的點?各個階段的含義?

大體上來說可分爲單元測試, 集成測試, 系統測試, 驗收測試, 每個階段又分爲以下五個步驟: 測試計劃,測試設計,用例設計,執行結果,測試報告.
初始測試集中在每個模塊上,保證源代碼的正確性,該階段成爲單元測試,主要用白盒測試方法。 接下來是模塊集成和集成以便組成完整的軟件包。集成測試集中在證實和程序構成問題上。主要採用黑盒測試方法,輔之以白盒測試方法。軟件集成後,需要完成確認和系統測試。確認測試提供軟件滿足所有功能、性能需求的最後保證。確認測試僅僅應用黑盒測試方法

16. 什麼是單元測試?

單元測試是對軟件中的基本組成單位進行的測試,如一個模塊、一個過程等等。它是軟件動態測試的最基本的部分,也是最重要的部分之一,其目的是檢驗軟件基本組成單位的正確性。

17. 什麼是集成測試?

集成測試是在軟件系統集成過程中所進行的測試,其主要目的是檢查軟件單位之間的接口是否正確。

18. 什麼是系統測試?

系統測試是對已經集成好的軟件系統進行徹底的測試,以驗證軟件系統的正確性和性能等滿足其規約所指定的要求,檢查軟件的行爲和輸出是否正確並非一項簡單的任務,它被稱爲測試的“先知者問題”。

19. 什麼是驗收測試?

驗收測試旨在向軟件的購買者展示該軟件系統滿足其用戶的需求。它的測試數據通常是系統測試的測試數據的子集.

20. 什麼是迴歸測試?

迴歸測試是在軟件維護階段,對軟件進行修改之後進行的測試。其目的是檢驗對軟件進行的修改是否正確

21. 針對缺陷採取怎樣的管理措施?

1) 要更好的管理缺陷,必須引入缺陷管理工具,商用的或者開源的都可。
2) 根據缺陷的生命週期,考慮缺陷提交的管理、缺陷狀態的管理和缺陷分析的管理。
3) 所有發現的缺陷(不管是測試發現的還是走讀代碼發現的)都必須全部即時的、準確的提交到缺陷管理工具中,這是缺陷提交的管理。
4) 缺陷提交後,需要即時的指派給相應的開發人員,提交缺陷的人需要密切注意缺陷的狀態, 幫助缺陷的儘快解決。缺陷解決後需要即時對缺陷的修復進行驗證。這樣的目的有兩個:一個是讓缺陷儘快解決; 二是方便後面缺陷的分析(保證缺陷相關的信息準確,如齡期等),這是缺陷狀態的管理。
5) 爲了更好的改進開發過程和測試過程,需要對缺陷進行分析,總結如缺陷的類別、缺陷的齡期分佈等信息,這是缺陷分析的管理。

22. 單元測試、集成測試、系統測試的側重點是什麼?

單元測試是在軟件開發過程中要進行的最低級別的測試活動,在單元測試活動中,軟件的獨立單元將在與程序的其他部分相隔離的情況下進行測試,測試重點是系統的模塊,包括子程序的正確性驗證等。
集成測試,也叫組裝測試或聯合測試。在單元測試的基礎上,將所有模塊按照設計要求,組裝成爲子系統或系統,進行集成測試。實踐表明,一些模塊雖然能夠單獨地工作,但並不能保證連接起來也能正常的工作。程序在某些局部反映不出來的問題,在全局上很可能暴露出來,影響功能的實現。測試重點是模塊間的銜接以及參數的傳遞等。
系統測試是將經過測試的子系統裝配成一個完整系統來測試。它是檢驗系統是否確實能提供系統方案說明書中指定功能的有效方法。測試重點是整個系統的運行以及與其他軟件的兼容性

23. 描述使用bugzilla缺陷管理工具對軟件缺陷(BUG)跟蹤的管理的流程

1) 測試人員或開發人員發現bug後,判斷屬於哪個模塊的問題,填寫bug報告後,系統會自動通過Email通知項目組長或直接通知開發者。
2) 經驗證無誤後,修改狀態爲VERIFIED.待整個產品發佈後,修改爲CLOSED.
3) 還有問題,REOPENED,狀態重新變爲“New”,併發郵件通知。
4) 項目組長根據具體情況,重新reassigned分配給bug所屬的開發者。
5) 若是,進行處理,resolved並給出解決方法。(可創建補丁附件及補充說明)
6) 開發者收到Email信息後,判斷是否爲自己的修改範圍。
7) 若不是,重新reassigned分配給項目組長或應該分配的開發者。
8) 測試人員查詢開發者已修改的bug,進行重新測試。

以上信息來源:

https://www.nowcoder.com/ta/review-test/review?page=6


騰訊2015測試工程師筆試-知識點

黑盒測試方法:
  • 黑盒測試方法有:等價類劃分法、邊界值分析法、因果圖法、錯誤推測法、綜合策略、正交分析法,用於軟件的確認測試
  • 白盒測試方法有:邏輯覆蓋發法,主要包括語句覆蓋、判斷覆蓋、條件覆蓋、判斷條件覆蓋、條件組合覆蓋、路徑覆蓋
壓力測試包括什麼

(1)確定存量數據的規模(用戶一般會要求製造出3-5年的存量數據);
(2)確定需要進行壓力測試的業務(一般是用戶使用最頻繁,或者業務操作複雜的業務);
(3)確定操作用戶的的數量、各類操作用戶的比例;
(4)峯值業務量的要求(一般是1個小時內最多要處理的筆數);
(5)對實時業務響應時間的要求(如在峯值情況下,單筆業務的處理時間(如小於60秒));
(6)對於批量處理過程的時間要求(如進行日終(月終、年終)處理、與外系統間批量數據傳輸時的時間)。

測試驅動開發:

在編寫某個功能的代碼之前先編寫測試代碼,然後只編寫使測試通過的功能代碼,通過測試來推動整個開發的進行
驗收測試包括什麼
軟件驗收測試分爲三類:
- 正式驗收測試;
- 非正式驗收測試其中包括α測試(由用戶、測試人員、開發人員共同參與的內部測試)和β測試(內測後的公測,即完全交給最終用戶測試)


發佈了45 篇原創文章 · 獲贊 15 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章