測試的種類

IT界最痛苦的事情,莫過於一大堆的專有名詞,有些定義模糊不清,有些人云亦云對與錯也不曉得,有些則是舊瓶新裝,不同的名詞但卻是一樣的東西,真是搞得人一頭霧水,今天就要來用圖說明一下,我對單元測試、整合測試與E2E測試的認知。
  1. 單元測試,如同名字一般,指的是最小單元的測試,通常在實務上指的就是對單一class的測試,但實務上卻不是這麼美好的,有時過度肥大的class中還會包含其他class,所以為了解決這個問題,也衍生出了mock的觀念。
  2. 整合測試,指的是測試多個class,互動後產生的結果是否正確,假設有A、B、C三個class,就可以分成AB、AC、BC、ABC,不同的整合度測試,但實務上不太可能分成這麼多組合,目前都是策略性的測試最大整合,如此例就是測ABC
  3. E2E測試,剛開始看到這詞的時候應該是google的文章,感覺是為了新時代的潮流而將UI測試定義為更明確的端到端(E2E)測試,指的就是client端到Server端的測試。
而下圖就可以很清楚的看出E2E在最外層,也是擋住bug的最後一層防線,也許有人會問,E2E都包住所有的bug那我是不是測E2E就好?我只能說這要看情況,因為通常E2E測試都不快,所以也會影響bug被發現的時間,再者E2E也只能告訴你有錯,真正的錯誤點還是要去追code會有更明確的答案,簡單來說每一種測試有自己的優點與缺點,了解工具與靈活運用,才是解決問題的正確心態。



留言