轉眼就要到“金三銀四”了,沒點真本事真技術,沒點面試經驗,不了解點職場套路,如何過五關斬六将?如何打敗面試官?如何拿下那夢寐以求的offer?
如果你的跳槽意向已經很确定,那麼請往下看!
跳槽最重要的一步自然是面試,馬上跳槽季,網上出現了各種面試題,一時會讓人眼花缭亂,分不清最該看哪個。
掌握這九道軟體測試面試題,絕對能在面試時,讓面試官眼前一亮!
問項目
1、問:所做項目的情況,主要做什麼類型的測試?
大部分情況,這是一場面試的開門題,面試官問這個問題,主要是考察你的概述能力和全局視野。首先,仔細回顧自己做過的項目。然後挑選最有價值的部分,清楚項目的架構,思路從業務、項目環境、流程以及自己擔任的角色去回答。
業務:比如學掌門Atstudy是一個以線上直播、視訊錄播為主要業務的綜合性網站,分為管理者,教師,學生三個大子產品,同時可以支援web和手機端使用。
項目環境:該系統搭建在Linux伺服器上,使用mysql資料庫,采用PHP後端語言。
流程:學掌門Atstudy目前版本是多少,項目組有多少開發和測試,然後說軟體測試的流程。
自己擔任的角色:負責哪些子產品的什麼測試。
ps:自己負責的子產品需要詳細展開,例如負責該子產品的接口測試還是內建後的功能測試,通過什麼手段去測試的,是基于手工的還是有自動化輔助的;期間用到什麼自動化工具,或者通過什麼語言編寫自動化測試腳本等等技術類問題;另外在測試開展過程中是否遇到難點,這些難點你是通過什麼方法去排查的;諸如此類能夠展示你技術能力的都可以在這個問題中有邏輯地表述清楚。
問解決方案
2、問:你在測試中發現了一個bug,但是開發經理認為這不是一個bug,你應該怎樣解決?
首先,将問題送出到缺陷管理庫裡面進行備案。
然後,要擷取判斷的依據和标準:
1)根據需求說明書、産品說明、設計文檔等,确認實際結果是否與計劃有不一緻的地方,提供缺陷是否确認的直接依據;
2)如果沒有文檔依據,可以根據類似軟體的一般特性來說明是否存在不一緻的地方,來确認是否是缺陷;
3)根據使用者的一般使用習慣,來确認是否是缺陷;
4)與設計人員、開發人員和客戶代表等相關人員探讨,确認是否是缺陷;
5)合理的論述,向測試經理說明自己的判斷的理由,注意客觀、嚴謹,不參雜個人情緒。
最後,等待測試經理做出最終決定,如果仍然存在争議,可以通過公司政策所提供的管道,向上級反映,并由上級做出決定。
問測試技能
3、問:給你一個網站,你如何測試?
首先,查找需求說明、網站設計等相關文檔,分析測試需求。
制定測試計劃,确定測試範圍和測試政策,一般包括以下幾個部分:功能性測試;界面測試;性能測試;資料庫測試;安全性測試;相容性測試
設計測試用例:
①功能性測試
可以包括,但不限于以下幾個方面:
連結測試。連結是否正确跳轉,是否存在空頁面和無效頁面,是否有不正确的出錯資訊傳回。
送出功能的測試。
多媒體元素是否可以正确加載和顯示。
多語言支援是否能夠正确顯示選擇的語言等。
②界面測試
可以包括但不限于以下幾個方面:
頁面是否風格統一,美觀
頁面布局是否合理,重點内容和熱點内容是否突出
控件是否正常使用
對于必須但未安裝的控件,是否提供自動下載下傳并安裝的功能
文字檢查
③性能測試
一般從以下3個方面考慮:
壓力測試;負載測試;穩定性測試
④資料庫測試
要具體決定是否需要開展。資料庫一般需要考慮連接配接性,對資料的存取操作,資料内容的驗證等方面。
⑤安全性測試
基本的登入功能的檢查
是否存在溢出錯誤,導緻系統崩潰或者權限洩露
相關開發語言的常見安全性問題檢查,例如SQL注入等
如果需要進階的安全性測試,确定獲得專業安全公司的幫助,外包測試,或者擷取支援
⑥相容性測試
根據需求說明的内容,确定支援的平台組合:
浏覽器的相容性;
作業系統的相容性;
軟體平台的相容性;
資料庫的相容性
開展測試,并記錄缺陷。合理的安排調整測試進度,提前擷取測試所需的資源,建立管理體系(例如,需求變更、風險、配置、測試文檔、缺陷報告、人力資源等内容)。
定期評審,對測試進行評估和總結,調整測試的内容。
問資料庫
4、問:熟悉資料庫嗎?平時資料庫用的多嗎?
熟悉資料庫嗎?
比較熟,比如DML語句有增删改查:(有序思維說出來)
1 insert into 表名 values(值1,值2,值3,...)
2 delete from 表名 where 條件
3 update 表名 set 列名 = 新值
4 select * from 表名
查詢語句最長的是 select * from 表名 where 條件 group by 分組列名 having 分組後的條件 order by 列名。
平時資料庫用的多嗎?(大概測試過程的1/4時間在查資料庫)
還行,一般出現問題,遇到BUG未必都要去資料庫查詢。
可以舉例:
例如,在需要驗證前後端資料是否及時同步更新,及資料完整性的時候,有必要進入背景資料庫檢視對應資料表中的資料情況。再比如,對于大批量的測試資料構造,也需要通過insert語句批量構造測試資料。
另外,(比如淘寶支付時,輸入支付密碼後,已經傳回了支付成功的提示資訊,然而界面上的訂單查詢還是待付款,這個時候就要去查詢訂單表的資料,找到自己剛才做的交易的那一筆訂單,去分析一下錯誤,如果确認是BUG的話,可以直接在BUG系統中送出給開發)
問Linux
5、問:linux檢視檔案用什麼指令,檢視程序用什麼指令?
回答:檢視檔案内容的指令有 more less head tail cat
檢視程序:ps -ef | grep 程序号
檢視日志檔案常用:less、view
問常用指令
6、問:檢視日志常用什麼指令,主要檢視什麼内容?
1)檢視日志常用less指令或者view指令。
2)主要檢視程式運作的記錄,比如支付失敗,背景就有報錯資訊列印到.log日志檔案中,就可以通過分析日志資訊來初步定為問題。(補充:同時也去查詢資料庫,分析訂單資料,檢視支付狀态等等)
PS:日志就是.log的文本檔案,和.txt一樣屬于文本檔案。vi或者vim編輯器屬于記事本軟體,一般不會用來檢視日志。
問用例設計
7、問:軟體測試用例設計/測試用例的内容/管理工具?
參考:以場景(故事)為驅動的測試設計,并且針對測試資料的選擇上面通常結合等價類劃分,因果圖,邊界值,錯誤推測。
測試用例的内容:标題、測試環境、測試輸入資料、測試步驟、期望結果、測試結果、測試時間、測試人員
管理工具:禅道、QC
問測試興趣
8、你對測試最大的興趣在哪裡?為什麼?
回答這個面試題,沒有固定統一的答案,但可能是許多企業都會問到的。提供以下答案參考:
最大的興趣,感覺這是一個有挑戰性的工作;
測試是一個經驗行業,工作越久越能感覺到做好測試的難度和樂趣,
通過自己的工作,能使軟體産品越來越完善,從中體會到樂趣。
回答此類問題注意以下幾個方面:
1)盡可能的切合招聘企業的技術路線來表達你的興趣,例如該企業是資料庫應用的企業,那麼表示你的興趣在資料庫的測試,并且希望通過測試提升自己的資料庫掌握能力。
2)表明你做測試的目的是為了提升能力,也是為了更好的做好測試;提升能力不是為了以後轉開發或其他的,除非用人企業有這樣的安排。
3)不要過多的表達你的興趣在招聘企業的範疇之外。比如招聘企業是做财務軟體的,可是你表現出來的是對遊戲軟體的興趣;或招聘是做JAVA開發的,而你的興趣是在C類語言程式的開發。
問職業發展
9、你的測試職業發展是什麼?
測試經驗越多,測試能力越高。是以我的職業發展是需要時間累積的,一步步向着進階測試工程師奔去。而且我也有初步的職業規劃,前3年累積測試經驗,按如何做好測試工程師的點要求自己,不斷的更新自己改正自己,做好測試任務。
當然僅僅靠這九道題就能去面試的話,那肯定是不行的,下面将我自己找工作認真總結,并且寫成面經的文章分享給大家。
俗話說得好,他山之石,可以攻玉,多看多借鑒還是有幫助的,肝完這些,30k+妥了!
内容涉及:測試理論、Linux基礎、MySQL基礎、Web測試、接口測試、App測試、管理工具、Python基礎、Selenium相關、性能測試、LordRunner相關等。
全網首發-涵蓋16個技術棧
第一部分,測試理論(測試基礎+需求分析+測試模型+測試計劃+測試政策+測試案例等等)
第二部分,Linux( Linux基礎+Linux練習題)
第三部分,MySQL(基礎知識+查詢練習+萬年學生表經典面試題彙總+資料庫企業真題)
第四部分,Web測試
第五部分,API測試
第六部分,App測試
第七部分,管理工具
第八部分,Python基礎(Python基礎+程式設計題+集合+函數+Python特性等等)
第九部分,Selenium相關
第十部分,性能測試
第十一部分,LordRunner相關
第十二部分,計算機網絡
第十三部分,組成原理
第十四部分,資料結構與算法
第十五部分,邏輯題
第十六部分,人力資源
軟體測試基礎
軟體測試的步驟是什麼?
如何錄制測試腳本?
應該考慮進行如何測試的測試方法
怎樣估計測試工作量?
測試設計的問題
當測試過程發生錯誤時,有哪幾種解決辦法?
測試執行的問題
測試評估的目标
如何提高測試?
C/S模式的優點和缺點
B/S模式的優點和缺點
Linux
grep和find的差別? grep 都有哪些用法?
檢視IP位址?
建立和删除一個多級目錄?
在目前使用者家目錄中查找haha.txt檔案?
如何查詢出tomcat的程序并殺掉這個程序,寫出linux指令?
動态檢視日志檔案?
檢視系統硬碟空間的指令?
檢視目前機器listen 的所有端口?
Python
統計python源代碼檔案中代碼行數,去除注釋,空行,進行輸出?
python調用cmd并傳回結果?
冒泡排序
1,2,3,4 這4個數字,能組成多少個互不相同的且無重複的三位數,都是多少?
請用 python 列印出 10000 以内的對稱數(對稱數特點:數字左右對稱,如:1,2,11,121,1221 等)
給定一個整數 N,和一個 0-9 的數 K,要求傳回 0-N 中數字 K 出現的次數
判斷 101-200 之間有多少個素數,并輸出所有的素數
一個輸入三角形的函數,輸入後輸出是否能組成三角形,三角形類型,請用等價類- 劃分法設計測試用例
MySQL
你用的Mysql是哪個引擎,各引擎之間有什麼差別?
如何對查詢指令進行優化?
資料庫的優化?
Sql注入是如何産“生的,如何防止?
NoSQL和關系資料庫的差別?
MySQL與MongoDB本質之間最基本的差别是什麼
Mysql資料庫中怎麼實作分頁?
Mysql資料庫的操作?
優化資料庫?提高資料庫的性能?
什麼是資料的完整性?
Web
Web測試和app測試差別?
WEB測試環境搭建和測試方法
WEB測試教程
WEB測試要點及基本方法
Web測試頁面總結
…
接口測試
什麼是接口
如果子產品請求http改為了https,測試方案應該如何制定,修改?
常用HTTP 協定調試代理I具有什麼?詳細說明抓取HTTPS協定的設定過程?
描述TCP/IP協定的層次結構,以及每一-層中重要協定
jmeter,一個接口的響應結果如下:
接口産生的垃圾資料如何清理
依賴第三方的接口如何處理
測試的資料你放在哪?
什麼是資料驅動,如何參數化?
性能測試
你認為性能測試的目的是什麼?做好性能測試的工作的關鍵是什麼?
服務端性能分析都從哪些角度來進行?
如何了解壓力測試,負裁測試以及性能測試?
如何判斷是否有記憶體洩漏及關注的名額?
描述軟體産“生記憶體洩露的原因以及檢查方式。(可以結合- 種開發語言進行描述)
簡述什麼是值傳遞,什麼是位址傳遞,兩者差別是什麼?
什麼是系統瓶頸?
…
selenium
如何開展自動化測試架構的建構?
如何設計自動化測試用例:
webdriver如何開啟和退出一個浏覽器?
什麼是自動化測試架構?
Selenium是什麼,流行的版本有哪些?
你如何從指令行啟動Selenium RC?
在我的機器端口4444不是免費的。我怎樣才能使用另一個端口?
什麼是Selenium Server,它與Selenium Hub有什麼不同?
你如何從Selenium連接配接到資料庫?
你如何驗證多個頁面上存在的一個對象?
XPath中使用單斜杠和雙斜杠有什麼差別?
如何編寫SeleniumIDE/ RC的使用者擴充?
如何在頁面加載成功後驗證元素的存在?
你對Selenium Grid有什麼了解?它提供了什麼功能?
如何從你的Java Class啟動Selenium伺服器?
Selenium中有哪些驗證點?
什麼是XPath?什麼時候應該在Selenium中使用XPath?
…
計算機與網絡
一台計算機的IP是192.168.10.71子網路遮罩255.255.255.64與192.168.10.201 …
請簡述DNS、活動目錄、域的概念。
10M兆寬帶是什麼意思?理論下載下傳速度是多少?
什麼是IP位址?
OSI七層網絡模型的劃分?
TCP和UDP有什麼不同?
HTTP屬于哪一層的協定?
HTTP和HTTPS的差別?
cookies和session的差別?
HTTP的get請求和post請求的差別?
HTTP1.0和HTTP1.1有什麼差別
TCP的連接配接建立過程,以及斷開過程?
用戶端使用DHCP擷取IP的過程?
寫出某個網段的網絡位址和廣播位址?
…
人力資源
你的測試職業發展是什麼?你自認為做測試的優勢在哪裡?
你找工作時,最重要的考慮因素為何?
為什麼我們應該錄取你?
請談談你個人的最大特色。
一個測試工程師應具備那些素質和技能?
還有問一下你是怎樣保證軟體品質的,也就是說你覺得怎樣才能最大限度地保證軟體品質?
為什麼選擇測試這行?
如果我雇用你,你能給部門帶來什麼貢獻?
這份文檔,對于今年備戰金三銀四面試的朋友來說,應該會有很大的幫助,希望大家都能收到滿意的offer,大家覺得有用的話記得給我點贊收藏,點選下方小卡片均可以分享。