Apa itu Pengujian Unit?

Apa itu Pengujian Unit?

Pengujian Unit adalah jenis pengujian perangkat lunak di mana unit atau komponen individu dari suatu perangkat lunak diuji. Tujuannya adalah untuk memvalidasi bahwa setiap unit kode perangkat lunak berfungsi seperti yang diharapkan. Pengujian Unit dilakukan selama pengembangan (fase pengkodean) suatu aplikasi oleh pengembang. Pengujian Unit mengisolasi bagian kode dan memverifikasi kebenarannya. Unit dapat berupa fungsi, metode, prosedur, modul, atau objek individual.

Dalam SDLC, STLC, Model V, Pengujian unit adalah pengujian tingkat pertama yang dilakukan sebelum pengujian integrasi. Pengujian unit berwarna PutihBox teknik pengujian yang biasa dilakukan oleh pengembang. Meskipun demikian, dalam praktiknya karena keterbatasan waktu atau keengganan pengembang untuk melakukan pengujian, teknisi QA juga melakukan pengujian unit.

Apa itu Unit Testing

Penjelasan Video Pengujian Unit

Mengapa melakukan Pengujian Unit?

Pengujian Unit Hal ini penting karena pengembang perangkat lunak terkadang mencoba menghemat waktu dengan melakukan pengujian unit minimal dan ini hanya mitos karena pengujian unit yang tidak tepat menyebabkan biaya tinggi Cacat memperbaiki selama Pengujian Sistem, Tes integrasi dan bahkan Pengujian Beta setelah aplikasi dibuat. Jika pengujian unit yang tepat dilakukan pada awal pengembangan, maka pada akhirnya akan menghemat waktu dan uang.

Berikut adalah alasan utama untuk melakukan pengujian unit dalam rekayasa perangkat lunak:

Tingkat Pengujian Unit
Tingkat Pengujian Unit
  1. Pengujian unit membantu memperbaiki bug di awal siklus pengembangan dan menghemat biaya.
  2. Ini membantu pengembang untuk memahami basis kode pengujian dan memungkinkan mereka membuat perubahan dengan cepat
  3. Tes unit yang baik berfungsi sebagai dokumentasi proyek
  4. Tes unit membantu penggunaan kembali kode. Migrasikan kedua kode Anda dan tes Anda untuk proyek baru Anda. Sesuaikan kode hingga pengujian dijalankan kembali.

Cara menjalankan Pengujian Unit

Untuk menjalankan Pengujian Unit, pengembang menulis bagian kode untuk menguji fungsi tertentu dalam aplikasi perangkat lunak. Pengembang juga dapat mengisolasi fungsi ini untuk menguji lebih teliti yang mengungkapkan ketergantungan yang tidak perlu antara fungsi yang diuji dan unit lain sehingga ketergantungan dapat dihilangkan. Pengembang umumnya menggunakan Kerangka kerja UnitTest untuk mengembangkan kasus uji otomatis untuk pengujian unit.

Pengujian Unit terdiri dari dua jenis

  • panduan
  • Otomatis

Pengujian unit biasanya dilakukan secara otomatis tetapi masih dapat dilakukan secara manual. Rekayasa Perangkat Lunak tidak menyukai salah satu dari yang lain tetapi otomatisasi lebih disukai. Pendekatan manual untuk pengujian unit mungkin menggunakan dokumen instruksional langkah demi langkah.

Di bawah pendekatan otomatis-

  • Pengembang menulis bagian kode dalam aplikasi hanya untuk menguji fungsi tersebut. Mereka kemudian akan mengomentari dan akhirnya menghapus kode pengujian saat aplikasi diterapkan.
  • Pengembang juga dapat mengisolasi fungsi tersebut untuk mengujinya dengan lebih ketat. Ini adalah praktik pengujian unit yang lebih menyeluruh yang melibatkan penyalinan dan tempel kode ke lingkungan pengujiannya sendiri dibandingkan lingkungan alaminya. Mengisolasi kode membantu mengungkap ketergantungan yang tidak perlu antara kode yang diuji dan unit atau ruang data lainnya dalam produk. Ketergantungan ini kemudian dapat dihilangkan.
  • Seorang pembuat kode umumnya menggunakan Kerangka UnitTest untuk mengembangkan kasus uji otomatis. Dengan menggunakan kerangka otomatisasi, pengembang mengkodekan kriteria ke dalam pengujian untuk memverifikasi kebenaran kode. Selama eksekusi kasus uji, kerangka kerja mencatat kasus uji yang gagal. Banyak kerangka kerja juga secara otomatis menandai dan melaporkan hal ini secara ringkas kasus uji yang gagal. Bergantung pada tingkat keparahan kegagalan, kerangka kerja dapat menghentikan pengujian berikutnya.
  • Alur kerja Pengujian Unit adalah 1) Membuat Kasus Uji 2) Review/Pengerjaan Ulang 3) Baseline 4) Jalankan Kasus Uji.

Teknik Pengujian Unit

Teknik Pengujian Unit Secara garis besar, pengujian ini dikategorikan ke dalam tiga bagian, yaitu pengujian kotak hitam yang meliputi pengujian antarmuka pengguna beserta masukan dan keluaran, pengujian kotak putih yang meliputi pengujian perilaku fungsional aplikasi perangkat lunak, dan pengujian kotak abu-abu yang digunakan untuk menjalankan rangkaian pengujian, metode pengujian, kasus pengujian, serta melakukan analisis risiko.

Teknik cakupan kode yang digunakan dalam Pengujian Unit tercantum di bawah ini:

  • Cakupan Pernyataan
  • Cakupan Keputusan
  • Cakupan Cabang
  • Cakupan Kondisi
  • Cakupan Mesin Keadaan Hingga

Untuk lebih lanjut lihat https://www.guru99.com/code-coverage.html

Contoh Pengujian Unit: Objek Tiruan

Pengujian unit bergantung pada objek tiruan yang dibuat untuk menguji bagian kode yang belum menjadi bagian dari aplikasi lengkap. Objek tiruan mengisi bagian program yang hilang.

Misalnya, Anda mungkin memiliki fungsi yang memerlukan variabel atau objek yang belum dibuat. Dalam pengujian unit, hal tersebut akan diperhitungkan dalam bentuk objek tiruan yang dibuat semata-mata untuk tujuan pengujian unit yang dilakukan pada bagian kode tersebut.

Alat Pengujian Unit

Ada beberapa perangkat lunak pengujian unit otomatis yang tersedia untuk membantu pengujian unit dalam pengujian perangkat lunak. Kami akan memberikan beberapa contohnya di bawah ini:

  1. Junit:Junit adalah alat pengujian gratis yang digunakan untuk Java bahasa pemrograman. Ini memberikan pernyataan untuk mengidentifikasi metode pengujian. Alat ini menguji data terlebih dahulu kemudian disisipkan pada potongan kode.
  2. NUnit: NUnit adalah kerangka pengujian unit yang banyak digunakan untuk semua bahasa .net. Ini adalah alat sumber terbuka yang memungkinkan penulisan skrip secara manual. Ini mendukung pengujian berbasis data yang dapat berjalan secara paralel.
  3. JMockit: JMockit adalah alat pengujian Unit sumber terbuka. Ini adalah alat cakupan kode dengan metrik garis dan jalur. Ini memungkinkan tiruan API dengan sintaks perekaman dan verifikasi. Alat ini menawarkan cakupan Jalur, Cakupan Jalur, dan Cakupan Data.
  4. EMMA: EMMA adalah perangkat sumber terbuka untuk menganalisis dan melaporkan kode tertulis Java bahasa. Emma mendukung jenis cakupan seperti metode, garis, blok dasar. Dia Java-based sehingga tanpa ketergantungan perpustakaan eksternal dan dapat mengakses kode sumber.
  5. Unit PHP: PHPUnit adalah alat pengujian unit untuk programmer PHP. Dibutuhkan sebagian kecil kode yang disebut unit dan menguji masing-masing kode secara terpisah. Alat ini juga memungkinkan pengembang untuk menggunakan metode pernyataan yang telah ditentukan sebelumnya untuk menyatakan bahwa suatu sistem berperilaku dengan cara tertentu.

Itu hanyalah beberapa dari alat pengujian unit yang tersedia. Masih banyak lagi, khususnya untuk bahasa C dan Java, tetapi Anda pasti akan menemukan alat pengujian unit untuk kebutuhan pemrograman Anda, apa pun bahasa yang Anda gunakan.

Pengembangan Berbasis Uji (TDD) & Pengujian Unit

Pengujian unit di TDD melibatkan penggunaan kerangka pengujian yang ekstensif. Kerangka pengujian unit digunakan untuk membuat pengujian unit otomatis. Kerangka kerja pengujian unit tidak unik untuk TDD, namun penting untuk TDD. Di bawah ini kita melihat beberapa hal yang dibawa TDD ke dunia pengujian unit:

  • Tes ditulis sebelum kode
  • Sangat bergantung pada kerangka pengujian
  • Semua kelas dalam aplikasi diuji
  • Integrasi yang cepat dan mudah dimungkinkan

Mitos Pengujian Unit

Mitos: Itu membutuhkan waktu, dan saya selalu memiliki jadwal yang berlebihan
Kode saya sangat solid! Saya tidak memerlukan tes unit.

Mitos pada dasarnya adalah asumsi yang salah. Asumsi ini mengarah pada lingkaran setan sebagai berikut –

Mitos Pengujian UNIT

Kebenarannya adalah pengujian Unit meningkatkan kecepatan pengembangan.

Pemrogram berpikir bahwa Pengujian Integrasi akan menangkap semua kesalahan dan tidak menjalankan pengujian unit. Setelah unit diintegrasikan, kesalahan yang sangat sederhana yang dapat dengan mudah ditemukan dan diperbaiki pada unit yang diuji memerlukan waktu yang sangat lama untuk dilacak dan diperbaiki.

Keuntungan Pengujian Unit

  • Pengembang yang ingin mempelajari fungsionalitas apa yang disediakan oleh suatu unit dan cara menggunakannya dapat melihat pengujian unit untuk mendapatkan pemahaman dasar tentang API unit.
  • Pengujian unit memungkinkan programmer untuk melakukan refaktor kode di kemudian hari, dan memastikan modul masih berfungsi dengan benar (misalnya Pengujian regresi). Prosedurnya adalah dengan menulis kasus uji untuk semua fungsi dan metode sehingga setiap kali perubahan menyebabkan kesalahan, maka dapat dengan cepat diidentifikasi dan diperbaiki.
  • Karena sifat modular dari pengujian unit, kami dapat menguji bagian proyek tanpa menunggu bagian lain selesai.

Kekurangan Pengujian Unit

  • Pengujian unit tidak dapat diharapkan untuk menangkap setiap kesalahan dalam suatu program. Tidak mungkin mengevaluasi semua jalur eksekusi bahkan dalam program yang paling sepele sekalipun
  • Pengujian unit pada dasarnya berfokus pada unit kode. Oleh karena itu, ia tidak dapat menangkap kesalahan integrasi atau kesalahan tingkat sistem yang luas.

Pengujian unit disarankan untuk digunakan bersamaan dengan aktivitas pengujian lainnya.

Praktik Terbaik Pengujian Unit

  • Kasus Unit Test harus independen. Jika ada peningkatan atau perubahan persyaratan, kasus pengujian unit tidak akan terpengaruh.
  • Uji hanya satu kode dalam satu waktu.
  • Ikuti konvensi penamaan yang jelas dan konsisten untuk pengujian unit Anda
  • Jika terjadi perubahan kode di modul mana pun, pastikan ada unit yang sesuai Uji Kasus untuk modul, dan modul lulus pengujian sebelum mengubah implementasinya
  • Bug yang teridentifikasi selama pengujian unit harus diperbaiki sebelum melanjutkan ke tahap berikutnya dalam SDLC
  • Gunakan pendekatan “tes sebagai kode Anda”. Semakin banyak kode yang Anda tulis tanpa pengujian, semakin banyak jalur yang harus Anda periksa kesalahannya.

Praktik Terbaik Pengujian Unit

Kesimpulan

  • UNIT TESTING didefinisikan sebagai jenis pengujian perangkat lunak di mana unit atau komponen individu dari suatu perangkat lunak diuji.
  • Seperti yang Anda lihat, pengujian unit dapat melibatkan banyak hal. Pengujian unit dapat bersifat kompleks atau cukup sederhana, tergantung pada aplikasi yang diuji dan strategi, alat, serta filosofi pengujian yang digunakan. Pengujian unit selalu diperlukan pada tingkat tertentu. Itu adalah suatu kepastian.