測試工程師的學習之旅

來源: InfoQ  發布時間: 2010-08-31 17:23  閱讀: 1039 次  推薦: 0   原文鏈接   [收藏]  
摘要:軟件行業發展迅猛。越來越多的團隊開始重視測試,他們利用測試驅動開發。但是大部分人在校園里中學不到這些必要的技能,那么測試人員是如何煉成的呢?

  軟件行業發展迅猛。越來越多的團隊開始重視測試,他們利用測試驅動開發。全新的或者改進的自動化測試和驅動框架層出不窮。團隊在采用更多自動化回歸測試之后,需要測試人員具有精湛的探索性測試技能。但是大部分人在校園里中學不到這些必要的技能,那么測試人員是如何煉成的呢?

  同時,我發現一些人在努力尋找讓自己滿意的測試工作。測試人員經常問我如何融入敏捷開發,或者哪些技能可以幫助他們找到滿意的工作。如果沒有編程經驗,他們會擔心技術上無法立足于敏捷團隊。我認為雖然技術很重要,但是態度決定一切。如果你樂于學習,并且努力幫助團隊交付優秀的產品,那么作為測試人員,你前途一片光明。我的建議是抓住一切學習機會,主動獲取新技能。

  我發現許多人從例子中學到的東西比較多,所以這里分享本人的幾個故事,講述了我的學習動力是如何促進事業發展的,希望能夠為讀者自己的職業進步提供一些啟發。

  開發人員、測試人員還是領域專家?

  測試人員的背景非常廣泛。在過去十年間,隨著越來越多的開發人員對測試產生興趣,我見到許多開發人員更樂于把自己視為測試人員。還有許多測試人員來自于業務領域,他們的領域專長對于開發非常有價值。技術作者,必須弄清楚應用程序的行為才能正確表述,所以經常讓自己變成測試人員。許多人都是碰巧擔當了這個角色,我也是!

  來說說我自己的故事吧。我的職業生涯起初是一名開發人員,而且我喜歡編程。測試自動化(本質上屬于開發人員的任務)是我最喜歡的工作之一。我熱愛測試。我樂于了解業務并想辦法促其成功。擁有技術背景讓我既適應開發團隊又適應業務團隊。下面的故事講述了我的學習旅程:從早期的開發歲月到參與敏捷團隊。

  對測試的早期認識

  和許多人一樣,我是偶然進入了軟件開發領域。我最初在Texas大學的Austin數據處理部門獲得了“開發實習生”的職位。

  我的培訓老師其實比我早幾周入職,也是剛剛接受培訓,他們剛學會了編程,然后又教會了我。很快,我就了解了Easytrieve、Cobo和4GL還有層次型數據庫的基礎知識。我們以相同的方式編寫代碼,所以彼此的程序易于操作。現在回想起來,集體性的代碼所有權非常有用。

  在這次培訓的數月之后,我很高興的接受了教育協調員的工作,不僅僅監督開發人員培訓,還負責培訓最終用戶。我們通過課程教育老師們如何執行簡單的查詢和報告,這節省了開發人員大量的工作。我從這一年的經歷(期間我還在日常開發工作)中學到了很多:如何教授他人。

  我驚訝的發現從客戶和其他開發人員身上受益良多。我們(開發人員和分析人員)與客戶坐在一起,討論他們的需求,并現場畫出原型。我們一一展示直到他們確認需求。我曾經加入一個團隊來規劃圖書館的在線編目系統,與圖書管理人員坐在一起了解卡片編目系統是如何運作的。學習不同的領域是我工作中最有趣的部分。我們對測試一無所知,但是與客戶的合作幫助我們在發布產品之前提高了軟件的質量。

  在最初的開發/分析工作中,我學會了如何領導他人。我的老板曾經告訴我做領導意味著確保其他人知道我的團隊所做的貢獻。我學會了以身作則。在以后的工作中我一直謹記在心,想辦法讓老板和其他業務上的人員知道我的團隊和我自己帶來的價值。

  在轉變中學習

  幾年后,我在一家大型軟件公司擔任技術支持,那時對測試和質量保證的概念不太了解。同事和我出于自我防范的意識做了大量測試工作:在客戶發現缺陷之前最好由我們自己來找到這些問題。某天,老板問:“誰想做DB2培訓?”沒人了解DB2,但是我主動請纓。很快,我成為了團隊中SQL和DB2專家。

  公司發現在客戶之前找到缺陷好處多多,所以決定創建第一個測試團隊。我再次自愿參與。因為我了解SQL,所以我測試了使用Oracle和Sybase數據庫的項目,這些都比我們自己的數據庫產品在市場上更受歡迎。

  在新的工作中,我開始學習測試的方方面面。我參加了一次測試研討會了解了更多知識。我們開始嘗試測試自動化。我們的軟件適應于所有操作系統,因此我有幸學習VAX/VMS、Wang、OS2、AS400和八種不同的UNIX系統。雖然這些經歷寫到簡歷上不是那么好看,但是在所有平臺上維護測試環境是寶貴的經驗。

  我們的團隊同時負責打包發布。我理解了發布說明和準確文檔的重要性,以及如何管理alpha和beta測試。起初這些任務讓人覺得很困難,即使現在我也覺得自動化測試是這樣。但是我很幸運的受到了來自外部課程、自學教材和同事等各方面的培訓和支持。我試著克服困難,不斷想辦法掌握新技能。

  隨著在測試、自動化、數據庫和操作系統等各方面的廣泛經驗,我擁有了不凡的技能。這本不是我的目標,起初我只是想學習新知識!不論是技術能力還是有關業務的什么東西,我喜歡在新領域中探索,很值得去做。當公司遇到財政危機時,我找到了一份不錯的新工作。

  個人關系創造機會

  我的新工作很有趣,而且有機會學到新技能。例如,我成為了團隊的Powerbuilder專家。我能夠花費幾個月時間來學習一種測試工具并搭建自動化GUI測試集。最重要的是,一些過去的同事也加入了這家新公司,讓我領悟到——這世界真是小啊!

幾年之后,在互聯網熱潮中,我加入了一家web創業公司。我對測試web應用一無所知,但是因為我曾經使用過多年各種測試自動化工具,所以我在因特網上想找到適合web應用的工具。

  當我查看工具列表網站時,“OCLC”幾個字母吸引了我的眼球。當我在參與在線圖書館編目項目時深入了解了OCLC,因為OCLC一直被用于編目書籍和向圖書館提供服務。奇怪的是,它們在出售一款名為WebArt的測試工具,我決定購買。它的開發者Tip House過來培訓我們如何測試web應用和自動化測試。

  和許多測試人員一樣,我總是在想如何更好地及時交付高質量的軟件。互聯網世界比數據庫產品變化快得多,我對緩慢、瀑布型的過程感到沮喪。嘗試一種不同方式的機會很快就出現了。當我們的創業小公司被一家大公司收購的時候,一些同事離職選擇自主創業,他們給我一本名為《Extreme Programming Explained》的書,說:“我們準備嘗試極限編程。”當我讀了這本書,我覺得自己必須嘗試一下,請求他們帶上我。

  第一次加入XP團隊之后,我開始學習在XP模式下測試人員應該如何工作,并分享到在線敏捷社區中(雖然那時我們還不稱之為“敏捷”)。我驚訝的發現XP專家和其他敏捷實踐者非常受歡迎。當Bob Martin大叔過來培訓我們時,他建議我給Ward Cunningham打電話請教測試中的問題,并提供了他的手機號。Ward與我討論了一個小時!如果我聽說類似Ron Jeffries或者Kent Beck來訪或者出席一個我參加的會議,我會想辦法與他們見面,而他們總是很慷慨地花時間會解答問題。Brian Marick幫助我創建了一個敏捷測試郵件組,使我受益良多。

  貢獻社區獲得機會

  當我的團隊還有那些我通過會議、用戶組和郵件列表結識的朋友都認識到敏捷測試技術的好處時,我決定不應該讓其他的測試人員和團隊繼續重復昨天的故事。在XP社區的鼓勵下,Tip House和我合著了一本書《Testing Extreme Programming》。許多人幫忙審閱了草稿并反饋意見,包括Janet Gregory。Janet 和我開始組織研討會和教程。

  極限編程的核心是人,而事業成功的要素也是。我運用了個人關系,并最終成為一名演講者、教練和書籍作者。我不僅成為了一名更出色的測試人員,我還學會了溝通的最佳方式。我經常參加會議,向他人學習,并在研討會和培訓班中闡述自己的觀點。這一切都因為我想學習,并花時間與朋友發展良好的工作關系。

  我也體驗了回報的樂趣和價值。我的第一個XP團隊與其他組織發起了本地的XP用戶組。我在第一次會議上做了演講!過去十年間,我通過這個用戶組見到了許多優秀的朋友并受益良多,而它只是占用了我的一些時間而已。我努力回報以前獲得的所有幫助。我參加了本地用戶組,志愿幫忙組織會議,維護著一個測試郵件列表,和其他公司組織一些短期的研討會,和對測試和敏捷開發存在疑問的團隊進行網絡和電話會議。我發現幫助別人越多,自學的也就越多。這感覺太好了——回報他人就是幫助自己。

  學無止境:開闊眼界

  我已經從事軟件測試這個職業許多年了,但是不覺得厭倦。我每天都在學習新東西:要么是技術,要么是業務運作上的發現。在同事或者用戶組、會議甚至Twitter上的同行的協助下,我嘗試了新的開源工具,并且學習了新的腳本語言。這可能很困難,但是值得付出。

  例如,我努力學習Ruby,因為我從沒掌握過一種面向對象語言。我閱讀相關書籍并從同事中獲得幫助,通過Ruby編寫的腳本讓我有更多時間關注更有趣的測試。我參加了一些組織以改進測試工具,如關注測試自動化的Austin Workshop和敏捷聯盟功能測試工具委員會。我不僅了解了更多工具,而且見到了許多能提供幫助的同行。

  為什么如此重要?

  我希望其他測試人員在看到本文時能夠感受到我對自己工作的熱愛(雖然有時會沮喪:希望自己掌握更多的技能!)來自早期技術支持團隊的朋友驚訝于為何我找到一份新工作這么容易,而他們依然掙扎于討厭的工作中。我不比他們任何人更聰明:我花時間學習并抓住新機會!對學習的時間投入和參與技術社區活動對我的職業發展產生了回報。

  這就是我希望讀者從我的學習之旅中得到的啟示:對自己的職業發展負責。不要局限于技術或者測試技能。了解公司業務領域使你能夠幫助他們做出正確選擇。現在,請走出你的封閉角落,想一想如何幫助團隊和公司。加入一個在線的測試俱樂部,或者志愿幫助本地的測試用戶組。買一本新書或者閱讀在線的教程。今天就啟程可以讓你的學習之旅走得更遠一些。你會更加喜歡自己的工作,你會獲得更多機會,你會讓我們所有人為你感到驕傲。

  下面是一些測試人員學習的資源:

  關于作者

  Lisa Crispin與Janet Gregory合著了《Agile Testing: A Practical Guide for Testers and Agile Teams》,參與編寫了《Beautiful Testing》,她在過去十年間在敏捷團隊中擔任測試人員,喜歡通過寫作、演講和參與敏捷測試社區來分享其經驗。如果想了解更多有關Lisa的信息,請訪問www.lisacrispin.com

  查看英文原文:A Tester's Learning Journey

0
0
 
標簽:軟件測試
 
 

文章列表

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()