學(xué)習(xí)啦 > 創(chuàng)業(yè)指南 > 職場 > 職場法則 > 從程序員到軟件測試工程師的路該怎么走

從程序員到軟件測試工程師的路該怎么走

時(shí)間: 文樺657 分享

從程序員到軟件測試工程師的路該怎么走


從程序員到軟件測試工程師的路該怎么走?我想大家都知道這是一個(gè)晉升向上的方向,這條路該怎么走呢?今天小編將與您探討一下這個(gè)問題。
  程序員(英文Programmer)是從事程序開發(fā)、維護(hù)的專業(yè)人員。一般將程序員分為程序設(shè)計(jì)人員和程序編碼人員,但兩者的界限并不非常清楚,特別是在中國。軟件從業(yè)人員分為初級(jí)程序員、高級(jí)程序員、系統(tǒng)分析員,系統(tǒng)架構(gòu)師,測試工程師五大類。

  軟件測試工程師(Software Testing Engineer)指理解產(chǎn)品的功能要求,并對(duì)其進(jìn)行測試,檢查軟件有沒有錯(cuò)誤(Bug),測試軟件是否具有穩(wěn)定性(Robustness),寫出相應(yīng)的測試規(guī)范和測試用例的專門工作人員。簡而言之,軟件測試工程師在一家軟件企業(yè)中擔(dān)當(dāng)?shù)氖?ldquo;質(zhì)量管理”角色,及時(shí)發(fā)現(xiàn)軟件問題并及時(shí)督促更正,確保產(chǎn)品的正常運(yùn)作。按其級(jí)別和職位的不同,分為三類。

  水往低處流,人往高處走,大家一般都會(huì)有想要向上晉升的愿望。那么從程序員到軟件測試工程師是怎么樣一個(gè)過程呢?從程序員到軟件測試工程師的路該怎么走?讓我們來了解一下:

  國內(nèi)軟件公司對(duì)軟件測試的態(tài)度令人擔(dān)憂。軟件測試工程師不足,開發(fā)測試人員比例不合理。據(jù)調(diào)查,最好的企業(yè)中測試人員和開發(fā)人員的比例是1:8,有的是1:20,甚至沒有專職的軟件測試工程師。

  曾經(jīng)參與微軟Windows95、Exchange Server4.0和4.5、Internet Explorer4.0和5.0、SQL Server2000開發(fā)與測試工作陳宏剛博士盡管已經(jīng)升任微軟亞洲研究院商務(wù)及高校關(guān)系高級(jí)經(jīng)理,但仍然對(duì)國內(nèi)軟件測試水平的落后深有感觸。

  國內(nèi)很多企業(yè)還處在探索階段,小企業(yè)的運(yùn)作方式造成其主要精力是要盡快完成初始資本積累。有些企業(yè)也了解軟件測試的重要性,很努力、很認(rèn)真的在學(xué),但因?yàn)楹芏嘣蚨鴮W(xué)不到精髓,不知道如何去做。于是只能局限于書本上學(xué)來的簡單的黑盒、白盒測試而已。很多人知道有壓力測試和性能測試,但針對(duì)產(chǎn)品具體如何去做就不清楚了。

  陳宏剛表示,重視測試首先需要有開放性的軟件文化,而在很多公司中,測試工程師只是絕對(duì)服從的聽命角色,沒有開發(fā)他們的積極性和創(chuàng)造性。一些管理人員對(duì)軟件開發(fā)的流程管理經(jīng)驗(yàn)不足,仍然用傳統(tǒng)企業(yè)的方法進(jìn)行管理,再加上對(duì)軟件質(zhì)量的控制理解不對(duì),認(rèn)為編完程序經(jīng)過簡單的程序員自己測試就可以使用了,而沒有認(rèn)識(shí)到軟件測試是控制質(zhì)量最好的方法。

  不過,國內(nèi)還是有一些大型公司和專業(yè)公司已經(jīng)在軟件測試方面走上正規(guī)。1994年開始接包IBM軟件測試項(xiàng)目,1999年軟件測試成為公司主體軟件外包業(yè)務(wù)之一的和騰軟件就是其中之一。因?yàn)榭蛻艟褪荌BM這樣的大型軟件公司,和騰軟件高級(jí)副總裁劉忠表示,它們在軟件測試管理上,經(jīng)同國外的公司相差不大,同時(shí)也研究和應(yīng)用了多種軟件測試技術(shù)。

  軟件測試工程師

  一提到軟件測試工程師,很多人就會(huì)想到那些反復(fù)使用軟件,試圖在頻繁操作中尋找到錯(cuò)誤發(fā)生的低層次人員或者軟件用戶。其實(shí)這是一種錯(cuò)誤的概念,軟件測試早已超越了用戶使用來發(fā)現(xiàn)Bug的基本測試階段。

  陳宏剛介紹說,微軟的軟件測試工程師分為三種:測試執(zhí)行者(Basic SoftwareTester)、測試工具軟件開發(fā)工程師(Software Development Engineer inTest)和高級(jí)軟件測試工程師(Ad_hoc Tester)

  測試執(zhí)行者負(fù)責(zé)理解產(chǎn)品的功能要求,然后根據(jù)測試規(guī)范和測試案例對(duì)其進(jìn)行測試,檢查軟件有沒有錯(cuò)誤,決定軟件是否具有穩(wěn)定性,屬于最低級(jí)的執(zhí)行角色。

  測試工具軟件開發(fā)工程師負(fù)責(zé)寫測試工具代碼,并利用測試工具對(duì)軟件進(jìn)行測試;或者開發(fā)測試工具為軟件測試工程師服務(wù)。產(chǎn)品開發(fā)后的性能測試、提交測試等過程,都有可能要用到開發(fā)的測試工具。對(duì)技術(shù)要求最強(qiáng)的是這些人,因?yàn)樗鼈円邆鋵懗绦虻募夹g(shù)。“因?yàn)椴煌a(chǎn)品的特性不一樣,對(duì)測試工具要求也是不同的,就像Windows的測試工具不能用于Office,office的也不能用于SQLserver,微軟很多測試工程師就是負(fù)責(zé)專門為某個(gè)產(chǎn)品寫測試程序的。”

  而Ad_hocTestet屬于比較有經(jīng)驗(yàn),自己會(huì)找方向并做的很好的測試工程師,這要求具有很強(qiáng)的創(chuàng)造性。剛進(jìn)入微軟時(shí),老板也是只給陳宏剛一個(gè)操作流程,每天就按照這個(gè)規(guī)程去做,幾天下來,一個(gè)Bug都沒有發(fā)現(xiàn)。陳宏剛也很沮喪,覺得這樣挺對(duì)不起公司,后來自己問自己:為什么非要這樣做!于是換了其他的方法試試,令他吃驚的是,一下就找到很多嚴(yán)重的Bug,當(dāng)時(shí)也不敢聲張。有一天,他找到10多個(gè)非常嚴(yán)重的Bug,開發(fā)經(jīng)理一下就驚呆了,怒沖沖的跑到陳宏剛面前問:“你是不是改變了測試方式和測試步驟?”陳宏剛有些嚇住,說道:“可能改變了一點(diǎn)。”對(duì)方說:“我非常生氣,但我不是生你的氣,而是因?yàn)橐郧皽y試人員水平太差,或者以前的測試方面有問題,軟件中有些Bug存在了半年甚至一年,但直到現(xiàn)在才發(fā)現(xiàn),現(xiàn)在修補(bǔ)這些錯(cuò)誤要困難很多!”后來陳宏剛得到了老板的贊許,可以按照自己的想法去做測試。對(duì)此,陳宏剛感受頗深:“一方面我體會(huì)到了微軟非常鼓勵(lì)創(chuàng)造的文化,同時(shí)也感到只遵守教條不是好的測試人員,就和用戶一樣了。做軟件測試工程師同樣需要開拓和創(chuàng)造性。”

  在開發(fā)管理上,測試不應(yīng)該歸屬于項(xiàng)目管理,也不應(yīng)該歸屬開發(fā)人員。這三個(gè)部門應(yīng)該是并駕齊驅(qū),相互協(xié)作,測試工程師最終決定產(chǎn)品是否能夠發(fā)布。

  軟件測試工程師的素質(zhì)

  因?yàn)檐浖y試仍然處在發(fā)展階段,還沒有上升到理論層次。對(duì)人員的評(píng)測,包括微軟在內(nèi),都還沒有一個(gè)統(tǒng)一標(biāo)準(zhǔn),因此評(píng)定軟件測試工程師只能根據(jù)工作實(shí)踐進(jìn)行自然淘汰。

  軟件測試對(duì)邏輯思維、學(xué)習(xí)能力、反應(yīng)要求很高,是否有嚴(yán)密的思維和逆向思維也非常重要。陳宏剛介紹說,在五六個(gè)人的測試小組時(shí),一半以上的Bug都是他找到的。他認(rèn)為這同自己數(shù)學(xué)專業(yè)的背景關(guān)系密切,數(shù)學(xué)中有邏輯思維的培訓(xùn),要善于找出來各方面的因素。比如要證明一個(gè)定理,各個(gè)方面都考慮到,一個(gè)條件不滿足就無法證明;但如果證明其不成立,最常用的就是找到一個(gè)反例,只要有一點(diǎn)證明不成立就可以了,軟件測試也是找這一點(diǎn)。

  做測試還要考慮到所有出錯(cuò)的可能性,還要做一些不是按常規(guī)做的、非常奇怪的事。除了漏洞檢測,測試還應(yīng)該考慮性能問題,也就是要保證軟件運(yùn)行得很好,沒有內(nèi)存泄漏,不會(huì)出現(xiàn)運(yùn)行越來越慢的情況;在不同的使用環(huán)境下,考慮軟件的兼容性同樣重要。軟件測試同產(chǎn)品的規(guī)模也有很大的關(guān)系,因?yàn)檐浖腷ug往往出在大型軟件的連接處。

  做軟件測試工程師需要對(duì)軟件抱有懷疑態(tài)度。這是因?yàn)殚_發(fā)人員喜歡想當(dāng)然,總是找一些有利于自己程序執(zhí)行的數(shù)據(jù),有些開發(fā)人員甚至認(rèn)為不利于程序執(zhí)行的數(shù)據(jù)是對(duì)代碼的玷污和褻瀆。而軟件測試卻要策略性的準(zhǔn)備各種數(shù)據(jù),從每個(gè)細(xì)節(jié)上設(shè)計(jì)不同的應(yīng)用場景,不去想當(dāng)然的假定任何一個(gè)數(shù)據(jù)是可行的。

  在職業(yè)素質(zhì)和交際方面方面,并不是測試工程師愛挑別人毛病才好,反而這個(gè)工作要求很強(qiáng)的溝通能力。經(jīng)常的和開發(fā)人員進(jìn)行溝通,說話辦事要很得當(dāng),不能指責(zé)別人,否則會(huì)事倍功半。性格隨和才能和開發(fā)人員順暢的溝通,對(duì)人和對(duì)事是完全不同的兩個(gè)問題。

  如何培養(yǎng)優(yōu)秀的軟件測試工程師

  朗川軟件測試工程師張建陽從北大力學(xué)系畢業(yè)之后,曾開發(fā)流體力學(xué)分析軟件,軟件缺少測試而產(chǎn)生的問題給她留下了很深的印象。后來去大唐電信做UIM(統(tǒng)一消息管理系統(tǒng)),她發(fā)現(xiàn)盡管公司為了鼓勵(lì)員工找bug采取了很多獎(jiǎng)勵(lì)方法,但還是很少人愿意去做系統(tǒng)測試。而張建陽卻從那時(shí)查閱翻譯了很多國內(nèi)外的資料,對(duì)軟件測試產(chǎn)生了濃厚的興趣。

  像張建陽這樣在工作中自己定位在軟件測試領(lǐng)域的開發(fā)人員并不多見,因?yàn)槌绦騿T更愿意去做開發(fā)而不是測試,從大環(huán)境上,測試人員收入水平低也是原因之一。而在微軟,測試人員和開發(fā)人員的工資水平是相同的。

  如何改變這種現(xiàn)狀呢?有人說可以可以派人去先進(jìn)的國外軟件企業(yè)學(xué)習(xí),但這種方式因?yàn)闋可娴缴虡I(yè)秘密,可操作性不大。陳宏剛博士認(rèn)為更好的方法是引進(jìn)人才,把在國外大型軟件公司工作過、有經(jīng)驗(yàn)的人才引進(jìn)來,甚至要高薪聘請(qǐng)。他表示,這不僅僅是一個(gè)人的問題,關(guān)鍵是能夠把整個(gè)軟件測試的水準(zhǔn)提高一個(gè)層次。

  引進(jìn)人才只是開始,更重要的是培養(yǎng)一批軟件測試人才。軟件開發(fā)的教育培訓(xùn)都是比較正規(guī)的,各個(gè)學(xué)校也都設(shè)有專業(yè),但軟件測試還沒有正規(guī)的專業(yè)畢業(yè)生,而且沒有評(píng)判的標(biāo)準(zhǔn)。陳宏剛博士給很多軟件學(xué)院建議,開設(shè)四方面的軟件測試專業(yè)基礎(chǔ)課:軟件測試基礎(chǔ)、軟件測試開發(fā)、高級(jí)軟件測試案例和行業(yè)軟件特色測試方法。國內(nèi)現(xiàn)在已經(jīng)有了一些軟件測試基礎(chǔ)的教材,但其他的教材還沒有。高級(jí)軟件測試案例主要是大型軟件測試案例,大型軟件出現(xiàn)的問題具有很強(qiáng)的代表性。而行業(yè)特色軟件測試的課程可以開闊學(xué)生的視野。陳博士介紹說,在國外,也是極少的高等院校開設(shè)測試專業(yè),但可以借鑒民間的培訓(xùn)機(jī)構(gòu)課程。在有一批專業(yè)的測試人才出現(xiàn)之后,人們會(huì)認(rèn)識(shí)到他們的重要性。

  如果你已經(jīng)開始從事軟件測試工作,千萬不要認(rèn)為軟件測試沒有什么發(fā)展的潛力和前途。劉忠從1995年接下IBM的OS2漢化版本的測試開始到現(xiàn)在,他一直工作在軟件測試領(lǐng)域,并升到了公司高級(jí)副總裁的位置。和騰軟件也培養(yǎng)了一批測試工程師,它們從對(duì)測試職業(yè)將信將疑到明確自己的測試方面的職業(yè)目標(biāo)。劉忠介紹說:“很多人開始做測試執(zhí)行工作時(shí)會(huì)說很麻煩、很枯燥,只是一味的埋怨,而不是主動(dòng)的去學(xué)習(xí),他沒有看到軟件測試背后所隱藏的知識(shí)。因?yàn)閷W(xué)習(xí)可以做這些工作,不學(xué)習(xí)也可以做這些工作,但質(zhì)量是不同的。有些人自學(xué)和請(qǐng)教了很多測試技術(shù)和管理方面的知識(shí),公司自然就會(huì)在下個(gè)項(xiàng)目中去培養(yǎng)他。”

  因此對(duì)于一個(gè)新手,要在各方面培養(yǎng)自己的能力。首先是要理解各種測試流程,并在理解的基礎(chǔ)上轉(zhuǎn)化為自己的知識(shí),以后遇到相似的問題能自己去解決。在測試技能上,要知道測試有那些手段,比如壓力測試有哪些方法,哪些工具可以輔助做測試。從專業(yè)技能上,面向不同的技術(shù)方向,像操作系統(tǒng)、網(wǎng)絡(luò)、通信等都要從專業(yè)上深入了解。這三方面要同步去成長。

  軟件測試工程師未來的發(fā)展

  從事軟件測試有沒有前途,未來的職業(yè)發(fā)展方向怎樣呢?

  陳宏剛博士表示,軟件測試工程師在微軟的發(fā)展有幾種途徑:一種走技術(shù)路線,成長為高級(jí)軟件測試工程師,這時(shí)他能夠獨(dú)立測試很多軟件,再向上可以成為軟件測試架構(gòu)設(shè)計(jì)師。第二種就是向管理方向發(fā)展,從測試工程師到組長(Lead),再到項(xiàng)目經(jīng)理(Manager),到更高的職位。第三種可以換職業(yè),做項(xiàng)目管理,做開發(fā)人員都可以,很多測試工具軟件開發(fā)工程師在寫測試軟件的過程中,因?yàn)殚_發(fā)方面積累了經(jīng)驗(yàn),同時(shí)對(duì)軟件產(chǎn)品本身產(chǎn)生了自己的看法,很容易轉(zhuǎn)去做產(chǎn)品編程。

  陳宏剛博士現(xiàn)在還帶著一個(gè)測試小組,兩個(gè)清華軟件學(xué)院的學(xué)生,一個(gè)南開的專門做軟件測試的博士生,一個(gè)北郵的學(xué)生,他們負(fù)責(zé)總部一個(gè)產(chǎn)品的測試。陳博士表示,在自己簡單的講講思路,共同探討之后,他們一星期就找出了70多個(gè)Bug,也感覺學(xué)了很多知識(shí),并表示以后專注于軟件測試專業(yè),因?yàn)樗麄兏杏X軟件測試真的是一門很深的學(xué)科,有很多可以研究的課題。其實(shí)微軟的測試人員很多也都是碩士、博士,他們同樣在做創(chuàng)造性的工作,保證著程序質(zhì)量,推動(dòng)著軟件的進(jìn)步。

  軟件測試是正在快速發(fā)展,充滿挑戰(zhàn)的領(lǐng)域。盡管現(xiàn)在單機(jī)版桌面軟件的測試已經(jīng)成熟了很多,但對(duì)于網(wǎng)絡(luò)時(shí)代的到臨,包括微軟在內(nèi)的公司對(duì)基于網(wǎng)絡(luò)的測試也沒有一套完整的體系,也是處于探索中,網(wǎng)絡(luò)中被攻擊的可能性太大,這就是為什么黑客在網(wǎng)絡(luò)上能興風(fēng)作浪的原因。網(wǎng)絡(luò)測試是一個(gè)新環(huán)境,而且是很大的挑戰(zhàn)。

  軟件測試未來的發(fā)展空間很大,軟件測試工程師的職業(yè)之路同樣充滿希望。

267604