Bab IX
Pengujian dan Pengelolaan Perangkat Lunak
9.1 Pengantar
Topik ini merupakan hal penting dalam jaminan kualitas perangkat lunak.
Pentingnya pengujian perangkat lunak dan metode implementasi atau pengelolaan
perangkat lunak dan implikasinya yang mengacu pada kualitas perangkat lunak.
Aspek ini tidak bisa ditawar-tawar karena melibatkan sederetan aktivitas produksi di
mana peluang terjadinya kesalahan manusia sangat besar dan karena
ketidakmampuan manusia untuk melakukan dan berkomunikasi dengan sempurna
maka pengembangan perangkat lunak perlu diiringi dengan aktivitas jaminan
kualitas.
Meningkatnya visibilitas (kemampuan) perangkat lunak sebagai suatu elemen
sistem dan “biaya” yang muncul akibat kegagalan perangkat lunak, memotivasi
dilakukannya perencanaan yang baik melalui pengujian yang teliti. Pada dasarnya,
pengujian merupakan satu langkah dalam proses rekayasa perangkat lunak yang
dapat dianggap sebagai hal yang merusak daripada membangun.
Sejumlah aturan yang berfungsi sebagai sasaran pengujian pada perangkat
lunak adalah:
a. Pengujian adalah proses eksekusi suatu program dengan maksud menemukan
kesalahan
b. Test case yang baik adalah test case yang memiliki probabilitas tinggi untuk
menemukan kesalahan yang belum pernah ditemukan sebelumnya
c. Pengujian yang sukses adalah pengujian yang mengungkap semua kesalahan
yang belum pernah ditemukan sebelumnya
Formal
Sofware Technical
Engineering Reviews Measurement
Methods
QUALITY
Standards
& SCM Testing
Procedures &
SQA
Gambar 9.2, Mutu sebagai titik utama dalam pengembangan perangkat lunak.
Metode Software Engineering menyediakan dasar dari mutu yang mana yang
akan dipakai seperti, metode Analisa, Disain dan Konstruksi berupa tindakan untuk
meningkatkan kualitas dengan menyediakan teknik yang seragam dan hasil yang
sesuai dengan keinginan. Metode Formal Technical Reviews menolong untuk
memastikan kualitas kerja produk merupakan hasil konsekuensi dari setiap langkah
software engineering. Metode Measurement diberlakukan pada setiap elemen dari
konfigurasi perangkat lunak. Metode Standards and Procedures membantu untuk
memastikan keseragaman dan formalitas dari SQA untuk menguatkan dasar “filosofi
kualitas total”. Metode Testing menyediakan cara terakhir dari tingkat kualitas mana
yang dapat dicapai dan dengan praktis dapat mengetahui letak kesalahan. Tujuan
utama dalam pengelolaan jaminan mutu perangkat lunak adalah untuk tidak menutup
kesalahan (defects) pada perangkat lunak termasuk pada kebutuhan dari analisa
kebutuhan, desain terdokumentasi dalam spesifikasi desain, pengkodean
(implementasi), sumber sistem dan lingkungan sistem, masalah-masalah hardware
dan antarmuka terhadap perangkat lunak.
Karena sangat sulit, perlu diketahui apa yang dapat dilakukan untuk membuatnya
menjadi lebih mudah. Procedural dan menggunakannya sebagai pedoman untuk
menetapkan basis set dari jalur eksekusi.
Gambar 9.5, Grafik intensitas kegagalan sebagai fungsi dari waktu eksekusi
Fungsi diatas dapat disederhanakan menjadi
f(t) = jumlah kegagalan secara kumulatif yang diharapkan terjadi ketika
software telah diuji dalam waktu tertentu, t.
GUI atau Graphical User Interface, arsitektur client/ server, dokumentasi dan
fasilitas help dan sistem real time masing-masing membutuhkan pedoman dan
tehnik khusus untuk pengujian perangkat lunak.
Dokumentasi yang dievaluasi sering sangat banyak dan kompleks. Oleh karena itu,
hubungan kompleksitas antara produk data teknis, dokumentasi perencanaan,
pengujian kebutuhan dan tahapan unsur-unsur life cycle pengembangan yang
berbeda mengakibatkan dokumentasi ini sulit untuk dievaluasi dalam meyakinkan
semua aktivitas telah cukup dikerjakan. Dokumentasi menyediakan komunikasi antar
semua kelompok terkait dengan pengembangannya dan kendali proses proyek
tersebut.
Menurut Schweiggert perlu beberapa pertimbangan untuk masalah dokumentasi:
“Software in the application process must be constantly adapted and altered. The
maintenance programmer usually does not have the time alteration to
documentation. Often suitable tools are not available either. This causes the quality
of documentation to suffer”
Metoda tradisional untuk verifikasi kualitas, seperti checklist bisa gagal dalam proses
pengembangan software yang kompleks. Audit dan review tidak bisa dilakukan tanpa
menggunakan bantuan dan alat yang membantu mengidentifikasi pemenuhan standar
dan prosedur. Lebih dari itu, kompleksitas proses pengembangan dan perubahan
yang tak terkontrol dari unsur-unsur proses secara negatif berdampak pada kualitas.
Daur hidup pengembangan perangkat lunak yang berbeda dapat diusulkan. Hal ini
dapat memungkinkan adanya perbedaan motivasi, kekuatan dan kelemahan. Tidak
ada model lifecycle atau daur hidup yang umum disesuaikan dengan lingkungan
pengembangannya. Dalam model daur hidup tradisional, hubungan antara tahapan
unsur-unsur daur hidup pengembangan perangkat lunak yang berbeda tidaklah cukup
terwakili. Oleh karena itu, sulit untuk menguraikan efek segala perubahan dalam
kebutuhannya yang ditetapkan atas kualitas, keselamatan dan sasaran hasil dari
perangkat lunak. Lebih dari itu, keberadaan komputer dapat membantu untuk
aplikasi model proses yang tidak fleksibel dan sulit untuk ditangani karena
kekompleksitasnya. Dalam lifecycle pengembangan perangkat lunak, identifikasi
hubungan antara kelompok organisasi sangat penting untuk beberapa pertimbangan
berikut:
Pengembangan Proses harus berhadapan dengan kompleksitas dan perubahan
kebutuhan, pengujian metoda, teknologi, ukuran dan lain lain;
Kesalahan perangkat lunak yang dihasilkan baik dalam suatu tahapan proses
pengembangan software maupun sebagai alat penghubung antara dua tahapan;
Dukungan kuat dari manajemen puncak merupakan suatu faktor utama dalam
mempengaruhi proses pengembangan tersebut.
Kualitas perangkat lunak (software quality) adalah tema utama kajian dan
penelitian turun temurun dalam sejarah ilmu rekayasa perangkat lunak. Kajian
dimulai dari apa yang akan diukur (apakah proses atau produk), apakah memang
perangkat lunak bisa diukur, sudut pandang pengukur dan bagaimana menentukan
parameter pengukuran kualitas perangkat lunak. Bagaimanapun juga mengukur
kualitas perangkat lunak memang bukan pekerjaan mudah. Ketika seseorang
memberi nilai sangat baik terhadap sebuah perangkat lunak, orang lain belum tentu
mengatakan hal yang sama. Sudut pandang seseorang tersebut mungkin berorientasi
ke satu sisi masalah (misalnya tentang reliabilitas dan efisiensi perangkat lunak),
sedangkan orang lain yang menyatakan bahwa perangkat lunak itu buruk
menggunakan sudut pandang yang lain lagi (useabilitas dan aspek desain).
Kualitas perangkat lunak dapat dilihat dari sudut pandang proses pengembangan
perangkat lunak (process) dan hasil produk yang dihasilkan (product). Dan penilaian
ini tentu berorientasi akhir ke bagaimana suatu perangkat lunak dapat dikembangkan
sesuai dengan yang diharapkan oleh pengguna.
Untuk itu perlu ditentukan parameter atau atribut pengukuran. Menurut taksonomi
McCall, atribut tersusun secara hirarkis, dimana level atas (high-level attribute)
disebut faktor (factor), dan level bawah (low-level attribute) disebut dengan kriteria
(criteria). Faktor menunjukkan atribut kualitas produk dilihat dari sudut pandang
pengguna. Sedangkan kriteria adalah parameter kualitas produk dilihat dari sudut
pandang perangkat lunaknya sendiri. Faktor dan kriteria ini memiliki hubungan
sebab akibat (cause-effect). Tabel berikut menunjukkan daftar lengkap faktor dan
kriteria dalam kualitas perangkat lunak menurut McCall
Tabel 9.1, Faktor dan Kriteria Kualitas
Faktor (efek) Kualitas Kriteria Kualitas
Kemudian tahapan yang harus kita tempuh dalam pengukuran adalah sebagai
berikut:
1. Tentukan kriteria yang digunakan untuk mengukur suatu faktor
2. Tentukan bobot (w) dari setiap kriteria (biasanya 0 <= w <= 1)
3. Tentukan skala dari nilai kriteria (misalnya : 0 <= nilai kriteria <= 10)
4. Berikan nilai pada tiap criteria
5. Hitung nilai total dengan rumus
Fa = w1c1 + w2c2 + … + wncn
Untuk mempermudah pemahaman, akan diberikan sebuah contoh pengukuran
kualitas perangkat lunak dari faktor usabilitas (usability). Yang akan diukur adalah
dua buah perangkat lunak yang memiliki fungsi untuk mengkontrol peralatan
elektronik (electronic device). Perangkat lunak yang pertama bernama
TukangKontrol, sedangkan kedua bernama Caktrol. Contoh dan hasil pengukuran
dapat dilihat pada Table 9.2 dan 9.3.
Dari penghitungan yang ada di Tabel 9.3, dapat kita simpulkan bahwa dari
faktor usabilitas, kualitas dari perangkat lunak bernama TukangKontrol lebih baik
daripada Caktrol. Nilai total TukangKontrol untuk faktor usabilitas adalah 16.8,
sedangkan Caktrol adalah 10.2 (dari maksimum total nilai 20).
Gambar 9.9, Proses Praktis definisi dan control quality requirement menurut Suryn
dkk.
Pada gambar di atas, anak panah dengan garis yang tidak putus-putus
menunjukkan alur tentang " bagaimana", yaitu menanyakan tentang eksekusi
dekomposisi kebutuhan. Yang ada dalam kotak berisi tentang pertanyaan " apa " ,
yaitu menggambarkan kebutuhan apa yang diakibatkan oleh proses dekomposisi.
Sedangkan anak panah dengan garis putus-putus menandai adanya alur pokok dari
traceability kebutuhan.
Gambar 9.10, Pemetaan pengukuran kualitas software dan evaluasi fase lifecycle
software
Komponen terakhir dari hasil lifecycle quality implementation diakibatkan oleh
dua Komponen yang sebelumnya di mana pengetahuan dasar telah didapatkan.
Implementasi sekarang memerlukan aplikasi yang praktis tidak sekedar dengan
pengetahuan tersebut tetapi juga dalam proses pengembangan perangkat lunak.
9.7 Rangkuman
Penjaminan mutu perangkat lunak atau Perangkat lunak Quality Assurance
didefinisikan sebagai : kesesuaian yang diharapkan pada semua perangkat lunak
yang dibangun dalam hal fungsi yang diharapkan dan unjuk kerja, standar
pengembangan yang terdokumentasi dan karakteristik yang ditunjukkan oleh
perangkat lunak.
Software Quality Assurance atau SQA merupakan perluasan dari definisi di
atas. SQA adalah serangkaian aktifitas yang sistematik dan terencana dalam rangka
memastikan kualitas dari program aplikasi yang dibuat atau perangkat lunak yang
dikembangkan.
Prinsip dasar yang menuntun pengujian perangkat lunak, yaitu:
Semua pengujian harus dapat ditelusuri sampai ke persyaratan
pelanggan.
Pengujian harus direncanakan lama sebelum pengujian itu mulai,
Prinsip Pareto berlaku untuk pengujian perangkat lunak.
Pengujian harus mulai “dari yang kecil” dan berkembang ke pengujian
“yang besar”.
Digunakan 4 kategori yang berbeda dari tehnik disain test case: Pengujian
white-box, pengujian black-box, Integrasi Bottom-Up dan Integrasi Top-Down.
Sistem dari kualitas perangkat lunak terintegrasi dalam tiga disiplin aplikasi yaitu:
pemodelan proses pengembangan (process), pemodelan pengukuran produk
(product), dan pemodelan manajemen dan interaksi manusia (human).
Model dekomposisi yang diusulkan didasarkan pada model kualitas dari
ISO/IEC 9126 dalam konjungsi dengan standar TL 9000, dimana kontribusi dari
penggunaan QR adalah untuk menetapkan kebutuhan mutu eksternal (External
Quality Requirements), yang mana pada gilirannya berperan untuk menetapkan
kebutuhan mutu internal (Internal Quality requirements).
9.8 Soal-soal
1. Sebutkan pihak-pihak yang melaksanakan pengujian perangkat lunak.
2. Sebutkan empat langkah pengujian perangkat lunak.
3. Apa yang dimaksud dengan pengujian White Box?