Bab 12 : Software Quality
Nama : Mutia Ardelia Rokhima
NIM : 240605110075
Bab 12 : Software Quality
Bagian 1 : Dasar-Dasar Software Quality
A.
Konsep dan Peran Software Quality
1.
Definisi Software Quality dan
Perannya dalam Pengembangan Perangkat Lunak
Software
Quality adalah tingkat kualitas suatu perangkat lunak dalam memenuhi kebutuhan
pengguna, berjalan dengan baik, aman digunakan, mudah dipelihara, serta mampu
bekerja secara efektif sesuai tujuan yang diharapkan. Kualitas perangkat lunak tidak hanya dilihat dari tampilan aplikasi, tetapi
juga dari performa, keandalan, keamanan, dan kemudahan penggunaannya.
Dalam pengembangan perangkat lunak, software quality memiliki peran penting
karena membantu memastikan sistem dapat digunakan secara optimal, meminimalkan
kesalahan, serta meningkatkan kepuasan pengguna. Selain itu, kualitas perangkat
lunak juga membantu tim pengembang dalam melakukan pemeliharaan dan
pengembangan sistem di masa mendatang.
2.
Tiga Manfaat Utama Penerapan Kualitas Perangkat Lunak
1.
Meningkatkan Kepuasan Pengguna
Sistem yang
stabil, cepat, dan mudah digunakan akan membuat pengguna merasa nyaman dan
percaya terhadap aplikasi.
2.
Mengurangi Risiko Kesalahan dan
Kerugian
Pengujian dan pengelolaan kualitas dapat membantu menemukan bug
atau celah keamanan lebih awal sehingga mengurangi kemungkinan kegagalan sistem.
3.
Mempermudah Pemeliharaan dan
Pengembangan Sistem
Perangkat lunak yang memiliki kualitas baik lebih mudah diperbaiki,
diperbarui, dan dikembangkan sesuai kebutuhan baru.
3.
Analisis Pentingnya Manajemen Kualitas pada Proyek Perangkat Lunak
Studi Kasus: Aplikasi E-Commerce yang Sering Mengalami Crash Saat
Peak Season
|
Aspek Kualitas |
Deskripsi |
Dampak pada Sistem |
|
Keandalan (Reliability) |
Sistem harus mampu berjalan secara stabil
meskipun diakses banyak pengguna dalam waktu bersamaan. |
Jika sistem sering crash,
pengguna tidak dapat melakukan transaksi sehingga menurunkan kepercayaan
pelanggan. |
|
Performa (Performance) |
Aplikasi harus memiliki waktu respons yang
cepat dan mampu menangani lonjakan trafik saat peak season. |
Sistem menjadi lambat, transaksi gagal, dan
pengguna beralih ke platform lain. |
|
Keamanan (Security) |
Sistem harus melindungi data pengguna
seperti akun, password, dan informasi pembayaran. |
Risiko kebocoran data dan serangan siber
dapat merugikan perusahaan maupun pelanggan. |
Bagian 2 : Standar dan Metrik
Kualitas Perangkat Lunak
A.
Standar Kualitas Perangkat Lunak
1.
Pentingnya Standar Kualitas Perangkat Lunak dalam Industri Teknologi
Standar kualitas perangkat lunak penting karena menjadi pedoman dalam
pengembangan sistem agar perangkat lunak memiliki kualitas yang baik, aman,
stabil, dan sesuai kebutuhan pengguna. Dengan adanya standar, proses
pengembangan dapat dilakukan secara lebih terstruktur sehingga meminimalkan
kesalahan dan meningkatkan efisiensi kerja tim pengembang.
Selain itu, standar kualitas membantu perusahaan menjaga performa sistem,
meningkatkan kepuasan pengguna, serta mempermudah proses evaluasi dan
pemeliharaan perangkat lunak. Dalam industri teknologi, penerapan standar juga
penting untuk meningkatkan kepercayaan pelanggan terhadap layanan yang
diberikan.
2.
Tiga Standar Kualitas Perangkat
Lunak
a.
ISO/IEC 25010
ISO/IEC 25010 merupakan standar internasional yang digunakan untuk menilai
kualitas perangkat lunak berdasarkan beberapa karakteristik utama, seperti
keandalan, keamanan, performa, kompatibilitas, dan kemudahan penggunaan.
Standar ini membantu pengembang memastikan bahwa aplikasi tidak hanya berfungsi
dengan baik, tetapi juga nyaman dan aman digunakan oleh pengguna.
b.
CMMI (Capability Maturity Model
Integration)
CMMI adalah model yang digunakan untuk meningkatkan kualitas proses
pengembangan perangkat lunak dalam suatu organisasi. CMMI berfokus pada
pengelolaan proses agar lebih terstruktur, konsisten, dan efektif. Model ini
memiliki beberapa tingkat kematangan (maturity level) yang menunjukkan
seberapa baik organisasi mengelola proses pengembangan perangkat lunak.
c.
Six Sigma
Six Sigma merupakan metode peningkatan kualitas yang bertujuan mengurangi
kesalahan atau cacat dalam proses kerja. Dalam pengembangan perangkat lunak,
Six Sigma digunakan untuk meningkatkan efisiensi sistem dan meminimalkan bug
atau error. Metode ini menggunakan pendekatan berbasis data untuk menganalisis
dan memperbaiki kualitas proses secara berkelanjutan.
3.
Tabel Tujuan dan Contoh Penerapan
Standar
|
Standar Kualitas |
Tujuan |
Contoh Penerapan |
|
ISO/IEC 25010 |
Menilai kualitas perangkat lunak berdasarkan
karakteristik tertentu seperti keamanan, performa, dan keandalan. |
Pengujian aplikasi mobile banking agar aman dan memiliki waktu
respons cepat. |
|
CMMI |
Meningkatkan kualitas proses pengembangan
perangkat lunak agar lebih terstruktur dan konsisten. |
Perusahaan software membuat prosedur pengembangan dan pengujian
sistem secara teratur. |
|
Six Sigma |
Mengurangi kesalahan dan meningkatkan
efisiensi proses pengembangan perangkat lunak. |
Analisis bug pada aplikasi e-commerce untuk mengurangi kegagalan
transaksi. |
4.
Studi Kasus: Sistem Perbankan Digital yang Harus Memenuhi Regulasi Keamanan
Data
Standar kualitas yang paling sesuai untuk sistem perbankan digital adalah
ISO/IEC 25010 karena standar ini memiliki fokus pada aspek keamanan (security),
keandalan (reliability), dan performa sistem. Sistem perbankan digital
harus mampu melindungi data nasabah, menjaga kestabilan layanan transaksi,
serta memastikan aplikasi tetap berjalan dengan baik dalam berbagai kondisi.
ISO/IEC 25010 membantu organisasi mengevaluasi kualitas perangkat lunak
berdasarkan karakteristik tersebut sehingga risiko kebocoran data dan gangguan
sistem dapat diminimalkan. Selain itu, standar ini juga mendukung peningkatan
pengalaman pengguna karena aplikasi menjadi lebih aman, cepat, dan mudah
digunakan.
B.
Metrik Pengukuran Kualitas Perangkat
Lunak
1.
Konsep Metrik dalam Evaluasi Kualitas Perangkat Lunak
Metrik perangkat lunak adalah ukuran yang digunakan untuk menilai kualitas
suatu sistem atau proses pengembangan perangkat lunak. Metrik membantu
pengembang dan perusahaan mengetahui apakah perangkat lunak sudah memenuhi
standar kualitas yang diharapkan.
Dengan menggunakan metrik, proses evaluasi dapat dilakukan secara lebih
objektif karena hasilnya berdasarkan data dan pengukuran. Selain itu, metrik
juga membantu dalam mendeteksi masalah, meningkatkan performa sistem, serta
mendukung pengambilan keputusan dalam pengembangan perangkat lunak.
2.
Lima Metrik Utama untuk Mengukur Kualitas Perangkat Lunak
1.
Defect Density
Mengukur jumlah
cacat atau bug dalam perangkat lunak berdasarkan ukuran kode program.
2.
Code Maintainability Index
Mengukur
tingkat kemudahan kode program untuk dipelihara, diperbaiki, atau dikembangkan
kembali.
3.
Response Time
Mengukur waktu yang dibutuhkan sistem untuk merespons permintaan
pengguna.
4.
MTBF (Mean Time Between Failures)
Mengukur
rata-rata waktu sistem dapat berjalan sebelum terjadi kegagalan.
5.
Reliability Rate
Mengukur
tingkat keandalan perangkat lunak dalam menjalankan fungsi tanpa mengalami
error.
3.
Tabel Deskripsi dan Alat Bantu Pengukuran
|
Metrik Kualitas |
Deskripsi |
Alat Bantu yang Digunakan |
|
Defect Density |
Mengukur jumlah bug atau error dalam
perangkat lunak berdasarkan ukuran kode program. |
SonarQube, Jira |
|
Code Maintainability Index |
Mengukur kemudahan kode untuk dipelihara dan
dikembangkan kembali. |
Visual Studio Code Metrics, SonarQube |
|
Response Time |
Mengukur kecepatan sistem dalam memberikan
respons kepada pengguna. |
Apache JMeter, LoadRunner |
|
MTBF |
Mengukur rata-rata waktu sistem berjalan
sebelum terjadi kegagalan. |
Nagios, Zabbix |
|
Reliability Rate |
Mengukur tingkat keandalan sistem dalam
beroperasi tanpa error. |
Grafana, New Relic |
Bagian 3: Teknik Verifikasi dan Validasi Kualitas Perangkat Lunak
A.
Teknik Verifikasi Perangkat Lunak
1.
Konsep Verifikasi Perangkat Lunak dan Perbedaannya dengan Validasi
Verifikasi perangkat lunak adalah proses pemeriksaan untuk memastikan bahwa
perangkat lunak dikembangkan sesuai spesifikasi, desain, dan kebutuhan yang
telah ditentukan sebelumnya. Verifikasi berfokus pada proses pengembangan dan
bertujuan menemukan kesalahan sejak awal.
Sedangkan validasi adalah proses untuk memastikan bahwa perangkat lunak
benar-benar sesuai dengan kebutuhan pengguna dan dapat digunakan dengan baik
dalam kondisi nyata.
Perbedaan utama keduanya terletak pada fokus pengujiannya. Verifikasi
memeriksa apakah sistem dibuat dengan benar, sedangkan validasi memeriksa
apakah sistem yang dibuat sudah sesuai kebutuhan pengguna.
2.
Tiga Teknik Verifikasi Perangkat
Lunak
1.
Static Analysis
Teknik
pemeriksaan kode program tanpa menjalankan aplikasi untuk menemukan kesalahan,
bug, atau kelemahan pada kode.
2.
Code Review
Proses
pemeriksaan kode program oleh sesama pengembang untuk memastikan kualitas kode
dan mengurangi kemungkinan kesalahan.
3.
Unit Testing
Teknik
pengujian pada bagian kecil atau unit tertentu dari program untuk memastikan
setiap fungsi berjalan dengan benar.
3.
Tabel Teknik Verifikasi dan Contoh Penerapan
|
Teknik Verifikasi |
Deskripsi |
Contoh Penerapan |
|
Static Analysis |
Pemeriksaan kode program tanpa menjalankan
aplikasi untuk mendeteksi kesalahan sejak awal. |
Menggunakan SonarQube untuk mendeteksi bug
dan kode yang tidak efisien. |
|
Code Review |
Pemeriksaan kode oleh pengembang lain untuk
meningkatkan kualitas dan konsistensi kode. |
Tim developer memeriksa kode sebelum
digabungkan ke sistem utama. |
|
Unit Testing |
Pengujian pada fungsi atau modul kecil
secara terpisah. |
Menguji fungsi login agar validasi username
dan password berjalan dengan benar. |
4.
Studi Kasus: Aplikasi Mobile yang Mengalami Banyak Bug Setelah Rilis
Teknik verifikasi yang paling sesuai adalah Unit Testing karena teknik ini
dapat menguji setiap fungsi aplikasi secara detail sebelum aplikasi dirilis.
Dengan melakukan pengujian pada setiap modul, bug dapat ditemukan lebih awal
sehingga mengurangi risiko error saat aplikasi digunakan pengguna.
Selain itu, kombinasi Unit Testing dan Code Review juga penting agar
kualitas kode lebih terjamin dan kesalahan logika dapat diminimalkan sebelum
aplikasi dipublikasikan.
B.
Teknik Validasi Perangkat Lunak
1.
Konsep Validasi Perangkat Lunak dan Cara Memastikan Produk Memenuhi
Kebutuhan Pengguna
Validasi perangkat lunak adalah proses pengujian untuk memastikan bahwa
sistem yang dikembangkan sudah sesuai dengan kebutuhan dan harapan pengguna.
Validasi dilakukan dengan menguji fungsi, fitur, dan performa aplikasi dalam
kondisi nyata agar sistem dapat digunakan dengan baik.
Proses validasi membantu memastikan bahwa perangkat lunak tidak hanya
berjalan sesuai spesifikasi teknis, tetapi juga benar-benar mampu menyelesaikan
kebutuhan pengguna. Dengan validasi, kesalahan penggunaan, kekurangan fitur,
maupun masalah pada alur sistem dapat diketahui sebelum aplikasi digunakan
secara luas.
2.
Tiga Teknik Validasi Perangkat Lunak
1.
Functional Testing
Pengujian yang
dilakukan untuk memastikan setiap fungsi dalam aplikasi berjalan sesuai
kebutuhan.
2.
System Testing
Pengujian
keseluruhan sistem untuk memastikan seluruh komponen dapat bekerja dengan baik
secara terintegrasi.
3.
User Acceptance Testing (UAT)
Pengujian yang
dilakukan oleh pengguna atau pihak terkait untuk memastikan sistem sudah sesuai
dengan kebutuhan bisnis dan siap digunakan.
3.
Tabel Kelebihan dan Kekurangan Teknik Validasi
|
Teknik Validasi |
Kelebihan |
Kekurangan |
|
Functional Testing |
Memastikan setiap fitur berjalan sesuai
fungsi yang diharapkan. |
Tidak menguji keseluruhan sistem secara
mendalam. |
|
System Testing |
Menguji seluruh sistem secara menyeluruh dan
terintegrasi. |
Membutuhkan waktu dan sumber daya yang lebih besar. |
|
User Acceptance Testing (UAT) |
Memastikan aplikasi sesuai kebutuhan
pengguna nyata. |
Hasil pengujian dapat dipengaruhi
subjektivitas pengguna. |
4.
Studi Kasus: Sistem Manajemen Rumah Sakit yang Akan Diterapkan Secara
Nasional
Teknik validasi yang paling sesuai adalah User Acceptance Testing (UAT)
karena sistem rumah sakit akan digunakan oleh banyak pihak seperti dokter,
perawat, petugas administrasi, dan pasien. Oleh karena itu, sistem harus
benar-benar sesuai dengan kebutuhan pengguna di lingkungan kerja nyata.
Melalui UAT, pengguna dapat mencoba langsung sistem sebelum diterapkan
secara nasional sehingga kesalahan pada alur pelayanan, pengelolaan data
pasien, maupun proses administrasi dapat diketahui lebih awal. Selain itu,
System Testing juga penting dilakukan agar seluruh modul dalam sistem rumah
sakit dapat terintegrasi dengan baik dan berjalan secara stabil.
Bagian 4 : Alat Bantu dalam
Evaluasi Kualitas Perangkat Lunak
A.
Penggunaan Alat Bantu Evaluasi
Kualitas
1.
Identifikasi tiga alat bantu yang digunakan dalam evaluasi kualitas
perangkat lunak, seperti SonarQube, Selenium, dan JIRA.
a.
SonarQube
Platform
analisis kualitas kode secara statis (static analysis) yang mendukung 30+
bahasa pemrograman. Bekerja dengan cara memeriksa kode tanpa menjalankannya,
lalu mendeteksi bug, kerentanan keamanan, dan code smells secara otomatis.
b.
Selenium
Framework
otomatisasi pengujian browser yang mensimulasikan interaksi pengguna nyata pada
aplikasi web seperti klik tombol, isi formulir, navigasi halaman,
dan scroll.
c.
JIRA
Platform
manajemen proyek dan pelacakan isu buatan Atlassian yang digunakan untuk
mencatat, memprioritaskan, dan melacak siklus hidup bug dari awal ditemukan
hingga selesai diperbaiki.
2.
Lengkapi tabel berikut dengan fitur utama dan kegunaan dari masing-masing
alat bantu:
|
Alat Bantu |
Fitur Utama |
Kegunaan |
|
SonarQube |
Deteksi bug, vulnerability, dan code smells
secara otomatis; pengukuran code coverage, duplikasi kode, dan technical
debt; Quality Gate yang bisa dikonfigurasi untuk memblokir kode berkualitas
rendah; dashboard tren kualitas dari waktu ke waktu; integrasi native dengan
CI/CD (Jenkins, GitHub Actions, GitLab CI). |
Digunakan dalam pipeline CI/CD untuk
memastikan setiap kode yang masuk memenuhi standar kualitas yang ditetapkan. |
|
Selenium |
Framework otomatisasi pengujian browser yang
mendukung berbagai browser (Chrome, Firefox, Safari, Edge) dan bahasa
pemrograman (Java, Python, C#, JavaScript); WebDriver API untuk simulasi
interaksi pengguna; integrasi dengan framework testing (JUnit, TestNG,
pytest); Selenium Grid untuk eksekusi test paralel di berbagai browser dan OS
sekaligus. |
Digunakan untuk pengujian fungsional dan
regresi otomatis pada aplikasi web, mensimulasikan tindakan pengguna nyata
(klik, input, navigasi, scroll). |
|
JIRA |
Issue & bug tracking dengan prioritas,
label, dan assignee; workflow kustom untuk siklus hidup bug; dashboard dan
laporan kualitas (bug trends, open vs closed); integrasi dengan SonarQube dan
Selenium untuk menghubungkan defect otomatis dengan issue tracker; Agile
boards untuk mengelola bug backlog dalam Sprint. |
Menjadi pusat pengelolaan defect lifecycle
dari pelaporan bug oleh QA atau pengguna, assignment ke developer, tracking
progress perbaikan, hingga verifikasi penyelesaian. |
3.
Jika Anda bekerja dalam tim pengembang perangkat lunak yang menerapkan
Continuous Integration/Continuous Deployment (CI/CD), alat bantu mana yang akan
Anda pilih? Jelaskan
alasannya.
Alat bantu yang
dipilih adalah SonarQube sebagai alat utama, dengan Selenium sebagai komplemen.
Karena dalam konteks CI/CD, kecepatan feedback adalah segalanya, SonarQube
terintegrasi langsung ke pipeline CI setiap commit secara otomatis dianalisis
dalam hitungan menit, dan Quality Gate dapat dikonfigurasi untuk menolak merge
jika ditemukan vulnerability kritis atau coverage turun di bawah threshold.
Selenium melengkapi dengan automated regression testing setiap deployment ke
staging environment otomatis menjalankan suite test Selenium untuk memastikan
tidak ada fitur yang rusak.
B.
Praktik Terbaik dalam Manajemen Kualitas Perangkat Lunak
1.
Jelaskan tiga praktik terbaik dalam
penerapan manajemen kualitas perangkat lunak, seperti Automated Testing, Code
Review Practices, dan Continuous Monitoring.
a.
Automated Testing
Praktik
membangun suite pengujian otomatis yang berjalan tanpa intervensi manusia
mencakup unit test, integration test, dan end-to-end test.
b.
Code Review Practice
Proses
sistematis di mana setiap perubahan kode wajib diperiksa oleh minimal satu
developer lain sebelum diintegrasikan.
c.
Continuous Monitoring
Praktik
memantau performa, keandalan, dan kesehatan sistem secara real-time di
lingkungan produksi menggunakan tools APM (Application Performance Management)
dan alerting.
2.
Berdasarkan studi kasus berikut, tentukan strategi terbaik dalam
implementasi manajemen kualitas perangkat lunak:
Startup
Teknologi yang Ingin Meningkatkan Kecepatan Rilis Produk Tanpa Mengorbankan
Kualitas
|
Praktik Kualitas |
Deskripsi |
Manfaat |
|
Automated Testing |
Startup membangun test pyramid: 70%
unit tests (cepat, murah), 20% integration tests (memastikan komponen bekerja
bersama), 10% end-to-end tests (memvalidasi alur kritis seperti registrasi,
pembayaran). Semua
berjalan otomatis di pipeline CI setiap kali developer push kode. |
Startup dapat merilis 2–3 kali
seminggu dengan keyakinan bahwa fitur-fitur sebelumnya tidak rusak. |
|
Code Review Practices |
Setiap PR wajib di-review minimal 1 developer lain sebelum
merge ke main. Tim menetapkan checklist code review yang ringkas dan focus. |
Kualitas kode meningkat secara
konsisten karena empat mata lebih baik dari dua. |
|
Continuous Monitoring |
Startup mengimplementasikan Datadog (atau New Relic) dengan
tiga dashboard utama: Error Rate — alert jika >1% request gagal dalam 5
menit terakhir; Response Time — alert jika p95 response time >500ms;
Business Metrics — alert jika conversion rate turun >20% dari baseline.
Setiap alert dikirim ke Slack channel #alerts dan PagerDuty untuk on-call
engineer. |
Tim mengetahui masalah produksi dalam
hitungan menit, bukan jam atau hari. Lebih dari 80% insiden terdeteksi oleh sistem monitoring
sebelum pengguna melaporkannya ke customer support. |
Kesimpulan dan Refleksi
1.
Kesimpulan
Kualitas
perangkat lunak bukan sesuatu yang ditambahkan di akhir proyek, melainkan
properti yang harus dibangun sejak awal pengembangan karena semakin terlambat
masalah ditemukan maka semakin besar biaya perbaikannya. Standar seperti
ISO/IEC 25010, CMMI, dan Six Sigma memberikan acuan objektif bagi semua pihak,
sementara metrik seperti Defect Density, MTBF, Response Time, dan Code
Maintainability Index mengubah kualitas dari konsep abstrak menjadi angka yang
dapat dipantau dan ditindaklanjuti. Verifikasi dan validasi harus berjalan
beriringan sepanjang SDLC verifikasi memastikan sistem dibangun dengan benar,
validasi memastikan sistem yang benar yang dibangun didukung oleh alat bantu
seperti SonarQube, Selenium, dan JIRA yang mengotomatiskan proses quality
assurance, namun tetap membutuhkan keahlian dan pertimbangan manusia untuk
menghasilkan perangkat lunak yang benar-benar berkualitas. Pemahaman mendalam
tentang Software Quality membantu menghasilkan perangkat lunak yang lebih
stabil dan andal karena setiap keputusan desain, setiap baris kode, dan setiap
proses pengembangan dijalankan dengan kesadaran akan dampaknya terhadap
kualitas akhir produk.
2.
Refleksi Pribadi
Mengubah
persepsi bahwa "quality assurance adalah pekerjaan tim QA" menjadi
"kualitas adalah tanggung jawab seluruh tim." Dalam banyak
organisasi, developer merasa tugasnya selesai saat kode berjalan di mesinnya
sendiri, dan QA dianggap sebagai "filter terakhir" yang akan
menemukan semua bug. Pola pikir ini menciptakan siklus tidak sehat: developer
tidak menulis test karena "itu tugas QA", QA kewalahan karena
menemukan terlalu banyak bug terlambat, dan produk berkualitas rendah tetap
dirilis karena deadline tidak bisa diundur. Mengubah budaya ini membutuhkan
kepemimpinan yang tegas dan konsisten. Konsep yang dipelajari dapat langsung
diaplikasikan dengan menambahkan SonarQube ke pipeline CI untuk mendapatkan
feedback kualitas kode otomatis, menetapkan aturan bahwa setiap fitur baru
harus disertai unit test sebelum PR bisa di-merge, membuat dashboard monitoring
sederhana menggunakan Grafana + Prometheus untuk memantau error rate dan
response time produksi, menjadwalkan UAT mini di akhir setiap sprint dengan
mengundang 2–3 pengguna nyata untuk mencoba fitur baru dan menggunakan JIRA
untuk melacak tren defect secara mingguan dan menggunakannya sebagai bahan
diskusi di Sprint Retrospective untuk perbaikan proses berkelanjutan.
Komentar
Posting Komentar