2023年最系統的自動化測試,測試開發(fā)面試題,10k以下不建議看(自動化測試面試寶典)
鑒于現在嚴峻的就業(yè)形勢,千萬大學生即將出新手村,今天給大家打包好了2023最能避免薪資倒掛的《面試圣經》。不經一番寒徹骨,怎得梅花撲鼻香。這份面試題,與君共勉!
一、開場白
Q:簡單自我介紹一下吧
Q:項目和實習經歷?(注意使用STAR法則表述)
二、軟件測試基礎
2.1 工作內容
Q:按測試內容劃分,測試有哪些種類?
Q:軟件開發(fā)(測試)的流程是怎么樣的?
Q:你印象最深刻的 bug 是?
Q:談談你對 CI/CD 的理解
Q:談談你對 DevOps 的理解
Q:什么是 BDD ? 什么是 TDD ?
Q:APP的一個頁面,你怎么區(qū)分是原生Native頁面,還是H5?
2.2 測試方法
Q:黑盒測試的方法有哪些?
Q:白盒測試的方法有哪些?
Q:什么是單元測試?
Q:什么是集成測試?
Q:測試用例怎么編寫與設計?
Q:什么是灰盒測試?
2.3 測試文檔
Q:測試用例都包含哪些要素?
Q:測試報告需要展示哪些要素?
Q:測試排期應該怎么估算?
Q:談談你構造數據的經歷?
2.4 自動化測試
Q:舉例說明,都有哪些功能可以用自動化來進行?
Q:如何判斷一個功能能否進行自動化測試?
Q:定位xpath路徑都有哪些方法?
Q:如何定位一個動態(tài)的元素?
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這種競技類腳本開發(fā)的多?
Q:有一個觸發(fā)概率極低但是非常致命的BUG,明天項目一定要上線,你怎么處理,不用非得解決,就是問我怎么處理這種事。
Q:為什么想做游戲測試?
Q:讓你做一個游戲,你更想做哪個類型的(MMORPG?MOBA?FPS?RTS?)
Q:說說游戲史,除了游戲還有什么愛好?
Q:列舉你知道的游戲測試的測試工具
三、軟件測試實戰(zhàn)
3.1 排查問題的思路
Q:網頁崩潰的原因是什么?
Q:有個用戶反饋上傳頭像失敗,分析原因?
Q:app閃退的原因?
Q:偶然閃退的排查?
Q:網頁卡頓的原因是什么?
Q:10%的用戶反饋用不了功能,你講如何排查?
Q:登錄的按鈕不能點擊,如何排查問題?
Q:壓測的時候,QPS一直上不去,你會怎么排查?
Q:APP提示無法連接網絡,你會如何排查?
Q:怎么判斷一個BUG到底是前端的BUG還是后端的BUG?
3.2 實戰(zhàn)案例
Q:微博發(fā)動態(tài),設計一下測試點
Q:對一臺自動售貨機進行測試用例設計
Q:設計微信發(fā)紅包測試用例
Q:設計抖音直播功能測試用例
Q:設計微信掃碼支付的測試用例
Q:設計百度首頁的測試用例
Q:微信的點贊功能怎么測試?
Q:微信紅包是先計算每個人能獲得的錢還是當這個人點了再計算。
Q:微信朋友圈評論功能怎么測試?
Q:微信上線一個新的好友推薦功能功能如何測試?
Q:測試微信換頭像功能,設計測試用例
Q:抖音視頻的安全性測試,測試點有哪些?
Q:如果手機瀏覽器輸入baidu.com打不開頁面,你會怎么排查?
Q:設計輸入框測試用例?
Q:編寫一個登錄界面的測試用例?
Q:對一個接口編寫測試用例
Q:搜索功能怎么測試?
四、語言基礎
4.1 Java
Q:什么是多態(tài)?
Q:什么是GC?
Q:set 與 hashset 的區(qū)別
Q:map 與 hashmap 的區(qū)別
Q:hashmap 的查找,刪除,添加的時間復雜度
Q:查找所有java進程
Q:殺死java進程
Q:介紹一下 java 的拷貝、四種引用
Q:java容器有哪些?簡要介紹一下 java 的數組和鏈表
Q:談談你對 java 集合了解多少?
Q:Java 三大特性是什么?
Q:List 和 Map 有什么區(qū)別?
Q:談談 List、Set、Map的區(qū)別?
Q:重寫與重載的區(qū)別是什么?
Q:HashMap 和 HashTable 的區(qū)別是什么?
Q:ArrayList 和 LinkedList 的區(qū)別是什么?
Q:Map 的 put 方法
Q:java的封裝,java 的訪問權限關鍵字的作用域?
Q:為什么 java 要面向接口編程?
Q:什么是反射?
Q:interface 和 abstract 的區(qū)別是什么?
Q:熟悉 maven 么?談談你對 maven 的了解
4.2 Python
Q:全局變量和局部變量變量名能否一樣?
Q:Python 里 is 和 == 的區(qū)別?
Q:Python 變量的創(chuàng)建與消亡過程
Q:Python的垃圾回收的機制
Q:dict的底層結構,tuple和list的底層結構的區(qū)別
Q:深拷貝淺拷貝的區(qū)別是什么?
Q:什么是協程?
Q:什么是裝飾器?舉一個你用過裝飾器的例子
Q:@classmethod 和 @staticmethod 的區(qū)別,以及分別運用在哪些使用場景?
Q:什么是鴨子類型?
Q:python 的可變類型有哪些?
Q:python 常見的數據類型有哪些?
Q:列舉 python2 和 python3 的區(qū)別
Q:什么是lambda函數?怎么用?
Q:別的編程語言都有三目運算符,三目運算符在python中怎么表達?
Q:try…except…else 和 try…except…finally 的區(qū)別是什么?
Q:什么是可迭代對象?可迭代對象的原理是什么?
Q:with…as 的原理是什么?
Q:解釋一下python的GIL鎖
Q:python 是單繼承還是多繼承?
Q:python 繼承的順序是什么?
Q:什么是元類?
Q:為什么都說 python 慢?
4.3 Shell
Q:什么場景下,適合編寫 Shell 腳本來處理?
4.4 C
Q:指針和引用的區(qū)別是什么?
五、數據結構與算法
5.1 鏈表
Q:一個有序鏈表,怎么求第K大個節(jié)點?
Q:怎么找出這兩個鏈表是否有相交的點
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:計算二叉樹節(jié)點的個數
Q:什么是根結點?什么是葉子節(jié)點?
Q:打印二叉樹
5.6 遞歸
Q:什么是遞歸?
Q:遞歸的時間復雜度是什么?
5.7 字符串
Q:字符串長度可以改變么?
5.8 堆與棧
Q:堆和棧都有什么區(qū)別
Q:代碼實現棧
5.9 動態(tài)規(guī)劃
Q:什么是動態(tài)規(guī)劃?
5.10 高級算法
Q:什么是深度遍歷?什么是廣度遍歷?
5.11 查找
Q:能夠實現二分查找的必要條件是什么?
5.12 哈希
5.13 圖
六、框架
6.1 開發(fā)框架
6.1.1 Django
Q:簡單介紹一下Django的目錄結構
Q:了解什么是MVC么?為什么說 Django 是MTV模型?
Q:一個網絡請求在Django中的實現過程
Q:uwsgi是什么?用uwsgi和用Django的原生啟動方式,有什么區(qū)別?
Q:了解 ORM 么?簡單介紹一下Django的ORM映射
Q:Django的 CBV 和 FBV 的區(qū)別?實際項目中你會使用哪種方式?為什么?
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.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ū)別
Q:輸入url到網頁顯示出來中間的過程
Q:列舉你知道的網頁狀態(tài)碼
Q:3 開頭的網絡狀態(tài)碼的含義是什么?302和304的區(qū)別是什么?
Q:4 開頭的網絡狀態(tài)碼含義是什么?
Q:5 開頭的網絡狀態(tài)碼含義是什么?
Q:什么是 HTTPS?原理是什么?
Q:GET 和 POST 的區(qū)別是什么?
Q:網絡請求 method 有哪幾種?
Q:簡單介紹一下什么是 RESTful API
Q:PUT 和 POST 的區(qū)別
Q:列舉常見的請求 Header 頭
Q:一個HTTP請求報文是什么樣的?(GET舉例)
Q:GET 的長度限制了解么?
7.1.3 其他
Q:最大連接數和QPS區(qū)別
Q:網絡一共分為幾層?
Q:客戶端向服務器請求圖片和動態(tài)資源的區(qū)別
Q:圖片渲染的過程 前端
Q:網絡七層有哪些?tcp,udp,arp都在哪一層?
Q:QPS 和 TPS 的區(qū)別是什么?
Q:解釋一下DNS
Q:什么是反向代理?
Q:什么是 socket?
Q:【手撕】用 socket 實現一個聊天室功能?
7.2 操作系統
7.2.1 進程/線程
Q:進程與線程的區(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:怎么查看內存大?。?/span>
Q:怎么查看 CPU 使用情況?
Q:怎么重啟 Linux 服務器?
Q:怎么打印出一個文件的第500-1000行?
7.2.3 文件存儲
Q:靜態(tài)存儲和動態(tài)存儲的區(qū)別
Q:視頻在服務器的存儲幾種方式
Q:CDN有什么用?
Q:為什么前端靜態(tài)資源要上傳到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ū)別?
Q:Redis 的用途?
Q:Redis一秒能寫入多少數據?
Q:Redis為什么快?
Q:Redis的過期時間怎么設置?哪些場景適合緩存更長時間?
Q:什么是緩存雪崩?
Q:什么是緩存擊穿?緩存擊穿和緩存穿透的區(qū)別是什么?
Q:什么時候適合用MongoDB?
Q:Redis 適合做消息隊列嗎?為什么?
Q:Redis 的數據是存儲在內存當中的,假如斷電之后就會造成數據丟失,那怎么對 Redis 進行數據固化?
7.3.2 關系型數據庫
數據庫基本理論
Q:有哪些數據庫優(yōu)化的方式?
Q:關系型數據庫和非關系型數據庫的區(qū)別?
Q:數據庫的事務有什么用?什么時候應該使用事務,什么時候不該使用事務?
Q:數據庫索引有什么用?什么是聯合索引?
Q:主鍵適合用自定義ID還是自動ID?
Q:外鍵是什么?為什么大公司有時候不建議使用外鍵?
Q:索引設置得越多越好嗎?索引得優(yōu)缺點是什么?
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的區(qū)別?
八、智力題
Q:跳臺階問題
Q:4分鐘沙漏和7分鐘沙漏怎么漏出9分鐘
Q:兩個粗細不同的香,燃盡時間都是1個小時,怎么用這個2根香計算15分鐘的時間
Q:賽馬
Q:10堆蘋果,每堆10個,9堆每個50g,1堆每個40g,有一個稱,求只稱一次,找出這個輕的一堆
Q:飛機加油問題
Q:邏輯:四個開關四個燈泡
Q:地球弧形
九、編程題
Q:求最大回文個數
Q:一個數組中有正數有負數(沒有0),請將它排成正負相間的數組(多余的全部放后面),時間復雜度不超過O(n);
Q:一道編程題,輸入一串由ABCD四個字隨機組成的字符串和一個整數k,返回字符串種前k個字的順序重復了幾次。
Q:編程:判斷一個字符串是否符合ipv4格式
Q:代碼題,給一個句子,只把單詞翻轉然后輸入
Q:【手撕代碼】字符串中只出現一次的字符、找出數組中最小的四個數字
Q:代碼:一串字符串中最小的整數
Q:寫代碼,類似高考成績,一個表中有很多數據(無序的),給你一個成績,查出在表中的排名
Q:編程題,雞兔同籠,一半的兔子伸起一半的腳,輸入地上有幾只腳,列出所有的可能性(兔子是基數則整除2)
Q:判斷一個字符串是否是點分十進制的ipv4格式
Q:100萬個學生 按照成績 及對應排名錄入 分數查找排名(hashmap)
Q:python的編程題,輸入一個字符串然后空格切割在統計每個字母出現的次數
十、HR常問
Q:為什么想做測試
Q:對測開的理解
Q:測試過程中有沒有出現問題,是如何解決的
Q:最近看了什么書?學了什么?為什么學?有看什么技術書籍嗎?
Q:個人優(yōu)缺點,舉例
Q:測試看重什么能力
Q:項目問題細挖
Q:為什么選擇xx公司?
Q:你對我們公司有什么了解嗎?
Q:之前實習收獲了什么
Q:介紹下自己的優(yōu)缺點
Q:抗壓能力如何,描述一件自己如何抗壓的經歷
Q:反問環(huán)節(jié):你有什么問題想問我么?
Q:項目中收獲了什么?
Q:平時怎么學習的
Q:為什么要離職?
Q:你的期望薪資是多少?
結語
最后再說一遍,這是針對自動化測試甚至測開崗位的面試題,很多面試初級測試功能測試不會問的,比如算法,SQL那些,即使問了也不會問很深!
鑒于篇幅所限,這里無法放上答案,有需要完整面試題的可以私信我關鍵詞“面試”免費獲?。?/strong>
以上,祝好!