Wednesday 27 April 2016

[3DB07, 3DB08, 3DB10] Pengujian Sistem

Pengujian adalah proses eksekusi suatu program dengan maksud menemukan kesalahan. Sebuah ujicoba kasus yang baik adalah yang memiliki probabilitas yang tinggi dalam menemukan kesalahan-kesalahan yang belum terungkap. Ujicoba yang berhasil adalah yang mengungkap kesalahan yang belum ditemukan.
 Proses Testing
  •  Component Testing adalah Pengujian komponen-komponen program, biasanya dilakukan oleh component developer (kecuali utk system kritis).
  • Integration Testing adalah Pengujian kelompok komponen-komponen yang  terintegrasi untuk membentuk sub-system ataupun system. Testing ini dilakukan oleh tim penguji yang independent pengujian berdasarkan spesifikasi sistem
  • System Testing adalah pengujian terhadap integrasi sub-system, yaitu keterhubungan antar sub-system.
  • Acceptance Testing adalah pengujian terakhir sebelum sistem dipakai oleh user yang melibatkan pengujian dengan data dari pengguna sistem.
Metode pengujian dibagi menjadi Whitebox Testing dan Blackbox Testing. Whitebox testing  didasarkan pada pemeriksaan detail prosedural. Alur logikal suatu  software diujicoba dengan menyediakan kasus ujicoba yang melakukan sekumpulan kondisi dan/atau perulangan tertentu. Status dari program dapat diperiksa pada beberapa titik yang bervariasi untuk menentukan apakah status yang diharapkan atau ditegaskan sesuai dengan status sesungguhnya.

Blackbox Testing adalah ujicoba yang dilakukan pada interface software. Walaupun didesain untuk menemukan kesalahan, ujicoba blackbox digunakan untuk mendemonstrasikan fungsi software yang dioperasikan; apakah input diterima dengan benar, dan ouput yang dihasilkan benar; apakah integritas informasi eksternal terpelihara. Ujicoba blackbox memeriksa beberapa aspek sistem, tetapi memeriksa sedikit  mengenai struktur logikal internal software.

Equivalence partioning merupakan metode ujicoba black box yang membagi domain input dari program menjadi beberapa kelas data dari kasus ujicoba yang dihasilkan. Kasus uji penanganan single yang ideal menemukan sejumlah kesalahan (misalnya: kesalahan pemrosesan dari seluruh data karakter) yang merupakan syarat lain dari suatu kasus yang dieksekusi sebelum
kesalahan umum diamati.

Ekuivalensi class dapat didefinisikan dengan panduan berikut:
  • Jika kondisi input menspesifikasikan kisaran atau range, maka didefinisikan 1 yang valid dan 2 yang invalid untuk equivalence class.
  • Jika kondisi input memerlukan nilai yang spesifik, maka didefinisikan 1 yang valid dan 2 yang invalid untuk equivalence class.
  • Jika kondisi input menspesifikasikan anggota dari himpunan, maka didefinisikan 1 yang valid dan 1 yang invalid untuk equivalence class.
  • Jika kondisi input adalah boolean, maka didefinisikan 1 yang valid dan 1 yang invalid untuk equivalence class.

Sejumlah besar kesalahan cenderung terjadi dalam batasan domain input dari pada nilai tengah. Untuk alasan ini Boundary Value Analysis (BVA) dibuat sebagai teknik ujicoba. BVA mengarahkan pada pemilihan kasus uji yang melatih nilai-nilai batas.BVA merupakan desain teknik kasus uji yang melengkapi equivalence portitioning. Dari pada memfokuskan hanya pada kondisi input, BVA juga menghasilkan kasus uji dari domain output.

Contoh batasan Equivalence Partioning dan BVA

Setelah Equivalence Partioning dan Boundary Value Analysis ditentukan, maka skenario tes dapat dijabarkan berdasarkan objek fungsional dan diuji berdasarkan EP & BVA yang ada. Sebagai contoh, dibawah ini terdapat tampilan halaman login yang akan diuji fungsionalitasnya dengan metode EP & BVA. Skenario tes untuk uji coba halaman ini dibuat sedetail mungkin supaya dapat melihat menemukan kesalahan (bug) hingga yang paling kecil.

Contoh tampilan yang akan di uji.
Tampilan halaman login pada web KRS Online.

Contoh Skenario Tes untuk halaman Login berdasarkan gambar diatas


Testing saat Input Data adalah tindakan untuk  menguji edit dan kontrol dalam pemasukan data, misalnya : validasi, cek digit. Pengontrolan saat input data terdiri dari:

  • Character checks (pengecekan karakter) yaitu suatu tindakan untuk melihat apakah suatu field itu dapat menerima karakter tertentu saja atau tidak.
  • Numeric Value Checks (Pengecekan Nilai Numerik) yaitu merupakan character checks yang dikhususkan pada karakter bilangan.
  • Check Digit (Digit cek)  yaitu sejumlah angka mempunyai check digit, maka sistem akan menolak sembarang masukan yang banyaknya angka (digit) tidak akurat.  
  • Limit Tests (Pengujian Batas), pada suatu field, kadang-kadang nilai yang harus diisikan terbatas jangkauan nilainya.
  • Reasonableness Tests (Pengujian Kelogisan), seperti pada limit test, tetapi pembatasannya pada hal yang logis (beralasan).
  • Internal Compatibility (Kompatibilitas Internal) yaitu suatu data yang sudah dimasukkan, sebaiknya kompatibel dengan data yang lain dalam satu aplikasi tertentu. 
  • Cross Checks with data in other applications dimana suatu data akan diperiksa secara silang dengan  aplikasi yang lain, sehingga jika terjadi kesalahan maka pesan kesalahan akan diberikan. Ini  bermaksud untuk memeriksa apakah fungsinya telah berjalan dengan benar.
  • Duplicate Transactions (Transaksi Ganda) yaitu suatu system sebaiknya dibuat dapat menolak transaksi yang ganda.
  • Table Look Ups, jika suatu kode tertentu dimasukkan dalam  suatu field, maka system akan mengakses table yang tepat dan memberikan informasi yang benar.
  • Existence of Required Data (Keberadaan Data yg Dibutuh), jika suatu data yang dibutuhkan tidak ada, maka system harus memberikan pesan bahwa data yang dibutuhkan tidak ada. Jadi harus ada kejelasan tentang data.
  • Confirmation Screens (Layar Konfirmasi)  yaitu suatu tampilan yang akan memberikan konfirmasi bahwa data yang dimasukkan adalah data yang benar.
  • Field lengths and Overflow checks (Cek panjang field dan overflow), panjang field dapat diberikan dengan ukuran tertentu. Begitu juga dengan banyaknya data yang dapat dimasukkan dalam suatu field.

Testing saat Pemrosesan bertujuan untuk meyakinkan bahwa program telah bekerja seperti yang diharapkan.
  • Delete vs Reverse (Hapus lawan Mundur), kita harus tahu bahwa data yang telah dimasukkan, nantinya akan dapat dihapus atau ditelusuri mundur (historisnya). Ketika suatu transaksi telah diupdate (dimutakhirkan), transaksi itu mungkin perlu dihapus atau ditelusuri ke belakang (mundur)
  • Automatically Triggered Processing  (Pemrosesan Terpicu Secara Otomatis), jika suatu system mempunyai sifat automatically triggered processing, maka testing yang dilakukan harusnya dapat meyakinkan bahwa kalkulasi atau pemrosesan telah dilakukan dengan benar. Dalam hal ini testing dilakukan untuk meyakinkan bahwa parameter yang tepat telah digunakan dan output dari pemrosesan telah akurat.
  • Updating (Pemutakhiran) yaitu testing dijalankan untuk meyakinkan bahwa sistem telah di-update secara benar dengan data  yang telah dimasukkan.  
  • Audit Trails (Jejak Pemeriksaan), seperti pada Updating, maka testing dilakukan untuk meyakinkan bahwa log system  dan  jejak untuk pemeriksaan telah bekerja dengan baik.
  • Table Values (Nilai Tabel) dijalankan pada prosedur untuk peng-updatean parameter system dan tabel kode. Pelaksanaan dari update transaksi harus bekerja dengan tepat, termasuk dalam hal ini adalah pengeditan pemasukan data.
  • Arithmetic Calculations (Kalkulasi Aritmetika) ditujukan kepada semua kalkulasi aritmetika yang telah dilakukan sudah benar sesuai rumus yang diinginkan. Untuk meyakinkan report telah benar, maka jika perlu ada cek silang dengan kalkulasi yang telah dilakukan.
  • Database Management System Testing, struktur database juga harus diuji untuk meyakinkan bahwa disain telah dibuat dengan benar.
Testing saat Output berguna untuk meyakinkan bahwa laporan yang dihasilkan telah dibuat dengan format yang benar dan mempunyai informasi yang valid.
  • Ringkasan laporan dapat diperiksa sebagai hal untuk meyakinkan bahwa format dan isi dari laporan sesuai yang dibutuhkan.
  • Yakinlah bahwa dalam laporan hal-hal yang bersifat aritmetika telah berjalan dengan benar.
  • Sebaiknya seluruh laporan harus disajikan dan lihatlah ada kesalahan atau tidak dengan laporan sebelumnya.
  • Jika ada laporan yang bersifat khusus, maka testing juga harus dapat menjawab bahwa laporan khusus ini ditujukan untuk meyakinkan bahwa data yang diekstrak dari suatu tempat harus cocok dan lengkap dengan kriteria khusus yang diharapkan.  

No comments:

Post a Comment