Senin, 08 Juli 2013

JAMINAN KUALITAS PERANGKAT LUNAK (Software Quality Assurance [SQA])

  PENDAHULUAN

Jaminan kualitas perangkat lunak adalah aktivitas pelindung yang diaplikasikan pada seluruh proses perangkat lunak. 
SQA meliputi :
  1. pendekatan manajemen kualitas
  2. teknologi rekayasa perangkat lunak yang efektif (metode dan peranti)
  3. kajian teknik formal yang diaplikasikan pada keseluruhan proses perangkat lunak
  4. strategi pengujian multitiered (deret bertingkat)
  5. kontrol dokumentasi perangkat lunak dan perubahan
  6. prosedur untuk menjamin kesesuaian dengan standar pengembangan perangkat lunak
  7. mekanisme pengukuran dan pelaporan.
Kontrol Kualitas
Kontrol kualitas merupakan serangkaian pemeriksaan, kajian, dan pengujian yang digunakan pada keseluruhan siklus pengembangan untuk memastikan bahwa setiap produk memenuhi persyaratan yang ditetapkan. Konsep kunci kualitas kontrol adalah bahwa semua produk kerja memiliki spesifikasi yang telah ditentukan dan dapat diukur dimana kita dapat membandingkan output dari setiap proses. Kalang (loop) menjadi penting untuk meminimalkan cacat yang dihasilkan.
Jaminan Kualitas 
Jaminan kualitas terdiri atas fungsi auditing dan pelaporan manajemen.
Tujuan jaminan kualitas adalah :
  • untuk memberikan data yang diperlukan oleh manajemen
  •  untuk menginformasikan masalah kualitas produk, sehingga dapat memberikan kepastian & konfidensi   bahwa kulitas produk dapat memenuhi sasaran.
Biaya Kualitas
Biaya kualitas menyangkut semua biaya yang diadakan untuk mengejar kualitas atau untuk menampilkan kualitas yang berhubungan dengan aktivitas. Studi tentang biaya kualitas dilakukan untuk memberikan
garis dasar bagi biaya kualitas yang sedang digunakan, untuk mengidentifikasi kemungkinan pengurangan biaya kualitas serta memberikan basis perbandingan yang ternormalisasi.
Biaya kualitas dapat dibagi ke dalam biaya-biaya yang dihubungkan dengan :
a. pencegahan
b. penilaian
c. kegagalan.

a) Biaya pencegahan meliputi :
    • Perencanaan
    • Kajian teknis formal
    • Perlengkapan pengujian
    • Pelatihan
b) Biaya penilaian meliputi :
    • Inspeksi in-proses dan interproses
    • Pemeliharaan dan kalibrasi peralatan
    • Pengujian
c) Biaya kegagalan
Biaya kegagalan adalah biaya yang akan hilang bila tidak ada cacat yang muncul sebelum produk disampaikan kepada pelanggan. Biaya kegagalan internal adalah biaya yang diadakan bila kita mendeteksi suatu kesalahan dalam produk sebelum produk dipasarkan.
Biaya kegagalan internal meliputi:
• Pengerjaan kembali
• Perbaikan
• Analisis mode kegagalan
Biaya kegagalan eksternal adalah biaya yang berhubungan dengan cacat yang ditemukan setelah produk disampaikan kepada pelanggan. 
Biaya kegagalan eksternal meliputi:
• Resolusi keluhan
• Penggantian dan pengembalian produk
• Dukungan help line
• Kerja jaminan
Biaya relatif mendapatkan dan membetulkan cacat bertambah secara dramatis pada saat kita melangkah dari
pencegahan ke pendeteksian dan dari kegagalan internal ke kegagalan eksternal.

PEMBAHASAN
JAMINAN KUALITAS PERANGKAT LUNAK

Kualitas perangkat lunak didefinisikan sebagai: Konformansi terhadap kebutuhan fungsional dan kinerja yang dinyatakan secara eksplisit, standar perkembangan yang didokumentasikan secara eksplisit, dan karakteristik implisit yang diharapkan bagi semua perangkat lunak dikembangkan secara profesional. definisi tersebut berfungsi untuk menekankan tiga hal penting, yaitu:
  1. Kebutuhan perangkat lunak merupakan fondasi yang melaluinya kualitas diukur.
  2. Standar yang telah ditentukan menetapkan serangkaian kriteria pengembangan yang menuntun cara perangkat lunak direkayasa.
  3. Ada serangkaian kebutuhan implisit yang sering dicantumkan (misalnya kebutuhan akan kemampuan pemeliharaan yang baik).
Kelompok SQA berfungsi sebagai perwakilan in-house pelanggan, yaitu orang yang akan melakukan SQA harus memperhatikan perangkat lunak dari sudut pandang pelanggan. Kelompok SQA harus dapat menjawab pertanyaanpertanyaan dibawah ini untuk memastikan bahwa kualitas perangkat lunak benar-benar terjaga.
  • Apakah perangkat lunak cukup memenuhi faktor kualitas
  • Sudahkah pengembangan perangkat lunak dilakukan sesuai dengan standar yang telah ditetapkan sebelumnya?
  • Sudahkah disiplin teknik dengan tepat memainkan perannya sebagi bagian dari aktivitas SQA?
Aktivitas SQA
Jaminan kualitas perangkat lunak terdiri dari berbagai tugas yang berhubungan dengan dua konstituen yang
berbeda :
  • perekayasa perangkat lunak yang mengerjakan kerja teknis
  • kelompok SQA yang bertanggung jawab terhadap perencanaan jaminan kualitas, kesalahan, penyimpanan rekaman, analisis, dan pelaporan.
Tugas kelompok SQA adalah membantu tim rekayasa perangkat lunak dalam pencapaian produk akhir yang berkualitas tinggi. Aktivitas yang dilakukan (atau difasilitasi) oleh kelompok SQA yang independen: Menyiapkan rencana SQA untuk suatu proyek. Rencana tersebut mengindentifikasikan hal-hal
berikut:
• Evaluasi yang dilakukan
• Audit dan kajian yang dilakukan
• Standar yang dapat diaplikasikan pada proyek
• Prosedur untuk pelaporan & penelusuran kesalahan
• Dokumen yang dihsilkan oleh kelompok SQA
• Jumlah umpan balik yang diberikan pada tim proyek perangkat lunak

  • Berpartisipasi dalam pengembangan deskripsi proses pengembangan proyek.  
  • Mengkaji aktivitas rekayasa perangkat lunak untuk memverifikasi pemenuhan proses perangkat lunak yang sudah ditentukan.
  • Mengaudit produk kerja perangkat lunak yang ditentukan untuk membuktikan kesesuaian dengan produk kerja yang ditentukan tersebut sebagai bagian dari proses perangkat lunak.
  • Memastikan bahwa deviasi pada kerja dan produk perangkat lunak didokumentasikan & di- tangani sesuai dgn rosedur pendokuementasian.
  • Mencatat ketidak-sesuaian dan melaporkannya kepada manajemen senior.
  • Mengkoordinasi kontrol dan manajemen perubahan, dan membantu mengumpulkan dan menganalisis metrik perangkat lunak.
JAMINAN KUALITAS STATISTIK (SQA)
Jaminan kualitas statistik mencerminkan trend yang sedang tumbuh di seluruh industri untuk menjadi lebih
kuantitatif terhadap kualitas. Pada perangkat lunak, jaminan kualitas statistik mengimplikasikan langkah-langkah berikut ini:
  1. Informasi tentang cacat perangkat lunak dikumpulkan dan dipilah-pilahkan.
  2. Melakukan suatu usaha untuk menelusuri masingmasing cacat sampai ke penyebab pokoknya.
  3. Dengan menggunakan prinsip Pareto (80 persen cacat dapat ditelusuri sampai 20 persen dari semua kemungkinan penyebab), mengisolasi yang 20 persen tersebut (vital few)
  4. Sekali penyebab vital few telah diidentifikasi, beralih untuk membetulkan maslah yang menyebabkan cacat.
Banyak kesalahan ditemukan pada waktu perangkat lunak sedang dalam proses pengembangan. Cacat yang
lain ditemukan setelah perangkat lunak diluncurkan kepada pemakai akhir. Meskipun ratusan kesalahan yang berbeda diluncurkan, semuanya dapat ditelusuri dari satu (atau lebih) penyebab berikut ini :
Spesifikasi yang tidak lengkap atau keliru (IES)
  • Kesalahan interpretasi komunikasi pelanggan (MMC)
  • Deviasi intersioanl dari spesifikasi (IDS)
  • Pelanggaran standar pemrograman (VPS)
  • Kesalahan dalam representasi data (EDRIMI)
  • Kesalahan dalam logika desain (EDL)
  • Interface modul yang tidak konsisten (IMI)
  •  Pengujian yang tidak lengkap atau keliru (IET)
  •  Dokumentasi yang tidak lengkap atau tidak akurat(IID)
  • Kesalahan dalam penerjemahan bahasa pemrograman desain (PLT)
  • Antarmuka manusia dengan komputer yang tidak konsisten atau mengandung ambiguitas (HCI)
  • Dan msih banyak lagi (MIS)
RELIABILITAS PERANGKAT LUNAK
Reliabilitas perangkat lunak, tidak seperti faktor kualitas yang lain, dapat diukur, diarahan, dan diestimasi dengan menggunakan data pengembangan historis. Reliabilitas perangkat lunak didefinisikan dalam bentuk statistik sebagai “kemungkinan operasi program komputer bebas kegagalan di dalam suatu lingkungan tertentu dan waktu tertentu”. Kapan saja reliabilitas perangkat lunak dibicarakan, selalu muncul pertanyaan yang sangat penting : Apa yang dimaksudkan dengan bentuk “kegagalan?” dalam konteks dan banyak diskusi mengenai kualitas dan reliabilitas perangkat lunak, kegagalann adalah ketidaksesuaian dengan kebutuhan perangkat lunak.

Keamanan Perangkat Lunak dan Analisis Risiko
Leveson membicarakan pengaruh perangkat lunak dalam sistem kritis keamanan ketika menulis :
Sebelum perangkat lunak digunakan di dalam sistem kritis keamanan, perangkat lunak itu sering dikontrol oleh alat mekanik konvensional (tidak dapat diprogram) dan elektronik. Teknik keamanan sistem didesain untuk mengatasi kegagalan acak dalam sistem-sistem tersebut. Kesalahan perancangan oleh manusia dapat sepenuhnya dihindari atau dihilangkan sebelum perangkat lunak tersebut diluncurkan dan dioperasikan.
Ketika perangkat lunak diguanakn sebagai bagian dari sistem kontrol, kompleksitasnya dapat bertambah dengan satu urutan besaran atau lebih. Kesalahan desain yang tidak kentara yang disebabknan oleh kesalahan manusia – sesuatu yang dapat diunkapkan dan dikurangi dalam kontrol konvensional berbasis perangkat keras – menjadi lebih sulit ditemukan pada waktu perangkat lunak digunakan.