Latihan 1 dari materi Mutation Testing di Testing — praktek dengan editor kode interaktif, test case otomatis, dan hint terpandu. Langsung jalan di browser.
Bikin simulasi mutation testing sederhana: function yang memutuskan apakah sebuah mutant killed atau survived.
Isi badan runMutation(original, mutant, testCases). original dan mutant adalah function dengan satu argumen, testCases adalah array input.
Untuk tiap input, bandingkan original(input) dengan mutant(input) memakai !==.
Ada minimal satu input yang hasilnya berbeda: kembalikan "killed". Semua hasilnya sama: kembalikan "survived".
Function weakTest() dan dua console.log di kode awal biarkan saja. Yang dinilai:
weakTest() harus mengembalikan "survived", karena input [20] gak membedakan age >= 18 dan age > 18.
Console mencetak survived dan killed.
Kodemu membandingkan hasilnya dengan !== (atau !=).
runMutation((n) => n * 2, (n) => n * 2, [1, 5]) harus "survived".
runMutation((n) => n + 1, (n) => n - 1, [3]) harus "killed".
Hint
Mutant terbunuh kalau ada minimal satu input yang membuat hasil original dan mutant berbeda. Kalau semua input memberi hasil yang sama, mutant-nya lolos.
Pakai testCases.some((input) => ...) yang mengecek original(input) !== mutant(input), simpan hasilnya di variabel, lalu kembalikan "killed" kalau true dan "survived" kalau false.