1. 程式人生 > >想成功進入網際網路公司,請收好這份乾貨總結

想成功進入網際網路公司,請收好這份乾貨總結

寫在前面

今天算是在上海最安安穩穩的一個週末,從週五開始陸陸續續和不同的朋友吃了飯,想起來之前落下的文章還沒寫。等到專案忙起來的話,沒有時間來總結,自然又要忘記,姑且先下筆亂謅個提綱出來。

這篇日誌大概有以下內容:

●總結網際網路測試/測試開發常見面試內容

●對測試/測試開發的理解

●未來的學習規劃

●對有志於從事軟體測試行業的同學的指導

網際網路行業對測試崗位的需求

首先介紹下我之前任職的公司:某知名外企(貌似在國外知名度高一些),行業為傳統BI,客戶主要為美國大型銀行、投資機構、大型製藥公司以及上市集團等,主要產品為BI報表,儀表盤等。

在某乎上關於網際網路行業與傳統軟體行業有什麼不同?有這樣一條回答,“網際網路行業屬於【服務業】,而傳統的軟體開發行業屬於【製造業】”,雖然有點以偏概全的嫌疑,但是基本說出了網際網路行業與傳統行業的根本區別:服務的物件不同。網際網路行業服務的物件是普通的使用者,有著成千上萬不同特徵的使用者畫像;傳統軟體行業的服務物件是特定行業的從業者,有著嚴格的約束,比如Product Manual(使用者手冊)。

在我看來,落地於軟體測試,網際網路與傳統軟體行業的區別主要如下:

●更加關注使用者體驗

●產品迭代快,需求變更快,測試周期短

●資訊保安敏感度高,安全測試要求高

●使用者量級大,更產品的效能測試、併發測試等

●使用者場景更多,更復雜,對相容性測試、適配測試要求更高

……(歡迎補充)

正因為這些需求,相比於傳統行業,網際網路行業對軟體測試從業者的要求更高。特別是TDD(Test Drive Development 測試驅動開發)、BDD(Behavior Drive Development 行為驅動開發)、DDD(Domain Drive Design 領域驅動開發)以及敏捷的理念逐漸被提出來並在國內深入實踐,測試的重要性逐漸提高。在這裡特別更正一些同學對測試工程師的誤解:隨著技術的不斷更新,敏捷框架的流行,測試工程師逐漸被淘汰甚至消失。真的是這樣嗎?這種觀點當然是錯誤的!而是恰恰相反,測試的地位在提升,對測試工程師,測試開發工程師的能力要求也更高了而已。新的時期的網際網路行業對測試的要求是:

●有一定的技術知識和能力,可以review產品程式碼

●學習能力強,有掌握常用自動化測試框架和二次開發的能力

●深入瞭解作業系統、產品平臺(iOS或安卓等)的特性,能夠深入專項測試和效能測試

●可以幫助開發寫一些單元測試

●通過review程式碼完善功能測試團隊(眾所周知現在很多大廠把功能測試外包)測試用例

●開發測試工具或平臺

……(歡迎補充)

軟體測試相關面試題目總結(乾貨)

前面談了那麼多,表面上看都是一些紙面上的東西,實際上是筆者在投遞130多份簡歷,20多家網際網路公司,涵蓋服務端、移動端專項、SDK測試、全棧測試開發不同領域的面試經歷的深度總結。下面我就結合實際的面試題目去解讀網際網路行業對軟體測試工程師的要求。

一般面試是一個雙向的瞭解和選擇的過程,我常常把面試過程比作買菜的過程,雖然難免出現“討價還價”的環節,總體還是面試者對考察人的全面考察以及應聘者對所應聘崗位以及應聘公司的瞭解。所以窺一斑而知全豹,能瞭解到當下對軟體測試工程師和測試開發工程師的要求。準備好了嗎?乾貨來了:

初級:功能測試

相比之前的傳統軟體工程思維,網際網路行業更需要的思維只有一點:關注使用者體驗:

●新浪微博聊天分組列表頁面

●滴滴打車叫單

至於一些基本的功能測試點,每一個面試者基本能回答上來。一般筆者會通過按需求、模組、場景對測試用例劃分,再分析不同環境、裝置的測試用例,最後加上效能、壓力、併發測試等。這樣的思考方式看似是完美無缺,但都不是面試官想要的完美答案。筆者當時被批評最多的就是還是傳統軟體的思維,沒有考慮到網際網路關注的關鍵點。

這裡對答案不再進行詳細探討,僅僅討論按照普通套路會遺漏的case:

以新浪微博的題目為例,除了要保證基本的功能正常之外,還要考慮使用者體驗。當前很多網際網路產品不再僅僅是一個工具,更是內容分發平臺。以微博聊天分組為例,分組的List排列順序並不是隨機的排列,也不是按照時間順序簡單的排列。而是根據使用者的興趣,關注度,親密度等有著清晰,有使用者導向的排列。那麼測試除了要關注功能測試,也要關注產品本身的特性和使用者體驗。(不過這裡筆者對這個題目設計的稍有微詞,一來是老哥我不怎麼用微博,二來是像這種明顯帶有產品特徵的case,在不同的version是肯定會有需求文件的,如果需求裡明確了聊天List排列會跟何種引數有關,如果計算,我們作為測試工程師是肯定要cover的)

而滴滴打車叫單這個題目筆者就熟悉很多,當時筆者也是按照一般的測試用例設計思路說了一遍。面試官表示基本認可,但隨即提出了,這些東西一般人都會想到,但是我們作為服務者,肯定不能考慮使用者什麼都正常的情況。比如使用者定位錯誤,網路錯誤,沒有有效聯絡方式,未安裝地圖等等,這些異常情況下的測試用例我們都要想到。因為既然是服務軟體,在異常場景下產品需要有:異常處理機制、對使用者友好的提醒和引導、糾錯功能等。

總的來說,網際網路產品作為服務大眾的多媒體工具,更關注的是使用者體驗。在設計測試用例的時候,除了功能測試相關的用例,更要關注異常情景以及使用者體驗相關的測試用例。

功能測試用例的題目除了這兩個題目之外,還有一些經典的題目:

●水杯

●電梯

●窗戶

●自動售貨機

……

這樣的題目相對簡單,基本考察的都是測試用例設計能力。基本按照模組、功能、需求、抗壓等思路去設計用例即可。詳細的答案大家直接求助網路就好了,這裡就不復制貼上了。

初級:計算機基本知識

這類的問題基本上考察的是應聘者的計算機基礎,總體感覺不難。主要要看應聘的公司對該崗位的要求和對面試者的定位。我把我遇到的題目主要總結為這幾類:

●語言基礎知識:C++的多型,Java虛擬機器,Python的深拷貝與淺拷貝。總的來說就是簡歷上寫的熟悉的語言的基礎題;

●計算機網路:這類問題在應聘服務端測試的時候居多。例如TCP/HTTP原理,HTTPS與HTTP的區別,IP地址的分類,TCP與UDP的區別以及常見狀態碼等;

●資料庫:資料庫正規化,簡單的命令,主鍵與外健,內聯結等;

這些問題可以說是校招划水水平,不過我好多都忘了還覺得社招這些東西不會被問到,這恰恰是我們準備測試開發面試的盲區,測試開發還是需要應聘者有著紮實的計算機基礎。

中級:程式設計題以及情景設計題

程式設計題:

測試開發崗位要求從業者有著紮實的編碼能力,未來測試開發的主要工作將從功能測試轉移到專項和工具及平臺的研發,編碼的工作是不可或缺的。我遇到的問題能回憶起來的有這麼幾類:

●基礎類:

1.常見排序演算法

2.演算法複雜度

3.樹的遍歷,遞迴非遞迴,深度優先和廣度優先

4.連結串列題考到的最多:連結串列反轉,環相關問題,刪除中間元素等

5.等;

●字串處理:

1.字串反轉

2.文字的規範化(首字母大寫,單詞規範化)

3.關鍵字查詢及過濾

4.等;

●綜合程式設計題:

大都記不太清,會稍微有點難度,部分題目在LeetCode上也見到過,如經典的Longest Substring Without Repeating Characters。說真的,如果想拿到大廠或者新生代網際網路公司的offer,題還是要刷的。這裡分享我的個人經驗,一般Python答起來會更輕鬆點,常見的面試題很多都是很有技巧性的,而Python在臨場發揮時應對這些問題都比較簡單。但是有些問題用Python就不夠簡潔,比如說Python嚴格來說是沒有樹和棧這些結構的。

總的來說程式設計題都不是太難,最好是Java/C++和Python都熟練,這樣應對大多數的題目綽綽有餘。

情景設計題

這類的題目會跟前面提到的很多問題相結合,考察知識的全面性,這裡就直接列出來我遇到的問題吧,你們可以認真感受下每個問題背後潛藏的考察點:

●程式碼實現,判斷IP的合法性

●輸入到瀏覽器一個地址,到觀察到頁面這個過程中都發生了什麼

●這道題目很容易漏掉Cookie,也很容易漏掉該頁面需要許可權或者登陸的情況

●如何測試一個IM系統

●如何測試一個多執行緒安全的日誌類庫

●對一個SDK網路協議介面進行升級,寫出所有的測試用例

……

由於時間太過久遠,很多題目都不太記得了。總的來說,情景設計題目的特點是整個情景考察的知識點多而全面,並且相互之間聯絡緊密,考察的是測試開發人員的知識全面性和考慮問題的全面性,所以歸到了高階題目。

高階:測試專項,術業有專攻

高階的題目主要集中在某個測試的專項上。正如前文所說的那樣,未來的很大一部分測試工作,將會由開發人員承擔,而測試開發工程師主要集中在平臺開發和測試專項,所以面試最難的地方就是測試專項。不是說題目更難,而是考察的更深。因為我的經驗主要集中在iOS和Web自動化,所以這塊兒被問到的最多。

●iOS

1.View和Viewcontroller的生命週期

2.ARC和RC的區別

3.Instruments測試記憶體洩漏

4.EXC_BAD_ACCESS

5.Xcode除錯

6.iOS證書

7.APNs各個版本的區別

……

●Web

說出幾個Web自動化測試工具以及區別

……

●自動化測試

1.講下做過的自動化測試的專案以及自己在框架中做的工作(甚至有公司還問了我某個函式怎麼呼叫…)

2.列出幾個移動端自動化測試框架,給一個專案,結合專案內容以及團隊組成對框架進行選型

……

相關推薦

成功進入網際網路公司乾貨總結

寫在前面今天算是在上海最安安穩穩的一個週末,從週五開始陸陸續續和不同的朋友吃了飯,想起來之前落下的文章還沒寫。等到專案忙起來的話,沒有時間來總結,自然又要忘記,姑且先下筆亂謅個提綱出來。這篇日誌大概有以下內容:●總結網際網路測試/測試開發常見面試內容●對測試/測試開發的理解●未來的學習規劃●對有志於從事軟體測

學好數學寶典!

技術人要不停學習,防止不進則退。想成為技術大神,需要每天掌握一點知識,但碎片化的資訊那麼多,如何選擇呢?今天推薦幾個碼農晉級必備技術號。 >>>>  演算法與數學之美 ID:MathAndAlgorithm ▲長按圖片識別二維碼關注 每個人有每個人的生活方式和麵對這

情人節前夕郵件營銷攻略

群發郵件 發送 郵件群發 服務器 term alt 介紹 穩定 同時 2月14日對戀人來說都是意義非凡的日子,對於營銷人員來說也是忙碌的一天,當你的競爭對手趁機推動銷售時,你如何才能在郵件“漫天飛舞”的收件箱中生存下來,並提高銷售額呢? 一、群發郵件前的準備工作細致充分首先

10行程式碼實現目標檢測教程

翻譯 | 林椿眄編輯 | 阿司匹林出品 | AI科技大本營(公眾號ID:rgznai100)作為人工智慧的

從理論到案例篇Nginx監控運維乾貨

Nginx特性   作為Web伺服器,Nginx不免要與Apache進行比較。相比Apache伺服器,Nginx因其採用的非同步非阻塞工作模型,使其具備高併發、低資源消耗的特性,高度模組化設計使Nginx具備很好的擴充套件性;在處理靜態檔案、反向代理請求等方面,Nginx表現出很大

@程式設計師比特幣“勒索病毒”應對須知!

作者 | JiekeXu 責編 | 胡巍巍 風險從來都不是臆想和草木皆兵,就在你不經意的時刻,可能風險就突然降臨到我們的身邊。 發現比特幣勒索病毒 業務賬號無法連線資料庫 2018年7月18日早上10點多,某公司一

攻略!帶你國慶免費玩轉海天醬油“迪士尼”

一年一度的國慶假期又到了,想去玩又不知道去哪兒玩?不想湊熱鬧瞎打卡,又想一次滿足吃、喝、玩、樂N個願望?沒問題!這裡是以醬油為主題的遊樂王國。走進醬油的天地,你既可以在這裡瞭解醬油文化知識、觀看3D電影 ,又可以在這裡品嚐美味黃豆宴、DIY醬油飯糰,還可以對著3D牆畫隨意凹造型,收穫最潮文化

還有26天18年就過完了, 2019區塊鏈行業指南

話說,還有26天就要跟2018說再見了,在這裡想衷心地問一句: “年初的願望實現了嗎?事到如今只好祭奠嗎?” 不過話說回來,這一年區塊鏈的發展繼續加速,只是沒有像預想中的那麼快。今天,就跟老鐵們一起簡單回顧一下2018年的歷程,然後從這一脈絡中談談2019年的區塊鏈及加密貨幣的走向。 比起2017年,

Python的22個編程技巧下!

not 端口 con ces return 臨時 tlist 到你 pop 1. 原地交換兩個數字 Python 提供了一個直觀的在一行代碼中賦值與交換(變量值)的方法,請參見下面的示例: x,y= 10,20 print(x,y) x,y= y,x print(x,y)

從傳統技術團隊職能化向敏捷迭代轉變成功案例(網際網路公司快速擴張階段研發團隊效率提升)

一 序言       忙不完的事情,解不完的bug,每次發版都得集體熬個大通宵。幹得多,結果還不好。相信絕大部分技術工作者都有過這樣的困擾。今天,公司敏捷教練蔡春華以團隊敏捷實踐為例,與大家分享如何提升研發效率。 某研發團隊處在事多、效果差的漩渦之中。在這樣

tomcat模式下不能成功進入debug模式斷點不起作用

一、問題 javaSE專案進入debug模式正常啟動,而tomcat啟動web專案進入debug模式,斷點不起作用,按照網上各種方法試了個遍,都不行。 二、原因 根本原因是idea自帶的環境與tomcat帶的環境有了衝突,因為我們的idea預設啟動是catalina.bat啟動,而我的c

百度阿里騰訊等網際網路公司Java開發的最新招聘標準

金九銀十的跳槽熱潮已經過去了,在這兩個月的跳槽的旺季中,作為網際網路行業的三大巨頭,百度、阿里巴巴、騰訊對於網際網路人才有很大的吸引力,他們的員工也是眾多網際網路同行覬覦的資深工程師、管理者人選。 下面我總結了進入這三家公司你所需掌握的技能: 阿里巴巴篇 紮實的計算機專業基礎,包括演算法

搞網路最強的其實不是網際網路公司而是印度的電工!

來自:怪奇物語(ID:guaiqiwuyu) 原作者不詳,如有版權問題請聯絡溝通 印度人比較懶散,做事情很隨意,他們注重內心的體驗,可是並不喜歡具體的行動。這樣的性格導致了很多需要條理的工作變得艱難。看一眼印度街頭的電線,就知道印度的電工多麼不容易。不知需要何等的勇氣和耐心才能勝任這份工作? 一

網際網路公司網際網路時代的特徵(移動網際網路平臺思維網際網路思維)

漫談網際網路思維- http://blog.csdn.net/reboot123/article/details/46580547 移動網際網路,行動通訊和網際網路二者結合起來. > 網際網路公司成立的時間及創始人 百度,2000年1月創立於北京中關村,是全球最大的

進入公司如何做一產品體驗報告?

作者:樸老師全文共 2371 字,閱讀需要 5 分鐘———— / BEGIN / ————最近新

進一線網際網路公司的應屆生注意啦~2018 屆校招的情況有些變化

全文 3300 多字,時間比較緊張的同學可以直接讀標題 文末有簡尋利益相關,沒有需要的同學略過就好~~但正文木影響~~ 資本寒冬還在繼續,裁員正在成為 2016 年的行業主題。 隨著開學季,各高校的正式秋招即將開始,網際網路領域的校招形勢如何? 雖然各一線網際網路公司早從 7 月就開始了聲勢浩大的內推和校招

技術卻進不了大公司?程式設計師面試的幾個小技巧

有很多程式設計師,專業技術挺好,專案經驗充足,簡歷上金碧輝煌,也面試了很多國內大廠,但就是沒有一家能成功的。處境可以說是相當尷尬。 大家都知道程式設計師本身就是要吃年輕飯,不僅是技術活,也是體力活。早點跳槽,早點漲薪,就顯得格外的重要了。 那麼我就給大家分享一下程式設計師面試的幾個小技巧: 1.面試準備要

NLP研究進展彙總GitHub連續3天最火的都是它

方栗子 發自 凹非寺量子位 出品 | 公眾號 QbitAI最近,有一份自然語言處理 (NLP

全球最牛逼的 14 位程序員大佬下我的膝蓋~

進行 lac part opc 代表作 分布式計算 原形 dennis 程序語言 全球最厲害的14位程序員是誰,你知道的有幾位呢? 以下排名不分先後: Jon Skeet 個人名望:程序技術問答網站Stack Overflow總排名第一的大神,每月的問答量保持在425個