Monday, March 30, 2020

Pengujian Perangkat Lunak dengan Black Box Testing

Pengujian Perangkat Lunak dengan Black Box Testing

  • Pengujian Perangkat Lunak dengan Black Box Testing berfokus pada keperluan fungsional perangkat lunak dan domain informasi.
  • Analisis sistem memperoleh kumpulan kondisi dari input yang akan mengerjakan seluruh keperluan fungsional.
  • Cenderung diaplikasikan pada tahap akhir pengujian.
  • Disebut juga pengujian behavioral/Pengujian Partisi/Pengujian Interface.
  • Memperhatikan dari sudut pandang input data dan output data.
  • Perangkat lunak ditinjau sebagai kotak hitam yang menyalurkan input kepada output berdasarkan rincian dimana perangkat lunak tersebut harus melakukannya.
  • Memeriksa kecocokan dari pengujian software yang membentuk tingkah laku.
  • Mencari kesalahan-kesalahan yang dihasilkan oleh kesalahan.
  • Kesalahan perangkat lunak adalah bagian dari perangkat lunak yang tidak menurut pada penyediaan definisi itu sendiri dalam dokumen pengembangan.

Tujuan Pengujian Perangkat Lunak dengan Black Box Testing untuk Mencari Kesalahan-kesalahan pada:

  • Fungsi yang salah atau hilang.
  • kesalahan pada interface.
  • Kesalahan pada struktur data atau akses database.
  • Kesalahan performansi (kinerja)
  • Kesalahan inisialisasi atu tujuan akhir.

Pengujian Perangkat Lunak dengan Black Box Testing memiliki Type antara lain:

  1. Equivalence Class Partitioning (Pembagian Kelas yang sama)
  2. Boundary Value Analisys (Analisa Penilaian Terbatas)
  3. Comparation Testing (Pengujian Perbandingan)

Equivalence Class Partitioning

  • Metode pengujian Black Box yang memecah atau membagi domain input dari suatu program ke dalam kelas-kelas data.
  • Perancangan test case berdasakan evaluasi class equivalence untuk kondisi input.
  • Kelas equivalence menggambarkan kumpulan keadaaan yang valid dan tidak valid untuk kondisi input.
  • Kondisi input dapat berupa nilai numerik, range dari nilai, kumpulan nilai yang berhubungan atau kondisi boolean.
Kelas equivalence dapat ditentukan sesuai pedoman berikut:
  • Bila kondisi input menentukan suatu range, maka kelas equivalence valid dan dua yang invalid ditentukan.
  • Bila kondisi input memerlukan harga khusus, maka satu kelas equivalence valid dan dua yang invalid ditentukan.
  • Bila kondisi input menentukan anggota suatu himpunan, maka satu kelas equivalence valid dan dua yang invalid ditentukan.
  • Bila kondisi input adalah boolean, maka satu kelas valid dan satu yang invalid ditentukan.
Contoh:
Dalam Persamaan matematika
1 juta <= Gaji <= 5 juta
valid = 1 juta sampai 5 juta
invalid = kurang dari 1 juta dan lebih dari 5 juta

Bundary Value Analisys

  • Untuk permasalahan yang tidak diketahui dengan jelas, akan cenderung menimbulkan kesalahan pada domain outputnya.
  • Pemilihan test case yang mengerjakan nilai-nilai yang telah ditentukan.
  • melengkapi equivalence class partitioning.
Petuntuk pemakaian Bundary Value Analisys:
  • Jika kondisi input berupa range yang dibatasi oleh nilai a dan b, test case harus dirancang dengan nilai a dan b.
  • Jika kondisi input ditentukan dengan sejumlah nilai, test case harus dikembangkan dengan mengerjakan sampai batas maksimal dari nilai tersebut.
  • Sesuai dengan 1 dan 2, untuk kondisi output harus dirancang test case sampai jumlah maksimal.
  • Untuk struktur data pada program juga harus dirancang sampai pada batas kemampuan.

Comparation Testing

  • Perangkat keras dan perangkat lunak yang berlebihan memungkinkan untuk digunakan.
  • Menggunakan team yang terpisah untuk mengembangkan versi-versi independent dari perangkat lunak dengan menggunakan spesifikasi yang sama.
  • Mencoba masing-masing versi dengan data yang sama untuk memastikan bahwa semua versi memberikan output yang identik.
  • Semua versi dieksekusi secara paralel dengan perbandingan realtime hasil untuk memastikan konsistensi.
  • Output sama dari masing-masing versi implementasi benar.
  • Output berbeda masing-masing versi dari aplikasi untuk menentukan cacat pada suatu versi (perbedaan jelas).
  • Spesifikasi semua fungsi yang dikembangkan mengandung kesalahan, maka semua versi kemungkinan besar merefleksikan kesalahan.
  • Masing-masing versi independen identik tetapi tidak benar, maka pengujian kondisi akan gagal mendeteksi kesalahan.

Testing Stage

Sasaran Utama Desain Test Case

Untuk mendapatkan serangkaian pengujian yang memiliki kemungkinan tertinggi di dalam pengungkapan kesalahan pada perangkat lunak.

Teknin yang Digunakan

  • Pengujian White-Box (White-Box Testing)
  • Pengujian Black-Box (Black-Box Testing)

Pengujian White Box

  • Berfokus pada struktur kontrol program.
  • Pengujian dilakukan untuk memastikan bahwa semua statemen pada program telah dieksekusi paling tidak satu kali selama pengujian dan semua kondisi telah diuji.
  • Pengujian basis path, teknik pengujian white-box, menggunakan grafik program (matrik grafik) untuk melakukan serangkaian pengujian yang independen secara linear yang memastikan cakupan.
  • Pengujian aliran data dan kondisi lebih lanjut menggunakan logika program, dan pengujian loop menyempurnakan teknik white box yang lain dengan memberikan sebuah prosedur untuk menguji loop dari tingkat kompleksitas yang bervariasi.
  • Implikasinya secara khusus diaplikasikan ke dalam komponen program yang kecil (modul atau kelompok kecil dari modul).

Pengujian Black-Box

  • Didesain untuk mengungkap kesalahan pada persyaratan fungsional tanpa mengabaikan kerja internal dari suatu program.
  • Berfokus pada domain informasi dari perangkat lunak.
  • Melakukan teste case dengan mempartisi domain input dan output dari suatu program dengan cara yang memberikan cakupan pengujian yang mendalam.
  • Partisi ekivalensi (Equivalence Class Partitioning) membagi domain input kedalam kelas data yang mungkin untuk melakukan fungsi perangkat lunak tertentu.
  • Analisis nilai terbatas (Boundary Value Analysis) memeriksa kemampuan program untuk menangani data pada patas yang dapat diterima.
  • Pengujian perbandingan (Comparison Testing) mengembangkan perangkat lunak ke dalam versi-versi yang independen dari suatu aplikasi dengan menggunakan spesifikasi yang sama. Setiap versi diuji dengan data uji yang sama untuk memastikan bahwa semua versi memberikan output yagn identik. Disebut juga pengujian back to back.
Pengembang perangkat lunak yang berpengalaman sering mengatakan, “Pengujian tidak akan pernah berakhir. Pengujian hanya berpindah dari Penguji ke pelanggan. Setiap pelanggan menggunakan program tersebut, berarti suatu pengujian dilakukan.”
Dengan mengaplikasikan desain test case, perekayasa perangkat lunak dapat menapai pengujian yang lebih lengkap sehingga dapat mengungkap dan melakukan koreksi sebelum “pengujian pelanggan” dimulai.

Testing Stage (Tingkatan Pengujian)

Validasi perangkat lunak (V & V) ditujukan untuk menunjukkan bahwa sistem sesuai dengan spesifikasinya dan bahwa sistem memenuhi harapan pelanggan yang membelinya. Validasi melibatkan proses pemeriksaan, seperti inspeksi dan peninjauan, pada setiap proses perangkat lunak dari definisi persyaratan user sampai pengembangan program.

Validasi perangkat lunak adalah proses pemeriksaan untuk menjamin agar sistem telah sesuai dengan spesifikasinya dan memenuhi kebutuhan sesungguhnya dari user sistem.

Namun demikian, mayoritas biaya validasi disediakan setelah implementasi sistem operasional diuji.
  • Untuk program-program kecil, sistem seharusnya tidak diuji sebagai sistem tunggal. Sistem besar dibangun dari subsistem yang dibangun dari model yang terbuat dari prosedur dan fungsi.
  • Proses demikian dengan demikian harus dilakukan bertahap, dimana pengujian dilakukan secara inkremental bersama dengan implementasi sistem.
  • Proses pengujian terdiri dari 3 (tiga) tahap dimana komponen-komponen sistem diuji, sistem yang terintegrasi diuji, dan akhirnya sistem diuji dengan data pelanggan.
  • Idealnya, kesalahan komponen ditemukan dini pada proses dan masalah interface ketika sistem diintegrasi.
  • Namun demikian, dengan ditemukannya kesalahan, program harus didebug.
  • Hal ini menuntut tahap proses pengujian ulang.
  • Error pada komponen program, bisa muncul pada saat pengujian itegrasi.
  • Proses dengan demikian bersifat iteratif, dengan informasi diumpan balik dari bagian akhir ke bagian awal proses.

Tahap-tahap Proses Pengujian

  1. Unit Testing (Pengujian Unit)
  2. Modul Testing (Pengujian Modul)
  3. Sub Sistem Testing (Pengujian Sub Sistem)
  4. System Testing (Pengujian System)
  5. Acceptance Testing (Pengujian Penerimaan)

Unit Testing

  • Komponen individual diuji untuk menjamin operasi yang benar.
  • Setiap komponen diuji secara independen, tanpa komponen sistem yang lain.

Modul Testing

Modul merupakan sekumpulan komponen yang berhubungan seperti kelas objek, atau sekumpulan prosedur dan fungsi. Sebuah modul merangkum komponen-komponen yang berhubungan, sehingga dapat diuji tanpa modul sistem yang lain.

Sub-System Testing

  • Melibatkan pengujian sekumpulan modul yang telah diintegrasikan menjadi subsistem.
  • Masalah yang sering muncul pada sistem perangkat lunak besar adalah ketidaksesuaian interface.
  • Proses pengujian subsistem dengan demikian harus terkonsentrasi pada deteksi kesalahan interface modul dengan menjalankan interface ini berkali-kali.

System Testing

  • Subsistem diintegrasikan untuk membentuk sistem. Proses ini berkenaan dengan penemuan kesalahan yang diakibatkan dari interaksi yang tidak diharapkan antara subsistem dan masalah interface subsistem.
  • Sistem pengujian secara keseluruhan dimana pengujian timbul karena sifat-sifat yang baru.
  • Pengujian atas penggabungan sistem perangkat lunak.

Acceptance Testing

  • Merupakan tahap akhir proses pengujian sebelum sistem diterima untuk penggunaan operasional.
  • Sistem diuji dengan data yang dipasok oleh pelanggan dan bukan data uji simulasi.
  • Bisa menunjukkan kesalahan dan penghapusan definisi persyaratan sistem karena data riil menjalankan sistem dengan cara yang berbeda dari data uji.
  • Dapat mengungkap masalah persyaratan dimana fasilitas sistem tidak memenuhi keperluan user atau kinerja sistem tidak dapat diterima.
    • Pengujian unit dan pengujian modul biasanya merupakan tanggung jawab programmer yang mengembangkan komponen tersebut. Programer membuat data uji sendiri dan secara inkremental menguji kode pada saat dikembangkan. Pengujian ini sangat ekonomis karena programmer adalah orang yang paling mengetahui komponen tersebut dan merupakan orang terbaik untuk membuat data uji.
    • Tahap berikutnya mencakup integrasi dari sejumlah programmer dan harus direncanakan sebelumnya. Suatu tim penguji independent harus bekerja dari rencana uji pra-formulasi yang dikembangkan dari spesifikasi dan rancangan sistem.
    • Pengujian penerimaan kadang-kadang disebut pengujian alpha. Sistem yang diperlihatkan dikembangkan untuk satu klien. Proses pengujian alpha berlanjut sampai pengembang sistem dan pelanggan setuju bahwa sistem yang diserahkan merupakan implementasi yang dapat diterima dari persyaratan sistem.

No comments:

Post a Comment