Sabtu, 29 Oktober 2011

Testing dan Implementasi Sistem Pertemuan 1

Definisi Testing

Beberapa definisi tentang testing:

  1. Menurut Hetzel 1973:
    Testing adalah proses pemantapan kepercayaan akan kinerja program atau sistem sebagaimana yang diharapkan.
  2. Menurut Myers 1979:
    Testing adalah proses eksekusi program atau sistem secara intens untuk menemukan error.
  3. Menurut Hetzel 1983 (Revisi):
    Testing adalah tiap aktivitas yang digunakan untuk dapat melakukan evaluasi suatu atribut atau kemampuan dari program atau sistem dan menentukan apakah telah memenuhi kebutuhan atau hasil yang diharapkan.
  4. Menurut Standar ANSI/IEEE 1059:
    Testing adalah proses menganalisa suatu entitas software untuk mendeteksi perbedaan antara kondisi yang ada dengan kondisi yang diinginkan (defects / errors / bugs) dan mengevaluasi fitur-fitur dari entitas software.

Beberapa pandangan praktisi tentang testing, adalah sebagai berikut:

  • Melakukan cek pada program terhadap spesifikasi.
  • Menemukan bug pada program.
  • Menentukan penerimaan dari pengguna.
  • Memastikan suatu sistem siap digunakan.
  • Meningkatkan kepercayaan terhadap kinerja program.
  • Memperlihatkan bahwa program berkerja dengan benar.
  • Membuktikan bahwa error tidak terjadi.
  • Mengetahui akan keterbatasan sistem.
  • Mempelajari apa yang tak dapat dilakukan oleh sistem.
  • Melakukan evaluasi kemampuan sistem.
  • Verifikasi dokumen.
  • Memastikan bahwa pekerjaan telah diselesaikan.

Berikut ini adalah pengertian testing yang dihubungkan dengan proses verifikasi dan validasi software:
Testing software adalah proses mengoperasikan software dalam suatu kondisi yang di kendalikan, untuk (1) verifikasi apakah telah berlaku sebagaimana telah ditetapkan (menurut spesifikasi), (2) mendeteksi error, dan (3) validasi apakah spesifikasi yang telah ditetapkan sudah memenuhi keinginan atau kebutuhan dari pengguna yang sebenarnya.

  • Verifikasi adalah pengecekan atau pengetesan entitas-entitas, termasuk software, untuk pemenuhan dan konsistensi dengan melakukan evaluasi hasil terhadap kebutuhan yang telah ditetapkan. (Are we building the system right ?)
  • Validasi melihat kebenaran sistem, apakah proses yang telah ditulis dalam spesifikasi adalah apa yang sebenarnya diinginkan atau dibutuhkan oleh pengguna. (Are we building the right system?)
  • Deteksi error: Testing seharusnya berorientasi untuk membuat kesalahan secara intensif, untuk menentukan apakah suatu hal tersebut terjadi bilamana tidak seharusnya terjadi atau suatu hal tersebut tidak terjadi dimana seharusnya mereka ada.

Dari beberapa definisi di atas, dapat kita lihat akan adanya banyak perbedaan pandangan dari praktisi terhadap definisi testing.
Namun secara garis besar didapatkan bahwa testing harus dilihat sebagai suatu aktifitas yang menyeluruh dan terus-menerus sepanjang proses pengembangan.
Testing merupakan aktifitas pengumpulan informasi yang dibutuhkan untuk melakukan evaluasi efektifitas kerja.
Jadi tiap aktifitas yang digunakan dengan obyektifitas untuk menolong kita dalam mengevaluasi atau mengukur suatu atribut software dapat disebut sebagai suatu aktifitas testing. Termasuk di dalamnya review, walk-through, inspeksi, dan penilaian serta analisa yang ada selama proses pengembangan. Dimana tujuan akhirnya adalah untuk mendapatkan informasi yang dapat diulang secara konsisten (reliable) tentang hal yang mungkin sekitar software dengan cara termudah dan paling efektif, antara lain:

  • Apakah software telah siap digunakan?
  • Apa saja resikonya?
  • Apa saja kemampuannya?
  • Apa saja keterbatasannya?
  • Apa saja masalahnya?
  • Apakah telah berlaku seperti yang diharapkan?

Definisi Sederhana Kualitas

Berikut ini beberapa definisi sederhana tentang kualitas:

  1. Menurut CROSBY:
    Kualitas adalah pemenuhan terhadap kebutuhan.
  2. Menurut ISO-8402:
    Kualitas adalah keseluruhan dari fitur yang menjadikan produk dapat memuaskan atau dipakai sesuai kebutuhan dengan harga yang terjangkau.
  3. Menurut W.E. Perry:
    Kualitas adalah pemenuhan terhadap standar.
  4. Menurut R. Glass:
    Kualitas adalah tingkat kesempurnaan.

Hubungan Testing dan Kualitas

Definisi software berkualitas adalah software yang bebas error dan bug secara obyektif, tepat waktu dan dana, sesuai dengan kebutuhan atau keinginan dan dapat dirawat (maintainable).
Pengertian kata obyektif adalah suatu proses pembuktian yang terstruktur, terencana dan tercatat / terdokumentasi dengan baik.
Pendekatan yang obyektif sangat diperlukan karena kualitas adalah suatu hal yang tidak nyata dan subyektif. Ia tergantung pada pelanggan dan hal-hal lain yang mempengaruhinya secara keseluruhan.
Pelanggan pada proyek pengembangan software dapat meliputi pengguna akhir (end-users), tester dari pelanggan, petugas kontrak dari pelanggan, pihak manajemen dari pelanggan, pemilik saham, reviewer dari majalah, dan lain-lain, dimana tiap tipe pelanggan akan mempunyai sudut pandang sendiri terhadap kualitas.
Testing membuat kualitas dapat dilihat secara obyektif, karena testing merupakan pengukuran dari kualitas software. Dengan kata lain testing berarti pengendalian kualitas (Quality Control - QC), dan QC mengukur kualitas produk, sedangkan jaminan kualitas (Quality Assurance – QA) mengukur kualitas proses yang digunakan untuk membuat produk berkualitas.

Faktor-faktor kualitas software secara umum dapat dibedakan menjadi tiga faktor, yaitu fungsionalitas, rekayasa, dan adaptabilitas. Berikut contoh yang mengilustrasikan beberapa faktor-faktor komponen yang sering digunakan:

  1. Fungsionalitas (Kualitas Luar)
  • Kebenaran (Correctness)
  • Reliabilitas (Reliability)
  • Kegunaan (Usability)
  • Integritas (Integrity)

2. Rekayasa (Kualitas Dalam)

  • Efisiensi (Efficiency)
  • Testabilitas (Testability)
  • Dokumentasi (Documentation)
  • Struktur (Structure)

3. Adaptabilitas (Kualitas ke Depan)

  • Fleksibilitas (Flexibility)
  • Reusabilitas (Reusability)
  • Maintainabilitas (Maintainability)

Karena itu testing yang bagus harus dapat mengukur semua faktor-faktor yang berhubungan, yang tentunya tiap faktor komponen akan mempunyai tingkat kepentingan berbeda-beda antar satu aplikasi dengan aplikasi yang lain. Contohnya pada sistem bisnis yang umum komponen faktor kegunaan dan maintainabilitas merupakan faktor-faktor kunci, dimana untuk program yang bersifat teknik mungkin tidak menjadi faktor kunci.
Jadi agar testing dapat sepenuhnya efektif, maka harus dijalankan untuk melakukan pengukuran tiap faktor yang berhubungan dan juga menjadikan kualitas menjadi nyata dan terlihat.


Tidak ada komentar:

Posting Komentar