你和麪試官之間的距離,可能就只有這篇文章的厚度。前端
高能預警,全場乾貨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源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。