Friday, October 18, 2013

SOFTWARE QUALITY ASSURANCE

Random banget memang. Udah lama ga posting, tiba-tiba muncul ngomongin Software Quality Assurance. #Ups *Ganti gaya bahasa*

Yah,, sebenarnya sudah banyak postingan yang tersimpan rapih di draft, tapi berhubung masih banyak bahan yang harus dikumpulkan, ditambah butuh suasana yang mendukung, jadi sekarang kita ngobrolin tentang ini dulu.

Apa sih Quality Assurance itu??

Menurut Wikipedia, "Quality assurance (QA) refers to administrative and procedural activities implemented in a quality system so that requirements and goals for a product, service or activity will be fulfilled."

Sedangkan menurut ISO 9000:2000 QMS - Fundamentals and Vocabulary (Fyi, ISO ini adalah suatu standar internasional untuk sistem managemen mutu yang biasa digunakan perusahaan profesional) " Quality Assurance (Section 3.2.11) part of quality management focused on providing confidence that quality requirements will be fulfilled.

Bisa disimpulkan bahwa Quality Assurance adalah serangkaian aktivitas yang dapat memberikan suatu jaminan bahwa produk atau pelayanan yang dihasilkan telah memenuhi standar kualitas, kebutuhan dan tujuan yang telah disepakati untuk mendapatkan kepuasan pelanggan pada akhirnya. Bagaimana dengan Software Quality Assurance? Sesuai dengan pengerti tadi, produk yang dihasilkan adalah sebuah software.

Bedanya dengan Quality Control dan Software Testing apa??

Mulanya, ketika saya mendengar kata Software Quality Assurance, yang terlintas di benak saya adalah software testing seperti black box testing (Pengujian suatu software tanpa membuka kode program. hanya dilihat dari sukses atau tidaknya software tersebut menjalankan fungsi-fungsi yang dibutuhkan melalui GUI yang tersedia) atau White Box Testing (Pengujian suatu software berdasarkan dari logika internal kode program suatu software). Tapi ternyata salah. Agak samar memang jika dilihat dari namanya, karena tujuan ketiganya sama-sama meminimalisir kesalahan dengan mengontrol pembuatan suatu software, tapi beruntung, saya menemukan tabel perbedaan ketiganya di blog teknologi informasi indonesia berikut ini :

Perbedaan Testing, Quality Assurance, dan Quality Control
No
Quality Assurance
Quality Control
Testing
1
Aktifitas untuk meyakinkan implementasi proses, prosedur, dan standar dalam konteks verifikasi dari software yang dikembangkan dan kebutuhan yang dimaksud
Aktifitas untuk meyakinkan verifikasi pengembangan software untuk kebutuhan dokumentasi
Aktifitas untuk meyakinkan identifikasi bugs/error/penyimpangan pada software
2
Fokus pada proses dan prosedur
Fokus pada testing kondisi software saat ini dengan maksud untuk mengidentifikasi bug/penyimpangan melalui implementasi prosedur dan proses
Fokus pada pengujian software dengan kondisi saat ini
3
Aktifitas dengan orientasi proses
Aktifitas dengan orientasi produk
Aktifitas dengan orientasi produk
4
Aktifitas preventif
Proses perbaikan
Proses Perbaikan
5
Bagian dari Software Test Life Cycle (STLC)
Sebagai bagian dari Quality Assurance
Bagian dari Quality Control


Jadi Quality Assurance memiliki tanggung jawab yang lebih besar. Seperti yang dilihat di tabel tersebut bahwa Quality Control dan Software testing merupakan bagian dari sebuah Software Quality Assurance. Itu sebabnya, Software Quality Assurance harus memahami tentang seluk beluk software testing. Selain berhubungan dengan produk atau software, ternyata Software Quality Assurance bisa dikatakan berhubungan langsung dengan para konsumen. hemmm.... Oiya, kenyataan di lapangan membuktikan bahwa fungsi2 ini berbeda pada setiap perusahaan. Beberapa dari perusahaan bahkan menggambarkan Quality Assurance sama dengan Software Tester.

Sebenarnya apa saja yang dilakukan oleh Software Quality Assurance??

Dalam bukunya yang berjudul 'Software Quality Assurane; From Theory to Implementation', Daniel Galin mengemukakan bagan berikut ini :


Untuk yang bingung, Penjelasannya begini, Intinya, Aktifitas dari Software Quality Assurance dibagi menjadi 6 :

1. Pre Project Component 
2. Software Project life cycle Component 
3. Infrastructure component for error prevention and improvement 
4. Management SQA Component 
5. SQA standart, system certification, assessment 
6. Organiziing SQA-Human Component 
7. Consideration guiding an organization’s SQA system

1  Pre-project components
Merupakan langkah awal sebelum memulai proyek, yang harus dilakukan oleh pengembang yaitu:
 Contract review
Bertujuan untuk mengembangkan software melalui kerangka negosiai kontrak dengan pelanggan. Sehingga melalui Review kontrak dapat disepakati kebutuhan apa yang diperlukan dalam proses pengembangan perangkat lunak.
Aktifitas kontak review, meliputi:
o Klarifikasi kebutuhan pelanggan
o Review jadwal proyek dan perkiraan kebutuhan sumber daya
o Evaluasi kapasitas staf profesional untuk melaksanakan proyek
o Evaluasi kapasitas pelanggan untuk memenuhi kewajibannya
o Evaluasi risiko pengembangan.

Development and quality plans
Setelah proposal proyek selesai ditinjau, lalu kontrak telah di tandatangani. Maka tahap selanjutnya menyusun Development and quality plans. Berikut merupakan hal-hal yang harus dipersiapkan:

Tantangan utama dalam mengatur pengembangan proyek , yaitu:
· Jadwal
· Tenaga kerja yang diperlukan dan sumber Hardware
· Evaluasi Resiko
· Keorganisasian : anggota tim, subkontraktor dan kemitraan
· Metodologi proyek, perangkat pengembangan,dll
· Penggunaan kembali rencana software

Tantangan utama dalam mengatur rencana kualitas proyek, yaitu :
·Pencapaian akhir kualitas
·Kriteria awal dan akhir setiap tahap proyek
·Daftar review, tes dan jadwal verifikasi lainnya serta kegiatan validasi



2. Software project life cycle components

Pada komponen ini terbagi menjadi 2 tahap yaitu tahap pengembangan siklus hidup dan tahap operasi dan pemeliharaan. Berikut merupakan komponen utama yang harus direncanakan sebelum masuk ke dalam tahap inisiasi
1.          Review
Pada tahap ini mencakup review laporan desain, dokumen testing software, perencanaan instalasi software, user manual, dll.

Review dikategorikan menjadi 2 yaitu:
·Formal design reviews (DRs)
Formal Design Review, berupa Daftar Koreksi yang diperlukan (Action Items)
Diperiksa oleh Komite-komite yang terdiri dari :
o   Pemimpin Proyek
o   Manajer Departemen
o   Ketua Insinyur Software
o   Ketua Departemen terkait

·Peer reviews
Merupakan elemen penting yang dapat memberikan pertimbangan dan timbal balik karena ada saling pertukaran pendapat sebagai acuan untuk melangkah ke depannya. Peer Reviews dilakukan dengan tujuan Mendeteksi kemungkinan kesalahan dari banyak design dan pemrograman. Berikut merupakan hal-hal yang perlu di Review:
o Dokumen singkat
o Bab / bagian pada laporan
o Printout kode dari modul software
o Dari Review tersebut nantinya akan menghasilkan output sebagai berikut:
    Daftar Kesalahan yang terdeteksi
    Ringkasan Kerusakan dan Statistik

2.          Pendapat Ahli
Memperkenalkan kemampuan eksternal tambahan ke dalam proses in-house development organisasi. Para ahli dibutuhkan pada beberapa situasi :
# Kurangnya kemampuan profesional in-house pada daerah tertentu
# Sulitnya menemukan calon yang cocok untuk berpartisipasi dalam tim design review
# Dalam situasi yang ditandai dengan tekanan pekerjaan ekstrim, pendapat ahli dapat menggantikan inspeksi
# Profesional in-house yang tidak dapat diakses sementara
# Dalam kasus perselisihan besar di antara senior profesional organisasi, ahli eksternal dapat mendukung keputusan

3.         Pengujian Software
Pada tahap ini meliputi pengujian terhadap software komponen SQA yang resmi untuk meninjau jalannya software yang sebenarnya. Pengujian dilakukan pada :
·         Modul Software
·         Integrasi Software
·         Paket keseluruhan Software (Sistem)
Tujuan dilakukannya pengujian ini yaitu untuk Mendeteksi kesalahan software dan kegagalan lainnya. Selain itu, untuk persetujuan formal dari modul atau setup integrasi

4.         Pemeliharaan Software
Layanan pemeliharaan software dikategorikan sebagai berikut :
 Pemeliharaan Korektif : Koreksi kesalahan perangkat lunak dan kegagalan
 Pemeliharaan Adaptif : Mengadaptasi software saat ini untuk keadaan tambahan tanpa mengubah software
 Pemeliharaan Fungsi Perbaikan : Peningkatan dan perbaikan software

Komponen Pra-Perawatan, terdiri dari:
        Pemeliharaan review kontrak
        Pemeliharaan rencana

Komponen Infrastruktur SQA, terdiri dari:
        Pemeliharaan prosedur dan instruksi
        Perangkat pendukung kualitas
        Pemeliharaan pelatihan staf, pelatihan ulang dan sertifikasi
        Pemeliharaan tindakan pencegahan dan perbaikan
        Konfigurasi Manajemen

Komponen Manajerial Kontrol SQA, terdiri dari:
        Pemeliharaan layanan kontrol
        Pemeliharaan Kualitas metrik
        Pemeliharaan biaya kualitas

5.         Jaminan Kualitas pekerjaan subkontraktor dan bagian persediaan customer
Pada tahap ini dibutuhkan upaya pemjaminan kualitas sebagai kontrol kualitas yang efektif. karena semakin komplek proyek maka dibutuhkan kontrak review yang ditandatangani semua pihak yang terlibat, antara lain: Subkontraktor, pihak pemasok software(COTS) dan pelanggan.



3.       Infrastructure components for error prevention and improvement
Komponen Infrastruktur untuk pencegahan kesalahan dan perbaikan bertujuan untuk  Menghilangkan/mengurangi tingkat kesalahan software. komponennya terdiri dari :
•        Prosedur dan instruksi kerja
•        Template dan checklist
•        Pelatihan staf, pelatihan ulang, dan sertifikasi
•        Pencegahan dan tindakan korektif
•        Konfigurasi manajemen
•        Kontrol Dokumentasi.
4.       Management SQA components
Komponen Manajemen SQA ini bertujuan menjadi kontrol pengembangan dan pemeliharaan kegiatan.
Komponen Kontrol Meliputi :
•        Proyek kemajuan kontrol
•        Metrik kualitas software
•        Biaya kualitas software

5.       SQA standards, system certification, and assessment components
komponen memiliki tujuan, yaitu :
·         Pemanfaatan pengetahuan profesional internasional.
·         Peningkatan koordinasi dengan sistem mutu organisasi lain .
·         Evaluasi profesional tujuan dan pengukuran prestasi.
Berikut merupakan beberapa acuan standart, yaitu:
·         Manajemen kualitas standart, meliputi:
o   SEI CMM Standart penilaian
o   ISO 901 dan ISO 9000-3 standart
·         Proses Proyek Standart, meliputi:
o   IEEE 1012 Standart
o   ISO/IEC 12207 Standart
6.       Organizing for SQA – the human components


5 comments:

Related Posts Plugin for WordPress, Blogger...