Unit Test: Bikin Software Anti-Masalah, Anti-Nyesel, Anti-Jebol!
Tags: beginners, programming, testing
Published: 2023-04-09 16:52:17

Wah 🤩, seru nih! Kita bahas tentang unit test ya! Jadi, unit test itu sebenernya kayak ujian kecil-kecilan buat bagian-bagian kecil dari program atau aplikasi. Misalnya, kalo kita bikin puzzle, kita periksa dulu satu-satu potongan puzzle-nya buat pastiin semuanya cocok dan gabungannya jadi bener.

Nah, dengan unit test, kita juga bisa cek apakah tiap-tiap bagian dari program kita berfungsi dengan baik. Kita bisa kasih masukan atau input tertentu ke program, terus kita cek deh hasil output-nya. Kalo hasilnya sesuai dengan yang diharapkan, berarti programnya berfungsi dengan baik. Tapi kalo hasilnya gak sesuai, ya berarti ada yang salah dan kita perlu perbaiki.

## Benefit 🚀
Keuntungan buat bikin unit test ini lumayan banyak loh. Pertama, kita bisa cepet-cepet nemuin dan perbaiki kesalahan atau bug di program kita. Kedua, kualitas kode program kita jadi lebih baik dan minim kesalahan. Ketiga, produktivitas kita juga makin naik, karena gak perlu capek-capek periksa program secara manual. Keempat, bikin unit test juga memudahkan kita kalo mau tambah fitur baru atau merubah program, jadi gak takut program jadi rusak. Kelima, kita juga jadi makin yakin dan percaya diri dengan program kita, karena kita udah pastiin semuanya berfungsi dengan baik.

## My Perspective 💬
Ini dia penjelasan tentang cara bikin unit test yang bisa aku kasih, guys. Ada dua cara yang bisa kita pilih, yaitu pakai bahan baku asli dengan ukuran yang lebih kecil atau bikin yang palsu aja dengan teknik mocking.

Kalo yang pertama, kita butuh lingkungan yang sesuai untuk menjalankan unit test-nya karena kita pakai bahan baku asli yang mempengaruhi kinerja sistem secara keseluruhan. Misalnya kayak bikin kue 🍰, buat nyoba-nyoba resep baru kita bisa bikin cake yang lebih kecil dulu daripada bikin satu loyang penuh, biar ga rugi bahan dan ga perlu bikin oven yang gede.

Kalo yang kedua, kita bikin yang palsu aja dengan teknik mocking. Jadi, kita bikin implementasi yang cuma pura-pura untuk komponen yang kita ingin tes. Nah, ini cocok banget kalo kita mau tes komponen-komponen yang berhubungan sama sistem yang lebih besar atau dengan banyak interaksi. Analoginya, kayak kita mau tes kalo produk kita bisa nge-handle 1000 user sekaligus, tapi ga perlu bikin 1000 akun user yang beneran. Kita bikin aja akun-akun palsu yang cuma nge-tes kemampuan sistem kita.

## The Limit!! 🛑
Bisa dibilang seberapa bagus sebuah unit test tergantung pada diri kita sendiri. Kalau kamu orang yang tipenya kritis 🧐 dan detail, unit test yang kamu buat kemungkinan akan lebih baik dan lengkap.

Sedikit tips aja, biasanya kalau kita sendiri yang akan membuat unit test terhadap fungsi yang kita buat. Kita cenderung akan mencoba memenuhi unit test itu dengan skenario yang hanya di dalam perspektif Software Engineer. Padahal kita lupa bahwa yang menggunakan aplikasi atau sistem yang kita buat adalah orang lain, sehingga banyak kejadian di luar nalar kita yang membuat sistem. Coba deh kita cek di beberapa e-commerce terkenal di Indonesia, gak jarang kan yang jual temannya sendiri? 😅

## Fun Fact 🤪
Nah, kalian yang suka pakai Windows pasti gak asing lagi nih sama tampilan layar biru yang tiba-tiba muncul kayak gini ya.

![https://upload.wikimedia.org/wikipedia/commons/5/56/Bsodwindows10.png](https://upload.wikimedia.org/wikipedia/commons/5/56/Bsodwindows10.png)

Bisa jadi sih hal kayak gini terjadi karena mungkin Software Engineer yang ngerjain software yang kalian pakai enggak buat unit test. Atau mungkin juga karena ada bug di dalamnya. Tapi kalian tau gak, ada satu peristiwa yang bisa membuat software yang kita pake jadi aneh-aneh gitu. Namanya Cosmic Ray Bit Flip, kalian bisa cek lebih detailnya di video ini (**[Cosmic Ray Bit Flip](https://www.youtube.com/watch?v=AaZ_RSt0KP8)**). Serem juga ya kalau dipikir-pikir 😱.

### Special Thanks 👏
Cover Image by [Oyemike Princewill](https://unsplash.com/@supaslim?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText) on [Unsplash](https://unsplash.com/photos/Ns0gH5EeYs4?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText)