Saturday, January 1, 2011

Why Test?












4年前, 我剛畢業並進入軟體公司, 陰錯陽差地成為測試工程師.
雖然與一開始的預期不太相同.
但是我發現這件工作也是蠻有趣,
RD的工作在學生時代多或少有接觸,
相對而言, 測試對我來說是新的挑戰.

初期, 我測試的部分是防毒軟體中的防火牆.
理所當然地需要很多網路相關的知識.
還有學習產品相關的知識.
之後, 學習如何去撰寫Test case,
等到有Daily build後, 執行Test case.
一切就跟大家在軟體工程中看到的描述差不多.

過了4年, 有些朋友從測試工程師轉成RD.
就目前的業界發展來看, 除了大公司外是沒有什麼測試工作的職缺, 就算有待遇也是很差.
沒接觸過的朋友們也會問我 "那不是找些工讀生點點介面就可以了嗎"
在一些討論版更是一面倒地勸人不要做測試, 要當RD.
事實上我也曾有機會可以轉RD.但是我並沒有答應還是留在測試這個領域.
有幾個原因可以給大家參考:

  1. 我的個性還蠻適合測試的. 這點很重要, 要有堅持並且細心.
  2. 測試是到使用者前的最後一關, 好的測試工程師的思緒清楚而且視野寬廣, 我一直期許達能到這個境界 並藉由測試把產品導向更好的一面. 做出一個好產品而且很多人用是很有成就感的.
  3. 第二年起的三年間我都是從事自動化測試. 不但有寫到程式, 而且我發現這是個很有趣的領域. 因為RD的程式有人測試, 但是自動化測試的程式碼是沒有太多資源可以幫忙檢驗的. (不然就沒完沒了, 找人測試測試程式). 要如何把自動化測試做好是非常有挑戰性的一件工作.
所以很幸運地, 我避開了測試中最令人感到煩躁的部分 - 無盡地反覆執行一樣的 Test case.
並也算是半個RD - 寫程式在測試程式,
這些原因讓我的熱情在今天還能持續著.

----------------------------------------------------------------------------------------------------------------------------------
4 years ago, I just graduated from school and applied a software engineer job.
I got a job but it was different from what I originally thought - developer.
I accidentally became a software engineer in test.
Soon, I found that this job was also interesting.
Developers' job I had experienced when I was a student.
However, test is a whole new challenge to me.

In the beginning, my testing component was firewall in anti-virus software.
It was essential for me to study knowledge of networks, and knowledge of product itself.
Then, studied how to create test cases, and executed test cases.
What I did was almost the same as description in software book.

Today, some my friends in testing area have transfered to developers.
In current industry, except big software companies, head count of engineers in test is much fewer,  and pay is not very good.
"What is testing? Hire Interns to click UI to check if application crashes" my friend told to me.
People advise freshmen that it is not good to apply test engineers in many famous forums.
Actually I had chances to transfer to developer before, but I didn't.
There are some reasons:


  1. Testing is suit with my personality, and it is the most important. Testing requires persistence and circumspection.
  2. Testing is the last guard before software releasing to customers. A good test engineer has clear thought and far vision. I always wish I can I achieve that level, and direct software to the better level, too. There is a lot sense of achievement to deliver great softwares to people.
  3. From the 2th year, I focused on test automation in 3 years. Not only aligned with my original expectation to write code, but also I found test automation is an interesting area. Developer's code has test engineers to test it, but there is no additional resource to test test code. (It will be infinite loop if finding someone to test test code). How to achieve good test automation is a big challenge.
Fortunately, I avoid the most boring part of test - unlimited regression manual test.
And I act as a semi-developer: writing code to test code.
These reasons have kept my passion until today.

2 comments:

  1. Hi,
    尋找有關自動化測試的相關資料
    剛好看到你的blog
    覺得獲益匪淺.

    目前也從事軟體測試工作
    剛好正要導入自動化的部分
    你有好棒的觀念及概念
    很需要跟你學習

    想請問,關於自動化測試軟體使用在自己測試產品上時
    怎麼評估適不適合?

    方便詢問
    目前正在使用哪套軟體嗎?
    以及實際上真的幫助了你多少?

    ReplyDelete
  2. Hi 您好,很高興可以交流交流~

    最重要的是重複使用性: 我們想要靠自動化測試省時間,但如果在維護上花了太多時間,反而沒達到想要的品質。
    以我目前看到的討論,從介面上做都是很難維護的。
    建議可以從unit test或是API test開始,舉例來說,用Library寫一個Http request而不是直接點瀏覽器。

    至於軟體部分,要看你們產品的屬性比較好討論。
    如果你願意談細節,我們可以討論更多,
    你可以直接email給我 :)

    ReplyDelete