在臺灣,比起半導體業的製程工程師,資訊領域的軟體工程師相對冷門,而測試工程師比軟體開發更冷門。因此,一般人對軟體測試這一行了解不多,甚至有些誤解,認為程式開發能力不夠,才會淪為測試人員。許育誠從基層的測試工程師做起,到升職為軟體測試專案經理,現身說明「抓蟲」甘苦,以及如何「找碴」還能領高薪。

天生反骨,喜歡「找碴」
資訊教科書裡對軟體測試人員特質的描述,其中之一是對臭蟲(Bug)有高度敏感性。基於這個原因,一般企業會拔擢資深的開發工程師成為有潛力的測試員,主管通常認為程式寫多、寫久了,自然會對軟體內的缺陷與臭蟲瞭若指掌。事實上,這是很矛盾的特質,程式開發人員並不喜歡缺陷或臭蟲,更不會積極地正視這些問題。主動提出軟體有缺陷,其實是件損人不利己的事,這時候,他們會傾向駝鳥心態。如此一來,怎麼會養成對臭蟲的敏感度呢?軟體測試人員可不是昆蟲學家,喜歡養蟲當嗜好。

以上是典型的線性思考,但太陽底下確實有新鮮事,正巧就發生在許育誠身上。他並不全然是資訊科班出身的IT人,而是八竿子打不著的廣告業,卻擔任趨勢科技的軟體測試專案經理。至於從廣告業轉職到資訊業,並擔任測試員這件鮮事,可不是因為對臭蟲「極度過敏」,而是喜歡「找碴」。我們常認為進入資訊業有一定門檻,直覺上從外行到成為軟體測試人員,一定要經過軟體開發工程師這個階段的歷練,而且至少要會一種程式語言。這些在許育誠身上都不適用。他誠實地說道,自己雖然對C語言有皮毛般的理解,但沒有經歷過開發人員的嚴格訓練,進到趨勢科技先替公司寫廣告,網路泡沫化後就轉入較有前景的軟體測試工作。

如果說這段轉職的過程是巧合,不如說是許育誠天生反骨的特質,才讓轉職的陣痛變成水到渠成的美事。雖然出身廣告,但他看到網路的發展潛力,因而決定朝向「網路廣告」這個新興領域,為達此目的還到澳洲攻讀商業電腦相關的學位。他在澳洲求學過程中,兼差幫國內雜誌撰寫軟體使用心得文章,例如軟體的使用者介面(User Interface)設計問題。其中一件案例是工程師在設計時,一般習慣會把樹狀結構放在左側,但軟體卻出現在右側。聽起來是為了創新,卻違反一般使用者習慣,最後還是被許育誠推翻原來的設計,後續才知道原來設計者是左撇子。

從兼差到正職,又從正職變成專家,許育誠更成立網站和寫書推廣軟體測試知識,這一點也反應出「測試人員對臭蟲有高度敏感性」不一定全然正確,喜歡找碴也有出頭天。

越得罪人代表越成功?
一般人對軟體測試人員還有另一個誤解,認為他們應力求公正不阿,才能據理力爭推翻開發人員的說法,因而容易導致測試員與其他開發工程師爆發衝突。許育誠提到測試人員的養成,除了應具備以下技能:一般管理與資訊管理、了解使用者各種需求、網路環境、程式開發等,最重要的是「溝通技巧」。有時候測試人員必須在軟體臭蟲檢視會議(Bug Review Meeting)上,說服資歷比自己高深的開發人員修補臭蟲,良好的溝通技巧才能在1小時內提出解決之道,而不是數小時都在堅持己見,和開發工程師爭論不休。

許育誠進一步解釋道,每當企業提出開發新軟體的構想時,開發人員通常會提出正面的意見,畢竟他們不會搬石頭砸自己的腳。相反地,測試人員會舉出負面的看法,基於測試的精神在於「證偽」,而不是證真。簡單地說,測試人員必須驗證軟體在不正常操作時仍保有原來的反應,而不是證明軟體在理想環境下的功能。例如PC-cillin推出時,設定的作業系統在Windows 98以上,但使用者可能裝在Windows 3.1的環境,此時,軟體必須向用戶提出警告或中斷安裝等,而不是毫無反應,讓使用者漫無目的等待或不知所措。

測試團隊攜手合作,磨亮品質招牌
不過,測試工程師也有辛苦的一面,就在於初期紮馬步的修練階段。臺灣大學商學研究所教授洪明洲曾說過:「修練基本功夫是一條很沉悶、孤獨、沒有捷徑、短期不會有回報的路線,但它所累積的雄厚實力卻是可長可久。」這句話點出測試人員初期養成訓練的付出過程。許育誠舉例說道,一個程式可能需要建立2000條測試案例(Test Case),每條測試案例依複雜性需要1分鐘到1天以上不等的測試時間,更嚇人的是,如果軟體開發為8種多國語言版,則每個語言版本都經過2000條測試案例,也就是說產品上市前就必須跑過16000條的測試案例,測試人員的人生能有多少分鐘可以花費在測試上?

測試案例也不是測試員說了算,還需要與原設計者溝通,每個協調過程都是另一種煎熬。由於每個測試案例都對應到該軟體中一種以上的功能,開發人員站在設計者的角度納入某功能,自有其技術上的考量與堅持。相對地,測試人員則站在使用者的觀點,認為這是冗贅且影響效率的功能,因而建議推翻原設計。這種情況在趨勢科技司空見慣,許育誠建議:「此時不在於無謂的爭執,而是彼此說服。」。

姑且不論一個測試員願意花費多長的時間用於測試,能跑完所有測試案例的專案,卻也是另一個「人月傳說」吧。

至於如何完成2000條以上的測試案例,測試員必須與測試主管協同合作,由主管負責引導測試員排列出測試案例的優先順序,一來不會浪費測試員寶貴的「人月」,也不會因此擔誤產品上市的時間。慶幸的是測試人員在資訊領域並不容易被淘汰,他們的基礎來自於數學模型,卻不是與時俱進的資訊技術,經過修練的階段累積實力成為除錯專家,而不是被資訊技術淹沒。

菲利普摩里斯專案破除井底之蛙的啟示
測試人員與開發人員不同,必須跨越技術窠臼,涉獵廣泛的知識,而且這些知識通常來自於世界各地的使用者,不只是教科書中的理論而已。許育誠以菲利普摩里斯公司為例,這是一家名列財金前500大的食品公司,由於美式企業常態性的併購,不同企業間的資訊系統整合變成挑戰。這種測試情境是一般只待在機房埋頭苦幹的測試人員無法想像的,他們無法光靠模擬就可以了解在整併過程中,軟體如何適應各統異質系統,所以測試員不可藉著個人憑空揣測,還要提出真實證據才能說服開發人員提升軟體功能。文⊙張瑞隆


二出三進趨勢科技

許育誠曾兩度離開趨勢科技開創自己的事業,都是為了實現自我理想。由於趨勢的產品主要以防毒軟體為核心,但他還保有對網路廣告有憧憬,雖然自己在1998年加入趨勢,並在2000年時離開,又在2003年回到趨勢。兩次回鍋都是受同事的拜託,請他解決以前開發專案的問題,卻從單純的幫忙變成正職。從這一點可以看出趨勢科技念舊的企業文化,以及重視「人」為企業重要資產,只要扮演好該職位的工作,公司不會在乎每個人的過去。此外,他更說到不是每個人都有機會面對美國前500大企業高階主管侃侃而談,加上自己也經過創業的艱辛,他結論道:「CEO的生活真不是人過的,至少心臟一定要夠強。」文⊙張瑞隆


IT人物-許育誠
趨勢科技軟體專案經理
●學經歷:澳洲維多利亞大學商用電腦研究所畢業,曾擔任廚師、廣告AE、學校助教、軟體測試主任、軟體專案經理、軟體品質顧問。

公司檔案-趨勢科技
●成立時間:1988年
●研究領域:網路安全服務方案,共有以下7類:防毒委外服務、企業網路防毒管理工具統、網際網路及企業內部網路閘口、群組配備、企業伺服器、工作站、線上掃毒、主機板上的病毒防護。

熱門新聞

Advertisement