PPT_AlwinEfraimTahu_51220062.pptxjjjjjjjj

noymanikin14 0 views 17 slides Oct 22, 2025
Slide 1
Slide 1 of 17
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17

About This Presentation

rrrrrrnn


Slide Content

Konsep dan implementasi unit testing dalam rekayasa perangkat lunak Nama : Alwin Efraim Tahu Npm : 51220062

Latar Belakang Pengujian perangkat lunak merupakan tahap penting untuk memastikan kualitas dan keandalan sistem . Namun , dalam praktiknya sering muncul berbagai masalah seperti keterbatasan waktu , sumber daya , dan keahlian penguji . Selain itu , spesifikasi kebutuhan yang tidak jelas serta kompleksitas sistem modern membuat proses pengujian menjadi sulit dan tidak optimal. Oleh karena itu , memahami masalah umum dalam pengujian perangkat lunak sangat penting agar kualitas aplikasi dapat ditingkatkan secara efektif

Masalah Umum yang Sering Terjadi Keterbatasan waktu dan sumber daya : pengujian sering dilakukan terburu-buru . Kurangnya tenaga ahli penguji : menyebabkan banyak bug tidak terdeteksi . Spesifikasi kebutuhan tidak jelas : menimbulkan perbedaan interpretasi antara pengembang dan penguji . Kompleksitas sistem yang tinggi : sulitnya menguji integrasi antar komponen . Pemilihan skenario uji yang kurang tepat : hasil pengujian menjadi tidak optimal.

Konsep Unit Testing Unit Testing adalah proses pengujian yang dilakukan pada bagian terkecil dari kode program (unit), seperti fungsi , modul , atau kelas , untuk memastikan bahwa setiap bagian bekerja dengan benar dan sesuai dengan yang diharapkan.Tujuannya adalah menemukan kesalahan sedini mungkin sebelum sistem digabungkan secara keseluruhan . Tujuan Unit Testing : Memastikan setiap unit kode berfungsi dengan benar . Mendeteksi bug sejak tahap awal pengembangan . Memudahkan proses perbaikan dan pemeliharaan kode. Mendukung pengujian berulang (regression testing. Meningkatkan keandalan dan kualitas perangkat lunak secara keseluruhan .

Konsep Modularitas Modularitas adalah prinsip dalam pengembangan perangkat lunak yang membagi program menjadi bagian-bagian kecil ( modul ) yang memiliki fungsi spesifik dan dapat bekerja secara independen . Tujuan : Memudahkan pengelolaan dan pengembangan system. Meningkatkan keterbacaan serta pemeliharaan kode. Memungkinkan pengujian dilakukan secara terpisah per modul .

Hubungan Modularitas dengan Unit Testing Unit Testing dilakukan pada setiap modul secara terpisah , sehingga modularitas mempermudah proses pengujian . Sistem yang modular memungkinkan deteksi kesalahan lebih cepat pada bagian tertentu. Dengan modularitas , perubahan pada satu modul tidak memengaruhi modul lain, sehingga pengujian menjadi lebih efisien . Modularitas dan Unit Testing bersama-sama membantu menjaga stabilitas dan kualitas perangkat lunak.

Framework Unit Testing Populer Junit (Java) JUnit adalah framework pengujian unit yang digunakan dalam bahasa pemrograman Java untuk menguji potongan kode secara otomatis . Framework ini membantu pengembang memastikan setiap fungsi atau metode berjalan sesuai harapan . Fitur Utama JUnit : Mendukung pengujian otomatis tanpa perlu menjalankan program secara manual. Dapat melakukan pengujian berulang (regression test) dengan mudah . Memiliki struktur test case yang terorganisir . Kelebihan : Mempercepat proses pengujian dan debugging. Mudah digunakan dan didukung komunitas besar . Cocok untuk pengembangan berbasis Test-Driven Development (TDD ).

Pytest ( Phyton ) Pytest ( Phyton ) adalah framework pengujian unit otomatis untuk bahasa Python yang digunakan untuk menguji fungsi , kelas , maupun modul secara efisien . Pytest terkenal karena sederhana , fleksibel , dan mudah digunakan baik untuk proyek kecil maupun besar . Fitur Utama Pytest : Menjalankan unit test secara otomatis hanya dengan nama fungsi yang diawali test_. Mendukung fixture untuk menyiapkan data uji secara dinamis . Menampilkan laporan hasil uji yang informatif dan mudah dibaca . Kelebihan : Penulisan kode uji yang singkat dan mudah dibaca . Kompatibel dengan framework lain seperti unittest . Sangat cocok untuk pengujian otomatis dalam CI/CD.

Unittest (Python ) Unittest adalah framework bawaan Python untuk melakukan pengujian unit. Framework ini digunakan untuk memastikan bahwa setiap fungsi , metode , atau kelas bekerja sesuai dengan yang diharapkan . Fitur Utama Unittest : Mengorganisir pengujian dalam bentuk kelas dan metode. Mendukung setup dan teardown otomatis dengan setup( ), dan terDown ( ). Menampilkan hasil uji dalam format pass / fail / error. Kelebihan : Tidak perlu instalasi eksternal ( sudah tersedia di Python ). Cocok untuk pengujian skala kecil hingga menengah . Dapat dikombinasikan dengan framework lain seperti Pytest untuk hasil lebih fleksibel .

Contoh Implemntasi ( Potongan kode pengujian sederhana ) Contoh Unit Testing dengan JUnit (Java ) // File: Calculator.java public class Calculator { public int add( int a, int b) { return a + b; } } // File: CalculatorTest.java import org.junit.jupiter.api.Test ; import static org.junit.jupiter.api.Assertions .*; public class CalculatorTest { @Test void testAdd () { Calculator calc = new Calculator(); int result = calc.add (2, 3); assertEquals (5, result, " Penjumlahan harus menghasilkan 5"); } }

Contoh Unit Testing dengan Pytest (Python ) # File: calculator.py def add(a, b ): return a + b # File: test_calculator.py from calculator import add def test_add (): assert add(2, 3) == 5

Contoh Unit Testing dengan Unittest (Python ) # File: calculator.py def add(a, b): return a + b # File: test_calculator.py import unittest from calculator import add class TestCalculator ( unittest.TestCase ): def test_add (self): self.assertEqual (add(2, 3), 5) if __name__ == '__main__': unittest.main ()

Analisis dan Manfaat Kelebihan Framework Unit Testing: Otomatisasi Pengujian : menghemat waktu dan tenaga . Deteksi Bug Dini : kesalahan dapat ditemukan sejak tahap awal pengembangan . Mendukung Regression Test : memudahkan pengujian ulang setelah perubahan kode. Laporan Uji yang Terstruktur : hasil pengujian mudah dipantau dan dianalisis . Meningkatkan Konsistensi & Keandalan Kode . Kekurangan Framework Unit Testing : Membutuhkan waktu tambahan untuk menulis skrip pengujian . Memerlukan pemahaman teknis tinggi terhadap framework. Tidak dapat mendeteksi kesalahan integrasi antar modul secara langsung . Kadang menghasilkan false positive/negative, terutama jika test case kurang tepat .

Dampak terhadap Kualitas Perangkat Lunak : Meningkatkan keandalan dan stabilitas system. Mengurangi biaya perbaikan bug di tahap akhir pengembangan . Mempercepat proses rilis karena pengujian lebih efisien. Meningkatkan kepercayaan pengguna terhadap kualitas produk akhir .

Kesimpulan Pemahaman Konsep : Pengujian perangkat lunak penting untuk menjamin kualitas sistem dan mendeteksi kesalahan sejak dini . Unit Testing: Proses pengujian pada unit terkecil dari program untuk memastikan setiap bagian berfungsi sesuai harapan. Modularitas : Membantu memecah sistem menjadi bagian kecil ( modul ) sehingga memudahkan pengujian dan pemeliharaan . Framework Pengujian : JUnit (Java ) framework otomatis dan terintegrasi dengan IDE Java. Pytest (Python) sederhana , fleksibel , dan mendukung berbagai jenis pengujian . Unittest (Python) framework bawaan Python yang mudah digunakan dan standar .

Analisis & Dampak : Framework pengujian mempercepat deteksi bug, meningkatkan keandalan kode , dan memperbaiki kualitas perangkat lunak meski membutuhkan waktu dan keahlian teknis tambahan .

Artikel Ilmiah / Tinjauan Software-testing education: A systematic literature mapping — Vahid Garousi dkk . Menyajikan peta literatur pendidikan pengujian perangkat lunak dan tantangan di bidang ini . A Systematic Literature Review of Test Breakage Prevention and Repair Techniques — Javaria Imtiaz dkk . Fokus pada bagaimana menjaga agar tes tetap relevan dan tidak rusak ketika kode berubah . Test Case Selection and Prioritization Using Machine Learning — Rongqi Pan dkk . Membahas teknik memilih dan memprioritaskan kasus uji ( terutama dalam konteks regression testing dan CI) menggunakan pembelajaran mesin .
Tags