【面試乾貨】2020年軟件測試面試題大全(持續更新)附答案




你和麪試官之間的距離,可能就只有這篇文章的厚度。前端




高能預警,全場乾貨1折起java

Tip:我整理的面試題都按照這個腦圖寫,不按期更新,往下翻有目錄,後期會不斷把參考答案補充上去,點擊標題閱讀便可此文章長期有效,找測試相關工做的同窗必定要好好收藏
python

📚目錄

1、開場白

Q:簡單自我介紹一下吧linux

Q:項目和實習經歷?(注意使用STAR法則表述)程序員


2、軟件測試基礎

2.1 工做內容web

Q:按測試內容劃分,測試有哪些種類?面試

Q:軟件開發(測試)的流程是怎麼樣的?算法

Q:你印象最深入的 bug 是?數據庫

Q:談談你對 CI/CD 的理解編程

Q:談談你對 DevOps 的理解

Q:什麼是 BDD ? 什麼是 TDD ?

Q:APP的一個頁面,你怎麼區分是原生Native頁面,仍是H5?

2.2 測試方法

Q:黑盒測試的方法有哪些?

Q:白盒測試的方法有哪些?

Q:什麼是單元測試?

Q:什麼是集成測試?

Q:測試用例怎麼編寫與設計?

Q:什麼是灰盒測試?

2.3 測試文檔

Q:測試用例都包含哪些要素?

Q:測試報告須要展現哪些要素?

Q:測試排期應該怎麼估算?

Q:談談你構造數據的經歷?

2.4 自動化測試

Q:舉例說明,都有哪些功能能夠用自動化來進行?

Q:如何判斷一個功能可否進行自動化測試?

Q:定位xpath路徑都有哪些方法?

Q:如何定位一個動態的元素?

Q:如何定位相似於懸浮在web頁面上的元素(相似於web上飛來飛去的廣告)

Q:列舉你知道的自動化測試工具

2.5 測試工具

Q:聊聊 fiddler 的抓包原理

Q:fiddler 怎麼抓取 https 請求?

Q:wireshark 抓包的頭部有什麼?

2.6 性能測試

Q:性能測試如何作的?

Q:性能測試須要關注哪些方面?

2.7 遊戲測試

Q:印象最深的遊戲是哪一個?哪些方面最吸引你?

Q:印象最深的遊戲裏有過哪些bug,分析下緣由

Q:如何對一個大地圖遊戲進行測試?該有哪些測試點?

Q:測試程序設計的不合理 與 測試程序完善可是測試人員出現失誤,哪一項更嚴重?

Q:遊戲測試的定位和職責你以爲是什麼?

Q:遊戲採用客戶端和服務器架構的必要性是什麼?

Q:LOL腳本的原理是什麼?

Q:爲何RPG遊戲腳本沒有LOL這種競技類腳本開發的多?

Q:有一個觸發機率極低可是很是致命的BUG,明天項目必定要上線,你怎麼處理,不用非得解決,就是問我怎麼處理這種事。

Q:爲何想作遊戲測試?

Q:讓你作一個遊戲,你更想作哪一個類型的(MMORPG?MOBA?FPS?RTS?)

Q:說說遊戲史,除了遊戲還有什麼愛好?

Q:列舉你知道的遊戲測試的測試工具


3、軟件測試實戰

3.1 排查問題的思路

Q:網頁崩潰的緣由是什麼?

Q:有個用戶反饋上傳頭像失敗,分析緣由?

Q:app閃退的緣由?

Q:偶然閃退的排查?

Q:網頁卡頓的緣由是什麼?

Q:10%的用戶反饋用不了功能,你講如何排查?

Q:登陸的按鈕不能點擊,如何排查問題?

Q:壓測的時候,QPS一直上不去,你會怎麼排查?

Q:APP提示沒法鏈接網絡,你會如何排查?

Q:怎麼判斷一個BUG究竟是前端的BUG仍是後端的BUG?

3.2 實戰案例

Q:微博發動態,設計一下測試點

Q:對一臺自動售貨機進行測試用例設計

Q:設計微信發紅包測試用例

Q:設計抖音直播功能測試用例

Q:設計微信掃碼支付的測試用例

Q:設計百度首頁的測試用例

Q:微信的點贊功能怎麼測試?

Q:微信紅包是先計算每一個人能得到的錢仍是當這我的點了再計算。

Q:微信朋友圈評論功能怎麼測試?

Q:微信上線一個新的好友推薦功能功能如何測試?

Q:測試微信換頭像功能,設計測試用例

Q:抖音視頻的安全性測試,測試點有哪些?

Q:若是手機瀏覽器輸入baidu.com打不開頁面,你會怎麼排查?

Q:設計輸入框測試用例?

Q:編寫一個登陸界面的測試用例?

Q:對一個接口編寫測試用例

Q:搜索功能怎麼測試?


4、語言基礎

4.1 Java

Q:什麼是多態?

Q:什麼是GC?

Q:set 與 hashset 的區別

Q:map 與 hashmap 的區別

Q:hashmap 的查找,刪除,添加的時間複雜度

Q:查找全部java進程

Q:殺死java進程

Q:介紹一下 java 的拷貝、四種引用

Q:java容器有哪些?簡要介紹一下 java 的數組和鏈表

Q:談談你對 java 集合瞭解多少?

Q:Java 三大特性是什麼?

Q:List 和 Map 有什麼區別?

Q:談談 List、Set、Map的區別?

Q:重寫與重載的區別是什麼?

Q:HashMap 和 HashTable 的區別是什麼?

Q:ArrayList 和 LinkedList 的區別是什麼?

Q:Map 的 put 方法

Q:java的封裝,java 的訪問權限關鍵字的做用域?

Q:爲何 java 要面向接口編程?

Q:什麼是反射?

Q:interface 和 abstract 的區別是什麼?

Q:熟悉 maven 麼?談談你對 maven 的瞭解

4.2 Python

Q:全局變量和局部變量變量名可否同樣?

Q:Python 裏 is 和 == 的區別?

Q:Python 變量的建立與消亡過程

Q:Python的垃圾回收的機制

Q:dict的底層結構,tuple和list的底層結構的區別

Q:深拷貝淺拷貝的區別是什麼?

Q:什麼是協程?

Q:什麼是裝飾器?舉一個你用過裝飾器的例子

Q:@classmethod 和 @staticmethod 的區別,以及分別運用在哪些使用場景?

Q:什麼是鴨子類型?

Q:python 的可變類型有哪些?

Q:python 常見的數據類型有哪些?

Q:列舉 python2 和 python3 的區別

Q:什麼是lambda函數?怎麼用?

Q:別的編程語言都有三目運算符,三目運算符在python中怎麼表達?

Q:try...except...else 和 try...except...finally 的區別是什麼?

Q:什麼是可迭代對象?可迭代對象的原理是什麼?

Q:with...as 的原理是什麼?

Q:解釋一下python的GIL鎖

Q:python 是單繼承仍是多繼承?

Q:python 繼承的順序是什麼?

Q:什麼是元類?

Q:爲何都說 python 慢?

4.3 Shell

Q:什麼場景下,適合編寫 Shell 腳原本處理?

4.4 C++

Q:指針和引用的區別是什麼?


5、數據結構與算法

5.1 鏈表

Q:一個有序鏈表,怎麼求第K大個節點?

Q:怎麼找出這兩個鏈表是否有相交的點

Q:數組與鏈表的區別

Q:鏈表逆序

5.2 數組

Q:怎麼對倆有序數組合並?

Q:求數組中和爲 n 的兩個數,時間複雜度是多少?

Q:int 型數組,怎麼排序?

Q:int 型數組,怎麼去重?

5.3 複雜度

Q:時間複雜度是什麼?

Q:怎麼計算時間複雜度?

5.4 排序

Q:八大排序都有哪些?

Q:快排的原理

Q:歸併排序的原理

Q:冒泡排序的原理

Q:插入排序的原理

Q:選擇排序的原理

5.5 樹

Q:數的定義,代碼實現

Q:什麼是樹的高度?怎麼求?

Q:計算二叉樹節點的個數

Q:什麼是根結點?什麼是葉子節點?

Q:打印二叉樹

5.6 遞歸

Q:什麼是遞歸?

Q:遞歸的時間複雜度是什麼?

5.7 字符串

Q:字符串長度能夠改變麼?

5.8 堆與棧

Q:堆和棧都有什麼區別

Q:代碼實現棧

5.9 動態規劃

Q:什麼是動態規劃?

5.10 高級算法

Q:什麼是深度遍歷?什麼是廣度遍歷?

5.11 查找

Q:可以實現二分查找的必要條件是什麼?

5.12 哈希

5.13 圖


6、框架

6.1 開發框架

6.1.1 Django

Q:簡單介紹一下Django的目錄結構

Q:瞭解什麼是MVC麼?爲何說 Django 是MTV模型?

Q:一個網絡請求在Django中的實現過程

Q:uwsgi是什麼?用uwsgi和用Django的原生啓動方式,有什麼區別?

Q:瞭解 ORM 麼?簡單介紹一下Django的ORM映射

Q:Django的 CBV 和 FBV 的區別?實際項目中你會使用哪一種方式?爲何?

Q:怎麼把 Django 的 module 同步到數據庫中?同步過程當中會遇到什麼坑麼?

6.1.2 Spring

Q:Spring 框架介紹

Q:什麼是 IOC?

Q:什麼是 DI?

Q:什麼是 AOP?

6.2 測試框架

6.2.1 selenium

Q:selenium框架的運行原理

Q:selenium定位元素的方法都有哪些

6.2.2 Appium

Q:Appium用過嗎?原理是什麼?

6.2.3 Unittest

6.2.4 Pytest

6.2.5 TestNG

6.2.6 Junit


7、計算機基礎

7.1 計算機網絡

7.1.1 TCP/UDP

Q:簡單介紹 TCP 三次握手(爲何不是兩次、四次)

Q:四次分手是什麼?

Q:TCP 擁塞是什麼?

Q:TCP怎麼保證安全的,UDP可否也像TCP那樣安全,怎麼作?

Q:你知道 tcp 的控制可靠性的策略和重傳機制麼?

Q:TCP協議屬於哪一層?

7.1.2 HTTP/HTTPS

Q:cookie 和 session 機制、區別

Q:輸入url到網頁顯示出來中間的過程

Q:列舉你知道的網頁狀態碼

Q:3 開頭的網絡狀態碼的含義是什麼?302和304的區別是什麼?

Q:4 開頭的網絡狀態碼含義是什麼?

Q:5 開頭的網絡狀態碼含義是什麼?

Q:什麼是 HTTPS?原理是什麼?

Q:GET 和 POST 的區別是什麼?

Q:網絡請求 method 有哪幾種?

Q:簡單介紹一下什麼是 RESTful API

Q:PUT 和 POST 的區別

Q:列舉常見的請求 Header 頭

Q:一個HTTP請求報文是什麼樣的?(GET舉例)

Q:GET 的長度限制瞭解麼?

7.1.3 其餘

Q:最大鏈接數和QPS區別

Q:網絡一共分爲幾層?

Q:客戶端向服務器請求圖片和動態資源的區別

Q:圖片渲染的過程 前端

Q:網絡七層有哪些?tcp,udp,arp都在哪一層?

Q:QPS 和 TPS 的區別是什麼?

Q:解釋一下DNS

Q:什麼是反向代理?

Q:什麼是 socket?

Q:【手撕】用 socket 實現一個聊天室功能?

7.2 操做系統

7.2.1 進程/線程

Q:進程與線程的區別?

Q:什麼時候cpu處理進程最慢?

Q:爲何會出現死鎖?

Q:進程間通訊的方式?

Q:線程間通訊的方式?

Q:如何作到線程同步?

7.2.2 Linux

Q:linux切換目錄

Q:linux命令,統計一個文本中關鍵字出現的次數

Q:linux 查找當前目錄下全部後綴爲 .py文件

Q:知道的linux經常使用命令:查看指定端口進程

Q:cd - 和 cd ~

Q:linux 查看某個進程命令怎麼寫

Q:如何查看日誌?怎麼查看後500條日誌?

Q:awk有什麼用?如何用(舉個例子)?

Q:如何查看系統性能?

Q:如何查看剩餘磁盤空間大小?

Q:如何查看目錄佔空間大小?

Q:你知道 xarg 的用法嗎?

Q:怎麼從本地計算機與服務器中進行文件傳輸?

Q:測試服務器之間怎麼進行文件拷貝?

Q:sed 有什麼用?如何用(舉個例子)?

Q:怎麼殺死一個進程?

Q:怎麼遞歸刪除一個目錄下的全部文件?

Q:怎麼查看內存大小?

Q:怎麼查看 CPU 使用狀況?

Q:怎麼重啓 Linux 服務器?

Q:怎麼打印出一個文件的第500-1000行?

7.2.3 文件存儲

Q:靜態存儲和動態存儲的區別

Q:視頻在服務器的存儲幾種方式

Q:CDN有什麼用?

Q:爲何前端靜態資源要上傳到CDN上?

7.2.4 其餘

Q:系統資源包括哪些?

Q:什麼是 IO 操做?

Q:什麼是內存?

Q:什麼是硬盤?

Q:什麼是CPU?

Q:什麼操做比較消耗CPU?

Q:什麼是UTF-8?什麼是Unicode?

Q:什麼是 IO 多路複用?以及怎麼實現?

Q:談談什麼是分佈式?爲何要用分佈式?

7.3 數據庫

7.3.1 非關係型數據庫

Q:非關係型數據庫有哪些?

Q:Redis的數據結構有哪些?

Q:Redis 和 Memcached 的區別?

Q:Redis 的用途?

Q:Redis一秒能寫入多少數據?

Q:Redis爲何快?

Q:Redis的過時時間怎麼設置?哪些場景適合緩存更長時間?

Q:什麼是緩存雪崩?

Q:什麼是緩存擊穿?緩存擊穿和緩存穿透的區別是什麼?

Q:何時適合用MongoDB?

Q:Redis 適合作消息隊列嗎?爲何?

Q:Redis 的數據是存儲在內存當中的,假如斷電以後就會形成數據丟失,那怎麼對 Redis 進行數據固化?


7.3.2 關係型數據庫

數據庫基本理論

Q:有哪些數據庫優化的方式?

Q:關係型數據庫和非關係型數據庫的區別?

Q:數據庫的事務有什麼用?何時應該使用事務,何時不應使用事務?

Q:數據庫索引有什麼用?什麼是聯合索引?

Q:主鍵適合用自定義ID仍是自動ID?

Q:外鍵是什麼?爲何大公司有時候不建議使用外鍵?

Q:索引設置得越多越好嗎?索引得優缺點是什麼?

Q:InnoDB是基於什麼實現的?

Q:爲何會形成數據庫死鎖?怎麼解決?

Q:事務都有哪些特色?

Q:數據庫設計的三大範式是什麼?

Q:一張數據表最多不建議超過多少行?

Q:爲何要進行分表分庫?

Q:分表分庫有哪幾種方式?舉例說明

SQL

Q:【手撕】數據庫,查找一個學生兩門功課都大於80分的姓名

Q:【手撕】聯表查詢2個表中工號爲「123」的人的全部信息

Q:【手撕】一我的員表,一個部門表,人員表中存了部門id,查人員表各部門表全部數據

Q:【手撕】查詢一個城市列表裏面重複的城市名,而且統計重複次數

Q:【手撕】查找一個學生成績表中平均分數大於90分的學生名單

Q:【手撕】查找學生成績表中平均成績最高的同窗

Q:數據庫怎麼拷貝數據?

Q:刪除數據的方式有哪些?說說 drop table和truncate table的區別?


8、智力題

Q:跳臺階問題

Q:4分鐘沙漏和7分鐘沙漏怎麼漏出9分鐘

Q:兩個粗細不一樣的香,燃盡時間都是1個小時,怎麼用這個2根香計算15分鐘的時間

Q:賽馬

Q:10堆蘋果,每堆10個,9堆每一個50g,1堆每一個40g,有一個稱,求只稱一次,找出這個輕的一堆

Q:飛機加油問題

Q:邏輯:四個開關四個燈泡

Q:地球弧形


9、編程題

Q:求最大回文個數

Q:一個數組中有正數有負數(沒有0),請將它排成正負相間的數組(多餘的所有放後面),時間複雜度不超過O(n);

Q:一道編程題,輸入一串由ABCD四個字隨機組成的字符串和一個整數k,返回字符串種前k個字的順序重複了幾回。

Q:編程:判斷一個字符串是否符合ipv4格式

Q:代碼題,給一個句子,只把單詞翻轉而後輸入

Q:【手撕代碼】字符串中只出現一次的字符、找出數組中最小的四個數字

Q:代碼:一串字符串中最小的整數

Q:寫代碼,相似高考成績,一個表中有不少數據(無序的),給你一個成績,查出在表中的排名

Q:編程題,雞兔同籠,一半的兔子伸起一半的腳,輸入地上有幾隻腳,列出全部的可能性(兔子是基數則整除2)

Q:判斷一個字符串是不是點分十進制的ipv4格式

Q:100萬個學生 按照成績 及對應排名錄入 分數查找排名(hashmap)

Q:python的編程題,輸入一個字符串而後空格切割在統計每一個字母出現的次數


10、HR常問

Q:爲何想作測試

Q:對測開的理解

Q:測試過程當中有沒有出現問題,是如何解決的

Q:最近看了什麼書?學了什麼?爲何學?有看什麼技術書籍嗎?

Q:我的優缺點,舉例

Q:測試看重什麼能力

Q:項目問題細挖

Q:爲何選擇xx公司?

Q:你對咱們公司有什麼瞭解嗎?

Q:以前實習收穫了什麼

Q:介紹下本身的優缺點

Q:抗壓能力如何,描述一件本身如何抗壓的經歷

Q:反問環節:你有什麼問題想問我麼?

Q:項目中收穫了什麼?

Q:平時怎麼學習的

Q:爲何要離職?

Q:你的指望薪資是多少?






長按識別下方二維碼關注公衆號

關注個人微信公衆號【測試開發Guide】,


回覆「java」:便可得到java經典學習資料,帶你輕鬆入門java編程。

回覆「python」:免費獲取「python入門」高分好書,業餘時間偷偷變牛逼。
回覆「面試」:24個常見的測試面試題,你必定不想錯過。
回覆「書單」:獲取2020年軟件測試工程師必看的書單

回覆「測試用例」:獲取本人經常使用的 Excel 和 Xmind 測試用例模版
回覆「測試工具」:獲取 mac 和 windows 經常使用的測試工具

若是這篇文章對你有幫助,記得點個「在看」,鼓勵一下我。我會繼續給你們推送測試開發相關的優質文章。


優秀的人都在點「在看

本文分享自微信公衆號 - 程序員臻叔(TestDevGuide)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。

相關文章
相關標籤/搜索