Pengertian Software Quality Assurance
Quality Assurance adalah sistem terencana dari semua tindakan yang diperlukan untuk memastikan bahwa suatu barang atau produk sesuai dengan persyaratan teknis yang telah ditetapkan. Suatu kegiatan yang dirancang untuk mengevaluasi proses dimana produk dikembangkan untuk memenuhi persyaratan mutu. Software Quality Assurance adalah serangkaian kegiatan untuk menilai kecukupan proses software untuk memberikan data yang menetapkan keyakinan bahwa proses software sesuai untuk menghasilkan software dengan kualitas yang sesuai dengan tujuan yang dimaksud.
Peran dan Tanggung Jawab Software Quality Assurance
- QA Engineer: Menguji perangkat lunak untuk mendeteksi bug dan kesalahan kemudian membuat daftar defect untuk diperbaiki oleh developer. Memeriksa apakah suatu produk memenuhi persyaratan. Ada beberapa cara untuk melakukan testing yaitu manual dan automation testing.
Tanggung Jawab Manual QA Engineer:
- Menganalisis persyaratan dan menyiapkan daftar permintaan berdasarkan persyaratan tersebut.
- Menulis dan mengeksekusi kasus uji untuk mendeteksi masalah kegunaan dan kinerja.
- Melakukan pengujian eksplorasi desain dan eksekusi pengujian simultan
- Verifikasi konsistensi multi-device dan cross-platform
- Membuat laporan rinci dan memperbaiki daftar
- Berpartisipasi dalam test planning meetings dan memberikan tanggapan kepada testing team.
Tanggung Jawab QA Automation Engineer:
- Membuat skrip tes
- Melakukan tes regresi otomatis setelah pembaruan dan rilis versi software terbaru.
- Menjalankan performance test (load, stress, spike tests, dll) untuk memeriksa cara kerja software dalam kondisi ekstrem.
- Mengatur prioritas untuk skenario otomatisasi dan bekerja untuk memaksimalkan cakupan pengujian.
- Membuat dokumentasi tentang autometed testing dan memilih autometed tools baru.
- Test Analyst: Seorang analis adalah orang yang pertama memutuskan apa yang akan diuji dari suatu produk. Test analyst dapat memudahkan kehidupan QA Engineer karena mempelajari persyaratan formal dan mengkurasi pekerjaan QA Engineer. Berikut adalah tanggung jawab yang dilakukan oleh Test Analyst:
- Mempelajari dan mengklarifikasi persyaratan kepada QA Engineer.
- Menentukan apa yang akan diuji, memprioritaskan tugas, dan memantau cakupan pengujian.
- Menentukan tes khusus, merancang kasus uji, menjadwalkan pelaksanaan tes.
- Mengembangkan dokumentasi pengujan dan mengirimkannya ke pemilik produk.
- Membandingkan hasil aktual dan yang diharapkan, memeriksa apakah suatu produk memenuhi persyaratan.
- Test Architect: Test Architect membantu mempertahankan pengujian arsitektur yang dirancang dengan baik dan berkelanjutan pada kasus yang kompleks. Seorang penguji arsitek membantu dalam mencari solusi akhir yang akan memenuhi tuntutan klien dan menyelaraskan dengan sumber daya tim agar bekerja secara efiesien. Berikut adalah tanggung jawab yang dilakukan oleh Test Architect:
- Mencari cara untuk optimalisasi proses prngujian pada tingkat tinggi
- Mengidentifikasi alat dan teknologi yang selaras dengan tujuan bisnis, infrastruktur perusahaan, dan keahlian penguji.
- Memantau efektivitas pengujian memberikan pendampingan dan saran untuk meningkatkan praktek pengujian.
- Test Manager: Seorang Test Manager miliki peran kunci dalam suatu tim karena sebagai orang pertama yang mengetahui bagaimana kerja tim mempengaruhi hasil proyek. Sehingga seorang Test Manager harus bertanggung jawab penuh atas keberhasilan atau kegagalan dalam suatu proyek. Berikut adalah tanggung jawab seorang Test Manager:
- Menyiapkan strategi pengujian untuk proyek dan menentukan daftr tugas untuk semua tim.
- Mengatur metrik untuk mengukur kualitas pekerjaan dan melacak kinerja semua orang.
- Menghitung anggaran pengujian dan meperkirakan upaya.
- Mengawasi bagian pengujian dari proses kerja.
- QA Team Lead: Team Lead dapat mengambil bagian dalam proses apa pun yang telah disebutkan, namun biasanya hanya memeriksa status dan mengelola tim. Lebih banyak berurusan dengan ugas manajerial daripada tugas teknologi. Berikut adalah tanggung jawab yang dilakukan oleh QA Team Lead:
- Memperkerjakan staf engineer, analyst, architect, dan anggota lainnya.
- Mengawasi proses dari anggota tim dan memastikan konsistensi tim.
- Menerima persyaratan dari pemilik produk dan menjelaskannya kepada tim.
- Mengatur metrik kualitas untuk seluruh tim.
- Mewakili tim pada pertemuan lintas fungsi.
- Meningkatkan kualitas pengujian dan lingkungan kerja secara umum.