Artikel

Apa itu Pengujian Perangkat Lunak, apa artinya menguji perangkat lunak

Pengujian perangkat lunak adalah serangkaian proses untuk menyelidiki, mengevaluasi, dan memastikan kelengkapan dan kualitas perangkat lunak yang ditulis untuk komputer. Memastikan kepatuhan produk perangkat lunak sehubungan dengan persyaratan peraturan, bisnis, teknis, fungsional, dan pengguna.

Pengujian perangkat lunak, atau pengujian perangkat lunak, juga dikenal sebagai pengujian aplikasi.

Pengujian perangkat lunak terutama merupakan proses besar yang terdiri dari beberapa proses yang saling berhubungan. Tujuan utama pengujian perangkat lunak adalah untuk mengukur integritas perangkat lunak beserta kelengkapannya dalam hal persyaratan fundamentalnya. Pengujian perangkat lunak melibatkan pemeriksaan dan pengujian perangkat lunak melalui proses pengujian yang berbeda. Tujuan dari proses ini mungkin termasuk:

Verifikasi kelengkapan perangkat lunak terhadap persyaratan fungsional/bisnis
Mengidentifikasi bug/kesalahan teknis dan memastikan bahwa perangkat lunak bebas dari kesalahan
Evaluasi kegunaan, kinerja, keamanan, lokalisasi, kompatibilitas dan instalasi
Perangkat lunak yang diuji harus lulus semua pengujian agar lengkap atau layak untuk digunakan. Beberapa jenis metode pengujian perangkat lunak yang berbeda termasuk pengujian kotak putih, pengujian kotak hitam, dan pengujian kotak abu-abu. Selanjutnya, perangkat lunak dapat diuji secara keseluruhan, dalam komponen/unit atau dalam sistem hidup.

Pengujian Kotak Hitam

Black Box Testing adalah teknik pengujian perangkat lunak yang berfokus pada analisis fungsionalitas perangkat lunak, sehubungan dengan cara kerja internal sistem. Black Box Testing dikembangkan sebagai metode untuk menganalisis kebutuhan pelanggan, spesifikasi, dan strategi desain tingkat tinggi.

Penguji Black Box Testing memilih sekumpulan eksekusi kode yang valid dan tidak valid serta kondisi input dan memeriksa respons output yang valid.

Pengujian Kotak Hitam juga dikenal sebagai pengujian fungsional atau pengujian kotak tertutup.

Mesin pencari adalah contoh sederhana dari subjek aplikasi untuk pengujian kotak hitam. Seorang pengguna mesin pencari memasukkan teks ke dalam bilah pencarian browser web. Mesin pencari kemudian menempatkan dan mengambil hasil data pengguna (output).

Manfaat Black Box Testing antara lain:

  • Kesederhanaan: Memfasilitasi pengujian proyek tingkat tinggi dan aplikasi yang kompleks
  • Hemat sumber daya: Penguji fokus pada fungsionalitas perangkat lunak.
  • Uji Kasus: Fokus pada fungsionalitas perangkat lunak untuk memfasilitasi pengembangan kasus uji yang cepat.
  • Memberikan fleksibilitas: tidak diperlukan pengetahuan pemrograman khusus.

Pengujian Black Box juga memiliki beberapa kelemahan, sebagai berikut:

  • Desain dan pemeliharaan kasus uji/skrip dapat menjadi tantangan karena alat Pengujian Kotak Hitam bergantung pada input yang diketahui.
  • Berinteraksi dengan antarmuka pengguna grafis (GUI) dapat merusak skrip pengujian.
  • Tes hanya menyangkut fungsi aplikasi.

Pengujian Kotak Putih

Selama pengujian kotak putih, kode dijalankan dengan nilai input yang dipilih sebelumnya untuk memvalidasi nilai output yang dipilih sebelumnya. Pengujian kotak putih sering melibatkan penulisan kode rintisan (sepotong kode yang digunakan untuk menggantikan fitur tertentu. Sebuah rintisan dapat mensimulasikan perilaku kode yang ada, seperti prosedur pada mesin jarak jauh.) dan juga driver.

Manfaat pengujian kotak putih meliputi:

  • Memungkinkan penggunaan kembali kasus uji dan menawarkan stabilitas yang lebih baik
  • Memfasilitasi pengoptimalan kode
  • Memfasilitasi menemukan lokasi kesalahan tersembunyi pada tahap awal pengembangan
  • Memfasilitasi pengujian aplikasi yang efektif
  • Hapus baris kode yang tidak perlu


Kerugiannya meliputi:

  • Membutuhkan penguji berpengalaman dengan pengetahuan tentang struktur internal
  • Membutuhkan waktu
  • Biaya tinggi
  • Validasi bit kode sulit dilakukan.
  • Pengujian kotak putih mencakup pengujian unit, pengujian integrasi, dan pengujian regresi.

Tes Unit

Tes Unit adalah komponen Siklus Hidup Pengembangan Perangkat Lunak (SDLC) di mana prosedur pengujian komprehensif diterapkan secara individual ke bagian terkecil dari program perangkat lunak untuk kesesuaian atau perilaku yang diinginkan.


Tes unit adalah prosedur pengukuran dan evaluasi kualitas yang diterapkan di sebagian besar aktivitas pengembangan perangkat lunak perusahaan. Secara umum, pengujian unit mengevaluasi seberapa baik kode perangkat lunak sesuai dengan tujuan keseluruhan perangkat lunak/aplikasi/program dan bagaimana kesesuaiannya memengaruhi unit lain yang lebih kecil. Pengujian unit dapat dilakukan secara manual – oleh satu atau lebih pengembang – atau melalui solusi perangkat lunak otomatis.

Selama pengujian, setiap unit diisolasi dari program utama atau antarmuka. Tes unit biasanya dilakukan setelah pengembangan dan sebelum penerapan, sehingga memfasilitasi integrasi dan deteksi masalah sejak dini. Ukuran atau ruang lingkup unit bervariasi tergantung pada bahasa pemrograman, aplikasi perangkat lunak, dan tujuan pengujian.

Uji Fungsional

Pengujian fungsional adalah proses pengujian yang digunakan dalam pengembangan perangkat lunak di mana perangkat lunak diuji untuk memastikan bahwa perangkat lunak tersebut memenuhi semua persyaratan. Ini adalah cara memeriksa perangkat lunak untuk memastikan bahwa ia memiliki semua fungsionalitas yang diperlukan yang ditentukan dalam persyaratan fungsionalnya.


Pengujian fungsional terutama digunakan untuk memverifikasi bahwa perangkat lunak memberikan output yang sama seperti yang dibutuhkan oleh pengguna akhir atau bisnis. Biasanya, pengujian fungsional melibatkan evaluasi dan perbandingan setiap fungsi perangkat lunak terhadap kebutuhan bisnis. Perangkat lunak diuji dengan memberikannya beberapa masukan terkait sehingga keluaran dapat dievaluasi untuk melihat bagaimana sesuai, terkait, atau bervariasi dari persyaratan dasarnya. Selain itu, pengujian fungsional juga memeriksa kegunaan perangkat lunak, misalnya memastikan bahwa fungsi navigasi berfungsi sesuai kebutuhan.

Buletin inovasi
Jangan lewatkan berita terpenting tentang inovasi. Daftar untuk menerimanya melalui email.

Pengujian regresi

Pengujian regresi adalah jenis pengujian perangkat lunak yang digunakan untuk menentukan apakah masalah baru merupakan hasil dari perubahan perangkat lunak.

Sebelum menerapkan perubahan, sebuah program diuji. Setelah perubahan diterapkan, program diuji ulang di area yang dipilih untuk mendeteksi apakah perubahan tersebut telah menimbulkan bug atau masalah baru, atau apakah perubahan yang sebenarnya telah memenuhi tujuan yang dimaksudkan.


Pengujian regresi sangat penting untuk aplikasi perangkat lunak besar, karena seringkali sulit untuk mengetahui apakah mengubah satu bagian dari suatu masalah telah menciptakan masalah baru untuk bagian aplikasi yang berbeda. Misalnya, perubahan formulir permohonan pinjaman bank dapat mengakibatkan gagalnya laporan transaksi bulanan. Dalam kebanyakan kasus, masalah mungkin tampak tidak berhubungan, tetapi sebenarnya bisa menjadi penyebab frustrasi di antara pengembang aplikasi.

Situasi lain yang memerlukan pengujian regresi termasuk mendeteksi apakah perubahan tertentu mencapai tujuan yang ditetapkan atau menguji bahaya baru yang terkait dengan masalah yang muncul kembali setelah periode tanpa masalah.

Pengujian regresi modern terutama ditangani melalui alat pengujian komersial khusus yang mengambil snapshot dari perangkat lunak yang ada yang kemudian dibandingkan setelah menerapkan perubahan tertentu. Hampir tidak mungkin bagi penguji manusia untuk melakukan tugas yang sama seefisien penguji perangkat lunak otomatis. Hal ini terutama terjadi pada aplikasi perangkat lunak yang besar dan kompleks dalam lingkungan TI yang besar seperti bank, rumah sakit, perusahaan manufaktur, dan pengecer besar.

Pengujian Tegangan

Stress testing mengacu pada pengujian perangkat lunak atau perangkat keras untuk menentukan apakah kinerjanya memuaskan dalam kondisi ekstrim dan tidak menguntungkan, yang dapat terjadi sebagai akibat dari lalu lintas jaringan yang padat, pemuatan proses, underclocking, overclocking, dan tuntutan penggunaan sumber daya puncak.

Sebagian besar sistem dikembangkan dengan asumsi kondisi operasi normal. Oleh karena itu, meskipun batas terlampaui, kesalahan dapat diabaikan jika sistem diuji tegangan selama pengembangan.


Tes stres digunakan dalam konteks berikut:

  • Perangkat lunak: Stress testing menekankan ketersediaan dan penanganan kesalahan di bawah beban yang sangat berat untuk memastikan bahwa perangkat lunak tidak macet karena sumber daya yang tidak mencukupi. Pengujian stres perangkat lunak berfokus pada transaksi yang teridentifikasi untuk membatalkan transaksi, yang sangat ditekankan selama pengujian, bahkan ketika database tidak dimuat. Proses stress testing memuat pengguna bersamaan di luar level sistem normal untuk menemukan tautan terlemah dalam sistem.
  • Perangkat Keras: Stress test memastikan stabilitas di lingkungan komputasi normal.
  • Situs web: Tes stres menentukan batas fungsionalitas situs apa pun.
  • CPU: Perubahan seperti overvolting, undervolting, underlocking, dan overlocking diperiksa untuk menentukan apakah mereka dapat menangani beban berat dengan menjalankan program intensif CPU untuk menguji sistem crash atau macet. Tes stres CPU juga dikenal sebagai tes penyiksaan.

Tes Otomatis

Pengujian otomatis (otomasi pengujian perangkat lunak) adalah pendekatan pengujian kode yang menggunakan alat perangkat lunak khusus yang menjalankan pengujian secara otomatis dan kemudian membandingkan hasil pengujian aktual dengan hasil yang diharapkan.

Pengujian otomatis memainkan peran penting dalam Continuous Delivery (CD), Continuous Integration (CI), DevOps, dan DevSecOps. Manfaat utama pengujian otomatis meliputi:

  • Pengujian otomatis menghemat waktu dan uang pengembang dengan membuat proses pengujian lebih efisien.
  • Tes otomatis mengidentifikasi kesalahan lebih efisien daripada tes manual.
  • Saat pengujian diotomatisasi, beberapa alat pengujian dapat diimplementasikan secara paralel.


Dalam pengembangan perangkat lunak, sangat berguna untuk melakukan pengujian otomatis selama proses pembuatan untuk memastikan bahwa aplikasi bebas dari kesalahan pembuatan dan menjalankan fungsi yang dimaksudkan.

Meluangkan waktu untuk mengotomatiskan pengujian perangkat lunak pada akhirnya akan menghemat waktu pengembang dengan mengurangi risiko perubahan kode akan merusak fungsionalitas yang ada.


Pengujian merupakan tahapan yang sangat penting dalam proses pengembangan. Memastikan bahwa semua bug telah diperbaiki dan bahwa produk, perangkat lunak atau perangkat keras, bekerja sebagaimana mestinya atau sedekat mungkin dengan kinerja targetnya. Pengujian otomatis, daripada pengujian manual, sangat penting untuk secara konsisten menghadirkan perangkat lunak hemat biaya yang memenuhi kebutuhan pengguna secara tepat waktu dengan cacat minimal.

Jenis pengujian otomatis yang digunakan dalam pengembangan perangkat lunak
  • Tes unit: Uji satu program tingkat rendah di lingkungan yang terisolasi sebelum memverifikasi integrasinya dengan unit lain.
  • Pengujian Integrasi: Pengujian unit dan komponen aplikasi lainnya diuji sebagai entitas gabungan.
  • Tes fungsional: Periksa apakah sistem perangkat lunak berfungsi sebagaimana mestinya.
  • Pengujian Performa: Mengevaluasi ketahanan aplikasi di bawah beban yang lebih tinggi dari perkiraan. Tes kinerja sering mengungkapkan kemacetan.
  • Uji Asap: Menentukan apakah build cukup stabil untuk melanjutkan pengujian lebih lanjut.
  • Pengujian Browser: Verifikasi bahwa komponen perangkat lunak kompatibel dengan berbagai browser.

Pengujian manual masih dilakukan di berbagai waktu selama pengembangan, tetapi ini sebagian besar dilakukan oleh pengembang atau insinyur perangkat keras itu sendiri untuk melihat dengan cepat apakah perubahan yang mereka buat memiliki efek yang diinginkan.

Ercole Palmeri

Buletin inovasi
Jangan lewatkan berita terpenting tentang inovasi. Daftar untuk menerimanya melalui email.

Artikel Terbaru

Regulator antimonopoli Inggris meningkatkan kekhawatiran BigTech atas GenAI

CMA Inggris telah mengeluarkan peringatan tentang perilaku Big Tech di pasar kecerdasan buatan. Di sana…

April 18 2024

Casa Green: revolusi energi untuk masa depan berkelanjutan di Italia

Keputusan "Rumah Hijau", yang dirumuskan oleh Uni Eropa untuk meningkatkan efisiensi energi bangunan, telah mengakhiri proses legislatifnya dengan…

April 18 2024

E-niaga di Italia sebesar +27% menurut Laporan baru oleh Casaleggio Associati

Laporan tahunan Casaleggio Associati tentang E-niaga di Italia disajikan. Laporan berjudul “AI-Commerce: garis depan E-niaga dengan Kecerdasan Buatan”.…

April 17 2024

Ide Cemerlang: Bandalux menghadirkan Airpure®, tirai yang memurnikan udara

Hasil dari inovasi teknologi yang terus-menerus dan komitmen terhadap lingkungan dan kesejahteraan masyarakat. Bandalux mempersembahkan Airpure®, sebuah tenda…

April 12 2024