Konsep Dasar Software Quality Assurance
Istilah Quality Assurance pasti sudah tidak asing lagi di telinga kita. Beberapa bidang industri juga menggunakan istilah tersebut untuk menjamin standar kualitas suatu produk. Tetapi, sebenarnya Quality Assurance itu apa sih? Tanpa buang-buang waktu lagi, yuk simak penjelasan di bawah ini untuk mengenal konsep dasar Quality Assurance dalam lingkup software.
Apa itu Quality?
Quality Assurance selalu berkaitan dengan suatu kualitas. Sebenarnya apa sih Quality itu sendiri? Secara umum, Quality atau kualitas (Bahasa Indonesia) adalah tolak ukur penilaian suatu objek yang biasanya dinyatakan dalam baik atau buruk. Bila konteksnya dalam dunia QA, inti dari kualitas adalah sesuai dengan kegunaan atau tujuannya. Hal tersebut berkaitan dengan pemenuhan requirements dan expectations dari customer yang berhubungan dengan fungsionalitas, desain, keandalan, waktu, & harga suatu produk.
Apa itu Quality Assurance ?
Quality Assurance a.k.a QA adalah suatu proses sistematis untuk memeriksa apakah software tersebut sudah sesuai dengan standar kualitas dan requirements yang telah ditentukan. Seorang QA berfokus pada peningkatan proses untuk memberikan produk yang berkualitas kepada customer. Suatu organisasi harus memastikan, bahwa prosesnya efisien dan efektif sesuai dengan standar kualitas yang ditentukan untuk software product. Biasanya QA juga dikenal sebagai QA Testing.
Apa yang dilakukan seorang Quality Assurance ?
- Mengidentifikasi kelemahan dan ketidakkonsistenan dalam produk di semua tahap proyek.
- Membantu mendefinisikan persyaratan proyek.
- Memberikan informasi yang komprehensif tentang tingkat kualitas suatu produk.
- Uji produk selama semua fase siklus pengembangan perangkat lunak (SDLC).
Oleh karena itu, dapat disimpulkan bahwa Peran dari seorang Quality Assurance adalah memastikan kualitas software bagus dan mendukung stakeholder dalam klasifikasi kriteria dan resiko dalam pengembangan. Seorang QA dibutuhkan mulai tahap awal hingga tahap akhir proses Software Development Life Cycle. Tentu saja dalam tahap testing mempunyai life cycle-nya sendiri yang biasanya disebut dengan Software Testing Life Cycle.
Kenapa Quality Assurance itu penting?
- Bisnis yang aman. Melindungi flow bisnis suatu produk. Sehingga dapat meminimalisir tingkat kesalahan yang disebabkan oleh sistem.
- Hemat. Memperbaiki bug lebih mahal daripada mencegahnya. Memperbaiki satu bug dapat berdampak pada hal yang lain, sehingga dapat menambah masalah dengan cepat.
- Meminimalisir biaya perbaikan bug perangkat lunak
- Melindungi reputasi organisasi. Jika meluncurkan suatu produk dan pengguna memiliki pengalaman yang buruk, maka akan sangat sulit untuk meyakinkan mereka bahwa masalahnya sudah hilang dan mereka dapat menggunakan produk itu lagi.
- Kualitas produk terjamin. Tanpa mengujinya dari segala sisi, produk mungkin tidak akan berfungsi dengan baik atau tidak berfungsi sama sekali. Menguji hal-hal membutuhkan pengetahuan teoretis, sehingga sulit untuk memastikan kualitas jika kita bukan seorang profesional.
QA vs QC
Banyak orang berpikir bahwa QA dan QC adalah sama, tetapi ini tidak benar. Keduanya terkait erat dan kadang-kadang sangat sulit untuk mengidentifikasi perbedaannya. Faktanya keduanya terkait satu sama lain tetapi mereka berbeda dalam asal-usulnya. QA dan QC keduanya adalah bagian dari Quality Management namun QA berfokus pada pencegahan defect sementara QC berfokus pada mengidentifikasi defect.
SQA vs Software Testing
Di bawah ini merupakan perbedaan Software Quality Assurance dengan Software Testing.
Aspek Penentu Software Berkualitas
Aspek penentu software dapat dikatakan berkualitas ada 2 hal yaitu, segi internal dan eksternal. Berikut ini penjelasan singkatnya :
- Internal → kode.
- Eksternal → fungsionalitas , kinerja software, dan ketepatgunaan manfaat dari pembuatan software tersebut.
Bagaimana software dapat dikatakan berkualitas?
Terdapat tiga karakteristik software yang berkualitas yaitu operasional, transisi, dan revisi. Ketiga karakteristik tersebut merupakan faktor-faktor yang menentukan kualitas dari suatu software.
- Karakteristik Operasional (Operational Characteristics)
- Correctness → sesuai spesifikasi kebutuhan pelanggan.
- Usability/Learnability → mudah digunakan.
- Integrity → tidak mempengaruhi jalannya/kinerja perangkat lunak yang lain.
- Reliability → tidak memiliki cacat/cela/kekurangan/kerusakan dan tidak gagal saat dieksekusi.
- Efficiency → terkait cara perangkat lunak menggunakan sumber daya seperti memanfaatkan ruang penyimpanan secara efektif dan menjalankan perintah sesuai kebutuhan waktu yang diinginkan.
- Security → data maupun perangkat keras tempat berjalannya perangkat lunak harus aman.
- Safety → tidak berbahaya bagi lingkungan maupun kehidupan.
2. Karakteristik Transisi (Transition Characteristics)
- Interoperability → perangkat lunak dapat bertukar informasi dengan perangkat lunak lain dan memanfaatkan informasi secara transparan.
- Reusability → kode-kode perangkat lunak dapat digunakan kembali untuk tujuan lain seperti membangun perangkat lunak lain.
- Portability → perangkat lunak dapat menjalankan fungsi sama baiknya pada berbagai lingkungan dan platform (sistem operasi yang berbeda).
3. Karakteristik Revisi (Revision Characteristics)
- Maintainability → mudah dalam pemeliharaannya.
- Flexibility → perubahan dalam perangkat lunak mudah dilakukan.
- Extensibility → mudah menambahkan fungsionalitas/fitur perangkat lunak.
- Scalability → dapat di-upgrade untuk menangani lebih banyak pekerjaan atau pengguna.
- Testability → mudah dalam pengujian.
- Modularity → jika perangkat lunak dapat dibagi menjadi bagian independen terpisah (unit atau modul) yang dapat dimodifikasi, diuji secara terpisah, perangkat lunak tersebut memiliki modularitas tinggi.
“Quality is never an accident. It is always the result of intelligent effort.”
John Ruskin
Referensi :