最近剛換了一份工作,上周請測試組的同事們一起吃了個飯,飯桌上分享了部分面試經驗。飯后,一個同事跟我說:“有空的話,能不能把相關經驗梳理成文檔發給我參考呀?”。當初回復他:“看吧,我之前是打算把面試題整理出來,后面有時間再整理經驗吧”。周末有一個前同事也問我有沒有時間,想找我咨詢下面試的經驗。后來,就謀生了整理的念頭了,趁着這幾天有空梳理出了今年面試相關的筆試、面試題,總結了部分面試經驗,供大家學習參考。
因為筆者找的是自動化相關的測試,所有,很多問題是面試者針對自動化提出的相關問題,另外,自己近幾年做的都是web端的測試,所以,app的問題很少,面試官問我又沒有做過app方面的測試,我一般都是回復“沒有”。當然,這一塊也是我競爭的一個弱勢,市場上app的測試需求比web的需求多好幾倍。筆試題這一次先給出題目,會做的朋友也可以自己先做一下,並不是特別難,考的都是編碼基本功。
下一篇會把筆試題答案公布出來。由於面試題沒有統一的標准答案,另一方面部分面試題自己回答得也不是特比好,這里,就不給出面試題的答案了。
筆試/面試算法題:
1 # ----------------公司一---------------- 2 #第一道題: 3 str001 = "my love is you do you konw it ? do you love me ?" 4 list001 = str001.split(' ') 5 print(list001) 6 print(str001.count(' ')) 7 print("the number of words is %s" %(len(list001))) # 填空題 8 print("the number of space is %s" %str001.count(' ')) # 填空題 9 print("the number of you is %s" %(list001.count('you'))) # 填空題 10 # 解釋一下整個程序的過程? 11 12 #第二道題:一個數的階層運算,求結果 13 def func001(a): 14 if a == 1: 15 return 1 16 else: 17 return a*(func001(a-1)) 18 19 result = func001(5) 20 print(result) #填空題 21 22 #第三道題目:實現一個數字的斐波那切數列 23 # 8 的菲波那切數列數列為: [1,1,2,3,5,8,13,21] 24 25 26 #第四道題(機試題):將一個列表的負數給刪掉,然后再返回最終的列表 27 #錯誤代碼 28 """ 29 def listHandle(a): 30 for i in a: 31 if i < 0: 32 a.remove(i) 33 return a 34 list001 = [1,3,-3,5,-4,-6,10] 35 print(listHandle(list001)) 36 """ 37 38 # ----------------公司二---------------- 39 """ 40 機試題1: 41 讀取某個json文件,取出某個key下面所有的值(列表嵌套字典) 42 再拿到嵌套字典里面的value值,然后以第一個value值為key,第二個value值為value追加到新的字典內 43 新字典格式{"fe5f5a07539c431181fc78220713aebein01":"zyy1","73ea2bf70c73497f89ee0ad4ee008aa2in01","zyy2"} 44 json文件內容: 45 { 46 "configuration_id": "cf49bbd7d2384878bc3808733c9e9d8bpr01", 47 "configuration_name": "paramsGroup-bcf9", 48 "apply_results": [ 49 { 50 "instance_id": "fe5f5a07539c431181fc78220713aebein01", 51 "instance_name": "zyy1" 52 }, 53 { 54 "instance_id": "73ea2bf70c73497f89ee0ad4ee008aa2in01", 55 "instance_name": "zyy2" 56 } 57 ], 58 "success": false 59 } 60 61 """ 62 """ 63 機試題2: 64 測試兩個接口,一個post,一個為get 65 用Python腳本寫出斷言httpCode ,msg 等信息的相關代碼 66 """ 67 68 # ----------------公司三---------------- 69 """ 70 面試時間:2019/11/26 71 面試題1:1加到N的階層之和,比如N=4, result = (1! + 2! + 3! + 4!) 72 73 """ 74 75 # ----------------公司四---------------- 76 """ 77 78 面試題1:實現一個數字的反轉,比如輸入123,輸出321 79 """ 80 81 """ 82 83 面試題2:用awk命令將日志里面的時分秒,日期取出來 84 日志文件內容: 85 181014 21:48:01 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql 2019-12-13 86 181014 21:48:02 InnoDB: Initializing buffer pool, size = 8.0M 2019-12-13 87 181014 21:48:02 InnoDB: Completed initialization of buffer pool 2019-12-13 88 """ 89 90 # ----------------公司五---------------- 91 """ 92 寫一個快排的算法程序 93 """ 94 95 # ----------------公司六---------------- 96 """ 97 寫一個冒泡排序的算法程序 98 """ 99 100 # ----------------公司七---------------- 101 """ 102 遞歸實現統計列表1~9999中3出現的次數 103 """ 104 """ 105 統計列表1~9999中包含3的元素的總個數 106 """
面試題:
技術面試:
- 自我介紹一下吧。
- 能說一下你之前一天的工作內容嗎?
- 你怎么判斷你的用例覆蓋率是比較高的?
- 知道怎么去保證軟件的質量嗎?
- 平時常用的設計測試用例的方法?
- QA和測試的區別?
- 用過Linux命令嗎?
- Linux環境下查看某個端口是否占用知道什么命令嗎?
- Linux下面查看日志里面某個應用錯誤日志的最近十條日志知道用什么命令嗎?
- 對數據庫熟嗎?工作中為啥要用到數據庫?
- 對數據庫掌握到什么樣的程度?
- 查詢數據庫里面的前十條數據,知道怎么查嘛?
- 知道fiddler的工作原理嘛?
- 你怎么去設計你的自動化用例的?
- 你具體是怎么去實施自動化的?
- 你的自動化框架是怎么樣的,能畫出來嗎?
- 使用這套自動化框架之前有調研過嗎,考慮過它的普適應和可靠性嗎?
- 了解進程和線程的區別嗎?
- 了解裝飾器嗎?
- 聽過分層自動化嗎?
- 什么是數據驅動測試?
- 什么是測試驅動開發?
- HTTP報文包括些什么?
- 我有一個列表,知道怎么把里面重復的元素給去掉嗎?
- Pychon內置的排序函數知道是啥嗎?
- 你常用的Python庫?
- 你用Python做接口測試會用到哪個庫知道嗎?
- Python讀取數據庫會用到哪個庫知道嗎?
- 平時怎么去定位一個元素的?
- 一個元素定位不到,可能的原因是啥?
- 知道怎么去處理彈框嗎?
- 自動化的覆蓋率是多少?
- 自動化的成功率是多少?
- 自動化用到什么的測試場景中?
- 接口自動化什么時候引入,UI自動化什么時候引入?
- 有一個日志文件,我要查詢出"你好"的次數,知道會用到Python哪些函數嗎?
- 知道在怎么樣可以提高自動化的執行效率嗎?
- 自動化腳本用到過多線程、多進程嗎?
- 了解排序有哪幾種嗎?
- 你這邊有什么問題嗎?
管理面試:
- 了解過我們公司嗎?知道我們公司有哪些投資方嗎?
- 你之前帶的團隊多少人,平時怎么去管理他們的呢?
- 聽說過移動互聯網測試開發大會嘛?知道它是由哪一家公司主辦嗎?
- 有做過APP測試嗎?
- 有做過服務端測試嘛?
- 做過性能測試嗎?
- 做過安全測試嗎?
- 聽過敏捷測試嗎?
- 聽過微服務嗎?
- 聽過容器嗎,工作中用過它嗎?
- 工作中用過TDD嘛?
- 聽過WebSocket嘛?
- 了解過端到端測試嗎?
- 如果新工作不是純自動化測試,你會做嗎?
- 寫過測試報告嗎?測試報告包含哪些內容?
- 用英文交流,你覺得自己可以嗎?用例也要用英文寫喔?
- 你期望進入什么樣的公司?
- 你工作之余會做些什么?
- 你平時怎么學習的?
- 自動化遇到的比較大的問題是啥?
- 你的優缺點是啥?
- 你理想的人生是怎樣的?
- 你做過的最自豪的一件事是啥?
- 你這邊有什么問題嗎?
HR面:
- 知道普通測試工程師和合格測試工程師的區別嗎?
- 開發延遲轉測導致測試加班加點趕工后產品上線,針對這個問題,你怎么處理呢?
- 離職原因是啥?
- 怎么看待加班呢?
- 接受出差嗎?
- 接受996嗎?
- 最快的到崗時間是啥?
- 對我們公司期望多大呢?
- 目前拿到了幾個offer了呢?
- 你這邊有什么問題嗎?
面試總結:
- 簡歷很重要:之前投過好幾家公司,最后告知簡歷篩選未通過,說我的自動化經驗不足,最后發現是上一家公司的自動化經驗未寫進去;自從改完簡歷后,最近一個月一個星期的面試次數跟上一個月的面試次數差不多了,當然,這個也是大意導致的,之前的簡歷只在技能方面羅列出自己的相關技能,沒怎么在意項目經驗也要進行體現。
- 把握好簡歷包裝的度:外貿公司很注重誠信,所以,投給外包公司的簡歷需確保自己的工作經驗,職位,入離職時間是准確的;之前面過一家外貿公司,前兩輪都沒問題,就剩最后一輪“客戶面試”了,最后因為虛構了3年的工作經驗,公司接受不了,錯過了該公司。針對被第一次問到的問題:有些面試問題可能是第一次被問及,即使第一次沒回答好,通過觀察面試官的反應,也可以做一些補充性的回答。
- 面自研公司的建議:自研公司比較在意你對他們公司的了解程度,所以面試前最好提前了解他們的產品、投資方之類的,之前面過一次公司,屬於騰訊系的創業型公司,面試官問我有沒有百度過他們公司,我回答“沒有,只是瀏覽過他們的官網,大致了解他們的產品線”。面試官繼續問:“有了解過我們的投資方嗎?”,我也回答“沒有。o(╥﹏╥)o”。此刻 ,已經看得出面試官有點失望了。。
- 如何擺脫外包測試的刻板印象:自研公司對外包公司出來的測試都會有刻板印象“覺得在外包公司待機久了,對業界很多新技術了解甚少”。之前面試一家自研公司,問我工作之余會做些啥,有了解過“移動互聯網測試開發大會嗎?”,我回答“有了解過”,對方繼續問“有參加過嗎?”,我回答“沒有”。所以,想擺脫他們的刻板印象的話,平日可以多關注一些領域內的公眾號,相關的各種論壇也可以考慮參加一下,當然,這個也看自己的興趣和目標了。
- 關於算法題:自動化測試或者高級測試都會考一些算法題(leetcode上面簡單級別的題),平時要把編碼基本功打扎實,有空也可以去上面刷刷題。
- 關於是否准備好的問題:長期沒換工作的人,面對目前低迷的大環境,又聽到某某說工作不好找之類的,對於跳槽可能會有種恐懼感,總擔心自己沒准備好,導致跳槽的決心不大之類的;這是一種正常的心里狀態,我們面對不確定性,都會感到恐懼和焦慮;有時候是真的未准備好,有的時候,自己已經准備的差不多了,只是自己覺得自己未准備好而已,這個時候需要你需要大膽地走出去,了解市場的反饋,這種反饋才是客觀的、真實的反饋。即使自己前面幾輪面得不好也不要氣餒,多復盤,做總結,相信等你面完50家公司的時候,一定可以對所有面試官的問題,都能對答如流了。
- 目前的市場現場:目前的市場現狀大致是面試高級測試,都需要懂自動化,編程語言等,自動化測試更不用說了;測試開發的話一般也需要你有開源框架的二次開發、自動化平台、自動化工具開發的經驗;APP、小程序測試的需求比Web端的更多,之前了解到騰訊招聘的APP測試跟Web端測試的比例為3:1;學歷門檻也越來越高,很多稍微大一點的自研公司,包括華為外包都要統招二本學歷,很多公司(包括外包公司)都要求統招學歷。自研公司對一個候選人的面試通知期比外包公司的更長,之前好幾家自研公司的面試都沒啥大問題,一面、二面面試官對我的印象都不錯,說3~5天內給答復之類的,最后就不了了之了,這種很大可能是找到了更合適的人選,亦或是找到了同樣能勝任該崗位但是薪資要求比你更低的人員了。
- 關於求職平台:剛開始找工作的時候,在前程無憂,智聯招聘,拉勾網上面都有投遞過簡歷,最后發現回應效果最好的是boss直聘,其他平台投完后基本都是石沉大海,於是過段把其他幾個app個卸載了。
- 薪資應該開高點還是低點:這里涉及到談判技巧了,談判高手跟對方談判時,往往開高價,然后跟對方慢慢談,慢慢降價。建議起初面試的時候,可以開高點,面了10家左右,發現都給不了自己期望薪資,再考慮降低要求;曾經自己面上一家公司,因為是自己面的第一家公司,也擔心行情不好等因素,就開地保守點,最后,面試通過,自己又反悔,跟對方要求更高的薪資,最后,對方也沒答應,只願意給我當初的要價。當然,這個規則並不是死,面試者也可以根據自己面試表現情況,適當地調整,表現得好,開高一點,表現不好,開低一點。當然,薪資也跟年終獎情況、是否996、是否有加班費、五險一金、稅前稅后等因素息息相關,所以,在開價錢需問清楚相關情況。
- 怎么看待運氣:找一份好的工作跟找一個好的對象一樣,有時候是可遇不可求的,有時候,你能拿到一個offer,很有可能你無意投了簡歷,然后順利地面試通過了;有時候,你跟公司雙方都覺得比較合適,前面幾輪面試還比較順利,最后因為一些突發事件,導致最終沒拿到offer,注定你們之間的緣分還是差那么一點點。個人覺得運氣能夠占到3層的樣子,剩下的7層是靠自己的能力的。所以,對面試存有僥幸心理,是不切實際的。
- 面試前的突擊效果多大:其實,面試好比一場考試,突擊當然有部分效果,可以讓你對長時間沒用到的一些命令,語句快速熟悉一遍;但是,部分能力短期內是無法快速提升起來的,例如編碼能力、linux命令、復雜的sql語句編寫等,也有部分問題是自己實踐過才知道如何回答的。所以,更多的是在於平日的累積和學習,做一個終身學習者,才能不懼於任何面試,不被行業所拋棄。
