Pengujian perangkat lunak Black Box, White Box dan Gray Box

Pada setiap pembuatan suatu perangkat lunak harus melwati pengujian, sebelum perangkat lunak di terapkan atau digunakan untuk menjalankan tugasnya. Pengujian perangkat lunak tersebut merupakan proses atau rangkaian yang dirancang untuk memastikan bahwa perangkat lunak tersebut sesuai dengan yang diharapkan dan agar tidak ada bug atau melakukan hal yang tidak diharapkan.

Sehingga dibutuhkanlah seorang penguji yang bertugas untuk menemukan bug atau error sebanyak mungkin serta mengetahui error atau bug yang di hasilkan. Pengujian bisa dikatakan sebagai proses mengeksekusi program dengan tujuan untuk menemukan error dan pengujian merupakan proses yang sangat penting dalam siklus pengembangan perangkat lunak untuk memastikan dari suatu software tersebut.

Pengujian Perangkat Lunak

Pada proses pengujian perangkat lunak terdiri dari beberapa aktifitas yang biasa disebut siklus hidup dalam suatu pengujian perangkat lunak. Pada beberapa praktek, memiliki masing-masing aktifitas dapat dilakukan dengan cara formal dan informal. Di bawah ini adalah tahapan aktifitas dari pengujian yaitu :

  1. Mengindentifikasi suatu kondisi dalam pengujian merupakan aktifitas yang dilakukan dalam pengujian untuk menentukan apa yang harus diuji dan memberikan beberapa prioritas terhadap kondisi-kondisi pengujian yang ada.
  2. Perancangan test case merupakan sekumpulan dari pengujian yang dilakukan secara sekuensial dan terkait dengan tujuan dari pengujian.
  3. Membangun test case, yang dapat bisa dilakukan secara manual atau otomatis. Pada test case secara manual dapat menjalankan sebuah langkah yang menjalankan pengujian dengan informasi test input atau test data yang dibutuhkan berserta dengan output yang diharapkan. Jika pada test case otomatis pengujian tersebut menggunakan suatu alat.
  4. Eksekusi pada pengujian secara manual, pengujian pada perangkat lunak mengikuti prosedur yang telah di kombinasikan input dan melakukan pengecekan terhadap output yang di hasilkan akan di catatan obeservasi secara manual. sedangkan dalam pengujian secara otomatis, konfigurasi terhadap pada alat pengujian perangkat lunak harus dilakukan terlebih dahulu, kemudian dilakukanlah test script dipilih dan dijalankan secara otomatis.
  5. Pada peroses perbandingan dapat dilakukan dalam proses pengujian berlangsung, seperti mengecek pesan error yang nampil dilayar, bug-bug yang ada di perangkat lunak dan ketika pengujian selesai dilakukan, dengan membandingkan perubahan data yang ada. Apakah perangkat lunak tersebut lolos pada pengujian atau tidak.

Sesuai dengan suatu konsep interasi dari metodologi agile, pada proses pengujian dilakukan setiap satu product increment selesai dikembangkan. Sehingga untuk satu produk perangkat lunak, akan dilakukan beberapa kali pengujian sesuai dengan jumlah iterasi yang dimiliki.

Baca Juga : cara build game pada unity untuk file .exe dan .apk

Perangkat lunak atau yang sering disebut dengan software merupakan satuan elemen dari sistem berbasis komputer yang lebih besar. biasanya, perangkat lunak dihubungkan dengan perangkat lunak dan perangkat keras lainnya. Pengujian perangkat lunak atau software dapat dibedakan menjadi tiga yaitu Black Box Testing, White Box Testing dan Grey Box Testing.

Tujuan Pengujian Sistem

Tujuan dari pengujian Sistem sebenarnya merupakan hal yang sederhana, dimana pengujian digunakan untuk memastikan bahwa Sistem yang akan dihasilkan sesuai dengan kebutuhan (requirement) yang sebelumnya telah ditentukan. Ketika suatu requirement dari suatu perangkat lunak telah disusun maka semestinya sudah ada suatu pengujian perencanaan (test plan). Selain itu suatu proses testing membutuhkan tujuan akhir yang dapat dinilai sehingga pihak tester bisa berhenti untuk melakukan suatu testing ketika tujuan-tujuan itu telah tercapai.

1. Black Box Testing

Black Box Testing

Black Box Testing merupakan salah satu pengujian perangkat lunak yang dilakukan dengan hanya mengamati hasil dari eksekusi melalui data uji dan sebuah pemeriksaan pada fungsional dari perangkat lunak. Jadi secara dianalogikakan seperti kita melihat suatu kotak hitam, yang hanya bisa dilihat dari luarnya saja tanpa tau apa yang ada di dalamnya.

Sama seperti pengujian Black Box Testing, yang mengevaluasi hanya dari interface dan fungsional, tanpa harus mengetahui apa sesungguhnya yang terjadi dalam proses detilnya tetapi hanya mengetahui input dan output dari perangkat lunak tersebut. Sehingga tanpa harus mengetahui struktur internal kode atau program.

Pengujian pada Black Box Testing berusaha menemukan kesalahan seperti, yaitu :

  1. Fungsi-fungsi yang tidak benar atau error.
  2. Terhadap interface.
  3. Dalam struktur data atau akses database ekternal.
  4. Terhadap kinerja atau bug.
  5. Inisialisasi dan kesalahan terminasi.

Teknik dari pengujian Black Box Testing, yaitu :

  1. Decision tablel merupakan cara yang belum tepat untuk model logika yang rumit, seperti halnya dengan diagram alur dan if-then-else dan switch-laporan kasus, kondisi mengaitkan dengan tindakan untuk melakukan, tetapi dalam banyak kasus melakukannya dengan cara yang lebih elegan.
  2. All-pair testing atau disebut dengan pairwise testing merupakan motode dari pengujian perangkat lunak kombinatorial bahwa, untuk setiap pasangan parameter masuk ke bagian sistem, melakukan semua tes pada kombinasi yang mungkin diskirit parameter tersebut.
  3. State trainsition table merupakan yang menunjukan apa yang state dalam kasus robot terbatas dengan nondeterministic yang memungkinkan suatu semi automata ternatas atau mesin finite state akan pindah, berdasarkan suatu kondisi saat ini dan masukan lainnya.
  4. Equivalence partitioning merupakan pengujian perangkat lunak yang menggunakan Teknik untuk membagi data masukan dari unit perangkat lunak, menjadi beberapa partisi data dari mana test case dapaat di turunkan.
  5.  Boundary value analisis yang merupakan suatu teknik pengujian yang di mana tes dirancang untuk mencakup sebuah perwakilan dari batas nilai-nilai.

Kelebihan dan Kekurangan Black Box Testing

Kelebihan Black Box Testing, yaitu:

  1. Efisien untuk menguji suatu perangkat lunak atau kode yang besar.
  2. Penguji tidak memerlukan suatu akses kode.
  3. Pemisahan antara perspektif pengguna dan pengembang.

Kekurangan Black Box Testing yaitu:

  1. Penguji mempunyai keterbatasan dalam melakukan pengujian atau hanya sebagian kecil dari scenario pengujian yang dilakukan.
  2. Pengujian tidak efisien di karenakan keberuntungan tester dari pengetahuan tentang perangkat lunak internal.
  3. Bila pada spesifikasi program yang dibuat kurang jelas dan ringkas, maka akan sulit membuat dokumentasi setepat mungkin

Baca Juga : Pengujian Black Box Testing

2. White Box Testing

White Box Testing

White Box Testing merupakan pengujian perangkat lunak yang didasarkan pada pengecekan terhadap detail sebuah perancangan. Sehingga menggunakan struktur control dari desain program secara procedural untuk membagi pengujian ke dalam beberapa kasus pengujian. Secara skilas dapat di ambil kesimpulan dari pengujian White Box Testing yang menjadi petunjuk untuk mendapatkan program yang benar.

Teknik dari pengujian White Box Testing, yaitu :

  1. menggambarkan suatu kode perangkat lunak ke dalam graph yang berbentuk node & edge.
  2. Basic path digunakan untuk pengukuran kompeksitas kode perangkat lunak dan pendefinisian alur yang akan di eksekusi.
  3. Data flow testing berfungsi untuk mendeteksi penyalahgunaan data dalam perangkat lunak.
  4. Cyclomatic complexity merupakan suatu perangkat lunak untuk melakukan pengukuraan kuantitatif dari kompleksitas dari logika perangkat lunak.

Kelebihan dan Kekurangan White Box Testing

Kelebihan dari pengujian White Box Testing, yaitu :

  1. Efisien dalam menemukan kesalahan dan masalah.
  2. Diperlukan pengetahuan tentang internal perangkat lunak yang sedang diuji bermanfaat untuk pengujian menyeluruh.
  3. Memungkinkan menemukan kesalahan tersembunyi.
  4. Membantu mengoptimalkan kode.

Kekurangan dari pengujian White Box Testing, yaitu :

1. Pada perangkat lunak yang besar, White Box Testing nantinya akan dianggap sebagai strategi yang tergolong boros, dikarenakan akan melibatkan sumber daya yang besar untuk melakukannya.

2. Membutuhkan sebuah pengetahuan khusus dari perangkat lunak internal yang sedang di lakukan pengujian.

3. Membutuhkan sebuah kode akses untuk melakukan sebuah pengujian.

3. Grey Box Testing

Grey Box Testing

Grey Box Testing merupakan kombinasi dari Black Box dan White Box Testing, menguji perangkat lunak berdasarkan spesifikasi tetapi menggunakan cara kerja dari dalam. Sehingga membuat Grey Box dapat digunakan dengan baik dalam melakukan pengujian perangkat lunak.

Grey Box Testing mengacu pada suatu teknik pengujian sistem dengan pengetahuan yang terbatas dari suatu internal sistem. Pada pengujian grey box testing memiliki suatu akses ke desain dokumen dengan rinci melalui informasi di luar dari persyaratan dokumen. Grey box testing yang akan dihasilkan berdasarkan suatu informasi tersebut sebagai suatu state-based models atau architecture diagrams of the target system.

Perangkat lunak yang membutuhkan pengujian Grey Box Testing, yaitu :

  1. Architectur model
  2. Unified Modeling Language/UML Design Model
  3. Finite – state machine – state model.

Teknik yang ada dalam pengujian Grey Box Testing, yaitu :

  1. Matrix Testing berfungsi untuk menyatakan laporan atau status dari proyek.
  2. Regression testing berfungsi menyatakan status yang akan terjadi perubahan dalam kasus uji yang baru dibuat.
  3. Pattern testing berfungsi untuk memverifikasi aplikasi yang baik untuk desain atau arsitektur dan pola.
  4. Orthogonal array testing berfungsi sebagai bagia ndari semua kemungkinan kombinasi.

Kelebihan dan Kekurangan dari Grey Box Testing.

Kelebihan dari pengujian Grey Box Testing, yaitu :

  1. Offers combined benefits merupakan pengambilan kelebihan dari White Box dan Black Box Testing, untuk melakukan percobaan terhadap pengujian.
  2. Non Intrusive merupakan hal yang didasarkan pada spesifikasi fungsional dan tampilan arsitektur.
  3. Unbiased Testing yang terlepas dari semua keuntungan yang ada diatas, dikarenakan Grey Box Testing mempertahankan batas terhadap pengujian antara tester dan developer.

Kelemahan dari pengujian Grey Box Testing, yaitu :

  1. Partial Code Coverage dalam pengujian grey box merupakan sumber kode dan binary yang akan hilang karena akses yang terbatas pada struktur internal atau perangkat lunak yang akan menghasilkan akses terbatas terhadap kode path traversal.
  2. Defect Indetification dalam perangkat lunak terdistribusi, sulit untuk mengindetifikasi bug atau bug. Namun, pengujian di Grey Box Testing dapat mengetahui bagaimana sistem bug dalam lingkungan layanan web.

Susunan Pengujian Perangkat Lunak

Pada Pengujian memiliki beberapa urutan yang perlu dilakukan. Berikut ini adalah kategori dari pengujian perangkat lunak yang dapat disusun secara kronologisnya, yaitu :

  • Unit Testing merupakan pengujian yang dapat dilakukan pada setiap modul atau blok kode selama pengembangan dan bagian penguji biasanya dilakukan oleh developer yang menulis kode tersebut.
  • Integration Testing merupakan pengujian yang dilakukan sebelum, selama dan setelah melakukan integrase modul baru kedalam sebuah paket perangkat lunak yang utama. Pengujian ini dapat melibatkan pengujian setiap modul kode dari beberapa individu. Satu perangkat lunak dapat berisikan beberapa modul yang sering dibuat oleh beberapa developer yang berbeda.
  • System Testing merupakan pengujian yang dapat dilakukan oleh agen pengujian yang prefesional. Terdapat pada produk perangkat lunak yang telah selesai sebelum perangkat lunak tersebut dapat diperkenalkan secara umum.
  • Acceptance Testing merupakan pengujian beta dari beberapa produk yang dilakukan oleh pengujian akhir yang sebenarnya.

Jenis Pengujian Perangkat Sistem

Pada pengujian sistem terdapat 50 jenis pengujan, dan beberapa diantaranya sering digunakan oleh perusahaan pengembang software atau perangkat lunak besar, berikut ini merupakan jenis pengujian yang sering digunakan, yaitu :

Usability Testing merupakan pengujian yang berfokus pada kemudahan pengguna dalam menggunakan aplikasi, lebih fleksibilitas dalam menangani control dan kemampuan pada sistem untuk memenuhi tujuan dari perangkat lunak tersebut. Load Testing merupakan pengujian ini bertujuan untuk mengetahui, cara kerja sebuah sistem dengan dibawah beban nyata.

Regression Testing merupakan pengujian yang dilakukan untuk dapat memastikan bahwa tidak ada perubahan yang dibuat selama proses pengembangan dapat menyebabkan bug baru muncul. Hal ini juga dapat digunakan untuk memastikan tidak ada bug lama yang muncul kembali dari penambahan modul perangkat lunak baru dari  waktu ke waktu.

Baca Juga : Black box testing wajib dilakukan bagi software developer

Recovery Testing merupakan pengujian yang dilakukan untuk menunjukan suatu solusi dari sistem dapat diandalkan, dipercaya, dan dapat berhasil untuk menutup kemungkinan terjadinya crash pada perangkat lunak.

Migration Testing merupakan pengujian yang dilakukan untuk  memastikan bahwa sistem dapat dipindahkan dari beberapa infrastruktur sistem lama ke infrastruktur ke sistem yang baru tampa terjadi masalah.

Functional Testing atau biasa disebut Completeness Testing merupakan pengujian yang memerlukan pemikiran mengenai kemungkinan untuk terjadinya fungsi yang hilang. Pengujian ini dapat membuat daftar fungsional tambahan yang bisa dikembangkan oleh suatu produk selama proses pengujiannya.

Hardware atau Software Testing merupakan pengujian yang terjadi ketika penguji berfokus pada interaksi antara perangkat keras dan perangkat lunak selama proses pengujian sistem.

Tinggalkan komentar

error: Content is protected !!