千鋒教育-做有情懷、有良心、有品質的職業教育機構
今天給大家帶來的是 軟件測試工程師在面試過程中, 出現頻率最大的10道面試題
1.自我介紹.
面試問題第一問,95%都會是:請簡單的做個自我介紹吧~
分以下幾點說明。
一、個人的基本信息,揚長避短
例子:面試官您好,我叫***,來自于哪里,從事軟件測試工作有幾年了。
例子:面試官您好,我叫***,來自于哪里,計算機專業畢業后,從事軟件測試工作有幾年了
二、突出自己的工作經驗
自己的項目經驗(重點突出跟你面試公司相關或者同類型的項目)。
比如公司從事的主要是web項目:
以前主要是從事web系統的項目,做過不少的項目,也積累了不少的測試經驗,能夠獨立完成產品的測試。
比如公司從事的主要是app項目:
以前主要是從事的web與app的項目,最近做的項目主要是app為主,做過不少的項目,也積累了不少的測試經驗,能夠獨立完成產品的測試
三、突出自己的技能
結合自己的參與過的項目, 主要從以下幾個方面充電闡述自己的技能.
1、測試流程
2、測試需求分析
3、linux系統
4、數據庫
5、接口測試
6、性能測試
7、自動化測試
8、安全測試
9、編程語言
四、總結并結束
簡單概括自己的測試經歷及收獲, 可以重點突出自己較強的技能點.
2.什么是軟件測試?
1、正向思維:出發點:使自己確信產品是能夠正常工作而評價一個系統或者程序的過程,確定程序或者系統能否達到實際的結果需求,軟件測試就是以此為目的的。(第一視角會認為產品是沒有問題的,在此基礎之上,再來發現缺陷)
2、反向思維:出發點:測試是為了發現錯誤而去執行程序或者系統的過程。測試是為了證明程序有錯,而不是證明程序沒有錯誤。一個成功的測試是能夠發現以前未發現的錯誤。
3、IEEE(電氣電子工程師協會)定義:
軟件測試就是在規定條件(測試環境)下運行系統(軟件整體)或者構件(軟件中的某個功能模塊)的過程:觀察和記錄結果,對系統或者構件給出對應的評價(分析整個項目的運行過程,看實際結果和預期結果是否一致)
4、廣義的軟件測試定義(來源于測試經驗的總結):
軟件測試是對軟件在整個形成的過程中所有相關的產品(程序+數據+文檔)進行測試,不僅僅只測程序,包括還有各種和程序相關的數據,以及文檔-->需求文檔,設計文檔,用戶手冊等等。
3.你在測試中發現了一個bug,但是開發經理認為這不是一個bug,你應該怎樣解決?
首先,將問題提交到缺陷管工具中;
然后,要獲取判斷的依據和標準:
根據需求說明書、產品說明、設計文檔等,確認實際結果是否與計劃有不一致的地方,提供缺陷是否確認的直接依據;
如果沒有文檔依據,可以根據類似軟件的一般特性來說明是否存在不一致的地方,來確認是否是缺陷; 根據用戶的一般使用習慣,來確認是否是缺陷; 與設計人員、開發人員和客戶代表等相關人員探討,確認是否是缺陷;
合理的論述,向開發經理說明自己的判斷的理由,注意客觀、嚴謹,不參雜個人情緒。
等待開發經理做出最終決定,如果仍然存在爭議,可以通過公司政策所提供的渠道,向上級反映,并由上級做出決定。
4. 目前主要的測試用例設計方法是什么?
白盒測試:邏輯覆蓋、循環覆蓋、基本路徑覆蓋(邏輯覆蓋包括語句覆蓋、判定覆蓋、條件覆蓋、判定/條件覆蓋、條件組合覆蓋和路徑覆蓋)
黑盒測試:等價類劃分、邊界值分析法、因果圖法、狀態圖法、測試大綱法、隨機測試、場景法
5. 什么是軟件缺陷:
1、軟件未實現產品說明書要求的功能
2、軟件出現了產品說明書指明不應該出現的錯誤
3、軟件實現了產品說明書未提到的功能
4、軟件未實現產品說明書雖未明確提及但應該實現的目標
5、軟件難以理解、不易使用、運行緩慢或者(從測試的角度看)最終用戶會認為不好。
總結:所有不滿足需求或者超出需求的都是缺陷;實際結果和預期結果不一致
6. 如何測試一個紙杯?
功能測試:用水杯裝水看漏不漏;水能不能被喝到
安全性:杯子有沒有毒或細菌
可靠性:杯子從不同高度落下的損壞程度
可移植性:杯子在不同的地方、溫度等環境下是否都可以正常使用
兼容性:杯子是否能夠容納果汁、白水、酒精、汽油等
易用性:杯子是否燙手、是否有防滑措施、是否方便飲用
用戶文檔:使用手冊是否對杯子的用法、限制、使用條件等有詳細描述
壓力測試:將杯子盛上水放24小時檢查泄漏時間和情況;盛上汽油放24小時檢查泄漏時間和情況等
探索性測試:用根針并在針上面不斷加重量,看壓強多大時會穿透
7. 軟件測試的原則:
1、所有測試的標準都是建立在用戶需求之上 。
2、合理控制測試深度與廣度,完全測試不可能,測試的投入與產出要均衡。
3、80-20原則,軟件中80%的bug可以在分析、設計與評審階段就能被發現與修正,16%的缺陷在系統的軟件測試中發現,最后剩下的4%是用戶長期使用的過程中才能暴露出來。
4、盡可能早的開展測試,越早發現錯誤,修改的代價越小。
5、發現錯誤較多的程序段,應進行更深入的測試。
6、軟件項目一啟動,軟件測試也就是開始,而不是等程序寫完,才開始進行測試 。
7、軟件開發人員即程序員應當避免測試自己的程序
8、嚴格執行測試計劃,排除測試的隨意性,以避免發生疏漏或者重復無效的工作
8. 軟件測試的目的:
1、驗證軟件需求和功能是否得到完整實現
2、驗證軟件是否可以發布
3、盡可能多的發現軟件中的bug
4、盡可能早的發現軟件中的bug
5、對軟件質量做出合理評估
6、預防下個版本可能出現的問題
7、預防用戶使用可能出現的問題
8、發現開發過程中的問題和風險
9. 缺陷嚴重程度如何劃分?
缺陷的嚴重程度:因缺陷引起的故障對軟件產品使用的影響。
致命(Fatal):主要功能完全喪失,甚至造成人身危機,或者核心數據計算錯誤,app閃退,數據不可恢復。
嚴重(Critical):主要核心功能部分喪失,次要功能未實現,核心數據計算不精確,app閃退之后但是打開還可以恢復數據。
一般(bug):次要功能沒有完全實現,提示信息不準確,用戶界面差,操作時間過長。
較小(Minor 建議性缺陷):使用不方便,錯別字,排版問題,但是不影響用戶的使用和軟件的執行操作
10. 詳細的描述一個測試活動完整的過程
1、項目經理通過和客戶的交流,完成需求文檔,由項目團隊成員共同完成需求文檔的評審,評審的內容包括:需求描述不清楚的地方和可能有明顯沖突或者無法實現的功能的地方。項目經理通過綜合開發人員,測試人員以及客戶的意見,完成項目計劃。
2、開發人員根據需求文檔完成需求分析文檔,測試人員進行評審,評審的主要內容包括是否有遺漏或者雙方理解不同的地方。測試人員完成測試計劃文檔,測試計劃包括的內容上面有描述。
3、測試人員根據修改好的需求文檔開始寫測試用例,同時開發人員完成概要設計文檔,詳細設計文檔。此兩份文檔為測試人員設計和編寫測試用例的補充文檔。
4、測試用例完成后,項目團隊成員需要對測試用例進行評審。
5、測試人員搭建環境
6、開發人員提交第一個版本,可能存在未完成功能,需要說明。測試人員進行測試,發現缺陷后提交到缺陷管理工具。
7、開發提交第二個版本,包括回歸測試以及增加了部分功能,測試人員進行測試。
8、重復上面的工作,一般是3-4個版本后缺陷數量減少,基本滿足需求的要求。
9、如果有客戶反饋的問題,需要測試人員協助重現以及回歸測試。
上一篇
移動端專項測試以及測試的注意點下一篇
自動化測試會取代手工測試嗎?相關推薦