軟體測試大牛成長記

網際網路發展發表於2016-05-17

      遙記得那是02年自己跨進了大學校園,開始了自己的大學之旅。對我來說是一竅不通,大學選擇專業時自己並未聽從家長的建議依然選擇了當時仍然很潮流的計算機(電腦科學與技術)。後來事實證明自己選擇計算機是盲目的,跟隨潮流的,並不符合自己。

      大學進入校園半年,自己彷徨,天天跟高中生似的按部就班的上自習,大學的生活完全沒有適應,當時曾想過回去復讀,考上自己理想的大學。但是有擔心自己複習過程中有會發生神經衰弱,整宿整宿的睡不著,最終的考試成績反而更不理想。跟家裡人認真商談後,最後沒有回去復讀,而是轉變自己,讓自己適應大學,認真對待自己的專業。

       ----備註:當然現在也不太確定是否自己放棄復讀是否是正確的,但是至少現在證明了,當時糾正自己的態度是正確的,而且IT確實給自己帶來了很多快樂。

       作為一所普通大學的計算機系,那時好多課程也還不完善,現在能念下來的,C、Accesss、java基礎、資料庫原理、計算機網路、VB、網頁設計等,也就這幾門課。我想大家10年前作為普通高校開的課程基本上都差不多。大學期間也考了一些資格認證(HCNE、HCSE等)。一晃馬上4年就過去了,在3年的時候,大學課程也結束了(自己感覺成績都還不錯,但是現在回過來看,那時大學講的知識深度與廣度太欠缺了。),自己突然彷徨了,回顧自己的大學生活,感覺自己收穫太少了,沒有自己能拿的出手的東西。此時,自己很著急,想自己畢業後幹什麼呢,能做什麼呢?那時自己就開始找工作看職位,看IT不同的職業崗位都需要那些技能,越看越心涼,自己掌握的知識面與深度都太欠缺了。當時自己偶然因為英語過6級過一公司要求,作為儲備進行培養。回想起來這段經歷為自己以後走上工作崗位確實起到了一定的作用。所謂儲備培養,就是該單位作為微軟IT護航企業需要對企業的IT管理人員進行培訓,而自己就沾光了,跟著學習了整個系列的MCSE的課程(同期大部分人因為沒有實習費用,而且起早貪黑都放棄,相繼離開)。在學習的過程中,經常打各種下手,從裝機、映象、虛擬機器、硬碟恢復等基本上都參與,自己當時學習過程中,跟著授課的老員工經常加班,曾近記得有一次,明天要講win2003的一個知識點,需要域的一個新環境,然後連夜趕到半夜把近80臺機器做了環境的升級部署。當時年輕,自己也看到了自己的不足,有機會就學,有機會就上手。同時期的大學同學,還在學校裡過著“悠哉”沒有課的日子。轉眼幾個月就過去了,大學畢業真正的來臨了。除了畢業的依依不捨,還有很多彷徨的眼神,那個年代也沒聽過富二代、官二代,當然也有關係的能找份得體不錯工作的,但是那時至少這幾個詞還未時髦起來。那時依稀記著在校園裡提著聯想昭陽商務機走,會引起不少的回頭率。也許是因為網路沒有現在這麼發達的緣故。

       畢業了,自己就根據自己在那幾個月所學的MCSE及學習華為網路的內容去找相應的工作。自己首先去的也是北京。那時找工作 ,還是遛招聘會的比較多,國展是必去的。校園招聘也沒現在搞的這麼火與認真(也許自己閉塞的原因)。網路招聘當時有51job,也沒有像現在這樣遍地開花,所以大家可以想象當時招聘會的現場,真可以用人山人海啊,持續了好多天。自己非重點院校畢業,好多崗位學校檔次的"先天不足"就被淘汰了。當然透過招聘會也找到了幾份工作,但是大部分都是要求做技術支援,思量後感覺與自己的網路工程師或系統工程師有些不符,不符合和自己的預期發展,也就一一放棄了。最終選擇了一份系統工程師崗位,依稀記著那時在北京不到4K的薪水(有一頓午餐,其他都不含),現在看起來似乎那份薪水在現在也算可以。

      很快步入了工作,第一份工作應聘的是系統工程師,但是也經常被派去通州等北京周邊去做技術支援。回顧參加工作第一年的過程中,又可以被稱為一次學習。在這一年,自己工作中最常需要維護及部署操作的就是windows2003,也是這段時間自己鞏固了window2003伺服器系列的內容,並且對Exchange、防火牆等微軟的產品進行了系統的瞭解。

      轉眼多半年過去了,回顧這個過程似乎離自己的成績尚有距離。所以自己依然選擇了跳槽進入了目前的公司,開始了專案組的生涯。依稀記得那時是北京奧運會的前一年,自己在專案組負責的仍然是運維及系統維護,當時做的是平安保險等保險公司的網上投保產品,幾家公司大部分都選擇的是Oracle資料庫與Linux(RedHat為主)+Tomcat作為web容器的系統平臺。而由於當時專案組中懂這個的很少,所以,自己被趕鴨子上架搞了起來,專案的老大在專案環境部署前,給了時間限制,最好兩週內搞定。接下來的時間,可謂一言難盡,那時自己的人脈關係及認識的人很少,因此大部分問題都是自己網路找文章,購買書籍閱讀。白天時間不允許,晚上基本上1點前沒睡過覺,都在自己的虛擬機器上配置環境,進行嘗試。被同屋的舍友常常開玩笑。

        那段時間,晚上在自己的計算機上做實驗,白天在一臺模擬的機器上嘗試昨晚的成功。但是,那時redhat還達到目前的版本,應該是AS4似乎。對IDE硬碟相容性及顯示卡相容性很差,自己當時也沒經驗,就用圖形介面的裝。結果硬碟要除錯、顯示卡相容出問題。最後一番周折終於搞定了硬碟,並總結出來經驗(Linux伺服器沒有用圖形介面的,都是遠端管理)。那時的兩個工具(putty、winscp)至今不知更新了幾個版本,但是仍然再使用。把RedHat安裝完畢後,網路配置通後,自己終於看到了putyy連線的黑介面,那時是一個欣喜。

      接下來是Oracle,那時Oracle10g剛剛上市(而目前都11gR2了)。Oracle想的容易了,Oracle在windows上安裝很容易,在此不再過多敘述。但是,Oracle真正往Redhat上安裝時,發現了層層壁壘,那時真想身邊有一人指點,可是上天無門啊!!用現在一句話就是,死的心都有了。當時多麼希望自己是一IT老牛,人脈廣闊。可是這些都是空談。

一週沒日沒夜的生活有開始了。官方文件及一些網上的技術文章都看了,總結一句話,要實踐形成自己的,一週多的嘗試,小心翼翼的終於搞定,並在RedHat上成功部署。當時,沒有別人的讚許,也沒有別人的認可。也許別人認為挺容易,其實自己有自己心裡明白及同屋的舍友知道自己怎麼過來的。看著成功的環境及自己形成的手冊,上傳網路後被別人的肯定,心裡是偷偷的欣喜。後續資料庫RAC並也順利的部署完畢。

終於進入正題了(測試).....

自己進專案組本想學習專案流程,開發也撿起來並走專案經理的路子。但是一切都是偶然,自己因為原來測試工程師的辭職,把這塊負責了起來,脫離了原來的想法。也是這個選擇,讓自己走上了測試的路子。

      測試對自己是茫然的,當時大環境下也沒有想現在如火如荼。因此大家可想而知,當時市面上的書籍也聊聊無幾,當初購買的書籍是 朱少民 老師寫的《全程軟體測試》作為了自己測試的起門石。當時專案經理也時不時的作為非專業的指導一下。但是更多的是參考前面的文件、技術積累進行一步步的配合專案組完成工作。什麼是測試計劃、測試用例有什麼作用,什麼是單元測試等均是零的無知,現在回想起來,當初也許是真的無人了,如果稍微有個懂點的,絕對不會讓我上手了,俺可是純新手。記得特清晰,當初我們的CTO跟我聊天提到了冒煙測試,現在我還經常把他講的話給我的學生與下面的同事說。告訴他們為什麼叫冒煙測試,形象的講出來。並經常透過這個例子來說明冒煙與BVT測試的區別。

       在專案的整個週期中,自己唯一沒有全面參與的就是單元測試中的白盒測試、系統測試的(使用的是VS整合的效能測試工具),當時基本上剩下都參與了,並慢慢成長了起來。專案也很快在奧運會結束後的10月結束了。而這一段全面的專案經驗,不僅僅讓自己成為了一名相對合格的初級測試工程師(手工),而且讓自己對專案整體的把控及認識有了很大的提高。也許起晚的鳥兒要多付出,自己在專案過程中,經常就專案的問題詢問,而不僅僅侷限於測試領域。

轉眼另一家保險公司的單子來了。這次自己更是從一開始需求到結束全程參與,而且作為測試自己在需求的一開始,從客戶調研形成需求規格說明書至最終的使用者上線,均在一線跟客戶接觸,並協助客戶進行驗收測試。如果說第一個專案是一個起步的話,那第二個專案就是自己的成長。期間看的測試書籍也不少了,期間《軟體測試》原版仔細的翻看了幾遍,讓自己的理論有了很大的補充。後來的書籍包括微軟的《》2010年8月上市的《測試之美》自己成為了第一批讀者,也從中收益匪淺。

      慢慢幾個保險及銀行的專案陸續結束,自己也慢慢對測試越來越瞭解,並對測試有了更深的認識。但是期間自己對測試的認識,更多是專案的體驗與總結,帶團隊肯定是沒有問題的。而根據公司的需要自己走上了三尺講臺,面向了學生,自己突然感到了肩上擔子的重要性。講的第一門課就是《軟體測試基礎》,各種市面上的書籍都買回來,閱讀、篩選、備課,發現其實真正更專案貼近的似乎有沒有,因此就拼成了一個大麻花。把自己想要的跟同事的整理成了獨有的PPT,指定其中一本教材作為參考書(目前書籍不再指定,因為發現它確實僅僅是參考而已),真正準備課程及給學生講的時候發現自己其實還差很多,實際與全面的理論還有很多需要銜接的過程。1個系列,2個系類的課講完,發現自己每次講課都是一次很大的收穫,當第4次後,才發現遊刃有餘。回想起來這個階段恰恰給自己彌補了理論不全面的空白期,所以希望所有隻有工程經驗的同仁,一定認真讀幾本書把實際融入到理論中,再從理論中迴歸到實際的測試工作中,相信您一定能夠有質的飛躍。

      在授課的過程中自己不斷的參與專案,而且windows伺服器及oracle一直沒有離開自己,自己也適時 的拿下了微軟IT專家(MCITP)及Oracle的DBA(OCP)、軟體評測師、專案系統管理師等,為自己的證照隊伍進行了擴充,也許大家不知測試與這些有什麼用,其實從測試環境、到部署、到專案管理離不開以上領域的知識與經驗。

       自己在授課過程中,又根據需要,為了追趕前沿,自己有把自己工作中使用的測試工具Winrunner更新為了QTP,其中借鑑了市面上僅有的一些書籍,返回來感覺書籍未必適合初學者,目前市面上有關qtp書籍不少了,分門別類都有,其中自己也出了自己的第一本書《軟體功能測試:基於QuickTest Professional應用》作為獻給自動化測試入門級的教材,同時主要作為面向廣大高校學生使用。並跟同事合寫了TD的書籍,在陸續的工作生涯中,自己從軟體測試基礎、到單元測試、至自動化功能測試(QTP)及自動化效能測試(LR)等都進行了系統的研究與學習,並形成了系列的技術文章。期間比如QTP,市面上沒有自己希望看到的書籍,就直接看英文幫助文件,購買國外的書籍,經過奮鬥,才形成了對QTP系統而全面的認識。

      希望大家抱著懷疑的態度去稽核任何事物,把東西形成自己的,吸收成自己的才是最好的,尤其是未走上工作崗位及剛剛入職的同仁們。

       轉眼自己在測試行業摸爬了近5年,在系列授課的過程中,及不斷的參加專案,帶測試團隊,並團隊形成了一套完成的測試專案體系(域、Testlink+Redmine+svn、QC、TD、禪道管理等)。而以上的這些測試體系及專案平臺很好的保證了專案的正常流轉,將測試從測試計劃、用例word形式搬上了平臺,為更好的管理團隊起到了很好的作用。目前跟隨學習出來的學生微軟、360、百度、神碼、中體彩、文思海輝、博彥等均有。每次看到自己團隊帶出來及從自己專案組中高升的學生與戰友都能夠100%的就業找到更好的職位,才是我最開心的事情。

       11年一專科的女孩,透過朋友介紹認識了,問我她適合學什麼,她本人自己很迷茫,我問了她一些IT的技能後,同時知道她平時細心、耐心,而且對工作認真負責,就讓她跟我的當前的授課班,系統的學習了到自動化功能性測試前的所有內容,目前在博彥做的很開心,聯絡說自己從原來不知畢業做什麼,現在有了一份體面的工作,非常開心。說回顧自己專科的同學,目前要不做銷售,要不回老家,很少有想他一樣還再做IT的,並乾的很開心,能夠站穩腳跟的。

      回顧截止到目前為止從一個零起點的IT畢業生到目前的高階測試工程師,自己認為其中有幾點值得未大家分享。

      測試是一新型的行業,目前仍然在蓬勃的發展,寫這篇文章時,自己在51job、智聯招聘、中華英才網上對職位進行了搜尋,測試行業已遠遠超過了網路工程師的需求。當看到搜尋結果時,明白了測試被勞動部定義為第四職位原因是什麼。

      測試絕對不是一單一的領域,它需要您具備18般的武藝,並且真正在某一領域成為技術大牛,才能找到適合自己的場景,真正體會到自己的價值。不像開發,如java開發工程師,我經常遇到java開發工程師讓我過去給其配置DNS,活動目錄等,而這些相信作為IT技能,大家都接觸過,而開發工程師、前段工程師都因為工作的時間,反而都忘記,只懂得Codeing來codeing中去。測試需要您在系統、資料庫、網路等均有一定的基礎,並在測試領域某一方面(比如自動化測試工程師、LR效能測試、行業測試專家)有一特長建樹,方可長久的發展,成為一合格的測試工程師,方可被成為高階測試工程師或專家。回顧自己,恰恰有了系統工程師、資料庫工程師的經歷及陸續專案經驗的積累,測試方面的理論與實踐的不斷結合、驗證與嘗試才有了今天的成績。而系統、資料庫、網路的知識需要大家掌握一個度。把這個度內的知識掌握了再結合測試經驗與專案經驗,即可讓您也成為一名合格的測試工程師,而不僅僅是初級測試工程師,讓您有了向測試組長、經理等提升的潛質。

以下為出入測試行業的同仁分享一些學習的內容,希望能幫助大家(僅供參看)

  1. windows至少掌握到AD及軟體部署部分;

  2. Linux熟知當前主要的作業系統安裝與部署、並掌握到能夠寫計劃任務及指令碼的地步;

  3. 常用資料庫Mysql、SqlServer的日常維護與管理,及sql語句的熟練掌握;

  4. Oracle各個作業系統平臺下伺服器及客戶端的部署,備份、還原、第三方軟體的使用;

  5. 一門相對熟悉的程式語言(C、Python、Java、VBS等),掌握入門級即可;

  6. 自動化測試工具(QTP、LR、selenium等)至少熟練掌握一種(因為任何一種都能讓你在測試裡成為大牛);

  7. 測試管理工具(TD、QC、Testlink等);

  8. 一定的測試專案經驗。

      當您真正具備了這些知識,再加上當下良好的測試就業前景,相信您一定在測試行業裡站穩腳跟,並能夠取得不錯的成績。當然也不是必須全部具備這些技能方可成為測試工程師,因為測試的職位劃分很細,如下圖,因此您根據你所學的深度與廣度一定有一個合適的職位適合於您:


本文內容選自51CTO學院講師李曉鵬,更多軟體測試學習資料請點選:觀看。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30605389/viewspace-2101639/,如需轉載,請註明出處,否則將追究法律責任。

相關文章