QA 該具備什麼要的能力? (1)

每次在面試QA時, 很多人都不知道QA是什麼, 它需要什麼樣的能力. 所以每次我都要很多時間來一一解釋.

其實這也不能怪面試者, 軟體測試本來在台灣就不是顯學, 學校根本就不會教, 並且說不定連軟體工程的課都沒有開, 所以大家都不會.

其實這另一方面也顯示了台灣軟體界落後, 大多人只知道軟體開發裡, 只有寫程式和專案經理兩種角色, 事實上台灣業界大多也只有這兩種.

讓我們回歸正題, 首先, 對於QA所要具備的能力, 我第一要提當然是軟體測試.

很多人覺得測試很簡單, 人人可以做好軟體測試. 是這樣嗎? 撇開複雜的測試理論不說, 讓我們來看看一個簡單的範例, 看看是否測試向你說的這麼簡單.

有一個程式, 會讀入三個變數, 這三個變數是代表三角形的三個邊的長度. 然後這程式會決定這個三角形是正三角形, 等腰三角形, 普通的三角形, 或是不是三角形.

若是有人寫出這樣的程式, 你要準備哪些資料來確保這個程式能夠運作正確?

一開始有些面試者根本不懂甚麼是測試, 所以把受測程式的內容用C 或是其他語言寫出來給我

若是我看到這裡, 我就十分肯定他完全不懂測試.

接下來有些面試者, 他會回答: 寫個程式自動產生測試資料, 輸入所有input的組合, 去測試這個程式.

那我會知道這個面試者認為test automation是無所不能的, 可以cover任何測試.

我會問他, 若是這個input的type是integer(32bits長), 那2147483647 X 2147483647 X 2147483647會有多少組合, 要跑多久你的測試程式才會結束.

並且你沒有產生expected result, 那測試程式跑完後, 你還要一個個檢查actual result是否正確, 你覺得你這樣做可行嗎? ROI高嗎?

比較好一點的面試者, 便會回答我, 他會將input分成不同狀況, 每個狀況找些代表性的value來做測試. 因此他會列出
  (3,3,3) 正三角形
  (3,3,4) 等腰三角形
  (4,5,6) 普通的三角形
  (2,1,4) 不是三角形

我接著會問這樣就夠了嗎?

更厲害的會回答  
  (-1, -1, 4)
  (0,4,3)
  (0,0,0)
開始處理一些錯誤的狀況, 包括負數, 0, 等等 

到這裡我會問他還有嗎? 是否這樣就可以了, 大部分的到此就停住了. 那我會問他以下狀況是否需要考慮
  ('a', 60, 62)
  
所以大部分的面者聽到這裡,就會知道軟體測試是遠遠比他所想的複雜. 因為這裡不但有複雜的測試理論, 還需要有創造力, 否則你不會想到有這些test data要加入.

此外, 除了上述的functional testing外, 還有performance testing, stressing, security testing等等, 這些都是有他的學問在的.

所以要當一個好的QA, 他必須要花時間去研讀軟體測試相關知識, 而不是很單純認為測試很簡單, 任何人都可以來做的, 不需要有測試的knowledge.

arrow
arrow
    全站熱搜

    kojenchieh 發表在 痞客邦 留言(4) 人氣()