Automation[13] Automation Test Code Review 是在Review什麼?

Automation[13] Automation Test

  說起Code Review 實在是一項讓很多人又愛又恨的事。大家都知道要Code Review,但Code Review時到底該Review什麼?Review的準則又該是蛇麼? 每個人對Code都有自己的想法,那到底該聽誰的?

  對真實產品的Feature Code來說,我想大致上這沒啥疑問,當然大致上就是聽 Dev Leader的,雖說一般也都說開放Dev彼此之間對彼此寫的CodeCode Review,但當有爭議時我想還是得由 Dev Leader判定或者是定規則。

  那QA Team也有Code Review ? 有的,就是 Automation Test Code 也可以做Code Review,但是前一陣子跟 Team Member co-work Automation 的經驗,我發現 很多QA 不知道 Automation Test Code 應該是要 Review 什麼? 大多都以為就跟 Product Feature Code Review 一樣,在那邊強調 Code 的寫法、規範、變數名稱啥的,聽起來好像也沒錯,但Automation Test Code 的重點當然不在此,重點當然是放在 Test Case !

  喔!別誤會,我並不是說寫Automation 時程式碼的基礎架構跟規範並不重要,只是Automation Test Code 畢竟是要拿來跑測試的,它有它的重點,如果Automation Test Code Code Review之後,拿來跑測試卻常常失敗,需要人介入檢查失敗原因,或者是即使全部Test跑成功了,但實際上對產品的運作並沒有幫助,上線時發現很多基本或重要的功能不work,那哪怕你花再多時間在做所謂的 Automation Test Code ReviewCode Style 寫得多美多棒多經典,基本上這樣的 Automation Test Code 依然是Garbage

  首先,Automation Test Code 在當一個Test Team用開發出來的 Testing Framework開發的第一個 Test Case 被寫出來時,基本上整個架構就已經差不多被決定了,它不像 Future Code常常隨時間在進化改變,大重構這件事,在Automation Test Code理應是很少需要發生,應此基本上只要在這 Testing Framwork底下每個QA按照其他Test Case 範本寫出來的 Test Case Code 基本上差異不會太多,在這種狀況下,花很大的時間成本在所謂的 Code Review as Future Code ,其實沒有意義,因為對整體測試框架並沒有實質幫助,其次就是對測試品質的改善也沒有幫助,就如同我前面說的,如果寫的100個完美Test Case,但只要裡面並沒真的能找到Feature Code 的問題,那哪怕這100 Test Case Code 再優美,也沒有意義。

  Automation Test Code的重點當然是在Test,因此在整個Test Automation Framework 架構好之後,只要在該架構下生產出來的Test Case,應該要給予Code Style 最大的寫作彈性,Test Code Review 的重點應該放在:

  • Test Case 的有效性: 這個Test Case對產品Feature的測試是否有發揮作用,能不能抓出真正的問題?
  • Test Case 的覆蓋度: 整體Test Cases 是否足夠且確保了產品的主要獲大部分功能?
  • Test Case 的穩定性: Test Case 會常常出現故障嗎?這些故障是代表產品真的有問題嗎?還是Test Case關注點分離(Separation of Concerns, SoC)做的不夠所產生的假警報?

 

  所以,Automation Test Code Review 的重點不在Coding,而是 Test Case.甚至 如果在Automation Framework 下一開始就訂好 Test Case 寫作的基本準則,定義好Test Case必須滿足的執行條件(下次有空再來談談),那Test Code Review或許也可以忽略,在沒有Test Quality的準則支持之下的 Automation Test Code Review,其實一點意義都沒有。

202469日星期日

arrow
arrow
    創作者介紹
    創作者 jackterrylau 的頭像
    jackterrylau

    儒道哲學的浪漫人生

    jackterrylau 發表在 痞客邦 留言(0) 人氣()