當前位置:萬佳範文網 >

職場指南 >職場打拼 >

從程式設計師到軟體測試工程師的路該怎麼走

從程式設計師到軟體測試工程師的路該怎麼走

從程式設計師到軟體測試工程師的路該怎麼走?我想大家都知道這是一個晉升向上的方向,這條路該怎麼走呢?今天小編將與您探討一下這個問題。

從程式設計師到軟體測試工程師的路該怎麼走

程式設計師(英文Programmer)是從事程式開發、維護的專業人員。一般將程式設計師分為程式設計人員和程式編碼人員,但兩者的界限並不非常清楚,特別是在中國。軟體從業人員分為初級程式設計師、高階程式設計師、系統分析員,系統架構師,測試工程師五大類。

軟體測試工程師(Software Testing Engineer)指理解產品的功能要求,並對其進行測試,檢查軟體有沒有錯誤(Bug),測試軟體是否具有穩定性(Robustness),寫出相應的測試規範和測試用例的專門工作人員。簡而言之,軟體測試工程師在一家軟體企業中擔當的是“質量管理”角色,及時發現軟體問題並及時督促更正,確保產品的正常運作。按其級別和職位的不同,分為三類。

水往低處流,人往高處走,大家一般都會有想要向上晉升的願望。那麼從程式設計師到軟體測試工程師是怎麼樣一個過程呢?從程式設計師到軟體測試工程師的路該怎麼走?讓我們來了解一下:

國內軟體公司對軟體測試的態度令人擔憂。軟體測試工程師不足,開發測試人員比例不合理。據調查,最好的企業中測試人員和開發人員的比例是1:8,有的是1:20,甚至沒有專職的軟體測試工程師。

曾經參與微軟Windows95、Exchange Server4.0和4.5、Internet Explorer4.0和5.0、SQL Server20xx開發與測試工作陳巨集剛博士儘管已經升任微軟亞洲研究院商務及高校關係高階經理,但仍然對國內軟體測試水平的落後深有感觸。

國內很多企業還處在探索階段,小企業的運作方式造成其主要精力是要儘快完成初始資本積累。有些企業也瞭解軟體測試的重要性,很努力、很認真的在學,但因為很多原因而學不到精髓,不知道如何去做。於是只能侷限於書本上學來的簡單的黑盒、白盒測試而已。很多人知道有壓力測試和效能測試,但針對產品具體如何去做就不清楚了。

陳巨集剛表示,重視測試首先需要有開放性的軟體文化,而在很多公司中,測試工程師只是絕對服從的聽命角色,沒有開發他們的積極性和創造性。一些管理人員對軟體開發的流程管理經驗不足,仍然用傳統企業的方法進行管理,再加上對軟體質量的控制理解不對,認為編完程式經過簡單的程式設計師自己測試就可以使用了,而沒有認識到軟體測試是控制質量最好的方法。

不過,國內還是有一些大型公司和專業公司已經在軟體測試方面走上正規。1994年開始接包IBM軟體測試專案,1999年軟體測試成為公司主體軟體外包業務之一的和騰軟體就是其中之一。因為客戶就是IBM這樣的大型軟體公司,和騰軟體高階副總裁劉忠表示,它們在軟體測試管理上,經同國外的公司相差不大,同時也研究和應用了多種軟體測試技術。

軟體測試工程師

一提到軟體測試工程師,很多人就會想到那些反覆使用軟體,試圖在頻繁操作中尋找到錯誤發生的低層次人員或者軟體使用者。其實這是一種錯誤的概念,軟體測試早已超越了使用者使用來發現Bug的基本測試階段。

陳巨集剛介紹說,微軟的軟體測試工程師分為三種:測試執行者(Basic SoftwareTester)、測試工具軟體開發工程師(Software Development Engineer inTest)和高階軟體測試工程師(Ad_hoc Tester)

測試執行者負責理解產品的功能要求,然後根據測試規範和測試案例對其進行測試,檢查軟體有沒有錯誤,決定軟體是否具有穩定性,屬於最低階的執行角色。

測試工具軟體開發工程師負責寫測試工具程式碼,並利用測試工具對軟體進行測試;或者開發測試工具為軟體測試工程師服務。產品開發後的效能測試、提交測試等過程,都有可能要用到開發的測試工具。對技術要求最強的是這些人,因為它們要具備寫程式的技術。“因為不同產品的特性不一樣,對測試工具要求也是不同的,就像Windows的測試工具不能用於Office,office的也不能用於SQLserver,微軟很多測試工程師就是負責專門為某個產品寫測試程式的。”

而Ad_hocTestet屬於比較有經驗,自己會找方向並做的很好的測試工程師,這要求具有很強的創造性。剛進入微軟時,老闆也是隻給陳巨集剛一個操作流程,每天就按照這個規程去做,幾天下來,一個Bug都沒有發現。陳巨集剛也很沮喪,覺得這樣挺對不起公司,後來自己問自己:為什麼非要這樣做!於是換了其他的方法試試,令他吃驚的是,一下就找到很多嚴重的Bug,當時也不敢聲張。有一天,他找到10多個非常嚴重的Bug,開發經理一下就驚呆了,怒衝衝的跑到陳巨集剛面前問:“你是不是改變了測試方式和測試步驟?”陳巨集剛有些嚇住,說道:“可能改變了一點。”對方說:“我非常生氣,但我不是生你的氣,而是因為以前測試人員水平太差,或者以前的測試方面有問題,軟體中有些Bug存在了半年甚至一年,但直到現在才發現,現在修補這些錯誤要困難很多!”後來陳巨集剛得到了老闆的讚許,可以按照自己的想法去做測試。對此,陳巨集剛感受頗深:“一方面我體會到了微軟非常鼓勵創造的文化,同時也感到只遵守教條不是好的測試人員,就和使用者一樣了。做軟體測試工程師同樣需要開拓和創造性。”

在開發管理上,測試不應該歸屬於專案管理,也不應該歸屬開發人員。這三個部門應該是並駕齊驅,相互協作,測試工程師最終決定產品是否能夠釋出。

軟體測試工程師的素質

因為軟體測試仍然處在發展階段,還沒有上升到理論層次。對人員的評測,包括微軟在內,都還沒有一個統一標準,因此評定軟體測試工程師只能根據工作實踐進行自然淘汰。

軟體測試對邏輯思維、學習能力、反應要求很高,是否有嚴密的思維和逆向思維也非常重要。陳巨集剛介紹說,在五六個人的測試小組時,一半以上的Bug都是他找到的。他認為這同自己數學專業的背景關係密切,數學中有邏輯思維的培訓,要善於找出來各方面的因素。比如要證明一個定理,各個方面都考慮到,一個條件不滿足就無法證明;但如果證明其不成立,最常用的就是找到一個反例,只要有一點證明不成立就可以了,軟體測試也是找這一點。

做測試還要考慮到所有出錯的可能性,還要做一些不是按常規做的、非常奇怪的事。除了漏洞檢測,測試還應該考慮效能問題,也就是要保證軟體執行得很好,沒有記憶體洩漏,不會出現執行越來越慢的情況;在不同的使用環境下,考慮軟體的相容性同樣重要。軟體測試同產品的規模也有很大的關係,因為軟體的bug往往出在大型軟體的連線處。

做軟體測試工程師需要對軟體抱有懷疑態度。這是因為開發人員喜歡想當然,總是找一些有利於自己程式執行的資料,有些開發人員甚至認為不利於程式執行的資料是對程式碼的玷汙和褻瀆。而軟體測試卻要策略性的準備各種資料,從每個細節上設計不同的應用場景,不去想當然的假定任何一個數據是可行的。

在職業素質和交際方面方面,並不是測試工程師愛挑別人毛病才好,反而這個工作要求很強的溝通能力。經常的和開發人員進行溝通,說話辦事要很得當,不能指責別人,否則會事倍功半。性格隨和才能和開發人員順暢的溝通,對人和對事是完全不同的兩個問題。

如何培養優秀的軟體測試工程師

朗川軟體測試工程師張建陽從北大力學系畢業之後,曾開發流體力學分析軟體,軟體缺少測試而產生的問題給她留下了很深的印象。後來去大唐電信做UIM(統一訊息管理系統),她發現儘管公司為了鼓勵員工找bug採取了很多獎勵方法,但還是很少人願意去做系統測試。而張建陽卻從那時查閱翻譯了很多國內外的資料,對軟體測試產生了濃厚的興趣。

像張建陽這樣在工作中自己定位在軟體測試領域的開發人員並不多見,因為程式設計師更願意去做開發而不是測試,從大環境上,測試人員收入水平低也是原因之一。而在微軟,測試人員和開發人員的工資水平是相同的。

如何改變這種現狀呢?有人說可以可以派人去先進的國外軟體企業學習,但這種方式因為牽涉到商業祕密,可操作性不大。陳巨集剛博士認為更好的方法是引進人才,把在國外大型軟體公司工作過、有經驗的人才引進來,甚至要高薪聘請。他表示,這不僅僅是一個人的問題,關鍵是能夠把整個軟體測試的水準提高一個層次。

引進人才只是開始,更重要的是培養一批軟體測試人才。軟體開發的教育培訓都是比較正規的,各個學校也都設有專業,但軟體測試還沒有正規的專業畢業生,而且沒有評判的標準。陳巨集剛博士給很多軟體學院建議,開設四方面的軟體測試專業基礎課:軟體測試基礎、軟體測試開發、高階軟體測試案例和行業軟體特色測試方法。國內現在已經有了一些軟體測試基礎的教材,但其他的教材還沒有。高階軟體測試案例主要是大型軟體測試案例,大型軟體出現的問題具有很強的代表性。而行業特色軟體測試的課程可以開闊學生的視野。陳博士介紹說,在國外,也是極少的高等院校開設測試專業,但可以借鑑民間的培訓機構課程。在有一批專業的測試人才出現之後,人們會認識到他們的重要性。

如果你已經開始從事軟體測試工作,千萬不要認為軟體測試沒有什麼發展的潛力和前途。劉忠從1995年接下IBM的OS2漢化版本的測試開始到現在,他一直工作在軟體測試領域,並升到了公司高階副總裁的位置。和騰軟體也培養了一批測試工程師,它們從對測試職業將信將疑到明確自己的測試方面的職業目標。劉忠介紹說:“很多人開始做測試執行工作時會說很麻煩、很枯燥,只是一味的埋怨,而不是主動的去學習,他沒有看到軟體測試背後所隱藏的知識。因為學習可以做這些工作,不學習也可以做這些工作,但質量是不同的。有些人自學和請教了很多測試技術和管理方面的知識,公司自然就會在下個專案中去培養他。”

因此對於一個新手,要在各方面培養自己的能力。首先是要理解各種測試流程,並在理解的基礎上轉化為自己的知識,以後遇到相似的問題能自己去解決。在測試技能上,要知道測試有那些手段,比如壓力測試有哪些方法,哪些工具可以輔助做測試。從專業技能上,面向不同的技術方向,像作業系統、網路、通訊等都要從專業上深入瞭解。這三方面要同步去成長。

軟體測試工程師未來的發展

從事軟體測試有沒有前途,未來的職業發展方向怎樣呢?

陳巨集剛博士表示,軟體測試工程師在微軟的發展有幾種途徑:一種走技術路線,成長為高階軟體測試工程師,這時他能夠獨立測試很多軟體,再向上可以成為軟體測試架構設計師。第二種就是向管理方向發展,從測試工程師到組長(Lead),再到專案經理(Manager),到更高的職位。第三種可以換職業,做專案管理,做開發人員都可以,很多測試工具軟體開發工程師在寫測試軟體的過程中,因為開發方面積累了經驗,同時對軟體產品本身產生了自己的看法,很容易轉去做產品程式設計。

陳巨集剛博士現在還帶著一個測試小組,兩個清華軟體學院的學生,一個南開的專門做軟體測試的博士生,一個北郵的學生,他們負責總部一個產品的測試。陳博士表示,在自己簡單的講講思路,共同探討之後,他們一星期就找出了70多個Bug,也感覺學了很多知識,並表示以後專注於軟體測試專業,因為他們感覺軟體測試真的是一門很深的學科,有很多可以研究的課題。其實微軟的測試人員很多也都是碩士、博士,他們同樣在做創造性的工作,保證著程式質量,推動著軟體的進步。

軟體測試是正在快速發展,充滿挑戰的領域。儘管現在單機版桌面軟體的測試已經成熟了很多,但對於網路時代的到臨,包括微軟在內的公司對基於網路的測試也沒有一套完整的體系,也是處於探索中,網路中被攻擊的可能性太大,這就是為什麼黑客在網路上能興風作浪的原因。網路測試是一個新環境,而且是很大的挑戰。

軟體測試未來的發展空間很大,軟體測試工程師的職業之路同樣充滿希望。

  • 文章版權屬於文章作者所有,轉載請註明 https://wjfww.com/zh-tw/zhichang/dapin/pxnx09.html
專題