Apa itu Ujian Unit?
UJIAN UNIT adalah sejenis pengujian perisian di mana setiap unit atau komponen perisian diuji. Tujuannya adalah untuk mengesahkan bahawa setiap unit kod perisian berfungsi seperti yang diharapkan. Pengujian Unit dilakukan semasa pengembangan (fasa pengekodan) aplikasi oleh pemaju. Ujian Unit mengasingkan bahagian kod dan mengesahkan kebenarannya. Satu unit mungkin merupakan fungsi, metode, prosedur, modul, atau objek individu.
Dalam SDLC, STLC, Model V, Pengujian unit adalah tahap pertama pengujian yang dilakukan sebelum ujian integrasi. Pengujian unit adalah teknik pengujian WhiteBox yang biasanya dilakukan oleh pembangun. Walaupun, dalam dunia praktikal kerana masalah waktu atau keengganan pembangun untuk melakukan ujian, jurutera QA juga melakukan pengujian unit.
Dalam tutorial ini, anda akan belajar-
- Mengapa Ujian Unit?
- Cara melakukan Ujian Unit
- Teknik Ujian Unit
- Alat Ujian Unit
- Pengembangan Bergerak Uji (TDD) & Ujian Unit
- Mitos Ujian Unit
- Kelebihan Ujian Unit
- Kekurangan Ujian Unit
- Amalan Terbaik Pengujian Unit
Mengapa Ujian Unit?
Uji Unit adalah penting kerana pembangun perisian kadang-kadang cuba menjimatkan masa dengan melakukan pengujian unit yang minimum dan ini adalah mitos kerana pengujian unit yang tidak sesuai menyebabkan pembaikan Kerosakan kos tinggi semasa Pengujian Sistem, Pengujian Integrasi dan juga Pengujian Beta setelah aplikasi dibina. Sekiranya pengujian unit yang tepat dilakukan dalam pengembangan awal, maka ia akan menjimatkan masa dan wang pada akhirnya.
Berikut adalah sebab utama untuk melakukan pengujian unit dalam kejuruteraan perisian:

- Ujian unit membantu memperbaiki bug pada awal kitaran pengembangan dan menjimatkan kos.
- Ini membantu pemaju untuk memahami asas kod ujian dan membolehkan mereka membuat perubahan dengan cepat
- Ujian unit yang baik berfungsi sebagai dokumentasi projek
- Ujian unit membantu penggunaan semula kod. Pindahkan kod dan ujian anda ke projek baru anda. Tweak kod sehingga ujian dijalankan lagi.
Cara melakukan Ujian Unit
Untuk melakukan Ujian Unit , pembangun menulis bahagian kod untuk menguji fungsi tertentu dalam aplikasi perisian. Pembangun juga dapat mengasingkan fungsi ini untuk menguji dengan lebih ketat yang mendedahkan kebergantungan yang tidak perlu antara fungsi yang diuji dan unit lain sehingga kebergantungan dapat dihilangkan. Pembangun secara amnya menggunakan rangka UnitTest untuk mengembangkan kes ujian automatik untuk pengujian unit.
Ujian Unit adalah dua jenis
- Manual
- Automatik
Pengujian unit biasanya automatik tetapi masih boleh dilakukan secara manual. Kejuruteraan Perisian tidak memihak kepada yang lain tetapi automasi lebih disukai. Pendekatan manual untuk pengujian unit boleh menggunakan dokumen instruksi langkah demi langkah.
Di bawah pendekatan automatik-
- Pembangun menulis bahagian kod dalam aplikasi hanya untuk menguji fungsinya. Mereka kemudian akan memberi komen dan akhirnya menghapus kod ujian ketika aplikasi disebarkan.
- Pembangun juga dapat mengasingkan fungsi untuk mengujinya dengan lebih teliti. Ini adalah amalan pengujian unit yang lebih teliti yang melibatkan salinan dan tampal kod ke persekitaran pengujiannya sendiri daripada persekitaran semula jadi. Mengasingkan kod membantu dalam mendedahkan pergantungan yang tidak perlu antara kod yang diuji dan unit atau ruang data lain dalam produk. Pergantungan ini kemudian dapat dihapuskan.
- Pengekod secara amnya menggunakan Kerangka UnitTest untuk mengembangkan kes ujian automatik. Dengan menggunakan kerangka automasi, pengembang membuat kriteria ke dalam ujian untuk mengesahkan kebenaran kod tersebut. Semasa pelaksanaan kes ujian, kerangka log gagal kes ujian. Banyak kerangka kerja juga akan menandakan dan melaporkan secara automatik, kesimpulannya, kes ujian yang gagal ini. Bergantung pada keparahan kegagalan, kerangka kerja dapat menghentikan ujian berikutnya.
- Aliran kerja Ujian Unit adalah 1) Membuat Kes Ujian 2) Mengkaji / Menyusun Semula 3) Asas 4) Menjalankan Kes Ujian.
Teknik Ujian Unit
The Teknik Unit Testing kebanyakannya dikategorikan kepada tiga bahagian iaitu ujian kotak hitam yang melibatkan ujian antara muka pengguna bersama-sama dengan input dan output, White ujian kotak yang melibatkan ujian fungsi sifat aplikasi perisian dan Kelabu ujian kotak yang digunakan untuk melaksanakan ujian suite, kaedah ujian, kes ujian dan melakukan analisis risiko.
Teknik liputan kod yang digunakan dalam Ujian Unit disenaraikan di bawah:
- Liputan Penyataan
- Liputan Keputusan
- Perlindungan Cawangan
- Perlindungan Keadaan
- Liputan Mesin Negeri Terhingga
Untuk lebih lanjut, rujuk https://www.guru99.com/code-coverage.html
Contoh Ujian Unit: Objek Mengejek
Pengujian unit bergantung pada objek tiruan yang dibuat untuk menguji bahagian kod yang belum menjadi sebahagian daripada aplikasi lengkap. Objek mengejek mengisi bahagian program yang tidak ada.
Contohnya, anda mungkin mempunyai fungsi yang memerlukan pemboleh ubah atau objek yang belum dibuat. Dalam pengujian unit, mereka akan diperhitungkan dalam bentuk objek tiruan yang dibuat semata-mata untuk tujuan pengujian unit dilakukan pada bahagian kod tersebut.
Alat Ujian Unit
Terdapat beberapa perisian ujian unit automatik yang tersedia untuk membantu pengujian unit. Kami akan memberikan beberapa contoh di bawah:
- Junit: Junit adalah alat pengujian yang bebas digunakan untuk bahasa pengaturcaraan Java. Ia memberikan penegasan untuk mengenal pasti kaedah ujian. Alat ini menguji data terlebih dahulu dan kemudian dimasukkan ke dalam kod.
- NUnit: NUnit digunakan penggunaan rangka kerja pengujian unit untuk semua bahasa .net. Ini adalah alat sumber terbuka yang membolehkan menulis skrip secara manual. Ia menyokong ujian berdasarkan data yang boleh dijalankan secara selari.
- JMockit: JMockit adalah alat ujian Unit sumber terbuka. Ini adalah alat liputan kod dengan metrik garis dan jalur. Ia membolehkan mengejek API dengan sintaks rakaman dan pengesahan. Alat ini menawarkan liputan Line, Liputan Jalur, dan Liputan Data.
- EMMA: EMMA adalah toolkit sumber terbuka untuk menganalisis dan melaporkan kod yang ditulis dalam bahasa Java. Jenis liputan sokongan Emma seperti kaedah, garis, blok asas. Ini berbasis Java sehingga tanpa pergantungan perpustakaan luaran dan dapat mengakses kod sumber.
- PHPUnit: PHPUnit adalah alat pengujian unit untuk pengaturcara PHP. Ia mengambil bahagian kecil kod yang disebut unit dan menguji masing-masing secara berasingan. Alat ini juga membolehkan pembangun menggunakan kaedah penegasan pra-definisi untuk menegaskan bahawa sistem berkelakuan dengan cara tertentu.
Itu hanya beberapa alat ujian unit yang ada. Ada banyak lagi, terutama untuk bahasa C dan Java, tetapi anda pasti akan menemui alat pengujian unit untuk keperluan pengaturcaraan anda tanpa mengira bahasa yang anda gunakan.
Pengembangan Bergerak Uji (TDD) & Ujian Unit
Pengujian unit di TDD melibatkan penggunaan kerangka kerja pengujian yang meluas. Kerangka ujian unit digunakan untuk membuat ujian unit automatik. Kerangka pengujian unit tidak unik untuk TDD, tetapi sangat penting untuknya. Di bawah ini kita melihat beberapa perkara yang dibawa oleh TDD ke dunia pengujian unit:
- Ujian ditulis sebelum kod
- Sangat bergantung pada kerangka ujian
- Semua kelas dalam aplikasi diuji
- Penyatuan yang cepat dan mudah dimungkinkan
Mitos Ujian Unit
Mitos: Ia memerlukan masa, dan saya selalu berjadual Kod saya sangat kukuh! Saya tidak memerlukan ujian unit.
Mitos pada hakikatnya adalah andaian yang salah. Andaian ini membawa kepada kitaran ganas seperti berikut -
Kebenaran adalah Ujian unit meningkatkan kelajuan pembangunan.
Pengaturcara berpendapat bahawa Ujian Integrasi akan menangkap semua kesalahan dan tidak menjalankan ujian unit. Setelah unit disatukan, kesilapan yang sangat mudah dan mudah didapati dan diperbaiki dalam unit yang diuji memerlukan masa yang sangat lama untuk dikesan dan diperbaiki.
Kelebihan Ujian Unit
- Pembangun yang ingin mengetahui fungsi apa yang disediakan oleh unit dan bagaimana menggunakannya dapat melihat ujian unit untuk mendapatkan pemahaman asas mengenai API unit.
- Pengujian unit membolehkan pengaturcara merefaktorkan kod di kemudian hari, dan memastikan modul masih berfungsi dengan betul (iaitu ujian Regresi). Prosedurnya adalah menulis kes ujian untuk semua fungsi dan kaedah sehingga setiap kali perubahan menyebabkan kesalahan, itu dapat dengan cepat dikenal pasti dan diperbaiki.
- Oleh kerana sifat modular pengujian unit, kami dapat menguji bahagian projek tanpa menunggu yang lain disiapkan.
Kekurangan Ujian Unit
- Pengujian unit tidak diharapkan dapat menangkap setiap kesalahan dalam program. Tidak mustahil untuk menilai semua jalan pelaksanaan walaupun dalam program yang paling remeh
- Pengujian unit secara semula jadi tertumpu pada unit kod. Oleh itu, ia tidak dapat menangkap kesalahan integrasi atau kesalahan tahap sistem yang luas.
Sebaiknya ujian unit digunakan bersama dengan aktiviti pengujian lain.
Amalan Terbaik Pengujian Unit
- Kes Ujian Unit harus bebas. Sekiranya terdapat peningkatan atau perubahan keperluan, kes ujian unit tidak boleh terpengaruh.
- Uji hanya satu kod pada satu masa.
- Ikuti konvensyen penamaan yang jelas dan konsisten untuk ujian unit anda
- Sekiranya terdapat perubahan kod dalam modul mana pun, pastikan ada unit Uji Kes yang sesuai untuk modul, dan modul lulus ujian sebelum mengubah pelaksanaan
- Bug yang dikenal pasti semasa ujian unit mesti diperbaiki sebelum meneruskan ke fasa seterusnya di SDLC
- Terapkan pendekatan "test as your code". Semakin banyak kod yang anda tulis tanpa ujian, semakin banyak jalan yang perlu anda periksa untuk kesilapan.

Ringkasan
- UJIAN UNIT ditakrifkan sebagai jenis pengujian perisian di mana setiap unit atau komponen perisian diuji.
- Seperti yang anda lihat, banyak yang terlibat dalam pengujian unit. Ini boleh menjadi rumit atau agak sederhana bergantung pada aplikasi yang sedang diuji dan strategi pengujian, alat dan falsafah yang digunakan. Ujian unit selalu diperlukan pada tahap tertentu. Itu adalah kepastian.