Monday, July 6, 2020

Tutorial Pengujian Unit: Apa itu, Jenis, Alat, Contoh

Tutorial Pengujian Unit: Apa itu, Jenis, Alat, Contoh

Apa itu Unit Testing?

UNIT TESTING adalah jenis pengujian perangkat lunak di mana masing-masing unit atau komponen suatu perangkat lunak diuji. Tujuannya adalah untuk memvalidasi bahwa setiap unit kode perangkat lunak melakukan seperti yang diharapkan. Unit Testing dilakukan selama pengembangan (fase pengkodean) aplikasi oleh pengembang. Unit testing mengisolasi bagian kode dan memverifikasi kebenarannya. Unit dapat berupa fungsi, metode, prosedur, modul, atau objek individual.
Dalam SDLC, STLC, V Model, pengujian unit adalah pengujian tingkat pertama yang dilakukan sebelum pengujian integrasi. Unit testing adalah teknik pengujian WhiteBox yang biasanya dilakukan oleh pengembang. Padahal, dalam dunia yang praktis karena krisis waktu atau keengganan pengembang untuk menguji, insinyur QA juga melakukan pengujian unit.

Mengapa Unit Testing?

Terkadang pengembang perangkat lunak berupaya menghemat waktu dengan melakukan pengujian unit minimal. Ini adalah mitos karena melewatkan pengujian unit mengarah ke biaya perbaikan cacat yang lebih tinggi selama pengujian sistem, pengujian Integrasi dan bahkan Pengujian Beta setelah aplikasi selesai. Pengujian unit yang tepat dilakukan pada tahap pengembangan menghemat waktu dan uang pada akhirnya. Di sini, adalah alasan utama untuk melakukan pengujian unit.
Pengujian Unit
Tingkat Pengujian Unit
  1. Tes unit membantu untuk memperbaiki bug di awal siklus pengembangan dan menghemat biaya.
  2. Ini membantu pengembang untuk memahami basis kode dan memungkinkan mereka untuk membuat perubahan dengan cepat
  3. Tes unit yang baik berfungsi sebagai dokumentasi proyek
  4. Tes unit membantu penggunaan kembali kode. Migrasikan kode Anda  dan tes Anda ke proyek baru Anda. Tweak kode hingga tes berjalan lagi.

Cara melakukan Pengujian Unit

Unit Testing terdiri dari dua jenis
  • Manual
  • Otomatis
Pengujian unit umumnya otomatis tetapi masih dapat dilakukan secara manual. Rekayasa Perangkat Lunak tidak mendukung satu sama lain tetapi otomatisasi lebih disukai. Pendekatan manual untuk pengujian unit dapat menggunakan dokumen petunjuk langkah demi langkah.
Di bawah pendekatan otomatis-
  • Pengembang menulis bagian kode dalam aplikasi hanya untuk menguji fungsinya. Mereka nantinya akan berkomentar dan akhirnya menghapus kode tes ketika aplikasi siap digunakan.
  • Pengembang juga dapat mengisolasi fungsi untuk mengujinya dengan lebih ketat. Ini adalah praktik pengujian unit yang lebih menyeluruh yang melibatkan salin dan tempel kode ke lingkungan pengujiannya sendiri daripada lingkungan alaminya. Mengisolasi kode membantu mengungkapkan ketergantungan yang tidak perlu antara kode yang sedang diuji dan unit atau ruang data lain dalam produk. Ketergantungan ini kemudian dapat dihilangkan.
  • Seorang coder umumnya menggunakan Kerangka UnitTest untuk mengembangkan kasus uji otomatis. Menggunakan kerangka kerja otomatisasi, pengembang kode membuat kriteria ke dalam tes untuk memverifikasi kebenaran kode. Selama pelaksanaan kasus uji, kerangka kerja mencatat kasus uji. Banyak kerangka kerja juga akan secara otomatis menandai dan melaporkan, secara ringkas, kasus pengujian yang gagal ini. Tergantung pada tingkat keparahan kegagalan, kerangka kerja dapat menghentikan pengujian selanjutnya.
  • Alur kerja Unit Testing adalah 1) Buat Kasus Uji 2) Review / Pengerjaan Ulang 3) Baseline 4) Jalankan Uji Kasus.

Teknik Pengujian Unit

Teknik cakupan kode yang digunakan dalam pengujian terpadu tercantum di bawah ini:
  • Cakupan Pernyataan
  • Cakupan Keputusan
  • Cakupan Cabang
  • Cakupan Kondisi
  • Cakupan Mesin Finite State

Contoh Pengujian Unit: Objek Mock

Pengujian unit bergantung pada objek tiruan yang dibuat untuk menguji bagian kode yang belum menjadi bagian dari aplikasi lengkap. Benda-benda tiruan mengisi bagian-bagian yang hilang dari program.
Misalnya, Anda mungkin memiliki fungsi yang memerlukan variabel atau objek yang belum dibuat. Dalam pengujian unit, itu akan diperhitungkan dalam bentuk objek tiruan yang dibuat semata-mata untuk tujuan pengujian unit yang dilakukan pada bagian kode tersebut.

Alat Uji Unit

Ada beberapa alat otomatis yang tersedia untuk membantu pengujian unit. Kami akan memberikan beberapa contoh di bawah ini:
  1. Junit : Junit adalah alat pengujian gratis yang digunakan untuk bahasa pemrograman Java. Ini memberikan pernyataan untuk mengidentifikasi metode pengujian. Alat ini menguji data terlebih dahulu dan kemudian disisipkan dalam potongan kode.
  2. NUnit : NUnit banyak digunakan kerangka kerja unit-testing digunakan untuk semua bahasa .net. Ini adalah alat open source yang memungkinkan penulisan skrip secara manual. Ini mendukung tes berbasis data yang dapat berjalan secara paralel.
  3. JMockit : JMockit adalah alat pengujian Unit open source. Ini adalah alat cakupan kode dengan metrik garis dan jalur. Ini memungkinkan mengejek API dengan sintaks perekaman dan verifikasi. Alat ini menawarkan Cakupan garis, Cakupan Jalur, dan Cakupan Data.
  4. EMMA : EMMA adalah toolkit open-source untuk menganalisis dan melaporkan kode yang ditulis dalam bahasa Jawa. Emma mendukung jenis cakupan seperti metode, garis, blok dasar. Ini berbasis Java sehingga tanpa dependensi pustaka eksternal dan dapat mengakses kode sumber.
  5. PHPUnit : PHPUnit adalah alat pengujian unit untuk programmer PHP. Dibutuhkan bagian kecil dari kode yang disebut unit dan menguji masing-masing secara terpisah. Alat ini juga memungkinkan pengembang untuk menggunakan metode penegasan yang telah ditentukan sebelumnya untuk menyatakan bahwa suatu sistem berperilaku dengan cara tertentu. 
Itu hanya beberapa alat pengujian unit yang tersedia. Ada banyak lagi, terutama untuk bahasa C dan Java, tetapi Anda yakin untuk menemukan alat pengujian unit untuk kebutuhan pemrograman Anda terlepas dari bahasa yang Anda gunakan.

Test Driven Development (TDD) & Unit Testing

Pengujian unit dalam TDD melibatkan penggunaan kerangka pengujian yang luas. Kerangka uji unit digunakan untuk membuat tes unit otomatis. Kerangka kerja pengujian unit tidak unik untuk TDD, tetapi mereka penting untuk itu. Di bawah ini kita melihat beberapa hal yang dibawa TDD ke dunia pengujian unit:
  • Tes ditulis sebelum kode
  • 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 dijadwal ulang.
Kode saya solid! Saya tidak perlu tes unit.
Mitos pada dasarnya adalah asumsi yang salah. Asumsi-asumsi ini menyebabkan siklus setan sebagai berikut –
UNIT Testing Tutorial - Belajar dalam 10 Menit
Kebenarannya adalah pengujian Unit meningkatkan kecepatan pengembangan.
Pemrogram berpikir bahwa Pengujian Integrasi akan menangkap semua kesalahan dan tidak menjalankan pengujian unit. Setelah unit terintegrasi, kesalahan yang sangat sederhana yang dapat dengan mudah ditemukan dan diperbaiki dalam unit yang diuji membutuhkan waktu yang sangat lama untuk dilacak dan diperbaiki.

Keuntungan Pengujian Unit

  • Pengembang yang ingin mempelajari fungsionalitas apa yang disediakan oleh unit dan bagaimana menggunakannya dapat melihat tes unit untuk mendapatkan pemahaman dasar tentang API unit.
  • Unit testing memungkinkan programmer untuk memperbaiki kode di kemudian hari, dan memastikan modul masih bekerja dengan benar (yaitu pengujian Regresi). Prosedurnya adalah menulis kasus uji untuk semua fungsi dan metode sehingga setiap kali perubahan menyebabkan kesalahan, ia dapat dengan cepat diidentifikasi dan diperbaiki.
  • Karena sifat modular dari pengujian unit, kami dapat menguji bagian-bagian proyek tanpa menunggu yang lain diselesaikan.

Kerugian Pengujian Unit

  • Pengujian unit tidak dapat diharapkan untuk menangkap setiap kesalahan dalam suatu program. Tidak mungkin untuk mengevaluasi semua jalur eksekusi bahkan dalam program yang paling sepele
  • Pengujian unit pada dasarnya berfokus pada unit kode. Oleh karena itu tidak dapat menangkap kesalahan integrasi atau kesalahan tingkat sistem yang luas.
Dianjurkan pengujian unit digunakan bersamaan dengan aktivitas pengujian lainnya.

Unit Menguji Praktik Terbaik

  • Kasus Unit Test harus independen. Dalam hal ada peningkatan atau perubahan dalam persyaratan, kasus uji unit tidak boleh terpengaruh.
  • Uji hanya satu kode pada satu waktu.
  • Ikuti konvensi penamaan yang jelas dan konsisten untuk pengujian unit Anda
  • Dalam hal terjadi perubahan kode dalam modul apa pun, pastikan ada Unit Uji Kasus yang sesuai untuk modul tersebut, dan modul tersebut lulus tes sebelum mengubah implementasi
  • Bug yang diidentifikasi selama pengujian unit harus diperbaiki sebelum melanjutkan ke fase berikutnya dalam SDLC
  • Gunakan pendekatan “test as your code”. Semakin banyak kode yang Anda tulis tanpa pengujian, semakin banyak jalur yang harus Anda periksa untuk kesalahan.
UNIT Testing Tutorial - Belajar dalam 10 Menit
Ringkasan
  • PENGUJIAN UNIT didefinisikan sebagai jenis pengujian perangkat lunak di mana masing-masing unit atau komponen perangkat lunak diuji.
  • Seperti yang Anda lihat, mungkin ada banyak yang terlibat dalam pengujian unit. Ini bisa rumit atau agak sederhana tergantung pada aplikasi yang sedang diuji dan strategi pengujian, alat dan filosofi yang digunakan. Pengujian unit selalu diperlukan pada tingkat tertentu. Itu suatu kepastian.

No comments:

Post a Comment