【面試題 二期】中高級測試工程師


21、軟件測試員自身素質培養

 

  1. 首先,應對軟件測試感興趣和對自己有自信,如果具備了這兩點,那么在開發過程中不管遇到什么樣的困難,相信一定能克服

  2. 善於懷疑,實際上沒有絕對正確的,總有錯誤的地方,具有叛逆心理,別人認為不可能發生的事情,我卻認為可能發生,別人認為是對的,我卻認為不是對的

  3. 打破沙鍋問到底的精神,對於只出現過一次的BUG一定要找出原因,不解決誓不罷休

  4. 保持一個良好的心情,否則可能無法把測試做好。不要把生活中的不愉快的情緒帶到工作中來

  5. 做測試時要細心,不是所有的BUG都能很容易找出,一定要細心才能找到這些BUG

  6. 靈活一些,聰明一點,多造一些容易產生BUG的例子

  7. 在有條件的情況下,多和客戶溝通,他們身上有你所需要的

  8. 設身處地為客戶着想,從他們的角度去測試系統

  9. 不要讓程序員,以“這種情況不可能發生”這句話說服你,相反,你應該去說服他,告訴他在客戶心理,並不是這樣的

  10. 考慮問題要全面,結合客戶的需求,業務流程和系統的架構等多方面考慮問題

  11. 提出問題不要復雜化,這點和前面矛盾,如果你是一個新手,暫時不要管這點,因為最終將有你的小組成員討論解決

  12. 追求完美,對於新測試員來說,努力追求完美,這對你很好,盡管有些事情無法做到,但你應該嘗試

  13. 幽默感,能和開發小組很好的溝通是關鍵,試着給你的開發小組找一個BUG殺手,或對他們說“我簡直不敢相信,你寫的程序居然到現在沒有找到BUG”

 

22、為什要在一個團隊中開展測試工作?

 

因為沒有經過測試的軟件很難在發布之前知道該軟件的質量,就好比ISO質量認證一樣,測試同樣也需要質量認證,這個時候就需要在團隊中開展軟件測試的工作。在測試的過程中發現軟件中存在的問題,及時讓開發人員得知並修改問題,在即將發布時,從測試報告中得出軟件的質量情況。

 

23、你所熟悉的軟件測試類型有哪些?

 

測試類型有:功能測試、性能測試、界面測試

 

  1. 功能測試在測試工作中占有比例最大,功能測試也叫黑盒測試

  2. 性能測試是通過自動化的測試工具模擬多種正常、峰值以及異常負載條件來對系統的各項性能指標進行測試。負載測試和壓力測試都屬於性能測試,兩者可以結合進行

  3. 界面測試,界面是軟件與用戶交互的最直接的層,界面的好壞決定用戶對軟件的第一印象

 

區別在於,功能測試關注產品的所有功能,要考慮到每個細節功能,每個可能存在的功能問題。性能測試主要關注產品整體的多用戶並發下的穩定性和健壯性。界面測試則關注與用戶體驗相關內容,用戶使用該產品的時候是否已用,是否易懂,是否規范(用戶無意輸入無效的數據,當然考慮到體驗性,不能太粗魯的彈出警告)。做某個性能測試的時候,首先它可能是個功能點,首先要保證她的功能是沒有問題的,然后再考慮性能的問題。

 

24、你認為做好測試用例設計工作的關鍵是什么?

 

白盒測試用例設計的關鍵是以較少的用例覆蓋盡可能多的內部程序邏輯結構。黑盒測試用例設計的關鍵同樣也是以較少的用例覆蓋模塊輸出和輸入接口。不可能做到完全測試,以最少的用例在合理的時間內發現最多的問題。軟件的黑盒測試意味着測試要在軟件的接口處進行,這種方法是把測試對象看作是一個黑盒子,測試人員完全不考慮程序內部的邏輯結構和內部特性,只依據程序的需求規格說明書,檢查程序的功能是否符合它的功能說明。因此黑盒測試又叫功能測試或者數據驅動測試。黑盒測試主要是為了發現以下幾類錯誤:

 

  1. 是否有不正確或遺漏的功能

  2. 在接口上,輸入是否能正確的接受?能否輸出正確的結果

  3. 是否有數據結構錯誤或外部信息(例如數據文件)訪問錯誤

  4. 性能上是否能夠滿足要求

  5. 是否有初始化或終止性錯誤

 

軟件的白盒測試是對軟件的過程性細節做細致的檢查。這種方法是把測試對象看作一個打開的盒子,它允許測試人員利用程序內部的邏輯結構和有關信息,設計或者選擇測試用例,對程序所有邏輯路徑進行測試。通過在不同點檢查程序狀態,確定實際狀態是否與預期的狀態一直。因此白盒測試又稱為結合測試或邏輯驅動測試。白盒測試主要是想對程序模塊進行如下檢查:

 

  1. 對程序模塊的所有獨立的執行路徑至少測試一遍

  2. 對所有的邏輯判定,取“真”與取“假”的兩種情況都能至少測一遍

  3. 在循環的邊界和運行的界限內執行循環體

  4. 測試內部數據結構的有效性等等

 

25、請詳細介紹一下各種測試類型的含義

 

  1. 單元測試(模塊測試)是開發者編寫的一小段代碼,用於檢驗被測試代碼的一個很小的、很明確的功能是否正確。通常而言,一個單元測試是用於判斷某個特定條件(或者場景)下某個特定函數的行為。單元測試是由程序員自己來完成,最終受益的也是程序員自己。可以這么說,程序員有責任編寫功能代碼,同時也就有責任為自己的代碼編寫單元測試。執行單元測試,就是為了證明這段代碼的行為和我們期望的一致

  2. 集成測試(也叫組裝測試、聯合測試)是單元測試的邏輯擴展。它最簡單的形式是:兩個已經經過測試的單元組合成一個組件,並且測試它們之間的接口。從這一層上講,組件是指多個單元的集成聚合。在現實方案中,許多單元組合成組件,而這些組件又聚合成程序的更大部分。方法是測試片段的組合,並最終擴展進程,將您的模塊與其他組的模塊一起測試。最后,將構成進程的所有模塊一起測試

  3. 系統測試是將經過測試的子系統裝配成一個完整系統來測試。它是檢驗系統是否確實能提供系統方案說明書中制定功能的有效方法。(常見的聯調測試)。系統測試的目的是對最終軟件系統進行全面的測試,確保最終軟件系統滿足產品需求而遵循系統設計

  4. 驗收測試是部署軟件之前的最后一個測試操作。驗收測試的目的是確保軟件准備就緒,並且可以讓用戶將其執行軟件的既定功能和任務。驗收測試是向未來的用戶表明系統能夠像預訂要求那樣工作。經集成測試后,已經按照設計把所有的模塊組裝成一個完整的軟件系統,接口錯誤也已經基本排除了,接着就應該進一步驗證軟件的有效性,這就是驗收測試的任務,即軟件的功能和性能如同用戶所合理期待的那樣

 

26、測試計划工作的目的是什么?測試計划工作的內容都包括什么?其中哪些是最重要的?

 

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

 

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

 

27、您認為做好測試計划工作的關鍵是什么?

 

  1. 明確測試的目標,增強測試計划的實用性

     

    編寫軟件測試計划的重要目的就是使測試過程能夠發現更多的軟件缺陷,因此軟件測試計划的價值取決於它對幫助管理測試項目,並且找出軟件潛在的缺陷。因此,軟件測試計划中的測試范圍必須高度覆蓋功能需求,測試方法必須切實可行,測試工具並且具有較高的實用性,便於使用,生成的測試結果准確。

     

  2. 堅持“5W”規則,明確內容與過程

     

    “5W”規則指的是“WHAT(做什么)”、“WHY(為什么做)”、"WHEN(何時做)"、"WHERE(在哪里)"、"HOW(如何做)"。利用“5W"規則創建軟件測試計划,可以幫助測試團隊理解測試的目的(WHY),明確測試的范圍和內容(WHAT),確定測試的開始和結束日期(WHEN),指出測試的方法和工具(HOW),給出測試文檔和軟件存放的位置(WHERE)。

     

  3. 采用評審和更新機制,保證測試計划滿足實際需求

     

    測試計划完成后,如果沒有經過評審,直接發送給測試團隊,測試計划內容的可能不准確或遺漏測試內容,或者軟件需求變更引起測試范圍的增減,而測試計划的內容沒有及時更新,誤導測試執行人員。

     

  4. 分別創建測試計划與測試詳細規格、測試用例

     

    應把詳細的測試技術指標包含到獨立創建的測試詳細規格文檔,把用於指導測試小組執行過程的測試用例放到獨立創建的測試用例文檔或測試用例管理數據庫中。測試計划和測試詳細規格、測試用例之間是戰略和戰術的關系,測試計划主要從宏觀上規划測試活動的范圍、方法和資源配置,而測試詳細規格、測試用例是完成測試任務的具體戰術。

 

28、當開發人員說不是BUG時,你如何應付?

 

開發人員說不是BUG,有2種情況,一是需求沒有確定,所以我可以這么做,這個時候可以找來產品經理進行確認,需不需要改動。3方商量確定好后再看要不要改。二是這種情況不可能發生,所以不需要修改,這個時候,我可以先盡可能的說出是BUG的一句是什么?如果被用戶發現或出了問題,會有什么不良結果?程序員可能會給你很多理由,你可以對他的解釋進行反駁。如果還是不行,那我可以給這個問題提出來,跟開發經理和測試經理進行確認,如果要修改就改,如果不要修改就不改。其實有些真的不是BUG,我也只是建議的方式寫進測試文檔中,如果開發人員不修改也沒有大問題。如果不是BUG的話,一定要堅持自己的立場,讓問題得到最后的確認。

 

29、你自認為測試的優勢在哪里?

 

優勢在於我對測試堅定不移的信心和熱情,雖然經驗還不足,但測試需要的基本技能我有信心在工作中得以發揮。

 

30、什么是系統瓶頸?

 

瓶頸主要是指整個軟硬件構成的軟件系統某一方面或者幾個方面能力不能滿足用戶的特定業務要求,“特定”是指瓶頸會在某些條件下會出現,因為畢竟大多數系統在投入前。

 

嚴格的從技術角度講,所有的系統都會有瓶頸,因為大多數系統的資源配置不是協調的,例如CPU使用率剛好達到100%時,內存也正好耗盡的系統不是很多見。因此我們討論系統瓶頸要從應用的角度討論:關鍵是看系統能否滿足用戶需求。在用戶極限使用系統的情況下,系統的響應仍然正常,我們可以認為改系統沒有瓶頸或者瓶頸不會影響用戶工作。

 

因此我們測試系統瓶頸主要是實現下面兩個目的:

 

  1. 發現“表面”的瓶頸。主要是模擬用戶的操作,找出用戶極限使用系統時的瓶頸,然后解決瓶頸,這是性能測試的基本目標

  2. 發現潛在的瓶頸並解決,保證系統的長期穩定性。主要是考慮用戶在將來擴展系統或者業務發生變化時,系統能夠適應變化。滿足用戶目前需求的系統不是最好的,我們設計系統的目標是在保證系統整個軟件生命周期能夠不斷適應用戶的變化,或者通過簡單擴展系統就可以適應新的變化

 

31、文檔測試主要包含什么內容?

 

在國內軟件開發管理中,文檔管理幾乎是最弱的一項,因而在測試工作中特別容易忽略文檔測試也就不足為奇了。要想給用戶提供完整的產品,文檔測試是必不可少的。文檔測試一般注重下面幾個方面:

 

  1. 文檔的完整性:主要是測試文檔內容的全面性與完整性,從總體上把握文檔的質量。例如用戶手冊應該包括軟件的所有功能模塊

  2. 描述與軟件實際情況的一致性:主要測試軟件文檔與軟件實際的一致程度。例如用戶手冊基本完整后,我們還要注意用戶手冊與實際功能描述是否一致。因為文檔往往跟不上軟件版本的更新速度

  3. 易理解性:主要是檢查文檔對關鍵、重要的操作有無圖文說明,文字、圖表是否易於理解。對於關鍵、重要的操作僅僅只有文字說明肯定是不夠的,應該附有圖表使說明更為直觀和明了

  4. 文檔中提供操作的實例:這項檢查內容主要針對用戶手冊。對主要功能和關鍵操作提供的應用實例是否豐富,提供的實例描述是否詳細。只有簡單的圖文說明,而無實例的用戶手冊看起來就像是軟件界面的簡單拷貝,對於用戶來說,實際上沒有什么幫助

  5. 印刷與包裝質量:主要是檢查軟件文檔的商品化程度。有些用戶手冊是簡單打印、裝訂而成,過於粗糙,不易於用戶保存。優秀的文檔例如用戶手冊和技術白皮書,應提供商品化包裝,並且印刷精美

 

32、功能測試用例需要詳細到什么程度才是合格的?

 

這個問題也是測試工程師經常問的問題。有人主張測試用例詳細到每個步驟執行什么都要寫出來,目的是即使一個不了解系統的新手都可以按照測試用例來執行工作。主張這類寫法的人還可以舉出例子:歐美、日本等軟件外包文檔都是這樣做的。

 

另外一種觀點就是主張寫的粗些,類似於編寫測試大綱。主張這種觀點的人是因為軟件開發需求管理不規范,變動十分頻繁,因而不能按照歐美的高標准來編寫測試用例。這樣的測試用例容易維護,可以讓測試執行人員有更大的發揮空間。

 

實際上,軟件測試用例的詳細程度首先要以覆蓋到測試點為基本要求。舉個例子:“用戶登陸系統”的測試用例可以不寫出具體的執行數據,但是至少要寫出五種以上情況(),如果只用一句話覆蓋了這個功能是不合格的測試用例。覆蓋功能點不是指列出功能點,而是要寫出功能點的各個方面(如果組合情況較多時可以采用等價划分)。

 

另一個影響測試用例的就是組織的開發能力和測試對象特點。如果開發力量比較落后,編寫較詳細的測試用例是不現實的,因為根本沒有那么大的資源投入,當然這種情況很隨着團隊的發展而逐漸有所改善。測試對象特點重點是指測試對象在進度、成本等方面的要求,如果進度較緊張的情況下,是根本沒有時間寫出高質量的測試用例的,甚至有些時候測試工作只是一種輔助工作,因而不編寫測試用例。

 

因此,測試用例的編寫要根據測試對象特點、團隊的執行能力等各個方面綜合起來決定編寫策略。最后要注意的是測試人員一定不能抱怨,力爭在不斷提高測試用例編寫水平的同時,不斷地提高自身能力。

 

33、配置和兼容性測試的區別是什么?

 

配置測試的目的是保證軟件在其相關的硬件上能夠正常運行,而兼容性測試主要是測試軟件能否與不同的軟件正確協作。

 

配置測試的核心內容就是使用各種硬件來測試軟件的運行情況,一般包括:

 

  1. 軟件在不同的硬件上的運行情況

  2. 軟件在不同的組件上的運行情況,例如開發的app要測試在不同廠商手機上的安裝運行情況

  3. 不同的外設

  4. 不同的接口

  5. 不同的可選項,例如不同的內存大小

 

兼容性測試的核心內容:

 

  1. 測試軟件是否能在不同的操作系統平台上兼容

  2. 測試軟件是否能在同一操作系統平台的不同版本上兼容

  3. 軟件本身能否向前或者向后兼容

  4. 測試軟件能否與其它相關的軟件兼容

  5. 數據兼容性測試,主要是指數據能否共享

 

配置和兼容性測試通稱對開發系統類軟件比較重要,例如驅動程序、操作系統、數據庫管理系統等。具體進行時仍然按照測試用例來執行。

 

34、軟件文檔測試主要包含什么?

 

隨着軟件文檔系統日益龐大,文檔測試已經成為軟件測試的重要內容。文檔測試對象主要如下:

 

  1. 包裝文字和圖形

  2. 市場宣傳材料、廣告以及其它插頁

  3. 授權、注冊登記表

  4. 最終用戶許可協議

  5. 安裝和設置向導

  6. 用戶手冊

  7. 聯機幫助

  8. 樣例、示范例子和模板

 

文檔測試的目的是提高易用性和可靠性,降低支持費用,因為用戶通過文檔就可以自己解決問題。因文檔測試的檢查內容主要如下:

 

  1. 讀者對象——主要是文檔的內容是否能讓該級別的讀者理解

  2. 術語——主要是檢查術語是否適合讀者

  3. 內容和主題——檢查主題是否合適、是否丟失、格式是否規范等

  4. 圖標和屏幕抓圖——檢查圖表的准確度和精確度

  5. 樣例和示例——是否與軟件功能一致

  6. 拼寫和語法

  7. 文檔的關聯性——是否與其它相關文檔的內容一致,例如與廣告信息是否一致

 

文檔測試是相當重要的一項測試工作,不但要給予充分的重視,更要要認真的完成,象做功能測試一樣來對待文檔測試。

 

35、沒有產品說明書和需求文檔地情況下能夠進行黑盒測試嗎?

 

這個問題是國內測試工程師經常遇到的問題,根源就是國內軟件開發文檔管理不規范,對變更的管理方法就更不合理了。實際上沒有任何文檔的時候,測試人員是能夠進行黑盒測試的,這種測試方式我們可以稱之為探索測試,具體做法就是測試工程師根據自己的專業技能、領域知識等不斷的深入了解測試對象、理解軟件功能,進而發現缺陷。

 

在這種做法基本上把軟件當成了產品說明書,測試過程中要和開發人員不斷的進行交流。尤其在作項目的時候,進度壓力比較大,可以作為加急測試方案。最大的風險是不知道有些特性是否被遺漏。

 

36、測試中的“殺蟲劑怪事”是指什么?

 

  【略...】

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM