Anda di halaman 1dari 5

Chapter 1

The software quality challenge


1.1 The uniqueness of software quality assurance
Pemeriksaan jaminan yang ditawarkan oleh pengembang perangkat lunak umumnya mengungkapkan
pola yang sama. Pengembang tidak akan menyatakan bahwa perangkat lunak ini bebas dari cacat,
sebagai mana dilakukan para produsen perangkat keras komputer. Penolakan ini sebenarnya
mencerminkan perbedaan unsur penting antara perangkat lunak dan produk industri lainnya, seperti
mobil, mesin cuci atau radio. perbedaan-perbedaan ini dapat dikategorikan sebagai berikut:
(1) Kompleksitas Produk.
Kompleksitas produk dapat diukur dengan jumlah mode operasional yang diizinkan suatu produk.
Sebuah produk industri, bahkan mesin canggih, tidak memungkinkan untuk menjalankan lebih dari
beberapa ribu mode operasi, yang diciptakan oleh kombinasi pengaturan mesin yang berbeda. Jika
melihat paket suatu perangkat lunak, seseorang dapat menemukan jutaan operasi di dalam sebuah
software. Oleh karena itu, untuk bisa menjamin 100% pada sebuah perangkat lunak adalah sebuah
tantangan besar .
(2) Visibilitas Produk.
Produk hasil industri dapat terlihat, produk perangkat lunak tidak terlihat. Sebagian besar cacat dalam
sebuah produk industri dapat dideteksi selama proses manufaktur. Namun, cacat pada produk
perangkat lunak (apakah disimpan pada disket atau CD) adalah tidak terlihat, karena kenyataannya
bahwa bagian-bagian dari paket perangkat lunak mungkin masih ada meskipun sudah diperbaiki sejak
awal.
(3) Pengembangan produk dan proses produksi.
Marilah kita sekarang meninjau fase di mana kemungkinan mendeteksi cacat dalam sebuah produk
industri mungkin timbul:
(a) Pengembangan produk. Dalam fase ini para desainer dan staf jaminan kualitas (QA)
memeriksa dan menguji prototipe produk, dalam rangka mendeteksi cacat tersebut.
(b) Perencanaan Produksi. Selama fase ini proses produksi dan alat-alat dirancang dan
dipersiapkan. Dalam beberapa produk ada kemungkinan bahwa serangkaian produk khusus
untuk dirancang dan dibangun. Sehingga fase ini dapat memberikan kesempatan tambahan
untuk memeriksa produk, yang dapat mengungkapkan cacat yang "lolos" dari review dan tes
yang dilakukan selama tahap pengembangan.
(c) Manufaktur. Pada fase ini prosedur QA diterapkan untuk mendeteksi kegagalan produk itu
sendiri. Cacat pada produk yang terdeteksi pada tahap awal biasanya dapat dikoreksi dengan
perubahan dalam desain produk atau bahan atau alat-alat produksi, dengan cara
menghilangkan cacat tersebut dalam produk yang akan diproduksi di masa depan.
Dibandingkan dengan produk industri, produk perangkat lunak tidak mendapatkan manfaat dari
kesempatan untuk mendeteksi cacat di semua tiga tahap proses produksi tersebut. Cacat hanya dapat
dideteksi pada tahap pengembangan.
Mari kita meninjau apa setiap tahap yang dapat memberikan kontribusi terhadap deteksi cacat:
(a) Pengembangan produk. Selama fase ini, upaya tim pengembangan dan profesional dalam
jaminan kualitas perangkat lunak yang diarahkan untuk mendeteksi cacat produk yang melekat.
Pada akhir fase ini sebuah prototipe disetujui, siap untuk reproduksi, menjadi tersedia.
(b) Produk perencanaan produksi. Fase ini tidak diperlukan untuk proses produksi perangkat lunak,
seperti pembuatan salinan perangkat lunak dan pencetakan manual perangkat lunak yang

dilakukan secara otomatis. Hal ini berlaku untuk semua produk perangkat lunak, apakah jumlah
salinan yang kecil, seperti dalam custom-made software, atau besar, seperti dalam paket
perangkat lunak yang dijual untuk umum.
(c) Manufaktur. Seperti disebutkan sebelumnya, pembuatan perangkat lunak terbatas untuk
menyalin salinan produk dan pencetakan manual perangkat lunak. Akibatnya, harapan untuk
mendeteksi cacat sangat terbatas selama fase ini.
Perbedaan mempengaruhi deteksi cacat pada produk perangkat lunak dibandingkan produk industri
lainnya ditunjukkan pada Tabel 1.1 dan Frame 1.1.

Perlu dicatat bahwa bagian-bagian penting dari mesin-mesin canggih serta mesin rumah tangga dan
produk lainnya, didalamnya tertanam komponen software (biasanya disebut "firmware") yang terintegrasi
ke dalam produk.
Komponen perangkat lunak ini (firmware) berbagi karakteristik dengan produk perangkat lunak yang
disebutkan di atas. Perbandingan yang ditunjukkan di atas adalah produk perangkat lunak dibandingkan
produk industri lainnya yang tidak memiliki firmware.

1.2 The environments for which SQA methods are Developed


Perangkat lunak dikembangkan oleh banyak individu dan dalam situasi yang berbeda sesuai dengan
kebutuhan:

Siswa dan mahasiswa mengembangkan perangkat lunak sebagai bagian dari pendidikan
mereka.
Perangkat lunak amatir mengembangkan perangkat lunak sebagai hobi.
Profesional di bidang teknik, ekonomi, manajemen dan bidang lainnya mengembangkan
perangkat lunak untuk membantu mereka dalam pekerjaan mereka, untuk melakukan
perhitungan, meringkas kegiatan penelitian dan survei, dan sebagainya.
Profesional pengembangan perangkat lunak (sistem analis dan programer) mengembangkan
produk perangkat lunak atau firmware sebagai tujuan karir profesional

Mari kita mulai dengan pemeriksaan lingkungan pengembangan perangkat lunak profesional dan
pemeliharaan (selanjutnya disebut "lingkungan SQA"), karena merupakan pertimbangan utama dalam
pengembangan metodologi SQA dan pelaksanaannya.
Karakteristik utama dari lingkungan ini adalah sebagai berikut:
1. Kondisi Kontrak. Sebagai hasil dari komitmen dan kondisi yang ditentukan dalam kontrak antara
pengembang software dan pelanggan, kegiatan pengembangan perangkat lunak dan
pemeliharaan perlu untuk mengatasi:
a. Harus memenuhi daftar persyaratan fungsional perangkat lunak yang akan
dikembangkan dan pemeliharaannya.
b. Anggaran proyek.
c. Jadwal proyek.
Para manajer proyek pengembangan perangkat lunak dan pemeliharaan perlu menginvestasikan
sejumlah besar usaha dalam pengawasan kegiatan dalam rangka memenuhi persyaratan
kontrak.
2. Ketaatan pada hubungan pelanggan-pemasok. Selama proses pengembangan perangkat lunak
dan pemeliharaan, kegiatan berada di bawah pengawasan dari para pelanggan. Tim proyek
harus bekerja sama terus menerus dengan pelanggan: untuk mempertimbangkan perubahan
atas permintaannya, untuk mendiskusikan kritik tentang berbagai aspek proyek, dan untuk
mendapatkan persetujuan untuk perubahan yang diprakarsai oleh tim pengembangan. Hubungan
seperti biasanya tidak ada ketika perangkat lunak dikembangkan bukan oleh profesional.
3. Diperlukan kerja sama tim. Tiga faktor biasanya memotivasi pembentukan tim proyek dan bukan
menetapkan proyek untuk satu profesional:
Persyaratan Jadwal. Dengan kata lain, beban kerja yang dilakukan selama periode
proyek membutuhkan partisipasi lebih dari setiap orang jika proyek tersebut akan selesai
tepat waktu.
Kebutuhan untuk berbagai spesialisasi dalam rangka untuk melaksanakan proyek
tersebut.
Keinginan untuk mendapatkan manfaat dari saling mendukung secara profesional dan
review untuk peningkatan kualitas proyek.
4. Kerjasama dan koordinasi dengan tim perangkat lunak lain. Pada proyek-proyek yang besar,
dikerjakan oleh lebih dari satu tim adalah suatu peristiwa yang sangat umum dalam industri
perangkat lunak. Dalam kasus ini, mungkin diperlukan kerjasama dengan:
tim pengembangan perangkat lunak lainnya dalam organisasi yang sama.
tim pengembangan Hardware di organisasi yang sama.
Perangkat lunak dan tim pengembangan perangkat keras dari pemasok lain.
Pelanggan perangkat lunak dan tim pengembangan perangkat keras yang mengambil
bagian dalam pengembangan proyek.

5. Antarmuka dengan sistem perangkat lunak lain. Saat ini, sistem perangkat lunak biasanya
mencakup antarmuka dengan paket perangkat lunak lain. Antarmuka ini memungkinkan data
dalam bentuk elektronik mengalir antara sistem perangkat lunak, bebas dari memasukkan dalam
data diproses oleh sistem perangkat lunak lain. Satu dapat mengidentifikasi jenis utama berikut
interface:
Masukan interface, di mana sistem perangkat lunak lainnya mengirimkan data ke sistem
perangkat lunak Anda.
Output interface, dimana sistem perangkat lunak Anda mentransmisikan data diproses ke
sistem perangkat lunak lain.
Input dan output antarmuka untuk panel kontrol mesin, seperti dalam medis dan
laboratorium sistem kendali, peralatan pengolahan logam, dll.
6. Kebutuhan untuk terus melaksanakan proyek meskipun perubahan anggota tim. Hal ini cukup
umum bagi anggota tim untuk keluar dari tim selama periode pengembangan proyek, apakah
karena promosi untuk pekerjaan yang lebih tinggi, ganti posisi di kantor, transfer ke kota lain, dan
sebagainya.
Pemimpin tim kemudian harus mengganti anggota tim baik dengan karyawan lain atau dengan
karyawan yang baru direkrut. Tidak peduli berapa banyak usaha diinvestasikan dalam pelatihan
anggota tim baru, "show must go on", sehingga jadwal proyek yang semula tidak akan berubah.
7. Kebutuhan untuk terus melakukan pemeliharaan perangkat lunak untuk periode yang dapat
diperpanjang. Pelanggan yang memesan atau membeli sistem perangkat lunak berharap untuk
terus memanfaatkannya untuk jangka panjang, biasanya untuk 5-10 tahun. Selama periode
pelayanan, kebutuhan untuk pemeliharaan akhirnya akan muncul. Dalam kebanyakan kasus,
pengembang diwajibkan memberikan layanan ini secara langsung. Pelanggan internal, dalam
kasus di mana perangkat lunak telah dikembangkan, berbagi harapan yang sama tentang
pemeliharaan perangkat lunak selama masa layanan dari sistem perangkat lunak.
Karakteristik lingkungan menciptakan kebutuhan bagi upaya manajerial yang intensif dan
berkesinambungan sejajar dengan upaya profesional yang harus diinvestasikan untuk menjamin
kualitas proyek, dengan kata lain untuk memastikan keberhasilan proyek.
Sebuah ringkasan dari karakteristik utama dari lingkungan SQA ditampilkan dalam Bingkai 1.2.

Beberapa pengembang perangkat lunak maupun pengembang firmware tidak mentaati kontrak formal
atau hubungan formal pelanggan-pemasok, seperti yang disebutkan dalam dua karakteristik lingkungan
pertama SQA.

Sumber: Software Quality Assurance From Theory To Implementation By Daniel Galin


Terjemahan: Dadang Latif, M.Kom

Anda mungkin juga menyukai