阿里測試開發面試經
項目,項目細節
軟件測試
- 如何搭建自動化測試框架
- 除了web測試還有哪些測試,怎麼實現的
- 是否瞭解selenium底層代碼
計算機基礎知識(計算機網絡,數據庫,操作系統)
- 線程,線程通信,進程間通信的方法,進程和線程的區別
- tcp,udp區別[【3次】,tcp爲什麼可靠
- 什麼是棧,什麼是鏈表,如何刪除鏈表元素
- 數據庫,學生表,有學生id,班級,科目,成績 實現查找每門科目的第一名
- 數據庫優化,什麼是幻讀;
- 數據庫主從複製,分庫分表,分庫分表後如何保證主鍵唯一性
- 採用什麼數據結構(數組,向量)設計棧【2】,多線程訪問棧
- 內存溢出和內存泄漏
- 怎麼理解多態,多態的好處
- 消息中間件
- Redis緩存
- Dubbo架構
- Zookeeper如何保證一致性
- 分佈式理論(CAP,2PC,3PC)
- 克隆,傳入object返回object
- 靜態代理如何實現
- Spring IoC AOP,AOP中的動態代理,jdk動態代理CGLIB,實現面向切面有哪些方法,具體怎麼實現的
- CGLIB爲什麼不用實現接口,CGLIB的效率問題
- 數組和鏈表的區別
- 冒泡,快排,歸併三種排序算法的區別
- 口述最優路徑的求法
- 解決Hash表衝突的方法【2】
- 多線程的概念【2】,以及線程之間通訊的手段,線程的優點,線程鎖,關於死鎖的概念,線程和進程的區別
- sql 各種join有什麼區別
- 索引用過嗎,一般是怎麼操作的,只要創建了索引就一定能加快嗎
- 知道什麼設計模式,單列實現
- MVVM和MVC的區別
- 多線程的種類和區別
語言
- C++多態【2】
- Python高密集計算任務採用多線程還是多進程,python垃圾回收機制,python有哪些基本數據結構,可以被修改的數據結構有哪些,python中多線程怎麼實現的
- 面向對象的三大特點
- Java的線程如何實現,垃圾回收機制,java的內存模型,java的GC機制機制,java容器是如何啓動的,類加載過程,JVM字節碼優化,java多態與實現
- 用過哪些java數據集,區別,各自的特點
- Java內存泄漏的原因
- Java開發框架,原理
- 知道的排序方法,時間複雜度,堆排序和快排的共同點和區別。
手撕算法
1. 在線手寫排序代碼,空間複雜度和時間複雜度【2次】
2. 數據結構,棧,實現數組中重複出現多次的元素
3. 二叉樹的中序遍歷順序,定義二叉樹節點,寫出遞歸和非遞歸中序遍歷算法
4. 設計可返回棧最大值的算法
5. 二叉樹的深度優先遍歷
6. 1.用其他數據結構設計棧 2.實現棧getMax函數 3.遞歸和非遞歸中序遍歷
7. 寫出一個函數,輸入是兩個數組,輸出是將兩個數組中所有元素排序以後用一個數組輸出。
8. 統計排序數組中出現次數最多的元素出現的次數
9. 關於火車相向而行,小球彈回次數問題
10. 寫出一個函數,輸入是兩個數組,輸出是將兩個數組中所有元素排序以後用一個數組輸出。
11. 給一個英文文本“i have a dream i am a human you can have dream too.”再給一個文本“i you am ”,要求計算出第一個文本中包含第二個文本每個單詞的最短文本,比如例子中最短文本就是“i am a human you”。
場景題
- 用過哪些電商app,比較一下
- 如何評價諸如淘寶搜索算法的好壞,輸入關鍵詞,給出搜索的商品結果【2】
- 有一款還沒有進入杭州市場的鉛筆,如何估計月銷量
- 雙11這樣的併發流量如何確保服務的可用性
- 2G的日誌文件如何查找到異常日誌數量
- 設計一個登錄界面測試用例(有什麼好的加密方式,如何抓取信息)
- 測試淘寶
- 如何設計一個函數(考慮多種情況,越界等)
- 數學題:一個小球從h處下落回彈,每次回彈高度爲之前的一半,求n次回彈後總路程
開放問題
- 未來職業規劃【4】,爲什麼要做測開?【4】,自身優勢與弱勢,對測試開發的理解【2】
- 學過什麼計算機類課程,怎麼學的
- 最深刻的項目,用英文描述這個項目,做過的項目的架構,平時如何設計項目,項目的收穫,難點如何解決的
- 實習的兩家公司的優點和缺點
- 實習過程中有沒有想過開發自動化測試工具
- 如何保證代碼質量
- 實習期間出現bug怎麼解決的
- 印象最深的筆試題
- 談談對測試開發的理解
- 對java瞭解到什麼程度
- 項目用到的方法和探索方法的過程