軟件測試面試題(截取比較好的問題)

截取部分比較好的軟件面試題目

1、測試用例

用例編號  測試項目  測試標題  重要級別  預置條件  輸入數據  執行步驟   預期結果

 

2、問:你在測試中發現了一個bug,但是開發經理認爲這不是一個bug,你應該怎樣解決?

首先,將問題提交到缺陷管理庫裏面進行備案。

然後,要獲取判斷的依據和標準:

  • 根據需求說明書、產品說明、設計文檔等,確認實際結果是否與計劃有不一致的地方,提供缺陷是否確認的直接依據;
  • 如果沒有文檔依據,可以根據類似軟件的一般特性來說明是否存在不一致的地方,來確認是否是缺陷;
  • 根據用戶的一般使用習慣,來確認是否是缺陷;
  • 與設計人員、開發人員和客戶代表等相關人員探討,確認是否是缺陷;

合理的論述,向測試經理說明自己的判斷的理由,注意客觀、嚴謹,不參雜個人情緒。

等待測試經理做出最終決定,如果仍然存在爭議,可以通過公司政策所提供的渠道,向上級反映,並有上級做出決定。

 

3、問:給你一個網站,你如何測試?

首先,查找需求說明、網站設計等相關文檔,分析測試需求。

制定測試計劃,確定測試範圍和測試策略,一般包括以下幾個部分:功能性測試;界面測試;性能測試;數據庫測試;安全性測試;兼容性測試

設計測試用例:

功能性測試可以包括,但不限於以下幾個方面:

  • 鏈接測試。鏈接是否正確跳轉,是否存在空頁面和無效頁面,是否有不正確的出錯信息返回。
  • 提交功能的測試。
  • 多媒體元素是否可以正確加載和顯示。
  • 多語言支持是否能夠正確顯示選擇的語言等。

界面測試可以包括但不限於一下幾個方面:

  • 頁面是否風格統一,美觀
  • 頁面佈局是否合理,重點內容和熱點內容是否突出
  • 控件是否正常使用
  • 對於必須但未安裝的控件,是否提供自動下載並安裝的功能
  • 文字檢查

性能測試一般從以下兩個方面考慮:

壓力測試;負載測試;強度測試

數據庫測試要具體決定是否需要開展。數據庫一般需要考慮連結性,對數據的存取操作,數據內容的驗證等方面。

安全性測試

  • 基本的登錄功能的檢查
  • 是否存在溢出錯誤,導致系統崩潰或者權限泄露
  • 相關開發語言的常見安全性問題檢查,例如SQL注入等
  • 如果需要高級的安全性測試,確定獲得專業安全公司的幫助,外包測試,或者獲取支持

兼容性測試,根據需求說明的內容,確定支持的平臺組合:

  • 瀏覽器的兼容性;
  • 操作系統的兼容性;
  • 軟件平臺的兼容性;
  • 數據庫的兼容性

開展測試,並記錄缺陷。合理的安排調整測試進度,提前獲取測試所需的資源,建立管理體系(例如,需求變更、風險、配置、測試文檔、缺陷報告、人力資源等內容)。

定期評審,對測試進行評估和總結,調整測試的內容。

4、什麼是軟件測試?軟件測試的目的與原則

在規定的條件下對程序進行操作,以發現程序錯誤,衡量軟件質量,並對其是否能滿足設計要求進行評估的過程。

軟件測試的目的:

  • 測試是程序的執行過程,目的在於發現錯誤
  • 一個成功的測試用例在於發現至今未發現的錯誤
  • 一個成功的測試是發現了至今未發現的錯誤的測試
  • 確保產品完成了它所承諾或公佈的功能,並且用戶可以訪問到的功能都有明確的書面說明。
  • 確保產品滿足性能和效率的要求
  • 確保產品是健壯的和適應用戶環境的

軟件測試的原則:

  • 測試用例中一個必須部分是對預期輸出或接過進行定義
  • 程序員應避免測試自己編寫的程序
  • 編寫軟件的組織不應當測試自己編寫的軟件
  • 應當徹底檢查每個測試的執行結果
  • 測試用例的編寫不僅應當根據有效和預料到的輸入情況,而且也應當根據無效和未預料到的輸入情況
  • 檢擦程序是否“未做其應該做的”僅是測試的一半,測試的另一半是檢查程序是否“做了其不應該做的”
  • 應避免測試用例用後即棄,除非軟件本身就是個一次性的軟件
  • 計劃測試工作時不應默許假定不會發現錯誤
  • 程序某部分存在更多錯誤的可能性,與該部分已經發現錯誤的數量成正比
  • 軟件測試是一項極富創造性,極具智力的挑戰性的工作

5、

目前主要的測試用例設計方法是什麼?

白盒測試:邏輯覆蓋、循環覆蓋、基本路徑覆蓋

黑盒測試:邊界值分析法、等價類劃分、錯誤猜測法、因果圖法、狀態圖法、測試大綱法、隨機測試、場景法

 6、軟件的安全性應從哪幾個方面去測試?

軟件安全性測試包括程序、數據庫安全性測試。根據系統安全指標不同測試策略也不同。

  • 用戶認證安全的測試要考慮問題: 明確區分系統中不同用戶權限 、系統中會不會出現用戶衝突 、系統會不會因用戶的權限的改變造成混亂 、用戶登陸密碼是否是可見、可複製 、是否可以通過絕對途徑登陸系統(拷貝用戶登陸後的鏈接直接進入系統)、用戶退出系統後是否刪除了所有鑑權標記,是否可以使用後退鍵而不通過輸入口令進入 系統 、系統網絡安全的測試要考慮問題 、測試採取的防護措施是否正確裝配好,有關係統的補丁是否打上 、模擬非授權攻擊,看防護系統是否堅固 、採用成熟的網絡漏洞檢查工具檢查系統相關漏洞(即用最專業的黑客攻擊工具攻擊試一下,現在最常用的是 NBSI 系列和 IPhacker IP ) 、採用各種木馬檢查工具檢查系統木馬情況 、採用各種防外掛工具檢查系統各組程序的外掛漏洞
  • 數據庫安全考慮問題: 系統數據是否機密(比如對銀行系統,這一點就特別重要,一般的網站就沒有太高要求)、系統數據的完整性(我剛剛結束的企業實名覈查服務系統中就曾存在數據 的不完整,對於這個系統的功能實現有了障礙) 、系統數據可管理性 、系統數據的獨立性 、系統數據可備份和恢復能力(數據備份是否完整,可否恢復,恢復是否可以完整)

 

7、什麼是測試用例 什麼是測試腳本 兩者的關係是什麼?

爲實施測試而向被測試系統提供的輸入數據、操作或各種環境設置以及期望結果的一個特定的集合。

測試腳本是爲了進行自動化測試而編寫的腳本。

測試腳本的編寫必須對應相應的測試用例

17、軟件測試分爲幾個階段 各階段的測試策略和要求是什麼?

和開發過程相對應,測試過程會依次經歷單元測試、集成測試、系統測試、驗收測試四個主要階段:

  • 單元測試:單元測試是針對軟件設計的最小單位––程序模塊甚至代碼段進行正確性檢驗的測試工作,通常由開發人員進行。
  • 集成測試:集成測試是將模塊按照設計要求組裝起來進行測試,主要目的是發現與接口有關的問題。由於在產品提交到測試部門前,產品開發小組都要進行聯合調試,因此在大部分企業中集成測試是由開發人員來完成的。
  • 系統測試:系統測試是在集成測試通過後進行的,目的是充分運行系統,驗證各子系統是否都能正常工作並完成設計的要求。它主要由測試部門進行,是測試部門最大最重要的一個測試,對產品的質量有重大的影響。
  • 驗收測試:驗收測試以需求階段的《需求規格說明書》爲驗收標準,測試時要求模擬實際用戶的運行環境。對於實際項目可以和客戶共同進行,對於產品來說就是最後一次的系統測試。測試內容爲對功能模塊的全面測試,尤其要進行文檔測試。

單元測試測試策略:

自頂向下的單元測試策略:比孤立單元測試的成本高很多,不是單元測試的一個好的選擇。

自底向上的單元測試策略:比較合理的單元測試策略,但測試周期較長。

孤立單元測試策略:最好的單元測試策略。

集成測試的測試策略:

大爆炸集成:適應於一個維護型項目或被測試系統較小

自頂向下集成:適應於產品控制結構比較清晰和穩定;高層接口變化較小;底層接口未定義或經常可能被修改;產口控制組件具有較大的技術風險,需要儘早被驗證;希望儘早能看到產品的系統功能行爲。

自底向上集成:適應於底層接口比較穩定;高層接口變化比較頻繁;底層組件較早被完成。

基於進度的集成
     優點:具有較高的並行度;能夠有效縮短項目的開發進度。
     缺點:樁和驅動工作量較大;有些接口測試不充分;有些測試重複和浪費。

系統測試的測試策略:

數據和數據庫完整性測試;功能測試;用戶界面測試;性能評測;負載測試;強度測試;容量測試;安全性和訪問控制測試;故障轉移和恢復測試;配置測試;安裝測試;加密測試;可用性測試;版本驗證測試;文檔測試

 

18、軟件測試各個階段通常完成什麼工作?各個階段的結果文件是什麼?包括什麼內容?

單元測試階段:各獨立單元模塊在與系統地其他部分相隔離的情況下進行測試,單元測試針對每一個程序模塊進行正確性校驗,檢查各個程序模塊是否正確地實現了規定的功能。生成單元測試報告,提交缺陷報告。

集成測試階段:集成測試是在單元測試的基礎上,測試在將所有的軟件單元按照概要設計規格說明的要求組裝成模塊、子系統或系統的過程中各部分工作是否達到或實現相應技術指標及要求的活動。該階段生成集成測試報告,提交缺陷報告。

系統測試階段:將通過確認測試的軟件,作爲整個給予計算機系統的一個元素,與計算機硬件、外設、某些支持軟件、數據和人員等其他系統元素結合在一起,在實際運行環境下,對計算機系統進行全面的功能覆蓋。該階段需要提交測試總結和缺陷報告。

 

19、測試人員在軟件開發過程中的任務是什麼?

1、儘可能早的找出系統中的Bug;
2、避免軟件開發過程中缺陷的出現;
3、衡量軟件的品質,保證系統的質量;
4、關注用戶的需求,並保證系統符合用戶需求。
總的目標是:確保軟件的質量。

 

20、在您以往的工作中,一條軟件缺陷(或者叫Bug)記錄都包含了哪些內容?如何提交高質量的軟件缺陷(Bug)記錄?

一條Bug記錄最基本應包含:

bug編號;
bug嚴重級別,優先級;
bug產生的模塊;
首先要有bug摘要,闡述bug大體的內容;
bug對應的版本;
bug詳細現象描述,包括一些截圖、錄像....等等;
bug出現時的測試環境,產生的條件即對應操作步驟;

21、黑盒測試和白盒測試是軟件測試的兩種基本方法,請分別說明各自的優點和缺點!      

黑盒測試的優點有:比較簡單,不需要了解程序內部的代碼及實現;與軟件的內部實現無關;  從用戶角度出發,能很容易的知道用戶會用到哪些功能,會遇到哪些問題;基於軟件開發文檔,所以也能知道軟件實現了文檔中的哪些功能;在做軟件自動化測試時較爲方便。

黑盒測試的缺點有:不可能覆蓋所有的代碼,覆蓋率較低,大概只能達到總代碼量的30%;自動化測試的複用性較低。

白盒測試的優點有:幫助軟件測試人員增大代碼的覆蓋率,提高代碼的質量,發現代碼中隱    藏的問題。

白盒測試的缺點有:程序運行會有很多不同的路徑,不可能測試所有的運行路徑;測試基於代碼,只能測試開發人員做的對不對,而不能知道設計的正確與否,可能會漏掉一些功能需求;系統龐大時,測試開銷會非常大。

 

22、如何測試一個紙杯?

功能度:用水杯裝水看漏不漏;水能不能被喝到

安全性:杯子有沒有毒或細菌

可靠性:杯子從不同高度落下的損壞程度

可移植性:杯子在不同的地方、溫度等環境下是否都可以正常使用

兼容性:杯子是否能夠容納果汁、白水、酒精、汽油等

易用性:杯子是否燙手、是否有防滑措施、是否方便飲用

用戶文檔:使用手冊是否對杯子的用法、限制、使用條件等有詳細描述

疲勞測試:將杯子盛上水(案例一)放24小時檢查泄漏時間和情況;盛上汽油(案例二)放24小時檢查泄漏時間和情況等

壓力測試:用根針並在針上面不斷加重量,看壓強多大時會穿透

 

22、測試計劃工作的目的是什麼?測試計劃文檔的內容應該包括什麼?其中哪些是最重要的?

軟件測試計劃是指導測試過程的綱領性文件:

  • 領導能夠根據測試計劃進行宏觀調控,進行相應資源配置等
  • 測試人員能夠了解整個項目測試情況以及項目測試不同階段的所要進行的工作等
  • 便於其他人員瞭解測試人員的工作內容,進行有關配合工作

包含了產品概述、測試策略、測試方法、測試區域、測試配置、測試周期、測試資源、測試交流、風險分析等內容。藉助軟件測試計劃,參與測試的項目成員,尤其是測試管理人員,可以明確測試任務和測試方法,保持測試實施過程的順暢溝通,跟蹤和控制測試進度,應對測試過程中的各種變更。

測試計劃編寫6要素(5W1H):

  • why——爲什麼要進行這些測試;

  • what—測試哪些方面,不同階段的工作內容;

  • when—測試不同階段的起止時間;

  • where—相應文檔,缺陷的存放位置,測試環境等;

  • who—項目有關人員組成,安排哪些測試人員進行測試;

  • how—如何去做,使用哪些測試工具以及測試方法進行測試

測試計劃和測試詳細規格、測試用例之間是戰略和戰術的關係,測試計劃主要從宏觀上規劃測試活動的範圍、方法和資源配置,而測試詳細規格、測試用例是完成測試任務的具體戰術。所以其中最重要的是測試測試策略和測試方法(最好是能先評審)。

27、您認爲在測試人員同開發人員的溝通過程中,如何提高溝通的效率和改善溝通的效果?維持測試人員同開發團隊中其他成員良好的人際關係的關鍵是什麼?

儘量面對面的溝通,其次是能直接通過電話溝通,如果只能通過Email等非及時溝通工具的話,強調必須對特性的理解深刻以及能表達清楚。

運用一些測試管理工具如TestDirector進行管理也是較有效的方法,同時要注意在TestDirector中對BUG有準確的描述。

在團隊中建立測試人員與開發人員良好溝通中注意以下幾點:

一真誠、二是團隊精神、三是在專業上有共同語言、四是要對事不對人,工作至上

當然也可以通過直接指出一些小問題,而不是進入BUG Tracking System來增加對方的好感。

 

28、你對測試最大的興趣在哪裏?爲什麼?

回答這個面試題,沒有固定統一的答案,但可能是許多企業都會問到的。提供以下答案供考:

最大的興趣,感覺這是一個有挑戰性的工作;

測試是一個經驗行業,工作越久越能感覺到做好測試的難度和樂趣

通過自己的工作,能使軟件產品越來越完善,從中體會到樂趣

回答此類問題注意以下幾個方面:

儘可能的切合招聘企業的技術路線來表達你的興趣,例如該企業是數據庫應用的企業,那麼表示你的興趣在數據庫的測試,並且希望通過測試提升自己的數據庫掌握能力。

表明你做測試的目的是爲了提升能力,也是爲了更好的做好測試;提升能力不是爲了以後轉開發或其他的,除非用人企業有這樣的安排。

不要過多的表達你的興趣在招聘企業的範疇這外。比如招聘企業是做財務軟件的,可是你表現出來的是對遊戲軟件的興趣;或招聘是做JAVA開發的,而你的興趣是在C類語言程序的開發。

 

29、你自認爲測試的優勢在哪裏?

該面試也沒有固定不變的答案,但可參考以下幾點,並結合自身特點:

有韌性、有耐心、做事有條理性、喜歡面對挑戰、有信心做好每一件事情、較強的溝通能力、從以前的經理處都得到了很好的評價表明我做的很好

55:您認爲做好測試用例設計工作的關鍵是什麼?

白盒測試用例設計的關鍵是以較少的用例覆蓋儘可能多的內部程序邏輯結果

黑盒法用例設計的關鍵同樣也是以較少的用例覆蓋模塊輸出和輸入接口。不可能做到完全測試,以最少的用例在合理的時間內發現最多的問題 

 

56:你的測試職業發展目標是什麼?

測試經驗越多,測試能力越高。所以我的職業發展是需要時間累積的,一步步向着高級測試工程師奔去。而且我也有初步的職業規劃,前3年累積測試經驗,不斷的更新自己改正自己,做好測試任務。

 

57:測試結束的標準是什麼?

從微觀上來說,在測試計劃中定義,比如系統在一定性能下平穩運行72小時,目前Bug Tracking System中,本版本中沒有一般嚴重的BUG,普通BUG的數量在3以下,BUG修復率90%以上等等參數,然後由開發經理,測試經理,項目經理共同簽字認同版本Release。

如果說宏觀的,則是當這個軟件徹底的消失以後,測試就結束了。

64、LoadRunner分爲哪三個模塊?請簡述各模塊的主要功能。

Virtual User Generator:用於錄製腳步

Mercury LoadRunner Controller:用於創建、運行和監控場景

Mercury LoadRunner Analysis:用於分析測試結果

84、性能測試的流程?

  1.測試需求分析2.測試計劃制定與評審3.測試用例設計與開發4.測試執行與監控5.分析測試結果6.編寫性能測試報告7.測試經驗總結

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章