iT邦幫忙

2023 iThome 鐵人賽

DAY 17
0
Kotlin

Kotlin魔法:Spring Boot 3的fp奇幻冒險系列 第 17

[城鎮] 看我的百變怪 - Mutation Test

  • 分享至 

  • xImage
  •  

前情提要

昨天我們又講了關於測試的一些內容,今天我們要再講關於測試的內容,Mutation test

Mutaion test是什麼?

它是用來評估測試的品質。它透過對程式的原始碼故意引入小錯誤或變異(mutations),然後執行測試來檢測這些變異,進而確定測試是否能夠檢測到這些錯誤。

甚麼意思呢? 以一個function a+b來說,如果我們的測試a+b會通過測試,那麼function變成a-b應該要fail才對,如果a-b還是讓我們的測試過了,代表我們的測試寫得不夠好XD 沒有抓到這個變異。

步驟

它的步驟包括:

變異生成

通過對原始碼進行變異操作,例如修改運算符(+,-,等)、刪除程式碼等,創建多個版本的程式,每個版本都有一個小錯誤(變異)。

測試運行

對每個變異版本運行相同的測試,以檢查測試是否能夠捕捉到這些變異。

結果分析

分析測試結果,確定哪些變異被檢測到了(殺死了),哪些未被檢測到(存活了)。

總結

Mutation test的目標是檢測測試的品質,因為如果測試能夠有效檢測到變異,那麼它很可能也能夠檢測到真正的軟體缺陷。如果我們的測試未能檢測到變異,那麼代表我們的測試覆蓋率不足或測試案例不夠強大。

講這麼多,那麼它有缺點嗎?
缺點就是可能需要較大的計算資源和時間,因為需要對每個變異版本執行測試。


上一篇
[小城鎮] 測試 大補帖
下一篇
[城鎮] It is rule - Contract Test
系列文
Kotlin魔法:Spring Boot 3的fp奇幻冒險30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言