Zedhio Pratama Zulzaq

I'm a software tester, building quality and preventing bugs as well as testing quality and detecting bugs.

Zedhio Pratama Zulzaq | Senior Software QA Manual & Senior Software Tester

Software Tester (Manual) with more than 4 years of experience in website and mobile based application testing. I have handled more than 10 applications, both enterprise and non-enterprise, and all clients have been satisfied. I quickly adapt to a fast workflow, fast understanding and analysis as well as impact when development is carried out. On the other hand, I also compensate by practicing my skills as a leader in a team.

Soft Skills

Communication | Teamwork | Flexibility | Leadership | Time Management | Critical Thinking | Creative Thinking | Self Management | Identification and Analysis

Hard Skills

Postman | Swagger | Chuckers | Jmeter | Draw.io | Figma | Smartphone Test Farm | Browserstack | Grafana | DBeaver | Navicat | SQLYog | Jira | Trello | Asana | Notion | Gitlab | Vs.Code | Ms.Office | Teams | Google Workspace | Confluence | Testlink | OpenVPN | Wireguard | Teleport | Firebase | Google Search Console | Google Analytics |

Fun Facts

  • 20

    Projects Completed
  • 20+

    Happy Clients
  • +5000

    Created Test Cases
Portfolio

Creative Portfolio

Blogs

Latest Blogs

  • Jika QA baru masuk dalam kondisi di mana tidak ada tim QA atau QA sebelumnya sudah meninggalkan posisi tanpa adanya transfer knowledge atau dokumentasi yang memadai, itu bisa menjadi tantangan yang besar. Namun, ada beberapa langkah yang bisa dilakukan untuk mengatasi masalah tersebut:

    1. Tentukan Proses dan Prioritas Awal

    1. Bertanya ke Tim Pengembang atau Pemangku Kepentingan Lain
      Jika tidak ada dokumentasi atau tim QA sebelumnya, langkah pertama adalah berkoordinasi dengan tim pengembang atau tim produk untuk memahami produk yang sedang dikembangkan. Mereka bisa memberikan wawasan tentang fungsionalitas utama aplikasi atau sistem yang perlu diuji.
    2. Identifikasi Prioritas Pengujian
      Pahami produk secara menyeluruh dan tentukan area yang paling penting atau berisiko tinggi untuk diuji terlebih dahulu. Fokus pada fungsionalitas utama, fitur yang baru, atau bug yang sering muncul.

    2. Bangun Proses Pengujian dari Awal

    1. Membangun Prosedur Pengujian Dasar
      Tanpa tim QA atau dokumentasi sebelumnya, QA baru perlu mulai dengan membangun prosedur pengujian dasar, seperti menulis test case dan checklist pengujian. Ini adalah dasar yang perlu dipahami oleh QA baru untuk menjalankan pengujian yang efektif.
    2. Alat Pengujian
      Pilih alat pengujian yang sesuai (manual atau otomatis) berdasarkan kebutuhan produk. Pastikan untuk mulai dengan alat yang paling mendasar untuk menangani pengujian yang ada, dan evaluasi alat lain seiring berjalannya waktu.

    3. Tanyakan Detail tentang Infrastruktur dan Alur Kerja

    1. Bertanya tentang Infrastruktur dan Alur Kerja
      Pastikan untuk mempelajari alur pengembangan produk (misalnya, model CI/CD, alur kerja antara pengembang dan QA). Ini akan memberi gambaran tentang cara produk di-deploy dan diuji.
    2. Tanya tentang Proses Pengujian yang Sudah Ada
      Jika ada pengujian yang dilakukan sebelumnya, coba dapatkan informasi tentang pendekatan pengujian yang digunakan, seperti metodologi (misalnya Agile atau Waterfall), framework pengujian, dan apakah ada unit test atau automated test yang sudah diterapkan.

    4. Bangun Dokumentasi untuk Pengujian

    1. Mulai Membuat Dokumentasi Pengujian
      Setelah memahami cara pengujian dilakukan, buat dokumentasi dari proses yang ada. Ini bisa termasuk template test case, panduan pengujian manual, dan checklist pengujian.
    2. Mencatat Temuan dan Proses yang Diterapkan
      Selama pengujian berlangsung, pastikan untuk mencatat temuan-temuan yang relevan dan cara-cara untuk mengatasi masalah yang ditemukan. Ini akan membantu membangun basis pengetahuan yang berguna bagi orang lain di masa depan.

    5. Menilai dan Mengatasi Masalah Secara Bertahap

    1. Bertahap Menilai Produk
      Lakukan pengujian produk secara bertahap, mulai dari yang paling mendasar hingga ke area yang lebih kompleks. Identifikasi bug atau masalah besar yang perlu segera diperbaiki.
    2. Kerja Sama dengan Tim Pengembang
      Karena tidak ada tim QA, kerja sama yang erat dengan tim pengembang akan sangat penting. Mereka bisa membantu untuk memahami pengujian yang dilakukan dan mungkin bahkan memperbaiki masalah yang ditemukan dengan lebih cepat.

    6. Membangun Rencana Pengujian Jangka Panjang

    1. Kembangkan Rencana Pengujian Jangka Panjang
      Setelah memahami produk, buat rencana pengujian jangka panjang yang mencakup pengujian otomatis (jika memungkinkan), test coverage, dan pendekatan pengujian berkelanjutan.
    2. Evaluasi Pengujian Otomatis
      Jika memungkinkan, mulai menerapkan pengujian otomatis untuk mengurangi beban pengujian manual dan meningkatkan efisiensi dalam jangka panjang.

    7. Membangun Tim QA (Jika Diperlukan)
    Rekrutmen atau Kolaborasi dengan Tim Lain: Jika kebutuhan pengujian berkembang dan lebih banyak sumber daya diperlukan, pertimbangkan untuk merekrut anggota baru untuk membangun tim QA. Jika perusahaan tidak siap untuk tim QA besar, kamu bisa berkolaborasi dengan tim pengembang atau tim produk untuk menyelesaikan tugas-tugas pengujian secara bersama-sama.

    8. Peningkatan Terus-Menerus
    Iterasi dan Penyesuaian: Setelah QA baru mulai melakukan pengujian, lakukan iterasi dan penyesuaian pada proses pengujian berdasarkan feedback dan temuan yang ada. Uji efektivitas prosedur dan alat yang digunakan, dan pastikan untuk terus belajar dan berkembang dalam metodologi pengujian.

    9. Berkomunikasi dengan Manajer atau Pihak Terkait
    Laporan Berkala: Pastikan untuk memberikan laporan berkala kepada manajer atau pemangku kepentingan lainnya mengenai kemajuan pengujian dan masalah yang ditemukan. Ini bisa membuka peluang untuk diskusi lebih lanjut tentang bagaimana meningkatkan proses pengujian dan mendapatkan dukungan lebih banyak.

    Dalam situasi seperti ini, tantangannya memang besar karena tidak ada warisan pengetahuan yang jelas, tetapi dengan pendekatan yang terstruktur dan penuh inisiatif, QA baru bisa mulai membangun sistem pengujian yang efektif untuk memastikan kualitas produk.

  • Jika dokumentasi belum ada atau berantakan saat seorang QA baru masuk, itu bisa menjadi tantangan besar, tetapi ada beberapa langkah yang dapat dilakukan untuk mengatasi masalah ini:

    1. Tanya Tim untuk Penjelasan Langsung

    1. Tanyakan ke Senior QA atau Lead QA
      Jika dokumentasi tidak tersedia atau kurang lengkap, salah satu langkah pertama adalah meminta penjelasan langsung dari anggota tim yang lebih berpengalaman. Mereka bisa memberikan wawasan mendalam tentang proses pengujian yang diterapkan, tools yang digunakan, dan standar kualitas yang diterapkan.
    2. Kolaborasi dengan Tim Lain
      Terkadang QA bekerja erat dengan tim pengembangan atau produk. Pastikan juga untuk berkoordinasi dengan mereka guna mendapatkan pemahaman lebih jelas tentang produk yang sedang diuji.

    2. Mendokumentasikan Proses yang Ada

    1. Buat Dokumentasi Sendiri
      Jika dokumentasi yang ada tidak memadai, QA baru bisa mulai mendokumentasikan proses yang mereka pelajari selama masa onboarding. Ini bukan hanya membantu mereka memahami lebih baik, tetapi juga memberikan kontribusi untuk tim dengan menambah dokumentasi yang lebih terstruktur.
    2. Catat Proses, Tools, dan Tugas Harian
      Mulailah dengan mencatat hal-hal dasar yang harus dilakukan dalam pengujian (misalnya, proses pembuatan dan eksekusi test case, penggunaan tools tertentu, alur pengujian, dll.).

    3. Menggunakan Knowledge Transfer (KT) atau Sesi Q&A

    1. Sesi KT dengan Tim atau Lead QA
      Mengadakan sesi knowledge transfer secara langsung bisa membantu. QA baru bisa menanyakan pertanyaan spesifik yang mungkin tidak ditemukan dalam dokumentasi. Jika perlu, buat sesi Q&A berkala dengan anggota tim yang berpengalaman untuk memastikan pemahaman yang lebih baik.
    2. Minta Pendampingan atau Mentor
      Jika memungkinkan, mendapatkan mentor atau pendamping yang berpengalaman untuk QA baru adalah cara yang efektif untuk mempercepat proses pemahaman.

    4. Evaluasi dan Perbaiki Dokumentasi yang Ada

    1. Tawarkan Perbaikan pada Dokumentasi
      Jika QA baru menemukan bahwa dokumentasi yang ada tidak lengkap atau tidak efektif, mereka bisa menawarkan ide untuk memperbaikinya. Hal ini juga bisa menjadi kesempatan untuk memperbarui atau merapikan dokumentasi agar lebih bermanfaat bagi tim yang akan datang.
    2. Buat Template atau Format Standar
      Membantu tim untuk membuat template atau format standar untuk dokumentasi pengujian bisa mempercepat penyusunan dan memastikan konsistensi di seluruh tim.

    5. Bekerja dengan Scrum atau Agile Framework
    Jika tim bekerja dalam framework Scrum atau Agile, QA baru bisa memanfaatkan Daily Stand-ups dan Sprint Retrospectives untuk menanyakan hal-hal yang belum jelas. Tim sering berbagi kendala dan pembaruan selama pertemuan ini, yang dapat memberikan insight yang lebih baik bagi QA baru.

    6. Belajar dari Kesalahan
    Trial and Error: Jika dokumentasi kurang, QA baru juga bisa belajar dengan mencoba dan melakukan pengujian langsung. Meskipun ini bisa memakan waktu, itu akan membantu dalam memahami alur kerja tim dan proses pengujian lebih baik.

    7. Feedback untuk Penyempurnaan
    Jika QA baru merasa bahwa kurangnya dokumentasi menghambat pekerjaan mereka, mereka bisa memberikan umpan balik kepada manajer atau lead QA mengenai perlunya peningkatan dokumentasi untuk mendukung tim di masa depan. Ini bisa menjadi peluang untuk membangun dokumentasi yang lebih baik dan lebih berguna bagi tim.

    Memang, tidak adanya dokumentasi yang jelas atau berantakan bisa menambah kesulitan, tetapi dengan pendekatan yang terstruktur dan kolaboratif, QA baru tetap dapat beradaptasi dan mulai memberikan kontribusi yang signifikan.

  • Knowledge transfer dan handover ke QA baru biasanya dilakukan oleh seseorang yang memiliki pengalaman yang lebih dalam, biasanya seorang senior QA, lead QA, atau QA yang sudah berpengalaman dengan sistem dan proses yang ada. Berikut adalah beberapa pihak yang berhak dan biasanya terlibat dalam knowledge transfer dan handover ke QA baru:

    1. Lead QA / Senior QA
      Mereka yang memiliki pemahaman mendalam tentang proses dan metodologi pengujian yang diterapkan. Mereka bertanggung jawab untuk memastikan bahwa QA baru memahami berbagai aspek pengujian, tools yang digunakan, serta standar kualitas yang diterapkan di tim atau perusahaan.
    2. Manajer QA
      Dalam beberapa kasus, manajer QA juga terlibat dalam proses handover untuk memberikan pemahaman tentang tujuan strategis pengujian, bagaimana tim QA berkolaborasi dengan tim lain, serta ekspektasi performa.
    3. QA Team (Rekan Kerja)
      Selain senior atau lead, rekan kerja dalam tim QA yang sudah berpengalaman juga dapat membantu dalam memberikan pemahaman lebih rinci tentang projek-projek tertentu, bug yang sering muncul, dan cara-cara troubleshooting yang efektif.
    4. Subject Matter Expert (SME)
      Jika ada area teknis atau domain yang sangat spesifik, SME dari bagian pengembangan atau domain tertentu juga dapat terlibat dalam memberikan pengetahuan yang lebih dalam terkait aspek teknis produk yang sedang diuji.
    5. Dokumentasi
      Selain transfer knowledge secara langsung, dokumentasi internal (seperti panduan pengujian, dokumentasi bug, checklist, dan prosedur) juga penting untuk membantu QA baru dalam memahami proses yang ada.

    Tujuan dari knowledge transfer adalah memastikan bahwa QA baru dapat beradaptasi dengan cepat dan efektif dengan lingkungan kerja, serta dapat menjalankan tugas pengujian dengan baik dan sesuai standar yang ditetapkan.

  • Dalam tim QA (Quality Assurance), biasanya QA Manager atau QA Lead yang bertanggung jawab untuk membuat quality metrics dan KPI (Key Performance Indicators). Mereka bekerja sama dengan manajer produk, tim pengembangan, dan pihak terkait lainnya untuk menentukan metrik yang relevan dengan tujuan kualitas produk yang diinginkan.

    Berikut adalah beberapa peran yang terlibat dalam pembuatan quality metrics dan KPI:

    1. QA Manager/Lead
      Mereka merancang metrik kualitas yang mencakup berbagai aspek proses QA, seperti jumlah bug yang ditemukan, waktu perbaikan, tingkat keparahan bug, dan efektivitas pengujian.
    2. Tim QA
      Anggota tim QA membantu mengumpulkan data dan memberikan umpan balik terkait efektivitas metrik yang diterapkan selama siklus pengujian.
    3. Manajer Proyek
      Bekerja bersama tim QA untuk menyelaraskan KPI dengan tujuan proyek secara keseluruhan, seperti jadwal pengiriman dan pengelolaan anggaran.
    4. Stakeholder
      Dalam beberapa kasus, stakeholder eksternal atau internal lain (seperti tim pengembangan, produk, atau manajemen) mungkin memberi masukan untuk menetapkan metrik yang lebih spesifik berdasarkan kebutuhan mereka.

    Beberapa contoh quality metrics dan KPI yang umum digunakan dalam QA adalah:

    1. Defect Density: Jumlah bug per unit kode.
    2. Test Coverage: Persentase kode atau fitur yang telah diuji.
    3. Escaped Defects: Jumlah defect yang ditemukan setelah rilis.
    4. Test Execution Rate: Kecepatan pelaksanaan tes dalam siklus pengujian.
    5. Defect Severity: Tingkat keparahan bug yang ditemukan.

    Tujuan dari metrik dan KPI ini adalah untuk mengukur kinerja tim QA, memastikan kualitas produk, serta meningkatkan proses pengujian secara berkelanjutan.

  • Dalam proses pengujian perangkat lunak, dashboard bug tracking di Jira sangat membantu untuk memantau dan mengelola status bug atau masalah yang ditemukan selama pengujian.

    Apakah QA Perlu Membuat Dashboard Bug Tracking di Jira?

    1. Tergantung pada Proses dan Tanggung Jawab
      QA tidak selalu diwajibkan untuk membuat dashboard bug tracking di Jira, tetapi mereka sering terlibat dalam pengaturan dan pemantauan laporan bug. Dashboard bug tracking memberi tim QA, pengembang, dan manajer proyek gambaran yang jelas tentang status bug yang ada.
    2. Tugas Utama QA
      Sebagai QA, tanggung jawab utama biasanya lebih kepada mengidentifikasi, melaporkan, dan menguji bug. Namun, mereka mungkin diminta untuk membantu memantau status bug yang telah dilaporkan dan memastikan tindak lanjutnya. Dashboard bisa sangat berguna untuk ini.

    Siapa yang Membuat Dashboard di Jira?

    1. QA dan Tim Pengujian
      1. QA bisa terlibat dalam pembuatan dashboard bug tracking untuk memastikan bahwa semua metrik terkait pengujian (misalnya jumlah bug yang dibuka, tertunda, atau ditutup) terlihat dengan jelas. Ini bisa membantu mereka melacak proses pengujian dengan lebih mudah.
      2. Dashboard ini biasanya digunakan untuk mengelola status pengujian dan bug yang ditemukan selama siklus QA.
    2. Project Manager atau Scrum Master
      1. Di tim Agile, Project Manager atau Scrum Master mungkin bertanggung jawab untuk membuat dan memelihara dashboard. Mereka biasanya yang memantau kemajuan proyek secara keseluruhan dan memastikan bahwa bug dapat dikelola dengan efektif.
      2. Mereka akan menggunakan Jira untuk merancang dashboard yang menampilkan metrik yang relevan dengan status sprint, termasuk status bug.
    3. Developer atau Tim Pengembang
      1. Developer mungkin juga membuat atau menyesuaikan dashboard, terutama untuk memantau bug yang perlu diperbaiki.
      2. Mereka bisa menggunakannya untuk melacak bug yang perlu mereka tangani dan memperbaiki statusnya setelah perbaikan dilakukan.

    Keuntungan Dashboard Bug Tracking di Jira:

    1. Visibilitas
      Semua orang yang terlibat dalam proyek (QA, developer, manajer proyek) bisa melihat status bug secara real-time.
    2. Pemantauan Progres
      Memungkinkan tim untuk memantau bagaimana masalah diperbaiki, apakah ada penundaan, atau apakah ada bug yang membutuhkan perhatian lebih.
    3. Pengelolaan Prioritas
      Dapat digunakan untuk melacak prioritas bug dan masalah, serta memudahkan tim untuk memfokuskan upaya pada yang paling kritikal.
    4. Laporan yang Lebih Efisien
      Dengan dashboard, laporan terkait bug menjadi lebih mudah dibaca dan dapat dipresentasikan kepada stakeholder atau manajemen.

    Kapan Dashboard Biasanya Dibuat?

    1. Sebelum Siklus Pengujian Dimulai
      Tim QA mungkin mengatur dashboard untuk memastikan pelacakan bug sejak awal.
    2. Selama Proses Pengujian
      QA dan manajer proyek akan memantau dashboard secara aktif untuk melacak masalah yang ditemukan selama pengujian.
    3. Menjelang Rilis
      Sebelum rilis aplikasi, dashboard membantu memastikan bahwa semua bug yang signifikan sudah ditangani dan statusnya diperbarui dengan benar.

    Apa Saja yang Bisa Ditampilkan dalam Dashboard Bug Tracking?

    1. Jumlah Total Bug
      Menghitung jumlah bug yang ditemukan, diselesaikan, atau masih terbuka.
    2. Bug Berdasarkan Prioritas/Severity
      Memudahkan untuk melihat bug mana yang harus diperbaiki terlebih dahulu.
    3. Bug Berdasarkan Status
      Menampilkan status bug (misalnya, terbuka, dalam perbaikan, atau tertutup).
    4. Distribusi Bug per Modul/Fitur
      Memantau bug berdasarkan area aplikasi tertentu.
    5. Trend Bug dari Waktu ke Waktu
      Menampilkan grafik untuk melihat apakah jumlah bug meningkat atau menurun seiring waktu.
    6. Waktu Penyelesaian
      Melacak berapa lama waktu yang dibutuhkan untuk menyelesaikan bug dari saat dilaporkan hingga diperbaiki.

    Kesimpulan
    Secara keseluruhan, meskipun tidak selalu menjadi kewajiban utama QA untuk membuat dashboard, keterlibatan mereka dalam pengaturan dan pemantauan bug yang tercatat sangat penting. Dashboard ini bisa sangat berguna untuk memastikan alur kerja bug tracking yang transparan dan efisien.

  • Perbedaan antara Software QA Engineer Manual, QA Manual, QA Analyst, dan QA Tester seringkali bergantung pada terminologi yang digunakan oleh perusahaan, tetapi berikut adalah gambaran umum mengenai perbedaan tersebut:

    1. Software QA Engineer Manual

    1. Fokus Utama
      Berperan dalam mengembangkan, mengimplementasikan, dan memelihara prosedur pengujian manual untuk memastikan kualitas perangkat lunak.
    2. Tanggung Jawab
      1. Membuat dan menjalankan test case secara manual.
      2. Memastikan aplikasi sesuai dengan kebutuhan bisnis dan teknis.
      3. Melakukan analisis risiko pada pengujian.
      4. Mungkin terlibat dalam proses debugging dan kolaborasi dengan developer.
    3. Skill Tambahan
      Pemahaman mendalam tentang siklus hidup pengembangan perangkat lunak (SDLC), metodologi Agile/Scrum, dan pengujian regresi serta integrasi.
    4. Level
      Biasanya dianggap lebih teknis dibandingkan "QA Manual" karena fokusnya lebih luas pada aspek rekayasa (engineering) kualitas.

    2. QA Manual

    1. Fokus Utama
      Berfokus pada eksekusi pengujian manual untuk memastikan perangkat lunak bekerja sesuai kebutuhan.
    2. Tanggung Jawab
      1. Membuat dan menjalankan test plan serta test case.
      2. Melaporkan bug atau isu yang ditemukan selama pengujian.
      3. Memastikan bahwa fitur baru bebas dari kesalahan sebelum rilis.
    3. Skill Tambahan
      Kemampuan observasi dan analisis yang baik, serta dokumentasi pengujian.
    4. Level
      Biasanya lebih spesifik pada pengujian manual tanpa tanggung jawab besar terhadap proses pengembangan kualitas.

    3. QA Analyst

    1. Fokus Utama
      Lebih fokus pada analisis kebutuhan dan perencanaan pengujian untuk memastikan perangkat lunak memenuhi standar kualitas.
    2. Tanggung Jawab
      1. Mengumpulkan dan menganalisis kebutuhan bisnis.
      2. Merancang strategi pengujian dan memastikan cakupan pengujian memadai.
      3. Berkolaborasi dengan tim bisnis untuk memastikan kebutuhan diimplementasikan dengan benar.
      4. Kadang terlibat dalam pembuatan laporan analitik tentang tren bug atau kinerja QA.
    3. Skill Tambahan
      Analisis data, komunikasi bisnis, pemahaman mendalam tentang domain produk.
    4. Level
      Peran ini lebih strategis dibandingkan dengan eksekusi teknis pengujian.

    4. QA Tester

    1. Fokus Utama
      Melakukan pengujian teknis untuk mendeteksi bug dalam perangkat lunak.
    2. Tanggung Jawab
      1. Menjalankan pengujian berdasarkan test case yang sudah ada.
      2. Melaporkan bug secara detail.
      3. Kadang menguji ulang (re-testing) setelah bug diperbaiki.
    3. Skill Tambahan
      Kemampuan pengujian teknis yang kuat, tetapi lebih sedikit fokus pada aspek strategis atau perencanaan.
    4. Level
      Sering dianggap lebih entry-level dibandingkan dengan QA Analyst atau QA Engineer.

    Kesimpulan

    1. Software QA Engineer Manual
      Peran teknis dengan cakupan luas dalam pengujian manual dan kualitas perangkat lunak.
    2. QA Manual
      Fokus pada pelaksanaan pengujian manual.
    3. QA Analyst
      Fokus pada analisis kebutuhan, perencanaan pengujian, dan kolaborasi strategis.
    4. QA Tester
      Fokus pada eksekusi pengujian teknis, sering dianggap peran operasional.

    Penting untuk diingat bahwa setiap perusahaan mungkin mendefinisikan peran ini secara berbeda, jadi selalu perhatikan deskripsi pekerjaan saat melamar.

  • Perbedaan antara microservice dan monolith terletak pada cara mereka merancang, mengembangkan, dan mengelola aplikasi perangkat lunak.

    1. Monolith Architecture
    Monolith adalah pendekatan tradisional di mana seluruh aplikasi dibangun sebagai satu kesatuan besar, mencakup semua fitur dan fungsionalitas.

    Karakteristik:

    1. Satu codebase
      Semua komponen (frontend, backend, database) berada dalam satu proyek atau proses yang terintegrasi.
    2. Terkait erat
      Semua modul saling bergantung satu sama lain, sehingga perubahan pada satu bagian dapat memengaruhi bagian lain.
    3. Deployment tunggal
      Aplikasi dideploy sebagai satu unit. Jika ada pembaruan, seluruh aplikasi perlu dideploy ulang.
    4. Skalabilitas terbatas
      Hanya dapat diskalakan secara vertikal (meningkatkan spesifikasi server).

    Kelebihan:

    1. Mudah untuk memulai
      Cocok untuk aplikasi sederhana atau kecil.
    2. Sederhana
      Tidak memerlukan orkestrasi atau pengelolaan layanan terpisah.
    3. Konsistensi
      Seluruh aplikasi menggunakan stack teknologi yang sama.

    Kekurangan:

    1. Kurang fleksibel
      Sulit untuk mengadopsi teknologi baru tanpa memengaruhi seluruh sistem.
    2. Pemeliharaan sulit
      Ketika aplikasi tumbuh besar, menjadi lebih sulit untuk dipahami dan dikelola.
    3. Downtime
      Jika terjadi kegagalan di satu bagian, seluruh aplikasi dapat terpengaruh.

    2. Microservice Architecture
    Microservice adalah pendekatan modern di mana aplikasi dibangun sebagai kumpulan layanan kecil yang independen dan berfungsi secara terpisah.

    Karakteristik:

    1. Layanan independen
      Setiap layanan memiliki tanggung jawab spesifik dan berjalan secara mandiri.
    2. Komunikasi melalui API
      Layanan berkomunikasi menggunakan protokol ringan seperti HTTP atau gRPC.
    3. Skalabilitas horizontal
      Layanan dapat diskalakan secara independen sesuai kebutuhan.
    4. Penerapan teknologi berbeda
      Setiap layanan dapat menggunakan teknologi atau bahasa pemrograman yang berbeda sesuai dengan kebutuhannya.

    Kelebihan:

    1. Fleksibilitas tinggi
      Setiap layanan dapat diperbarui atau diubah tanpa memengaruhi yang lain.
    2. Scalability
      Layanan tertentu dapat diskalakan secara terpisah sesuai kebutuhan.
    3. Reliability
      Masalah di satu layanan tidak akan memengaruhi layanan lainnya (isolasi kegagalan).
    4. Pemeliharaan lebih mudah
      Memungkinkan tim yang lebih kecil fokus pada layanan tertentu.

    Kekurangan:

    1. Kompleksitas tinggi
      Memerlukan orkestrasi untuk mengelola komunikasi antar layanan (misalnya, Kubernetes).
    2. Pengelolaan lebih rumit
      Membutuhkan alat monitoring, logging, dan debugging untuk banyak layanan.
    3. Overhead
      Lebih banyak waktu dan sumber daya diperlukan untuk setup dan pengelolaan.

    Perbandingan Utama

    Kapan Bisa di Implementasikan?

    1. Monolith
      Untuk aplikasi kecil, sederhana, atau tim dengan sumber daya terbatas.
    2. Microservice
      Untuk aplikasi besar yang membutuhkan fleksibilitas, skalabilitas, dan pengelolaan oleh tim yang terdistribusi.
  • API Testing kini menjadi salah satu skill penting yang sebaiknya dimiliki oleh seorang QA. Seiring dengan semakin banyaknya aplikasi modern yang menggunakan arsitektur berbasis API (seperti microservices), pengujian API berperan penting dalam memastikan integrasi antar komponen berjalan lancar.

    Mengapa API Testing Penting untuk QA?

    1. Mengidentifikasi Masalah Lebih Awal
      API biasanya diuji sebelum UI selesai. Dengan demikian, QA dapat mendeteksi bug lebih awal, menghemat waktu dan biaya pengembangan.
    2. Menjamin Kinerja dan Keandalan
      API yang buruk dapat menyebabkan aplikasi gagal, meskipun UI tampak sempurna. Pengujian memastikan API responsif, handal, dan sesuai ekspektasi.
    3. Automasi Lebih Efisien
      Dibandingkan UI testing, API testing lebih cepat, lebih stabil, dan lebih mudah diotomasi, sehingga mempercepat siklus pengujian.
    4. Fokus pada Logika Bisnis
      API testing memungkinkan QA untuk memvalidasi logika bisnis inti tanpa tergantung pada elemen UI.

    Skill yang Dibutuhkan untuk API Testing

    1. Pemahaman Dasar tentang API
      Mengetahui cara kerja REST API, GraphQL, atau SOAP.
    2. Tools API Testing
      Menguasai alat seperti Postman, SoapUI, JMeter, atau Katalon Studio.
    3. Kemampuan Automasi
      Familiar dengan bahasa pemrograman (seperti JavaScript, Python, atau Java) untuk mengotomasi pengujian API.
    4. Penggunaan Dokumentasi API
      Mampu membaca dan memahami dokumentasi API (misalnya Swagger/OpenAPI).
    5. Pemahaman tentang HTTP
      Mengetahui metode HTTP (GET, POST, PUT, DELETE), kode status, header, dan body payload.
    6. Kemampuan Analisis Data
      Mengevaluasi respons API (format JSON atau XML) untuk validasi.

    Apakah Harus Wajib?
    Tidak semua QA diwajibkan memiliki kemampuan ini tergantung pada peran dan kebutuhan perusahaan. Namun, memiliki skill API Testing akan memberikan nilai tambah signifikan, terutama di perusahaan yang menerapkan DevOps, CI/CD, atau mengembangkan aplikasi berbasis microservices.

  • Kemampuan untuk melakukan query SQL dan MongoDB bisa jadi wajib atau opsional tergantung pada jenis proyek, organisasi, dan tanggung jawab spesifik dari peran QA. Berikut adalah situasi di mana kedua kemampuan ini relevan:

    1. Wajib

    1. Data-Driven Testing
      Jika aplikasi yang diuji bergantung pada database relasional (SQL) atau NoSQL (MongoDB), QA harus dapat menulis query untuk memvalidasi data, melakukan eksplorasi data, dan memastikan integritas data.
    2. Pengujian Back-End
      QA yang terlibat dalam pengujian API atau integrasi sering perlu memvalidasi langsung data yang dikirim atau diterima oleh server menggunakan query.
    3. Pelaporan dan Debugging
      QA yang bekerja dekat dengan tim pengembang mungkin diminta untuk memberikan detail teknis, seperti data yang tidak konsisten, yang memerlukan pemahaman query untuk investigasi.

    2. Opsional

    1. Pengujian UI atau Front-End
      Jika tanggung jawab QA lebih fokus pada pengujian antarmuka pengguna, keterampilan ini mungkin tidak digunakan secara rutin.
    2. Tim Database Khusus
      Dalam beberapa organisasi besar, ada tim terpisah yang bertugas mengelola dan memvalidasi data, sehingga QA tidak perlu memiliki keterampilan ini.
    3. Otomasi Tanpa Validasi Langsung ke Database
      Jika pengujian otomatis dilakukan pada tingkat aplikasi tanpa memvalidasi data langsung dari database.

    Nilai Tambah Jika Dikuasai
    Memiliki kemampuan query SQL dan MongoDB adalah nilai tambah besar untuk QA karena:

    1. Meningkatkan Efisiensi
      Memudahkan validasi data tanpa bergantung pada tim lain.
    2. Pemecahan Masalah
      Membantu menemukan akar masalah yang lebih kompleks.
    3. Fleksibilitas Karir
      Membuka peluang ke peran QA yang lebih teknis, seperti QA Engineer atau SDET.

    Rekomendasi
    Jika saat ini kemampuan tersebut belum kamu kuasai, mulailah belajar dasar-dasarnya. Anda bisa fokus pada:

    1. SQL
      SELECT, INSERT, UPDATE, DELETE, JOIN, GROUP BY.
    2. NoSQL
      Query dasar seperti find, insert, update, dan manipulasi koleksi.
  • Sebagai QA, kemampuan untuk melakukan debug pada browser tidak selalu wajib, tetapi sangat berguna. Tingkat kebutuhan tergantung pada jenis pengujian yang dilakukan, lingkungan kerja, dan kompleksitas aplikasi yang diuji.

    Mengapa Kemampuan Debug Browser Penting?

    1. Identifikasi Masalah Front-End
      Debugging membantu menemukan dan menganalisis masalah front-end seperti layout yang rusak, kesalahan JavaScript, atau elemen yang tidak berfungsi.
    2. Efisiensi Pelaporan Bug
      Dengan memahami debug browser, dapat memberikan laporan bug yang lebih spesifik, termasuk informasi seperti pesan kesalahan (error logs) atau network request yang gagal. Ini mempermudah developer untuk memperbaiki masalah.
    3. Pengujian Responsif dan Cross-Browser
      Debugging memungkinkan untuk memeriksa perbedaan perilaku aplikasi di berbagai browser dan perangkat.
    4. Validasi API dan Network
      Tab Network dalam DevTools dapat digunakan untuk memeriksa respons API, status HTTP, dan performa.
    5. Insight Performa
      Kamu dapat menggunakan fitur seperti Performance dan Lighthouse di DevTools untuk mengidentifikasi potensi masalah performa aplikasi.

    Situasi Ketika Tidak Wajib

    1. Jika peran QA Anda lebih fokus pada pengujian manual dasar (misalnya, hanya verifikasi fungsional).
    2. Dalam lingkungan kerja di mana debugging adalah tanggung jawab eksklusif developer.

    Dasar Debugging yang Berguna untuk QA
    Jika ingin belajar debugging browser, berikut adalah fitur DevTools yang sebaiknya Anda pahami:

    1. Console Tab
      Untuk melihat error log dan debugging JavaScript.
    2. Elements Tab
      Untuk memeriksa dan mengedit DOM atau CSS.
    3. Network Tab
      Untuk memantau request/response API dan resource yang dimuat.
    4. Application Tab
      Untuk memeriksa storage seperti cookies, local storage, atau cache.
    5. Performance Tab
      Untuk memeriksa waktu loading dan rendering aplikasi.

    Kemampuan ini membuatmu lebih mandiri dalam pengujian, meningkatkan kolaborasi dengan developer, dan menunjukkan keahlian teknis yang bernilai tinggi.

  • Kepribadian introvert dapat sangat cocok untuk peran sebagai Quality Assurance (QA). Beberapa alasan mengapa introvert sering berhasil dalam bidang ini adalah:

    1. Kemampuan untuk Fokus Mendalam
      Introvert cenderung menikmati bekerja secara mandiri dan mampu fokus pada detail kecil, yang sangat penting dalam pengujian perangkat lunak untuk menemukan bug atau masalah.
    2. Kemampuan Analitis
      Introvert sering kali memiliki kemampuan analitis yang kuat, memungkinkan mereka untuk memikirkan berbagai skenario pengujian secara mendalam dan sistematis.
    3. Kecenderungan untuk Mengamati dan Mendengarkan
      Sebagai QA, penting untuk memahami kebutuhan tim, mendengarkan instruksi dengan baik, dan mengamati bagaimana produk bekerja. Ini adalah kekuatan alami bagi banyak introvert.
    4. Komunikasi yang Terencana
      Meskipun introvert mungkin tidak suka berbicara terlalu banyak, mereka sering unggul dalam komunikasi yang terstruktur dan mendalam. Menulis laporan bug yang jelas, mendokumentasikan pengujian, dan memberikan feedback secara tertulis adalah bagian penting dari peran QA.
    5. Ketelitian dan Kesabaran
      Pengujian perangkat lunak membutuhkan ketelitian dan kesabaran, dua kualitas yang sering dimiliki oleh introvert.

    Namun, ada beberapa tantangan yang mungkin dihadapi introvert, seperti kebutuhan untuk berkolaborasi dengan tim atau memberikan presentasi. Tetapi dengan latihan dan kepercayaan diri, aspek ini dapat ditingkatkan.

  • Memilih antara logging dan monitoring, unit testing, atau automation testing tergantung pada beberapa faktor seperti tahap pengembangan, kebutuhan aplikasi, prioritas bisnis, dan sumber daya yang tersedia. Namun, dalam praktik terbaik, ketiganya diperlukan dan saling melengkapi. Untuk membantu memprioritaskan, berikut adalah panduannya:

    1. Jika Proyek Masih Dalam Tahap Pengembangan Awal

    1. Prioritas Utama: Unit Testing. Mengapa?
      1. Karena bug lebih murah diperbaiki pada tahap awal.
      2. Unit testing membantu memastikan setiap bagian kode bekerja sesuai harapan sebelum digabungkan.
      3. Lebih cepat dibanding pengujian lainnya.
    2. Tambahan yang Disarankan
      Mulai membangun dasar automation testing untuk skenario kritis atau fitur utama.

    2. Jika Proyek Sedang Dalam Tahap Pengujian atau Pra-Perilisan

    1. Prioritas Utama: Automation Testing. Mengapa?
      1. Menghemat waktu dibandingkan pengujian manual berulang untuk skenario end-to-end.
      2. Membantu mendeteksi bug integrasi sebelum aplikasi dirilis.
    2. Tambahan yang Disarankan
      Mulai mengimplementasikan logging untuk mempermudah debugging di lingkungan staging.

    3. Jika Aplikasi Sudah Berjalan di Produksi

    1. Prioritas Utama: Logging dan Monitoring. Mengapa?
      1. Memastikan masalah dapat dideteksi lebih cepat di lingkungan produksi.
      2. Membantu memantau performa aplikasi dan mengurangi downtime.
    2. Tambahan yang Disarankan
      1. Pastikan ada automation testing regression suite untuk mempercepat pengujian setiap kali ada perubahan kode.
      2. Jaga unit test agar tetap relevan untuk fitur baru.
  • Sebagai seorang QA, kemampuan membaca logging dan monitoring menjadi semakin penting, terutama dalam lingkungan teknologi yang kompleks. Berikut adalah penjelasan terkait tuntutan dan alat yang digunakan untuk logging dan monitoring:

    Apakah QA Dituntut Bisa Membaca Logging dan Monitoring?
    Iya, tetapi tergantung kebutuhan perusahaan dan proyeknya.

    1. Dalam pengujian manual tradisional, kemampuan membaca log mungkin tidak menjadi keharusan.
    2. Dalam pengujian modern atau pengujian berbasis DevOps, kemampuan membaca log dan memahami monitoring menjadi penting. QA perlu menganalisis root cause dari bug atau kegagalan yang terjadi.
    3. Untuk pengujian berbasis API atau backend, log dapat membantu QA memastikan alur proses berjalan sesuai ekspektasi.
    4. Pada sistem yang kompleks atau berbasis microservices, monitoring digunakan untuk memantau kesehatan sistem dan mendeteksi masalah yang tidak terlihat dari pengujian manual.

    2. Cara Membaca Logging dan Tools yang Digunakan

    1. Log Files: Catatan aktivitas aplikasi atau sistem. Bisa berupa informasi, peringatan, atau error.
    2. Cara Membaca: Log biasanya dibaca untuk mencari tahu error message, stack trace, atau waktu kejadian bug.
    3. Tools untuk Membaca Logging
      1. Terminal atau Command Line (untuk file log lokal).
      2. Text Editor seperti Notepad++, Sublime Text, atau VS Code.
      3. Log Management Tools seperti ELK Stack (Elasticsearch, Logstash, Kibana), Splunk, Graylog, Datadog, dan Papertrail

    3. Cara Melakukan Monitoring dan Tools yang Digunakan

    1. Monitoring: Proses mengawasi performa aplikasi, server, atau sistem secara real-time.
    2. Data yang Dimonitor: CPU, memory usage, response time, jumlah request, tingkat error, dll.
    3. Tools untuk Monitoring
      1. Infrastructure Monitoring: Nagios, Zabbix, Prometheus, Grafana.
      2. Application Performance Monitoring (APM): New Relic, Dynatrace, AppDynamics, Datadog APM, Sentry.
      3. Cloud-Native Monitoring: AWS CloudWatch, Azure Monitor, dan Google Cloud Operations Suite (Stackdriver).

    Tips untuk QA

    1. Pelajari Dasar-Dasar Log
      1. Pahami format log (timestamp, log level, pesan).
      2. Biasakan membaca log untuk mencari pola error.
    2. Pahami Tools yang Digunakan Perusahaan
      1. Jika perusahaan menggunakan ELK Stack, pelajari Kibana untuk mencari log.
      2. Jika menggunakan Grafana, pahami cara membaca dashboard performa.
    3. Berkomunikasi dengan Tim DevOps
      Mintalah bantuan untuk memahami alur log dan data monitoring yang spesifik.
    4. Berlatih dengan Studi Kasus
      Simulasikan bug di aplikasi lokal, dan coba cari penyebabnya melalui log dan monitoring.

    Kemampuan ini akan meningkatkan efisiensi dan kredibilitas sebagai QA, terutama di lingkungan yang menerapkan prinsip DevOps atau CI/CD.

  • Implementasi flagging di environment produksi (production) adalah praktik umum dalam pengembangan perangkat lunak, terutama untuk fitur baru atau perubahan yang memerlukan peluncuran bertahap. Namun, ada beberapa pertimbangan penting terkait keamanan dan risiko, terutama jika environment production penuh dengan data sensitif seperti credential.

    Apakah boleh meminta implementasi flagging di production?
    Ya, boleh, dan ini adalah praktik yang sering digunakan untuk:

    1. Peluncuran bertahap (Feature Rollout)
      Memungkinkan QA atau tim pengembang mengaktifkan fitur baru hanya untuk pengguna tertentu atau dalam skala kecil.
    2. A/B Testing
      Untuk menguji dampak fitur baru terhadap perilaku pengguna.
    3. Mitigasi Risiko
      Mempermudah rollback jika fitur baru menyebabkan masalah tanpa harus melakukan redeployment.

    Namun, penerapan ini harus dilakukan dengan pengelolaan yang tepat.

    Apakah riskan jika environment penuh dengan data credential?
    Pasti ada risiko jika tidak ada pengelolaan dan keamanan yang memadai, terutama terkait data sensitif. Berikut adalah risiko dan mitigasinya:

    1. Eksposur Data Sensitif
      1. Risiko: Feature flag atau log yang diaktifkan di production dapat secara tidak sengaja mengekspos data sensitif seperti credentials melalui debug log atau endpoint.
      2. Mitigasi
        1. Pastikan semua log yang dihasilkan dari fitur ini tidak mencatat data sensitif.
        2. Gunakan enkripsi untuk data sensitif dalam database maupun komunikasi antar layanan.
        3. Lakukan audit keamanan terhadap implementasi fitur baru.
    2. Akses yang Tidak Diperlukan
      1. Risiko: Jika QA memiliki akses penuh ke feature flags di production, ada potensi penyalahgunaan atau perubahan yang tidak disengaja.
      2. Mitigasi
        1. Batasi akses feature flags hanya untuk tim yang relevan (misalnya, engineering lead).
        2. Implementasikan sistem perizinan berbasis peran (role-based access control, RBAC).
    3. Potensi Rollback yang Tidak Terduga
      1. Risiko: Aktivasi atau penonaktifan fitur dapat memengaruhi data operasional.
      2. Mitigasi
        1. Uji fitur secara menyeluruh di staging dengan data simulasi sebelum mengaktifkan di production.
        2. Pastikan flag dirancang sedemikian rupa sehingga tidak mengubah atau memengaruhi data inti.

    Rekomendasi untuk QA

    1. Diskusikan dengan Tim Pengembang: Pastikan semua tim menyepakati tujuan dari feature flag dan rencana pengujiannya di production.
    2. Pastikan Keamanan Data: Verifikasi bahwa implementasi fitur sudah mematuhi kebijakan keamanan data perusahaan.
    3. Gunakan Lingkungan Terpisah: Jika memungkinkan, mintalah replika data (tanpa data sensitif) untuk pengujian.
    4. Dokumentasi dan Monitoring: Semua perubahan harus terdokumentasi dengan baik, dan gunakan monitoring aktif untuk mendeteksi masalah lebih awal.

    Dengan pengelolaan yang hati-hati, implementasi feature flag di production dapat menjadi alat yang sangat berguna tanpa menimbulkan risiko besar terhadap data sensitif.

  • Regression testing API membutuhkan satu API untuk cleansing data testing karena beberapa alasan penting berikut:

    1. Menjamin Data Konsisten
      Data uji yang digunakan dalam pengujian regresi harus dalam kondisi konsisten di awal setiap eksekusi. Cleansing API membantu memastikan data dihapus, di-reset, atau dikembalikan ke kondisi awal agar hasil pengujian lebih dapat diandalkan.
    2. Menghindari Dampak dari Data Lama
      Data lama atau sisa dari pengujian sebelumnya dapat memengaruhi hasil pengujian. Misalnya, konflik dengan data duplikat, id yang sudah digunakan, atau status yang tidak valid. Cleansing API menghapus data ini untuk menghindari masalah tersebut.
    3. Automasi Lebih Efisien
      Dalam pengujian otomatisasi, memulai dengan kondisi data yang bersih dan siap pakai sangat penting untuk menghindari langkah manual yang memakan waktu. Cleansing API memungkinkan alur otomatisasi yang lebih efisien.
    4. Meminimalkan False Negative/False Positive
      Data yang tidak bersih bisa menyebabkan pengujian gagal (false negative) atau dianggap lolos meski sebenarnya tidak valid (false positive). Cleansing API memastikan pengujian dilakukan dalam lingkungan yang dikontrol.
    5. Menghemat Waktu
      Secara manual menghapus atau mereset data pengujian bisa menjadi proses yang panjang dan rawan kesalahan. Satu API untuk cleansing data membuat proses ini cepat dan dapat dilakukan berulang kali secara otomatis.
    6. Mendukung Pengujian Berulang
      Regression testing sering dilakukan berulang kali dalam berbagai siklus pengembangan perangkat lunak. Dengan adanya cleansing API, setiap siklus pengujian dapat dimulai dalam kondisi yang sama.

    Contoh Kasus
    Misalnya, kamu memiliki pengujian API untuk sistem pemesanan. Jika data pesanan sebelumnya tidak dihapus, pengujian berikutnya dapat gagal karena:

    1. Pesanan dengan ID yang sama sudah ada.
    2. Status pesanan sebelumnya memengaruhi alur pengujian baru.

    Dengan cleansing API, kamu dapat membersihkan semua data terkait pesanan sebelum memulai pengujian baru.

    Best Practices

    1. Environment Segregation
      Pastikan cleansing API hanya digunakan di lingkungan pengujian (staging/testing) untuk mencegah penghapusan data di produksi.
    2. Authentication & Authorization
      Tambahkan mekanisme otentikasi (misalnya, token API) untuk memastikan hanya pengguna yang berwenang dapat menggunakan API ini.
    3. Log Aktivitas
      Catat data yang dihapus untuk debugging.
  • Memiliki environment testing khusus untuk Quality Assurance (QA) sangat penting dalam siklus pengembangan perangkat lunak, karena memastikan bahwa pengujian dilakukan dalam lingkungan yang mereplikasi kondisi aktual aplikasi, tetapi dengan kendali lebih besar terhadap data dan proses. Berikut adalah alasan utama mengapa QA membutuhkan environment testing sendiri, serta implikasinya jika tidak memilikinya:

    Mengapa QA Harus Punya Environment Testing?

    1. Isolasi dari Environment Lain
      QA testing sering melibatkan pengujian fungsionalitas, stres, regresi, dan eksplorasi yang bisa mengganggu alur kerja tim lain. Dengan memiliki environment sendiri, QA dapat melakukan pengujian intensif tanpa memengaruhi pengembangan (development) atau staging.
    2. Data yang Dikontrol
      QA membutuhkan data uji spesifik, termasuk data edge-case dan skenario ekstrem. Dengan environment sendiri, QA dapat memasukkan dan menghapus data uji sesuai kebutuhan tanpa memengaruhi data di environment lain.
    3. Simulasi Kondisi Nyata
      Environment testing yang mendekati kondisi production memungkinkan QA memastikan aplikasi berfungsi dengan baik dalam skenario nyata, termasuk konfigurasi server, API, dan layanan eksternal.
    4. Stabilitas Pengujian
      Staging dan development sering berubah karena deployment baru atau eksperimen tim dev. QA membutuhkan environment yang stabil agar hasil pengujian konsisten dan akurat.
    5. Identifikasi Masalah Lebih Cepat
      QA dapat fokus mengidentifikasi dan mereproduksi bug di environment yang dirancang untuk pengujian, tanpa kekhawatiran akan pengaruh dari kode atau konfigurasi yang belum final.

    Jika Tidak Ada Environment Testing
    Jika QA tidak memiliki environment testing khusus, beberapa masalah dapat muncul:

    1. Pengujian Menjadi Tidak Stabil
      Menggunakan development environment berarti pengujian sering terganggu oleh perubahan kode yang sedang dikembangkan, membuat hasil pengujian tidak dapat diandalkan.
    2. Risiko Mengganggu Tim Lain
      Menggunakan staging untuk pengujian QA dapat mengganggu deployment testing tim lain, seperti UAT (User Acceptance Testing), atau proses persiapan release.
    3. Data Tidak Konsisten
      Development atau staging environment mungkin tidak memiliki data yang sesuai untuk skenario pengujian QA, sehingga mengurangi efektivitas pengujian.
    4. Kesulitan Mereproduksi Bug
      Bug yang ditemukan di staging atau production lebih sulit direproduksi jika tidak ada lingkungan yang serupa dan terisolasi.
    5. Penundaan Proses Pengembangan
      QA yang bergantung pada environment tim lain sering harus menunggu sampai environment tersebut tersedia atau stabil, sehingga memperlambat siklus pengujian.

    Alternatif Jika Tidak Memiliki Environment Testing

    1. Gunakan Virtualisasi atau Containerization
      QA dapat menggunakan solusi seperti Docker untuk menciptakan environment sementara yang menyerupai production.
    2. Buat Data Uji Terpisah
      Jika harus berbagi staging atau development, QA bisa menggunakan dataset khusus dengan namespace unik untuk meminimalkan gangguan.
    3. Gunakan Environment Bersama Secara Bijak
      Tetapkan jadwal penggunaan environment bersama untuk memastikan QA memiliki waktu yang cukup untuk pengujian tanpa bentrok dengan tim lain.
    4. Automasi Pengaturan Environment
      Manfaatkan Infrastructure as Code (IaC) untuk dengan cepat membuat dan membongkar environment yang sesuai kebutuhan QA.

    Kesimpulan
    Environment testing adalah elemen krusial bagi tim QA untuk memastikan kualitas aplikasi sebelum deployment. Jika tidak tersedia, QA harus mencari cara untuk menciptakan kondisi yang menyerupai lingkungan production, menggunakan alat bantu atau pendekatan alternatif yang minim risiko terhadap proses pengembangan dan staging.

  • Masing-masing versi (version) dalam proses pengembangan perangkat lunak memiliki fungsi penting untuk Quality Assurance (QA). Berikut manfaat versioning untuk QA:

    1. Test Plan Version

    1. Melacak Perubahan Strategi Pengujian
      Test plan dapat berubah seiring dengan perkembangan proyek, seperti perubahan fitur, skenario pengujian, atau prioritas. Dengan menggunakan versioning, QA dapat memastikan dokumen terbaru digunakan sebagai panduan pengujian.
    2. Dokumentasi yang Jelas
      Membantu QA mengidentifikasi versi mana yang digunakan untuk pengujian tertentu, terutama jika ada kebutuhan audit atau analisis pasca-proyek.
    3. Menghindari Kebingungan
      Mengurangi risiko tim menggunakan rencana pengujian yang sudah usang.

    2. Test Case Version

    1. Melacak Perubahan Skenario Pengujian
      Saat aplikasi atau fitur diperbarui, test case juga perlu diupdate agar tetap relevan. Versioning memastikan QA tahu test case mana yang sesuai dengan versi aplikasi yang diuji.
    2. Menjaga Konsistensi Pengujian
      Membantu QA menjalankan pengujian berdasarkan skenario yang diperbarui, terutama jika ditemukan bug atau ada kebutuhan regresi testing.
    3. Audit dan Analisis
      Jika ada masalah pada aplikasi, QA dapat melacak apakah test case versi terbaru mencakup skenario yang relevan atau perlu diperbaiki.

    3. Build Version

    1. Identifikasi Build yang Diuji
      QA dapat memastikan bahwa pengujian dilakukan pada build tertentu, sehingga hasil pengujian spesifik untuk build tersebut.
    2. Tracking Bug dan Feedback
      Jika QA menemukan bug, build version mempermudah pengembang melacak versi perangkat lunak di mana bug tersebut ditemukan.
    3. Regresi Testing
      Saat ada build baru, QA dapat memverifikasi bahwa perbaikan bug atau fitur baru telah diterapkan dengan benar.

    4. API Version

    1. Kompatibilitas Pengujian
      QA dapat memastikan bahwa aplikasi klien (client application) kompatibel dengan versi API yang digunakan.
    2. Testing Backward Compatibility
      Jika ada versi API baru, QA dapat menguji apakah aplikasi lama tetap dapat berfungsi dengan versi API tersebut.
    3. Mendeteksi Perubahan
      API version membantu QA mengetahui jika ada endpoint yang diubah, ditambahkan, atau dihapus, sehingga pengujian dapat disesuaikan.

    5. App Version

    1. Pengujian Fungsionalitas
      QA memastikan bahwa versi aplikasi yang dirilis sudah memenuhi semua kriteria pengujian.
    2. Regresi Testing
      Jika ada versi baru, QA dapat memastikan fitur lama tetap bekerja sebagaimana mestinya.
    3. Komunikasi dengan Tim Lain
      QA dapat menggunakan app version untuk memberi tahu pengembang atau pemangku kepentingan lain tentang versi aplikasi yang diuji.

    6. Release Version

    1. Release Validation Testing
      QA bertanggung jawab untuk memvalidasi bahwa versi yang akan dirilis sudah siap (ready for release).
    2. Catatan Perubahan (Release Notes)
      Release version sering kali terkait dengan dokumentasi yang menunjukkan perubahan apa saja yang disertakan dalam versi tersebut, sehingga QA dapat memverifikasi bahwa semua perubahan telah diuji.
    3. Komunikasi dengan Tim Pengguna
      Memastikan bahwa versi yang diuji sama dengan yang dirilis ke pengguna akhir untuk menghindari kesalahan.

    Kesimpulan
    Versioning membantu QA untuk:

    1. Melacak perubahan dalam strategi, skenario, atau fitur yang diuji.
    2. Memastikan konsistensi pengujian antara tim QA, pengembang, dan pemangku kepentingan lainnya.
    3. Mempermudah audit dan troubleshooting dengan mengetahui versi mana yang diuji dan mana yang bermasalah.
    4. Mengelola pengujian regresi saat fitur baru ditambahkan atau bug diperbaiki.

    Versioning adalah elemen penting dalam proses pengujian, terutama di lingkungan yang menggunakan metodologi Agile atau Continuous Integration/Continuous Deployment (CI/CD).

  • Mengujinya aplikasi berbasis desktop memang bisa lebih sulit dibandingkan dengan aplikasi berbasis web atau mobile, karena ada beberapa faktor yang membuat pengujian aplikasi desktop lebih kompleks. Berikut alasan mengapa pengujian aplikasi desktop lebih menantang:

    1. Keragaman Platform dan Konfigurasi Sistem
      1. Platform Tertentu: Aplikasi desktop sering kali di-develop untuk berjalan pada sistem operasi tertentu (Windows, macOS, Linux) dengan konfigurasi perangkat keras dan perangkat lunak yang bervariasi. Pengujian harus dilakukan di berbagai versi sistem operasi, dengan berbagai konfigurasi perangkat keras dan perangkat lunak.
      2. Kompatibilitas Driver dan Hardware: Aplikasi desktop terkadang berinteraksi dengan hardware tertentu, seperti printer, scanner, atau perangkat input khusus. Menguji aplikasi dengan berbagai perangkat keras di semua konfigurasi yang mungkin bisa menjadi tantangan besar.
    2. Proses Instalasi dan Pembaruan
      1. Proses Instalasi: Pengujian aplikasi desktop melibatkan proses instalasi yang harus diuji untuk memastikan bahwa aplikasi dapat terinstal dengan benar pada berbagai konfigurasi sistem. Masalah sering muncul saat proses instalasi yang mempengaruhi sistem operasi atau komponen perangkat keras lainnya.
      2. Pembaruan dan Patch: Pembaruan aplikasi desktop juga memerlukan pengujian khusus untuk memastikan bahwa aplikasi tetap berfungsi dengan benar setelah patch atau pembaruan perangkat lunak. Pengujian pembaruan pada aplikasi desktop bisa lebih sulit karena harus memastikan bahwa pembaruan tidak merusak aplikasi atau sistem operasi.
    3. Pengujian Kinerja dan Performa
      1. Performa pada Sistem Berbeda: Aplikasi desktop harus diuji di berbagai perangkat keras, yang dapat mempengaruhi kinerja aplikasi (misalnya, aplikasi yang berjalan lebih cepat di komputer dengan spesifikasi lebih tinggi). Pengujian kinerja ini lebih kompleks dibandingkan aplikasi web atau mobile, yang biasanya dapat dijalankan di berbagai perangkat dengan platform yang lebih seragam.
      2. Penggunaan Sumber Daya Sistem: Aplikasi desktop sering berinteraksi langsung dengan CPU, RAM, dan sumber daya sistem lainnya. Pengujian untuk memastikan aplikasi tidak mempengaruhi kinerja sistem secara keseluruhan atau menyebabkan penggunaan sumber daya yang berlebihan adalah tugas yang lebih kompleks.
    4. Pengujian Keamanan
      1. Keamanan Sistem Lokal: Aplikasi desktop berinteraksi langsung dengan file sistem lokal dan memiliki akses yang lebih dalam ke perangkat keras, yang menambah kompleksitas pengujian keamanan. Misalnya, aplikasi desktop mungkin lebih rentan terhadap eksploitasi melalui manipulasi sistem file lokal atau registry di Windows.
      2. Enkripsi dan Penyimpanan Data: Aplikasi desktop sering kali menyimpan data di dalam file atau database lokal, dan perlu diuji untuk memastikan bahwa data tersebut aman, terenkripsi, dan terlindungi dari akses yang tidak sah.
    5. Pengujian Antarmuka Pengguna (UI)
      1. Variasi Resolusi Layar: Aplikasi desktop perlu diuji pada berbagai ukuran layar dan resolusi yang berbeda. Antarmuka pengguna (UI) harus diujikan untuk memastikan bahwa aplikasi bekerja dengan baik pada berbagai tampilan layar yang berbeda, yang tidak begitu masalah di aplikasi web atau mobile (karena platform ini sudah menyediakan responsivitas).
      2. Interaksi dengan Sistem Operasi: Aplikasi desktop sering berinteraksi dengan antarmuka sistem operasi lebih dalam daripada aplikasi web atau mobile, yang dapat memengaruhi pengujian UI. Misalnya, bagaimana aplikasi berfungsi dengan jendela minimalisasi, pengaturan tema sistem, atau pengaturan aksesibilitas di OS.
    6. Pengujian Integrasi dengan Layanan Lain
      1. Integrasi Layanan dan Protokol Khusus: Aplikasi desktop sering kali bergantung pada protokol dan layanan yang lebih kompleks atau kustom, seperti komunikasi melalui file sharing, jaringan lokal, atau API berbasis desktop yang tidak digunakan oleh aplikasi web atau mobile.
      2. Keterbatasan Akses ke Sistem Jaringan: Aplikasi desktop bisa lebih sulit diuji dalam hal pengujian integrasi jika aplikasi bergantung pada jaringan lokal atau perangkat tertentu yang sulit dipantau dan dikelola dalam pengaturan pengujian.
    7. Pengujian di Lingkungan Terisolasi
      Lingkungan Terisolasi: Aplikasi desktop biasanya dijalankan di lingkungan terisolasi pada perangkat individu, yang membuat pengujian lebih rumit dibandingkan aplikasi web, yang bisa diuji di server atau aplikasi mobile yang diuji dengan perangkat yang lebih terkendali dan seragam. Lingkungan desktop yang terisolasi ini memerlukan simulasi yang lebih rumit untuk menangani interaksi yang kompleks antara aplikasi, sistem operasi, dan perangkat keras.
    8. Keterbatasan Alat Pengujian
      Alat Pengujian yang Terbatas: Terkadang, ada lebih sedikit alat pengujian otomatis yang tersedia untuk aplikasi desktop dibandingkan dengan aplikasi web atau mobile. Pengujian manual pada aplikasi desktop memerlukan lebih banyak keterlibatan langsung, karena banyak alat pengujian otomatis lebih difokuskan pada aplikasi web atau mobile.
    9. Distribusi dan Pembaruan Aplikasi
      1. Pengujian Distribusi dan Instalasi: Proses distribusi aplikasi desktop sering kali lebih rumit. Misalnya, menguji aplikasi yang didistribusikan melalui berbagai saluran (misalnya, installer, aplikasi portabel, atau distribusi melalui toko aplikasi desktop) membutuhkan pendekatan yang berbeda.
      2. Keberagaman Versi: Karena aplikasi desktop tidak selalu mengupdate dirinya secara otomatis, ada kemungkinan banyak versi aplikasi yang berjalan di sistem yang berbeda, yang memerlukan pengujian untuk memastikan kompatibilitas dan kelancaran pembaruan.

    Kesimpulan
    Pengujian aplikasi desktop lebih sulit karena kompleksitas konfigurasi perangkat keras dan perangkat lunak yang berbeda-beda, ketergantungan pada sistem operasi tertentu, proses instalasi dan pembaruan yang rumit, serta tantangan dalam pengujian kinerja dan keamanan. Meskipun aplikasi web dan mobile juga memiliki tantangan tersendiri, aplikasi desktop memerlukan pengujian yang lebih mendalam terhadap interaksi dengan sistem lokal, perangkat keras, dan kompatibilitas berbagai versi OS.

  • Untuk menjadi seorang QA Manual, ada beberapa syarat dan skill yang biasanya dibutuhkan agar bisa menjalankan tugas dengan efektif. Berikut adalah daftar skill dan syarat minimal yang perlu dimiliki:

    1. Pengetahuan Dasar tentang Pengujian Perangkat Lunak
      1. Konsep QA dan Software Testing: Memahami dasar-dasar QA, termasuk konsep-konsep seperti testing cycle (SDLC - Software Development Life Cycle), testing methodologies (Waterfall, Agile, etc.), dan jenis-jenis pengujian (Functional, Non-Functional, Regression, UAT, dll).
      2. Test Levels dan Types: Mengetahui berbagai tingkat pengujian (unit, integrasi, sistem, penerimaan) dan berbagai jenis pengujian (manual, smoke, sanity, performance, security).
    2. Kemampuan Menulis dan Mengelola Test Case
      1. Menulis Test Case yang Terstruktur: Dapat membuat test case yang jelas, terstruktur, dan mudah dipahami. Test case harus mencakup langkah-langkah, input, hasil yang diharapkan, dan status (pass/fail).
      2. Dokumentasi yang Rapi: Menyusun dokumentasi pengujian dengan baik dan rapi, serta mampu menyimpan dan mengelola test case untuk referensi di masa depan.
    3. Kemampuan untuk Mengidentifikasi dan Menganalisis Bug
      1. Bug Tracking: Menggunakan alat pelacakan bug (seperti JIRA, Bugzilla, Trello) untuk mencatat, melaporkan, dan mengikuti perkembangan bug atau masalah yang ditemukan selama pengujian.
      2. Analisis Bug: Memiliki kemampuan untuk menganalisis bug yang ditemukan, mengklasifikasikan keparahannya, dan mengkomunikasikan temuan dengan tim pengembang secara efektif.
    4. Pemahaman tentang Aplikasi dan Proses Bisnis
      1. Business Requirement: Mampu memahami dan menganalisis persyaratan bisnis dan konversi menjadi test case yang relevan.
      2. Pengujian Berbasis Kebutuhan Pengguna: Mampu menilai fungsionalitas aplikasi berdasarkan pengalaman pengguna dan tujuan aplikasi itu sendiri.
    5. Pengetahuan tentang Alat Pengujian Manual
      1. Alat Manajemen Pengujian: Familiar dengan alat-alat seperti TestRail, TestLink, atau alat serupa untuk mengelola test case dan pelaporan.
      2. Bug Tracking Tools: Familiar dengan alat pelacakan bug, seperti JIRA, untuk mengidentifikasi dan melaporkan bug yang ditemukan selama pengujian.
    6. Kemampuan untuk Berkomunikasi dengan Tim
      1. Komunikasi yang Efektif: Memiliki keterampilan komunikasi yang baik, baik lisan maupun tertulis, untuk menjelaskan temuan bug, mengajukan pertanyaan kepada tim pengembang, dan berkolaborasi dengan pemangku kepentingan lainnya.
      2. Kemampuan Negosiasi: Bisa berdiskusi dan bernegosiasi dengan tim pengembang untuk memastikan prioritas bug atau masalah yang ditemukan dapat segera diperbaiki.
    7. Kemampuan untuk Bekerja dengan Tim Agile (Jika Diperlukan)
      Agile Methodologies: Jika bekerja di tim yang menggunakan metode Agile (misalnya Scrum), penting untuk memahami siklus sprint, peran QA dalam pertemuan sprint, dan bagaimana pengujian dilakukan secara iteratif.
    8. Kemampuan Analitis dan Detail
      1. Critical Thinking: Mampu menganalisis aplikasi dan mencari kelemahan atau potensi masalah yang tidak terdeteksi selama pengembangan.
      2. Detail-Oriented: Memiliki perhatian yang tajam terhadap detail untuk memastikan bahwa semua skenario dan kemungkinan telah diuji dengan benar.
    9. Pemahaman Tentang Platform dan Sistem Operasi
      1. Cross-platform Testing: Mengetahui cara menguji aplikasi di berbagai platform (misalnya, web, mobile) dan berbagai sistem operasi (Windows, macOS, Android, iOS).
      2. Browser Testing: Mengerti cara menguji aplikasi di berbagai browser dan memastikan kompatibilitas antarbrowser.
    10. Keterampilan Organisasi dan Manajemen Waktu
      1. Manajemen Waktu: Mampu mengatur waktu dengan baik agar dapat menyelesaikan pengujian dalam tenggat waktu yang ditentukan, terutama ketika bekerja dengan beberapa proyek sekaligus.
      2. Kemampuan untuk Menangani Banyak Tugas: Menjaga keseimbangan antara tugas-tugas pengujian, pelaporan bug, dan komunikasi dengan tim tanpa mengorbankan kualitas.
    11. Keinginan untuk Belajar dan Beradaptasi
      Learning Mindset: Karena teknologi dan alat-alat pengujian terus berkembang, QA Manual perlu memiliki sikap yang terbuka untuk terus belajar dan meningkatkan keterampilan, termasuk memahami alat pengujian otomatis jika diperlukan di masa depan.
    12. Pengalaman atau Pengetahuan Dasar tentang Pengujian Otomatisasi (Opsional)
      Meskipun QA Manual tidak diwajibkan untuk menguasai otomasi, memiliki pengetahuan dasar tentang alat seperti Selenium atau Appium bisa menjadi nilai tambah yang besar untuk memahami bagaimana proses otomasi bekerja dan kapan sebaiknya digunakan.

    Dengan memiliki skill-skill tersebut, seorang QA Manual dapat menjalankan tugas pengujian perangkat lunak dengan baik, memastikan kualitas produk yang lebih baik, dan menghindari terjadinya bug atau masalah yang tidak terdeteksi.

  • Sebagai QA, ketika dihadapkan dengan tugas yang multitasking, penting untuk tetap menjaga komunikasi yang jelas dan terbuka dengan Project Manager (PM) / Product Manager / Product Owner agar prioritas testing dapat dikelola dengan efektif. Berikut adalah beberapa sikap dan langkah yang bisa diambil untuk melakukan negosiasi prioritas dengan PM:

    1. Evaluasi dan Tentukan Prioritas Tugas
      1. Analisis Risiko: Lakukan penilaian risiko terhadap fitur atau task yang perlu diuji. Tentukan mana yang paling krusial berdasarkan faktor seperti dampak bagi pengguna, frekuensi penggunaan, dan potensi bug yang bisa merusak pengalaman pengguna atau sistem.
      2. Buat Rencana Uji yang Terstruktur: Tentukan task mana yang bisa diselesaikan lebih cepat dan task mana yang membutuhkan lebih banyak waktu dan sumber daya. Dengan memiliki gambaran yang jelas, kamu bisa memberikan rekomendasi yang lebih realistis kepada PM.
    2. Komunikasi yang Terbuka dan Transparan
      1. Jelaskan Kondisi Secara Jelas: Sampaikan kepada PM jika ada banyak tugas yang perlu dikerjakan dalam waktu yang terbatas. Jelaskan jika kualitas pengujian bisa terpengaruh jika prioritas tidak ditentukan dengan jelas.
      2. Beri Gambaran Waktu dan Sumber Daya yang Diperlukan: Jika memungkinkan, buat estimasi waktu dan sumber daya yang dibutuhkan untuk setiap tugas dan bagaimana pengaruhnya terhadap timeline proyek. Hal ini membantu PM memahami konsekuensi dari multitasking yang tidak terprioritaskan.
    3. Fokus pada Kualitas
      1. Pilih Prioritas yang Tepat: Diskusikan bersama PM fitur atau area yang memiliki risiko tertinggi atau yang paling berpotensi menyebabkan masalah jika tidak diuji dengan baik. Fokus pada test case yang akan memberikan nilai maksimal dalam kualitas produk.
      2. Kualitas di atas Kuantitas: Terkadang, lebih baik menguji sedikit tetapi dengan mendalam dan menyeluruh, dibandingkan dengan mencoba menguji terlalu banyak hal dengan terburu-buru.
    4. Negosiasi yang Win-Win
      1. Tawarkan Alternatif Solusi: Jika ada beberapa tugas yang tidak bisa diuji dalam waktu yang diberikan, tawarkan solusi seperti automasi untuk beberapa tes regresi atau meminta penundaan untuk beberapa bagian yang kurang kritis.
      2. Prioritaskan Berdasarkan Impact: Negosiasikan pengujian berdasarkan fitur yang memberikan dampak terbesar pada pengguna akhir atau yang bisa mempengaruhi performa atau stabilitas sistem.
    5. Konsisten dengan Komitmen
      1. Jaga Komitmen terhadap Kualitas: Sampaikan bahwa kamu bertanggung jawab untuk menjaga kualitas produk dan hasil pengujian yang baik, dan bahwa pengujian yang terburu-buru bisa mengarah pada masalah yang lebih besar di masa depan.
      2. Tetap Fleksibel: Terkadang, meskipun sudah ditentukan prioritasnya, perubahan masih bisa terjadi. Bersikap fleksibel dan siap untuk menyesuaikan diri dengan perubahan prioritas yang mungkin diperlukan PM.
    6. Dokumentasi untuk Referensi Masa Depan
      Catat Semua Diskusi: Pastikan segala keputusan terkait prioritas pengujian dicatat dengan baik. Ini bisa menjadi referensi jika ada perubahan di masa depan atau jika tim perlu memeriksa ulang keputusan prioritas.

    Dengan sikap yang profesional, berbasis data, dan fokus pada kualitas, kamu bisa melakukan negosiasi yang efektif dan membantu tim serta Project Manager (PM) / Product Manager / Product Owner memahami bagaimana pengujian yang lebih terorganisir dapat meningkatkan keberhasilan proyek secara keseluruhan.

  • Untuk mengubah kebiasaan QA agar test case lebih terstruktur dan tidak asal-asalan, berikut langkah yang bisa diterapkan:

    1. Analisis Kebutuhan dan Risiko
      Sebelum menulis test case, pastikan tim QA benar-benar memahami kebutuhan fungsional dan non-fungsional dari aplikasi. Prioritaskan fitur yang memiliki risiko lebih tinggi atau lebih kompleks untuk diuji. Buat test case yang mencakup kondisi yang paling kritis dan sering digunakan.
    2. Gunakan Template Test Case yang Jelas
      Gunakan template test case yang sudah terstruktur dengan baik. Template tersebut harus mencakup informasi penting seperti langkah-langkah, input, hasil yang diharapkan, hasil aktual, dan status (pass/fail). Ini akan membantu memastikan semua aspek diuji dengan konsisten.
    3. Test Case Berbasis Requirement
      Test case harus didasarkan pada persyaratan yang jelas dan terdokumentasi dengan baik. Jangan membuat test case hanya berdasarkan asumsi atau pengalaman, pastikan test case mencakup semua persyaratan yang telah disepakati.
    4. Penggunaan Boundary Value Analysis (BVA) dan Equivalence Partitioning
      Ini adalah teknik untuk memastikan test case mencakup semua kemungkinan input dengan memanfaatkan pembagian skenario berdasarkan batasan dan kategori input yang relevan. Dengan ini, kamu dapat meminimalisir coverage gap.
    5. Peer Review dan Validasi
      Setelah menulis test case, lakukan peer review dengan sesama QA atau developer untuk memastikan bahwa test case yang dibuat sudah mencakup semua aspek yang perlu diuji dan tidak ada yang terlewat.
    6. Automatisasi untuk Regression Testing
      Untuk menghindari pengulangan yang berlebihan dan memastikan tidak ada yang terlewat pada testing regresi, pertimbangkan untuk mengotomatisasi beberapa test case, terutama yang sudah terbukti stabil. Ini akan memungkinkan tim untuk fokus pada pengujian skenario yang lebih kompleks.
    7. Tulis Test Case Modular
      Hindari menulis test case yang terlalu besar dan kompleks. Sebagai gantinya, tulislah test case modular yang menguji fitur-fitur kecil secara terpisah, lalu gabungkan mereka dalam skenario pengujian yang lebih besar jika diperlukan.
    8. Pelatihan dan Pembelajaran Berkelanjutan
      QA team harus terus dilatih untuk mengidentifikasi pola, teknik, dan pendekatan yang lebih efisien dalam menulis test case. Mengadakan sesi pembelajaran untuk berbagi pengetahuan terkait teknik testing bisa sangat membantu.
    9. Update Test Case Secara Berkala
      Test case perlu diperbarui jika ada perubahan dalam aplikasi atau jika ditemukan bug yang sebelumnya tidak terdeteksi. Jangan biarkan test case yang sudah tidak relevan terus dipakai.

    Dengan mengikuti langkah-langkah di atas, test case dapat lebih terstruktur dan efektif dalam mengcover seluruh kebutuhan pengujian, mengurangi risiko adanya skenario yang tidak tercover.

  • Implementasi unit testing sebaiknya dilakukan sejak awal proses pengembangan. Namun, jika fitur atau modul sudah terlalu besar, masih memungkinkan untuk memulai, meskipun ada tantangan tambahan. Berikut adalah panduan untuk keduanya:

    Kapan Unit Testing Dilakukan?

    1. Idealnya
      1. Sebelum atau selama pengembangan fitur/modul baru
        Dengan pendekatan Test-Driven Development (TDD), developer menulis unit test sebelum mengimplementasikan kode. Namun, jika TDD tidak diterapkan, unit test setidaknya harus ditulis bersamaan dengan pengembangan.
      2. Setelah desain selesai
        Setelah arsitektur atau desain modul dipastikan, developer dapat menulis unit test untuk memverifikasi setiap fungsi/unit kode sesuai desain.
    2. Pada perubahan atau perbaikan kode
      1. Setiap kali ada bug yang dilaporkan, tulis unit test untuk mereplikasi bug tersebut. Setelah itu, perbaiki kodenya sehingga bug tidak muncul kembali.
      2. Saat menambah fitur baru, tambahkan unit test untuk memastikan tidak terjadi regresi.

    Jika Fitur/Modul Sudah Terlalu Besar
    Jika modul atau fitur sudah besar dan tidak memiliki unit test, kamu tetap bisa memulai, tapi perlu pendekatan bertahap dan strategis:

    1. Identifikasi Bagian Kritis
      1. Fokus pada bagian paling berisiko: Modul atau fungsi yang sering mengalami perubahan, memiliki kompleksitas tinggi, atau menjadi inti dari aplikasi.
      2. Prioritaskan fungsi utama: Pastikan bagian ini diuji terlebih dahulu, karena dampaknya terhadap aplikasi lebih besar jika terjadi bug.
    2. Refactor Bertahap
      1. Pecah modul besar menjadi bagian-bagian kecil jika memungkinkan. Setiap bagian kecil dapat diuji secara terpisah.
      2. Tambahkan unit test setelah refactor: Dengan cara ini, kamu bisa memastikan refactor berjalan aman tanpa merusak fungsi lain.
    3. Gunakan Test Coverage Tools
      1. Alat seperti JaCoCo (untuk Java), Istanbul (untuk JavaScript), atau Coverage.py (untuk Python) bisa membantu memetakan area kode yang belum diuji.
      2. Prioritaskan penulisan unit test untuk area yang memiliki coverage rendah.
    4. Tuliskan Unit Test untuk Kasus Baru
      1. Pastikan setiap fitur baru yang ditambahkan memiliki unit test, meskipun fitur lama belum sepenuhnya diuji.
      2. Perlahan, saat fitur lama diperbaiki atau diperbarui, tambahkan unit test untuk bagian tersebut.

    Tantangan dan Cara Mengatasinya

    1. Tantangan
      1. Kode terlalu kompleks: Sulit untuk diuji karena banyak dependensi atau struktur yang tidak mendukung.
      2. Kurangnya waktu: Menambahkan unit test ke modul besar memakan waktu.
      3. Kurangnya dokumentasi: Developer baru mungkin kesulitan memahami kode lama.
    2. Solusi
      1. Mulai dari kasus sederhana dan tambahkan test secara bertahap.
      2. Libatkan seluruh tim dalam proses menulis unit test agar tanggung jawab tersebar.
      3. Pastikan semua kode baru memiliki unit test agar tidak menambah utang teknis.

    Kesimpulan

    1. Unit test dilakukan sejak awal pengembangan fitur untuk mencegah utang teknis.
    2. Jika modul terlalu besar, lakukan pendekatan bertahap:
      1. Prioritaskan bagian kritis.
      2. Pecah modul besar menjadi bagian kecil.
      3. Gunakan alat coverage untuk memandu penulisan test.
    3. Fokus pada membangun kebiasaan menulis unit test untuk semua kode baru agar utang teknis tidak terus bertambah.

    Pendekatan ini memungkinkan unit testing tetap bisa diimplementasikan, bahkan untuk fitur yang sudah besar dan kompleks.

  • Menghadapi situasi ini membutuhkan pendekatan yang diplomatis, kolaboratif, dan solutif agar tidak menimbulkan konfrontasi. Berikut beberapa langkah yang dapat diambil:

    1. Bangun Pemahaman Tentang Tujuan Bersama
      1. Komunikasikan tujuan tim
        Fokus pada kualitas produk sebagai tanggung jawab bersama, bukan sekadar tanggung jawab QA. Sampaikan bahwa unit test dan QA manual memiliki peran yang saling melengkapi.
      2. Tekankan manfaat unit test
        Jelaskan bahwa unit test membantu mendeteksi bug lebih awal, menghemat waktu, dan mengurangi potensi masalah di tahap berikutnya.
    2. Libatkan Developer di Awal Proses
      1. Kolaborasi dalam penyusunan test case
        Ajak developer untuk berdiskusi saat QA menyusun test case/scenario. Hal ini bisa membuka peluang bagi developer untuk memahami skenario yang akan diuji dan mempersiapkan unit test.
      2. Review test case bersama
        Saat test case selesai dibuat, lakukan review bersama developer. Ini dapat menjadi pengingat halus bagi mereka untuk menyiapkan unit test.
    3. Pendekatan Edukatif
      1. Berikan contoh dampak positif
        Jika ada contoh sebelumnya di mana ketiadaan unit test menyebabkan bug besar, gunakan itu sebagai pelajaran untuk mendukung pentingnya unit test.
      2. Kenalkan alat bantu
        Jika memungkinkan, bantu developer mengenal alat atau framework unit testing yang relevan dengan teknologi yang digunakan, untuk memudahkan pekerjaan mereka.
    4. Gunakan Data dan Fakta
      1. Catat bug yang ditemukan di QA manual dan identifikasi apakah itu bisa dicegah dengan unit test.
      2. Sampaikan data ini dalam retrospective meeting atau diskusi tim untuk memperlihatkan manfaat praktis dari unit test.
    5. Pendekatan Diplomatis
      1. Hindari menyalahkan
        Gunakan bahasa yang kolaboratif seperti "Bagaimana jika kita coba memastikan beberapa kasus ini tercover di unit test agar tim kita lebih efisien?"
      2. Fokus pada solusi
        Tawarkan bantuan untuk memastikan semua skenario pengujian jelas, sehingga developer merasa didukung.
    6. Mendorong Budaya Quality-Oriented
      1. Peran Leader atau Manager
        Dorong leader tim untuk menekankan pentingnya unit test sebagai bagian dari standar pengembangan.
      2. Definisi Selesai (Definition of Done)
        Pastikan "unit test yang mencakup skenario utama" menjadi bagian dari definisi selesai dalam proses kerja tim.

    Contoh Diplomasi
    Saat berdiskusi dengan developer: "Saya melihat beberapa skenario ini cukup penting untuk produk kita. Bagaimana kalau kita memastikan sebagian besar dari ini sudah tercover di unit test? Kalau ada yang kurang jelas, saya siap bantu jelaskan test case-nya."

    Pendekatan ini menghindari kesan menyalahkan, mendukung kerja sama, dan menjaga hubungan baik antar anggota tim.

  • Testing lewat database sering dianggap red flag / berbahaya karena beberapa alasan berikut:

    1. Fokus pada Backend Saja
      1. Masalah: Mengandalkan pengujian database cenderung mengabaikan pengujian aplikasi di lapisan antarmuka pengguna (UI) dan logika bisnis.
      2. Dampak: Potensi bug di UI atau pengalaman pengguna tidak terdeteksi, meskipun data di backend sudah benar.
    2. Mengabaikan Perspektif Pengguna
      1. Masalah: Database testing sering kali tidak mencerminkan cara pengguna berinteraksi dengan aplikasi.
      2. Dampak: Bug yang berhubungan dengan alur kerja pengguna atau validasi input mungkin tidak terdeteksi.
    3. Kesalahan Validasi Data
      1. Masalah: QA bisa salah menginterpretasikan relasi antar data atau skema database.
      2. Dampak: Pengujian mungkin tidak relevan dengan logika aplikasi aktual atau aturan bisnis.
    4. Menyentuh Lingkungan yang Sensitif
      1. Masalah: Database production sering kali menyimpan data sensitif atau kritis.
      2. Dampak: QA yang mengakses atau memodifikasi data langsung di production dapat menyebabkan pelanggaran keamanan atau kerusakan data.
    5. Tidak Mendeteksi Bug di Alur End-to-End
      1. Masalah: Bug bisa terjadi di lapisan aplikasi (misalnya kesalahan validasi input atau error API) tetapi tidak terlihat dari sisi database.
      2. Dampak: Testing hanya dari database tidak memastikan sistem berfungsi secara keseluruhan.
    6. Over-Reliance pada Data Testing
      1. Masalah: Fokus berlebihan pada database dapat menyebabkan QA bergantung pada query SQL untuk memverifikasi data, sehingga mengurangi perhatian pada pengujian sistem secara holistik.
      2. Dampak: QA mungkin kehilangan gambaran besar tentang fungsi aplikasi.

    Cara Meminimalkan Risiko

    1. Gunakan Database Testing Sebagai Pelengkap
      Database testing sebaiknya digunakan untuk memvalidasi data backend setelah pengujian end-to-end dilakukan.
    2. Prioritaskan Testing End-to-End
      Simulasikan alur kerja pengguna di UI untuk mendeteksi bug dalam skenario dunia nyata.
    3. Gunakan Data Testing dengan Bijak
      Pastikan data testing merepresentasikan kondisi aktual tanpa merusak data produksi.

    Dengan pendekatan ini, QA dapat memanfaatkan testing database tanpa mengorbankan aspek penting lain dalam pengujian perangkat lunak.

  • Sebagai seorang Quality Assurance (QA), memahami Entity-Relationship Diagram (ERD) memang tidak selalu wajib, tetapi memiliki pengetahuan dasar tentangnya dapat sangat bermanfaat. Berikut alasannya:

    Mengapa QA Perlu Tahu ERD?

    1. Memahami Struktur Database
      1. ERD memberikan gambaran tentang struktur data dan hubungan antar tabel dalam database.
      2. Dengan memahami ERD, QA dapat mengenali bagaimana data disimpan, diproses, dan dihubungkan, sehingga mempermudah proses pengujian.
    2. Mendesain Test Case yang Lebih Baik
      1. QA dapat membuat skenario pengujian berbasis data dengan lebih akurat, misalnya untuk pengujian CRUD (Create, Read, Update, Delete).
      2. ERD membantu QA memahami dependensi data antar entitas, sehingga bisa mengantisipasi kemungkinan error akibat data yang tidak sesuai.
    3. Validasi Data
      1. Dalam pengujian integrasi atau pengujian backend, QA sering memverifikasi data langsung di database.
      2. Dengan memahami ERD, QA bisa memastikan bahwa data di tabel sudah sesuai dengan requirement (misalnya relasi, foreign key, atau constraint).
    4. Berkomunikasi dengan Tim Dev
      Ketika QA memahami ERD, komunikasi dengan developer akan lebih efektif, terutama dalam diskusi tentang bug yang berkaitan dengan data atau logika bisnis.
    5. Mendeteksi Bug yang Kompleks
      QA dapat lebih mudah mendeteksi bug yang berhubungan dengan relasi antar entitas, seperti kesalahan pada foreign key, data orphan, atau data yang tidak konsisten.

    Manfaat yang Dirasakan QA

    1. Efisiensi dalam Pengujian
      QA dapat langsung mengidentifikasi data yang relevan untuk pengujian berdasarkan ERD tanpa harus bergantung sepenuhnya pada dev.
    2. Memahami Skema End-to-End
      Membantu QA untuk memiliki pandangan holistik terhadap sistem, termasuk bagaimana data mengalir dari frontend ke backend dan sebaliknya.
    3. Mengurangi Risiko Bug
      Pemahaman terhadap ERD membantu QA untuk mengidentifikasi area yang rentan error, terutama yang terkait dengan hubungan data yang kompleks.

    Contoh Situasi
    Jika dalam sebuah sistem terdapat fitur manajemen user dan order, QA yang memahami ERD bisa:

    1. Mengecek apakah user tanpa order tetap terdaftar di sistem (orphan data).
    2. Memastikan bahwa order tidak dapat dibuat tanpa user yang valid (relasi one-to-many).
    3. Memverifikasi kendala, seperti apakah total order sesuai dengan jumlah item dalam detail order.

    Kesimpulan
    Meskipun tidak wajib, pengetahuan tentang ERD akan sangat meningkatkan kualitas kerja QA. Jika kamu ingin meningkatkan keahlian sebagai QA, belajar dasar-dasar ERD adalah investasi yang berharga.

  • Sebagai QA, memahami perbedaan antara validasi syntactic dan semantic sangat penting untuk memastikan kualitas aplikasi. Berikut adalah penjelasannya:

    1. Validasi Syntactic (Sintaksis)

    Validasi sintaktis memastikan bahwa data atau input yang dimasukkan sesuai dengan aturan format atau struktur yang telah ditentukan. Fokusnya pada how the data is structured.

    1. Contoh
      1. Email harus memiliki format seperti username@domain.com.
      2. Nomor telepon hanya boleh terdiri dari angka.
      3. Tanggal harus dalam format DD/MM/YYYY.
    2. Mengapa Penting
      Validasi ini memastikan bahwa data yang diterima oleh sistem tidak akan menyebabkan error akibat format yang salah.
    3. Tugas QA
      Menguji apakah sistem menolak input yang tidak sesuai dengan aturan sintaktis, misalnya memasukkan abc@domain sebagai email dan memastikan sistem memunculkan pesan error.

    2. Validasi Semantic (Semantik)

    Validasi semantik memastikan bahwa data yang dimasukkan memiliki makna atau logika yang benar sesuai dengan konteks. Fokusnya pada whether the data makes sense.

    1. Contoh
      1. Tanggal lahir tidak boleh di masa depan.
      2. Umur harus sesuai dengan tanggal lahir.
      3. Jumlah barang yang dipesan tidak boleh lebih besar dari stok yang tersedia.
    2. Mengapa Penting
      Validasi ini mencegah terjadinya error logis yang bisa menyebabkan bug dalam proses bisnis atau operasional sistem.
    3. Tugas QA
      Menguji apakah sistem memvalidasi logika data, misalnya memasukkan tanggal lahir di masa depan atau pesanan barang dengan jumlah melebihi stok, dan memastikan sistem memberikan pesan kesalahan yang sesuai.

    Perbandingan Utama

    Konteks QA

    1. Validasi Sintaktis sering dilakukan di level awal (UI atau form input).
    2. Validasi Semantik lebih banyak dilakukan di level backend atau integrasi sistem, dan memerlukan pemahaman konteks bisnis.

    Memahami kedua jenis validasi ini membantu QA memastikan aplikasi bekerja secara optimal dan mencegah terjadinya kesalahan dari sisi pengguna maupun sistem.

  • Peran Quality Assurance (QA) sangat penting dalam audit internal maupun eksternal, terutama di akhir tahun, karena QA berkontribusi untuk memastikan bahwa proses, produk, dan layanan perusahaan sesuai dengan standar yang telah ditetapkan. Berikut beberapa alasan QA dilibatkan dalam audit tersebut:

    1. Verifikasi Kepatuhan terhadap Proses
      1. QA bertanggung jawab memastikan bahwa semua tahapan pengembangan aplikasi (SDLC) dilakukan sesuai dengan standar perusahaan dan regulasi industri.
      2. Audit sering memeriksa dokumentasi proses QA, seperti test plans, test cases, bug reports, dan hasil pengujian untuk memastikan bahwa aplikasi diuji dengan baik.
    2. Penyediaan Bukti Dokumentasi
      1. QA menghasilkan berbagai bentuk dokumentasi pengujian yang diperlukan sebagai bukti saat audit, seperti traceability matrix, laporan pengujian, dan bukti validasi.
      2. Dokumentasi ini digunakan untuk menunjukkan bahwa aplikasi memenuhi persyaratan bisnis dan teknis.
    3. Mendukung Keamanan dan Kepatuhan Regulasi
      1. QA membantu memverifikasi bahwa aplikasi sesuai dengan standar keamanan seperti ISO 27001, GDPR, atau PCI DSS, tergantung pada kebutuhan bisnis.
      2. Peran QA dalam mengidentifikasi celah keamanan selama pengujian aplikasi sering menjadi fokus dalam audit eksternal.
    4. Evaluasi Risiko dan Kontinuitas
      1. QA turut mengevaluasi potensi risiko dalam aplikasi yang dapat memengaruhi keberlangsungan bisnis.
      2. QA memberikan laporan yang membantu auditor memahami apakah langkah mitigasi risiko sudah diterapkan dengan baik.
    5. Meningkatkan Kepercayaan Auditor
      1. Keterlibatan QA menunjukkan komitmen perusahaan terhadap kualitas dan kepatuhan, yang dapat meningkatkan kepercayaan auditor.
      2. QA sering menjadi bagian dari wawancara dengan auditor untuk menjelaskan metode pengujian yang digunakan.
    6. Peningkatan Berkelanjutan
      Dari hasil audit, QA berperan dalam mengimplementasikan tindakan perbaikan untuk memastikan bahwa temuan audit diperbaiki dan tidak terulang kembali.

    Contoh Situasi
    Misalnya, dalam audit eksternal untuk memastikan aplikasi mematuhi standar GDPR (General Data Protection Regulation), tim QA akan diminta memberikan bukti bahwa pengujian privasi data pengguna telah dilakukan dan bahwa fitur seperti data encryption dan access control berfungsi sebagaimana mestinya.

    Dengan demikian, QA tidak hanya mendukung operasional, tetapi juga berperan penting dalam memastikan perusahaan dan aplikasinya berjalan sesuai standar audit.

  • QA (Quality Assurance) wajib mengetahui tentang OWASP (Open Web Application Security Project) karena mereka berperan penting dalam memastikan bahwa aplikasi tidak hanya berfungsi dengan baik, tetapi juga aman dari potensi ancaman keamanan. Memahami OWASP memungkinkan QA untuk mengidentifikasi, menguji, dan mencegah kerentanannya di tahap awal pengembangan aplikasi.

    Mengapa QA Harus Mengetahui OWASP:

    1. Identifikasi Kerentanan Keamanan
      QA yang tahu tentang OWASP dapat membantu mengidentifikasi dan menguji kerentanan aplikasi, sehingga dapat menghindari masalah keamanan yang berpotensi serius.
    2. Pengujian Keamanan
      QA dapat merancang dan menjalankan pengujian keamanan untuk memastikan bahwa aplikasi mematuhi praktik terbaik yang tercantum dalam proyek OWASP.
    3. Kolaborasi dengan Pengembang
      QA dapat berkolaborasi dengan tim pengembang dan tim keamanan untuk memastikan bahwa masalah keamanan dapat segera ditangani.
    4. Peningkatan Kualitas Aplikasi
      Dengan memahami dan memitigasi masalah keamanan, QA berperan dalam meningkatkan kualitas aplikasi secara keseluruhan.

    Peran QA dalam Konteks Keamanan

    1. Form Input dan Validasi Pengguna
      QA sering kali menguji form input sistem, memastikan bahwa input dari pengguna yang bisa mengeksploitasi kerentanannya (misalnya, SQL Injection atau XSS) terdeteksi. Ini adalah bagian dari pengujian fungsional yang dapat mencakup pemeriksaan sanitasi input.
    2. Pengujian Fungsionalitas dengan Fokus Keamanan
      Meskipun QA tidak selalu melakukan pengujian penetrasi atau audit keamanan, mereka dapat menguji fitur yang lebih mendasar, seperti otentikasi, otorisasi, dan enkripsi, untuk memastikan bahwa mereka berfungsi sebagaimana mestinya dan tidak ada celah keamanan yang jelas.
    3. Pengujian Kerentanan pada Level Pengguna
      QA dapat membantu mengidentifikasi masalah yang timbul dari perspektif pengguna, seperti masalah otentikasi atau kebocoran data.

    Dokumen yang Dapat Dibuat QA

    QA berfokus pada dokumentasi pengujian fungsionalitas yang bisa memetakan potensi risiko dari perspektif pengguna. Beberapa contoh dokumen yang relevan bagi QA:

    1. Test Case untuk Validasi Input
      Dokumen ini berisi serangkaian uji untuk memverifikasi input yang valid dan tidak valid dari pengguna, terutama dalam menghindari serangan umum seperti SQL injection atau XSS.
    2. Bug Report untuk Masalah Keamanan
      QA dapat mencatat temuan yang berkaitan dengan kerentanannya (misalnya, jika mereka menemukan celah dalam otentikasi atau kekurangan enkripsi).
    3. Form Input dan Keamanan
      Form input dapat diperiksa untuk memverifikasi apakah validasi input dilakukan dengan benar untuk mencegah potensi kerentanannya.

    Pengujian yang Dilakukan oleh Tim Lain

    1. Tim Pentest (Penetration Testing)
      Tim ini akan melakukan simulasi serangan untuk mengidentifikasi dan mengeksploitasi kerentanannya di seluruh aplikasi.
    2. Tim Infra/DevOps
      Mereka akan menguji tingkat keamanan pada infrastruktur dan lingkungan aplikasi, seperti server, jaringan, dan pengaturan konfigurasi cloud.
    3. Tim Keamanan Aplikasi (AppSec)
      Biasanya bekerja lebih mendalam dalam meninjau dan menanggulangi masalah keamanan aplikasi.

    Jadi, meskipun QA berperan lebih pada pengujian fungsional dan verifikasi dari sisi pengguna, mereka tetap dapat mendokumentasikan dan menguji beberapa aspek dasar dari kerentanannya. Namun, untuk pengujian yang lebih mendalam terkait dengan keamanan dan kerentanannya yang lebih kompleks, tim lain seperti pentester atau DevOps akan mengambil peran utama.

  • ISO/IEC 27001 adalah standar internasional yang mengatur sistem manajemen keamanan informasi (ISMS), yang membantu organisasi untuk menjaga kerahasiaan, integritas, dan ketersediaan informasi mereka. Bagi Quality Assurance (QA), mematuhi aturan ISO/IEC 27001 sangat penting karena beberapa alasan berikut:

    1. Keamanan Data dan Privasi
      QA terlibat dalam pengujian aplikasi dan sistem yang sering berinteraksi dengan data sensitif. ISO/IEC 27001 memastikan bahwa data tersebut dilindungi dari ancaman dan kebocoran yang dapat merugikan organisasi dan penggunanya.
    2. Menghindari Risiko Keamanan
      QA harus memastikan bahwa aplikasi atau sistem bebas dari celah keamanan yang bisa dimanfaatkan oleh pihak yang tidak bertanggung jawab. Dengan mematuhi ISO/IEC 27001, QA akan mengikuti pedoman yang jelas dalam pengelolaan risiko keamanan informasi.
    3. Kepatuhan pada Regulasi dan Standar Industri
      Banyak industri yang diatur oleh hukum atau regulasi tertentu yang mengharuskan pengelolaan informasi sensitif secara ketat, seperti industri perbankan, kesehatan, dan layanan publik. Mematuhi ISO/IEC 27001 membantu organisasi memastikan bahwa mereka mematuhi peraturan yang relevan.
    4. Meningkatkan Kepercayaan Pelanggan
      Dengan menunjukkan kepatuhan terhadap ISO/IEC 27001, organisasi dapat memperlihatkan komitmen terhadap keamanan informasi, yang meningkatkan kepercayaan pelanggan dan mitra bisnis.
    5. Proses Pengujian yang Terstruktur dan Tertib
      ISO/IEC 27001 menetapkan kontrol dan prosedur yang jelas dalam pengelolaan informasi. QA yang mengikuti prosedur ini dapat melakukan pengujian secara lebih terstruktur, menjaga kualitas produk sekaligus mengurangi potensi masalah terkait keamanan.
    6. Kontrol Akses yang Ketat
      QA biasanya memiliki akses ke berbagai sistem dan data dalam pengujian. ISO/IEC 27001 memberikan pedoman untuk mengelola kontrol akses, yang memastikan hanya individu yang berwenang yang memiliki akses ke informasi sensitif.

    Dengan demikian, mematuhi ISO/IEC 27001 membantu QA untuk menjaga standar keamanan yang tinggi dalam pengujian dan pengelolaan informasi, mengurangi risiko, serta mendukung keberlanjutan dan kepatuhan organisasi terhadap regulasi yang ada.

  • ISO/IEC 27001 adalah standar internasional yang mengatur sistem manajemen keamanan informasi (ISMS), yang membantu organisasi untuk menjaga kerahasiaan, integritas, dan ketersediaan informasi mereka. Bagi Quality Assurance (QA), mematuhi aturan ISO/IEC 27001 sangat penting karena beberapa alasan berikut:

    1. Keamanan Data dan Privasi
      QA terlibat dalam pengujian aplikasi dan sistem yang sering berinteraksi dengan data sensitif. ISO/IEC 27001 memastikan bahwa data tersebut dilindungi dari ancaman dan kebocoran yang dapat merugikan organisasi dan penggunanya.
    2. Menghindari Risiko Keamanan
      QA harus memastikan bahwa aplikasi atau sistem bebas dari celah keamanan yang bisa dimanfaatkan oleh pihak yang tidak bertanggung jawab. Dengan mematuhi ISO/IEC 27001, QA akan mengikuti pedoman yang jelas dalam pengelolaan risiko keamanan informasi.
    3. Kepatuhan pada Regulasi dan Standar Industri
      Banyak industri yang diatur oleh hukum atau regulasi tertentu yang mengharuskan pengelolaan informasi sensitif secara ketat, seperti industri perbankan, kesehatan, dan layanan publik. Mematuhi ISO/IEC 27001 membantu organisasi memastikan bahwa mereka mematuhi peraturan yang relevan.
    4. Meningkatkan Kepercayaan Pelanggan
      Dengan menunjukkan kepatuhan terhadap ISO/IEC 27001, organisasi dapat memperlihatkan komitmen terhadap keamanan informasi, yang meningkatkan kepercayaan pelanggan dan mitra bisnis.
    5. Proses Pengujian yang Terstruktur dan Tertib
      ISO/IEC 27001 menetapkan kontrol dan prosedur yang jelas dalam pengelolaan informasi. QA yang mengikuti prosedur ini dapat melakukan pengujian secara lebih terstruktur, menjaga kualitas produk sekaligus mengurangi potensi masalah terkait keamanan.
    6. Kontrol Akses yang Ketat
      QA biasanya memiliki akses ke berbagai sistem dan data dalam pengujian. ISO/IEC 27001 memberikan pedoman untuk mengelola kontrol akses, yang memastikan hanya individu yang berwenang yang memiliki akses ke informasi sensitif.

    Dengan demikian, mematuhi ISO/IEC 27001 membantu QA untuk menjaga standar keamanan yang tinggi dalam pengujian dan pengelolaan informasi, mengurangi risiko, serta mendukung keberlanjutan dan kepatuhan organisasi terhadap regulasi yang ada.

    1. QA Manager
      1. Peran
        Bertanggung jawab untuk memimpin dan mengelola tim QA secara keseluruhan, memastikan strategi QA diterapkan dengan baik, serta menjaga kualitas produk.
      2. Tugas & Tanggung Jawab
        1. Merencanakan dan mengelola proses QA untuk proyek-proyek besar.
        2. Membuat kebijakan dan prosedur QA.
        3. Mengelola anggaran QA dan sumber daya.
        4. Berkolaborasi dengan tim pengembangan untuk menentukan prioritas testing.
        5. Memastikan tim QA mematuhi standar dan praktik terbaik industri.
        6. Melaporkan status kualitas kepada manajemen.
    2. Senior, Middle, Junior QA Lead
      1. Peran
        Memimpin tim QA dalam setiap level (Senior, Middle, Junior) dan memastikan pelaksanaan pengujian berjalan efektif.
      2. Tugas & Tanggung Jawab
        1. Senior: Memimpin tim pengujian dan merencanakan strategi pengujian untuk proyek-proyek besar. Membimbing anggota tim lebih junior.
        2. Middle: Membantu dalam perencanaan pengujian dan melaksanakan pengujian dalam proyek-proyek tingkat menengah.
        3. Junior: Mendukung QA Lead dalam melaksanakan pengujian sesuai arahan.
    3. Senior, Middle, Junior QA Automation
      1. Peran
        Melakukan otomatisasi pengujian perangkat lunak untuk meningkatkan efisiensi pengujian dan mengurangi kesalahan manusia.
      2. Tugas & Tanggung Jawab
        1. Senior: Merancang dan mengembangkan framework otomatisasi pengujian, memimpin implementasi otomatisasi dalam proyek-proyek besar.
        2. Middle: Mengembangkan dan menjalankan skrip pengujian otomatisasi untuk aplikasi yang lebih kompleks.
        3. Junior: Membantu dalam pengembangan dan pemeliharaan skrip otomatisasi serta melaksanakan pengujian otomatisasi dasar.
    4. Senior, Middle, Junior QA Manual
      1. Peran
        Melakukan pengujian manual untuk memastikan perangkat lunak bebas dari cacat dan memenuhi kebutuhan pengguna.
      2. Tugas & Tanggung Jawab
        1. Senior: Memimpin tim pengujian manual dan merancang strategi pengujian manual untuk proyek besar. Membimbing anggota tim lainnya.
        2. Middle: Melakukan pengujian manual dan memberikan umpan balik tentang kualitas perangkat lunak.
        3. Junior: Membantu dalam menjalankan pengujian manual dasar dan membuat laporan bug.
    5. Senior, Middle, Junior QA Engineer
      1. Peran
        Melakukan pengujian teknis untuk memastikan aplikasi berfungsi dengan baik di lingkungan yang diinginkan.
      2. Tugas & Tanggung Jawab
        1. Senior: Merancang dan menjalankan rencana pengujian yang lebih kompleks dan memastikan kualitas produk akhir.
        2. Middle: Mengelola pengujian fungsional dan pengujian regresi dalam proyek tingkat menengah.
        3. Junior: Melakukan pengujian dan membuat laporan pengujian sesuai instruksi dari QA Lead atau Engineer.
    6. Senior, Middle, Junior SDET
      1. Peran
        Mengembangkan perangkat lunak pengujian dan alat untuk memfasilitasi pengujian perangkat lunak otomatis dan manual.
      2. Tugas & Tanggung Jawab
        1. Senior: Mengembangkan framework otomatisasi pengujian yang canggih, serta bekerja sama dengan tim pengembangan untuk meningkatkan kualitas perangkat lunak.
        2. Middle: Membantu dalam merancang dan mengembangkan alat pengujian untuk mendukung pengujian otomatis.
        3. Junior: Mengembangkan dan memelihara alat pengujian otomatis untuk meningkatkan efisiensi pengujian.
    7. Senior, Middle, Junior Quality Engineer
      1. Peran
        Memastikan kualitas produk dan proses pengujian, serta melakukan verifikasi dan validasi untuk memastikan kesesuaian standar kualitas.
      2. Tugas & Tanggung Jawab
        1. Senior: Memimpin inisiatif pengukuran kualitas dan menyarankan perbaikan proses dalam pengujian perangkat lunak.
        2. Middle: Mengelola proses pengujian dan melakukan analisis terhadap hasil pengujian.
        3. Junior: Membantu dalam pengujian dan memastikan bahwa produk memenuhi standar kualitas yang ditentukan.
    8. Coordinator / PIC QA
      1. Peran
        Mengkoordinasikan kegiatan QA harian, memastikan bahwa semua tim melakukan tugasnya dengan efisien dan sesuai jadwal.
      2. Tugas & Tanggung Jawab
        1. Memastikan bahwa rencana dan jadwal pengujian dipatuhi oleh semua anggota tim QA.
        2. Mengelola komunikasi antara tim penguji dan stakeholder lainnya.
        3. Menyusun laporan progres pengujian untuk manajemen.
        4. Menangani pengelolaan alat pengujian dan perangkat keras untuk keperluan tim QA.

    Setiap posisi ini memegang peranan yang penting dalam memastikan kualitas produk perangkat lunak dan keberhasilan proyek pengujian.

  • Meskipun tren industri semakin mengarah pada otomatisasi dalam pengujian perangkat lunak, QA manual tetap sangat dibutuhkan karena beberapa alasan:

    1. Testing Logika Bisnis yang Kompleks
      Pengujian manual sering kali lebih efektif dalam menangani logika bisnis yang kompleks atau interaksi antar fitur yang sulit diprediksi dengan otomatisasi. Beberapa skenario mungkin memerlukan pemahaman mendalam tentang konteks atau bagaimana pengguna sebenarnya berinteraksi dengan aplikasi.
    2. Uji Pengalaman Pengguna (UX)
      Pengujian manual sangat penting untuk menilai pengalaman pengguna, seperti kelayakan penggunaan, alur navigasi, dan estetika tampilan. Meskipun otomatisasi dapat memeriksa fungsionalitas dasar, sulit untuk menangkap perasaan atau reaksi pengguna secara keseluruhan.
    3. Fleksibilitas dalam Pengujian Ad-Hoc
      Pengujian manual memungkinkan QA untuk melakukan uji coba spontan dan eksplorasi tanpa memerlukan skrip atau persiapan yang rumit. Ini memungkinkan pengujian yang lebih fleksibel dan cepat untuk menangani masalah yang tidak terduga.
    4. Biaya dan Waktu untuk Otomatisasi
      Meskipun otomatisasi dapat menghemat waktu dalam jangka panjang, pengembangan skrip otomatisasi membutuhkan investasi awal yang signifikan dalam waktu dan sumber daya. Pada proyek kecil atau dalam tahap awal pengembangan, pengujian manual lebih efisien.
    5. Keterbatasan Otomatisasi
      Tidak semua jenis pengujian dapat diotomatisasi. Misalnya, pengujian untuk aplikasi yang sering berubah atau memiliki banyak ketergantungan dinamis mungkin tidak cocok untuk otomatisasi dalam jangka pendek.
    6. Mengisi Kekosongan dalam Pengujian Otomatisasi
      Meskipun otomatisasi pengujian sangat efektif untuk pengujian regresi atau pengujian fungsional berulang, pengujian manual masih diperlukan untuk aspek lainnya seperti pengujian integrasi, pengujian keamanan, atau pengujian perangkat keras.

    Karena itu, meskipun banyak lowongan yang memerlukan keterampilan dalam otomasi, keterampilan manual tetap sangat berharga, terutama untuk perusahaan yang sedang berkembang atau memiliki aplikasi yang sangat dinamis. Memiliki kemampuan dalam kedua bidang ini (manual dan otomasi) memberi keuntungan yang lebih besar di pasar kerja.

    1. SIT (System Integration Testing)
      Tim QA bertanggung jawab untuk merencanakan, mengorganisir, dan melaksanakan SIT, yang bertujuan untuk memastikan bahwa berbagai komponen sistem yang berbeda berfungsi dengan baik bersama-sama setelah integrasi.
    2. UAT (User Acceptance Testing)
      Meskipun end-user biasanya melakukan UAT, tim QA bertanggung jawab untuk mengorganisir dan memfasilitasi proses UAT, termasuk menyiapkan lingkungan pengujian dan membantu pengguna dalam mengidentifikasi apakah aplikasi memenuhi kebutuhan bisnis.
    3. Pra-Rilis (Pre-Release Testing)
      Tim QA memastikan bahwa aplikasi siap untuk rilis dengan melakukan pengujian regresi, pengujian fungsional, dan pengujian lainnya untuk memverifikasi bahwa aplikasi bebas dari bug yang serius sebelum rilis.
    4. Training untuk Pengguna Akhir
      Meskipun tidak selalu menjadi peran utama tim QA, terkadang QA terlibat dalam menyiapkan materi atau memberikan pelatihan kepada pengguna akhir untuk membantu mereka memahami fitur-fitur aplikasi yang baru saja diuji.
    5. Quality Gate Checkpoints
      Tim QA mengorganisir dan memimpin pengecekan kualitas secara rutin sepanjang siklus pengembangan untuk memastikan bahwa kualitas tetap terjaga di setiap fase, baik pada tahap pengembangan, pengujian unit, maupun integrasi.
    6. Close Sprint/Retrospective (untuk tim Agile)
      Dalam metodologi Agile, tim QA turut serta dalam pertemuan retrospektif sprint, meskipun Scrum Master biasanya yang memimpin. QA berperan penting dalam mengevaluasi apa yang berjalan baik dan apa yang perlu diperbaiki dalam proses pengujian.

    Keterlibatan tim QA dalam event-event tersebut bertujuan untuk menjaga kualitas produk dan memitigasi risiko yang mungkin muncul sebelum aplikasi mencapai pengguna akhir.

  • Pada umumnya, dalam tim development, QA biasanya tidak terlibat langsung dalam rapat dengan klien untuk membahas requirement system. Rapat seperti itu biasanya dipimpin oleh Project Manager atau Tim Produk yang berfokus pada pemahaman kebutuhan bisnis dan spesifikasi fungsional.

    Namun, QA tetap perlu mendapatkan informasi terkait requirement system dari rapat tersebut untuk memastikan bahwa pengujian dapat dilakukan dengan baik berdasarkan kebutuhan yang telah disepakati. Dalam beberapa kasus, QA dapat diminta untuk ikut berpartisipasi dalam rapat tersebut, terutama jika ada kebutuhan untuk memastikan bahwa aspek kualitas dan pengujian sudah dipertimbangkan sejak awal.

    Secara ringkas:

    1. QA tidak selalu terlibat langsung dalam rapat klien untuk mendefinisikan requirement, tetapi mereka harus mendapatkan informasi tersebut.
    2. QA dapat berkolaborasi dengan Project Manager atau Tim Produk setelah rapat untuk mengembangkan rencana pengujian yang sesuai dengan kebutuhan sistem yang disepakati.
  • Menurut saya, tidak ada kewajiban formal yang mengharuskan Quality Assurance (QA) untuk membuat MoM (Minutes of Meeting) dalam setiap rapat. Namun biasanya pembuatan MoM adalah bagian dari praktik terbaik dalam pengelolaan proyek. MoM berguna untuk mencatat hasil-hasil penting dari rapat, termasuk keputusan yang diambil, tindakan yang harus dilakukan, dan tanggung jawab masing-masing pihak.

    Dalam konteks QA, membuat MoM saat rapat dengan tim pengembangan atau tim lainnya sangat berguna untuk beberapa alasan:

    1. Dokumentasi Keputusan
      MoM membantu memastikan bahwa setiap keputusan yang diambil selama rapat terdokumentasi dengan baik. Ini bisa berguna untuk referensi di masa depan, terutama jika ada perbedaan pendapat atau kebingungannya tim.
    2. Tindak Lanjut
      MoM mencatat siapa yang bertanggung jawab untuk tugas atau perbaikan tertentu setelah rapat, sehingga QA dan tim lain bisa memastikan bahwa semua item yang dibahas telah ditindaklanjuti dengan baik.
    3. Keterlibatan Tim
      MoM menunjukkan bahwa QA terlibat aktif dalam rapat dan membantu menjaga jalannya komunikasi antara tim QA, pengembang, dan pemangku kepentingan lainnya.

    Pembuatan MoM atau tidak tergantung pada kebijakan perusahaan dan peran spesifik QA di tim. Di beberapa tim, mungkin ada orang khusus yang bertugas untuk mencatat MoM, sementara di tim lain QA mungkin terlibat langsung dalam proses ini.

  • Seorang QA biasanya membuat berbagai dokumen untuk memastikan proses pengujian berjalan dengan baik dan aplikasi atau sistem yang diuji memenuhi standar kualitas yang ditentukan. Berikut beberapa dokumen penting yang perlu dibuat:

    1. Test Plan
      1. Menyusun rencana pengujian yang mencakup ruang lingkup, tujuan, strategi, jadwal, dan kriteria keberhasilan pengujian.
      2. Memberikan panduan untuk semua kegiatan pengujian yang akan dilakukan.
      3. Apakah wajib dibuat? Wajib. Alasannya karena Test Plan adalah dasar dari pengujian yang dilakukan selama siklus pengembangan perangkat lunak.
      4. Kapan dibuat? Sebelum pengujian dimulai, biasanya pada fase perencanaan proyek atau sebelum fase pengujian dimulai. Test Plan dibuat setelah spesifikasi dan desain sistem diketahui.
    2. Test Case
      1. Menyusun langkah-langkah yang harus diikuti untuk menguji setiap fitur aplikasi.
      2. Mencakup input yang diperlukan, langkah pengujian, dan hasil yang diharapkan.
      3. Apakah wajib dibuat? Wajib. Alasannya karena Test case digunakan untuk validasi dan memastikan bahwa setiap bagian dari aplikasi diuji dengan benar.
      4. Kapan dibuat? Setelah Test Plan selesai dan spesifikasi sistem tersedia, Test Case mulai disusun. Biasanya dilakukan sebelum fase pengujian dimulai, setelah tim QA memahami fungsionalitas yang perlu diuji.
    3. Test Scenario
      1. Menyusun skenario atau kondisi yang akan diuji berdasarkan persyaratan dan fungsionalitas sistem.
      2. Digunakan untuk merencanakan dan memandu eksekusi pengujian.
      3. Apakah wajib dibuat? Opsional. Alasannya karena meskipun dapat membantu merencanakan pengujian secara lebih luas, terkadang ini bisa digabung dengan Test Case.
      4. Kapan dibuat? Biasanya dibuat pada tahap awal perencanaan pengujian. Test Scenario dapat disusun bersamaan dengan Test Case atau bahkan sebelum Test Case dibuat untuk memberikan gambaran umum tentang apa yang akan diuji.
    4. Test Data
      1. Menyiapkan data yang diperlukan untuk pengujian, yang mencakup data masukan dan kondisi pengujian.
      2. Dapat berupa data valid, invalid, atau edge case yang digunakan untuk menguji berbagai skenario.
      3. Apakah wajib dibuat? Wajib. Alasannya karena tanpa test data, pengujian tidak dapat dilakukan secara efektif.
      4. Kapan dibuat? Test Data disiapkan setelah Test Case dibuat, karena data yang diperlukan akan bergantung pada langkah-langkah pengujian yang tercantum dalam Test Case. Data ini harus disiapkan sebelum eksekusi pengujian.
    5. Defect/Bug Report
      1. Mencatat dan melaporkan setiap cacat atau bug yang ditemukan selama pengujian.
      2. Memberikan rincian tentang masalah yang ditemukan, termasuk langkah untuk mereproduksi masalah, severity, dan status.
      3. Apakah wajib dibuat? Wajib. Alasannya karena bug report merupakan bagian penting dalam pelaporan masalah dan memberikan informasi kepada tim developer.
      4. Kapan dibuat? Saat pengujian berlangsung dan ditemukan bug atau masalah. Dokumen ini dibuat secara real-time saat pengujian berlangsung, setiap kali ditemukan masalah yang memerlukan perbaikan oleh tim pengembang.
    6. Test Execution Report
      1. Mendokumentasikan hasil dari setiap pengujian yang dijalankan, apakah lulus atau gagal.
      2. Menyediakan laporan rinci tentang eksekusi tes dan hasilnya, sering kali disertakan dengan statistik pengujian.
      3. Apakah wajib dibuat? Wajib. Alasannya karena memberikan bukti pengujian yang telah dilakukan dan hasil yang diperoleh.
      4. Kapan dibuat? Setelah eksekusi pengujian selesai. Laporan ini disusun setiap kali siklus pengujian selesai untuk memberikan gambaran hasil pengujian, apakah pengujian berhasil atau gagal.
    7. SIT/UAT Sign-Off Document
      1. Dokumen persetujuan untuk pengujian integrasi sistem (SIT) dan pengujian penerimaan pengguna (UAT).
      2. Menyatakan bahwa pengujian telah selesai dan aplikasi siap untuk diproses lebih lanjut atau dirilis.
      3. Apakah wajib dibuat? Wajib. Terutama pada proyek yang melibatkan klien atau pemangku kepentingan eksternal.
      4. Kapan dibuat? Setelah System Integration Testing (SIT) atau User Acceptance Testing (UAT) selesai dan diterima oleh pemangku kepentingan. Biasanya dibuat pada akhir siklus pengujian atau setelah fase pengujian diterima oleh pihak terkait.
    8. Traceability Matrix
      1. Membuat dokumen yang memastikan bahwa setiap persyaratan aplikasi telah diuji dengan baik melalui test case yang sesuai.
      2. Memberikan hubungan antara persyaratan dan test case untuk memastikan cakupan yang lengkap.
      3. Apakah wajib dibuat? Wajib. Terutama di proyek yang mengutamakan audit dan kepatuhan, untuk memastikan bahwa seluruh spesifikasi diuji.
      4. Kapan dibuat? Dapat disiapkan bersamaan dengan atau segera setelah Test Case selesai. Matriks ini memastikan bahwa semua persyaratan telah tercakup dalam pengujian dan dapat diperbarui saat proses pengujian berlangsung.
    9. Risk-Based Testing Document
      1. Mengidentifikasi dan mendokumentasikan risiko terkait dengan pengujian dan pengaruhnya terhadap kualitas aplikasi.
      2. Memberikan panduan tentang area-area yang perlu diuji dengan prioritas lebih tinggi.
      3. Apakah wajib dibuat? Opsional. Alasannya karena hanya digunakan jika proyek membutuhkan pengujian berbasis risiko untuk efisiensi yang lebih tinggi.
      4. Kapan dibuat? Sebelum pengujian dimulai, pada fase perencanaan atau analisis risiko. Dokumen ini harus dibuat pada tahap awal untuk menentukan area mana yang paling berisiko dan akan diuji lebih intensif.
    10. User Guide / Documentation
      1. Menyediakan dokumentasi untuk pengguna akhir, seperti petunjuk penggunaan atau panduan troubleshooting, yang sering kali dibuat oleh QA untuk memastikan kejelasan dan kepahaman pengguna.
      2. Apakah wajib dibuat? Opsional. Alasannya karena meskipun penting, biasanya dibuat oleh tim dokumentasi, bukan oleh tim QA, meskipun QA terkadang terlibat dalam verifikasi isi.
      3. Kapan dibuat? Biasanya disiapkan setelah aplikasi atau sistem selesai dan siap untuk digunakan oleh pengguna akhir. QA mungkin terlibat dalam memastikan panduan tersebut sesuai dengan fungsionalitas yang ada, tetapi ini biasanya bukan tanggung jawab utama QA.
    11. Release Notes
      1. Menyusun catatan rilis yang mencakup perubahan, fitur baru, dan perbaikan bug yang dilakukan selama siklus pengembangan.
      2. Apakah wajib dibuat? Opsional. Alasannya karena umumnya disiapkan oleh tim product, namun QA bisa terlibat dalam verifikasi perubahan.
      3. Kapan dibuat? Setelah pengujian selesai dan sebelum rilis produk. Release Notes dibuat menjelang rilis akhir perangkat lunak dan berisi informasi tentang perubahan, perbaikan bug, dan pembaruan lainnya dalam versi terbaru.

    Dokumen-dokumen ini membantu dalam memastikan bahwa pengujian dilakukan secara terstruktur, terorganisir, dan mencakup semua aspek yang diperlukan untuk memastikan kualitas perangkat lunak yang tinggi.

    1. Fokus pada Kecepatan dan Fleksibilitas
      1. Startup sering kali beroperasi dalam lingkungan yang dinamis dengan tujuan untuk meluncurkan produk secepat mungkin untuk mendapatkan feedback dan menarik perhatian pasar. Karena keterbatasan waktu dan sumber daya, PRD yang jelas dan ringkas membantu tim untuk cepat memahami tujuan produk dan menyusun rencana eksekusi yang lebih efisien.
      2. Perusahaan besar biasanya memiliki proses yang lebih formal dan struktur yang sudah mapan. Tim sering kali dapat mengandalkan dokumentasi yang ada dan sistem kolaborasi yang lebih kompleks, jadi mereka mungkin tidak perlu membuat PRD untuk setiap fitur baru, atau PRD bisa lebih fleksibel dan informal.
    2. Tim yang Lebih Kecil di Startup
      1. Tim di startup lebih kecil dan lebih terhubung langsung dengan pemilik produk atau pengambilan keputusan, jadi komunikasi bisa lebih cepat dan fleksibel tanpa perlu mendokumentasikan segala sesuatunya secara formal.
      2. Perusahaan besar memiliki tim lebih besar, lebih banyak stakeholder, dan proses pengambilan keputusan yang lebih panjang. Untuk menangani kompleksitas ini, mereka cenderung menggunakan berbagai jenis dokumen dan alat manajemen proyek untuk mendokumentasikan dan melacak produk, tidak hanya PRD.
    3. Perubahan Cepat pada Produk di Startup
      1. Di startup, produk dan fitur sering berubah atau beradaptasi dengan cepat sesuai dengan feedback pengguna atau perubahan pasar. PRD dapat menjadi alat untuk merumuskan dan merespons perubahan ini dengan jelas.
      2. Perusahaan besar lebih cenderung memiliki roadmap produk yang lebih stabil dan perencanaan jangka panjang, sehingga mereka mungkin lebih fokus pada perencanaan strategi daripada menulis PRD untuk setiap perubahan atau fitur kecil.
    4. Kebutuhan untuk Penyelarasan Tim di Startup
      1. Karena startup sering bekerja dengan tim yang lebih kecil dan memiliki banyak peran yang tumpang tindih, PRD membantu memastikan bahwa seluruh tim memiliki pemahaman yang sama tentang apa yang dibangun dan mengapa. Dokumen ini juga berfungsi untuk memprioritaskan pekerjaan dalam waktu terbatas.
      2. Perusahaan besar, sebaliknya, sering memiliki tim yang lebih terstruktur dengan spesialisasi yang jelas. Masing-masing bagian (misalnya pengembangan, pemasaran, penjualan) mungkin sudah memiliki dokumentasi dan prosesnya sendiri, sehingga PRD tidak selalu diperlukan.

    Secara keseluruhan, perbedaan antara startup dan perusahaan besar berkaitan dengan ukuran tim, tingkat formalitas, dan kebutuhan akan fleksibilitas dalam pengembangan produk.

    1. FSD (Functional Specification Document)
      1. Tujuan
        FSD memberikan penjelasan tentang bagaimana fungsionalitas produk harus bekerja. Ini lebih detail dari PRD dan sering kali digunakan oleh pengembang untuk implementasi.
      2. Relevansi untuk QA
        FSD sangat berguna bagi QA, tetapi karena detailnya yang lebih mendalam, mungkin memerlukan lebih banyak waktu untuk dianalisis dan mungkin lebih cocok untuk pengujian tahap lanjutan atau proyek dengan waktu yang lebih panjang.
    2. BRD (Business Requirements Document)
      1. Tujuan
        BRD lebih fokus pada kebutuhan bisnis dan tujuan strategis. Ini bisa bermanfaat untuk memahami konteks proyek, tetapi tidak memberikan detail teknis atau spesifikasi fungsional yang cukup untuk QA dalam hal pengujian.
      2. Relevansi untuk QA
        BRD penting untuk memahami tujuan bisnis, tetapi tidak cukup memberikan detail yang dibutuhkan untuk membuat test case yang spesifik, yang lebih ditemukan di PRD atau SRS.
    3. PRD (Product Requirements Document)
      1. Tujuan
        PRD memberikan gambaran umum tentang produk yang akan dikembangkan, termasuk fitur-fitur utama, tujuan produk, dan harapan pelanggan. Ini sangat berguna untuk QA dalam mempersiapkan uji coba karena biasanya mencakup requirements fungsional yang jelas dan prioritas fitur yang perlu diuji.
      2. Relevansi untuk QA
        Dengan timeline terbatas, QA perlu fokus pada fitur inti dan fungsionalitas utama produk, yang biasanya sudah dijelaskan dalam PRD. Informasi dari PRD memungkinkan tim QA untuk menyusun test case secara efisien dan memastikan prioritas pengujian sesuai dengan kebutuhan proyek.
    4. SRS (Software Requirements Specification)
      1. Tujuan
        SRS memberikan rincian teknis dan fungsional dari perangkat lunak yang akan dikembangkan. Meskipun SRS sangat detail, ini bisa sangat berat untuk dipelajari dalam waktu singkat jika dibandingkan dengan PRD, yang lebih ringkas dan langsung.
      2. Relevansi untuk QA
        SRS membantu QA dalam memahami lebih dalam aspek teknis dan fungsional dari perangkat lunak. Namun, mengingat keterbatasan waktu, bisa jadi terlalu mendetail dan memerlukan waktu lebih banyak untuk memahami dan menyiapkan pengujian.
  • Sebagai QA, kemampuan untuk membaca dan memahami dokumen seperti FSD (Functional Specification Document), BRD (Business Requirements Document), PRD (Product Requirements Document) atau SRS (Software Requirements Specification) adalah wajib karena dokumen-dokumen ini merupakan dasar dari proses pengujian. Berikut alasan pentingnya kemampuan ini:

    1. Memahami Ruang Lingkup Proyek
      1. Dokumen-dokumen ini menjelaskan apa yang diinginkan oleh pengguna atau stakeholder serta bagaimana sistem seharusnya berfungsi.
      2. Sebagai QA, kamu harus memahami ruang lingkup agar dapat memastikan bahwa pengujian mencakup semua fungsi yang diharapkan.
    2. Mendesain Test Case yang Akurat
      1. Dokumen-dokumen tersebut berisi deskripsi spesifik tentang alur bisnis, logika, dan batasan sistem.
      2. QA memerlukan informasi ini untuk merancang test case yang relevan, mencakup semua skenario, dan meminimalkan risiko bug yang tidak terdeteksi.
    3. Identifikasi Kebutuhan Pengujian
      1. Dengan membaca dokumen ini, QA dapat mengidentifikasi:
        1. Area kritis yang memerlukan pengujian prioritas.
        2. Persyaratan non-fungsional seperti performa, keamanan, dan kompatibilitas.
      2. QA juga bisa memastikan bahwa semua persyaratan sudah didefinisikan dengan jelas dan tidak ada yang terlewat.
    4. Deteksi Ketidaksesuaian di Awal
      1. QA sering bertindak sebagai filter tambahan untuk mendeteksi ketidaksesuaian antara kebutuhan bisnis dan solusi teknis yang diusulkan.
      2. Dengan membaca dokumen ini, QA dapat memberikan feedback lebih awal kepada tim, misalnya jika ada persyaratan yang ambigu atau tidak realistis.
    5. Kolaborasi dengan Tim Lain
      1. QA sering menjadi penghubung antara tim teknis (developer) dan stakeholder bisnis.
      2. Pemahaman yang baik tentang FSD, BRD, PRD, atau SRS membantu QA menjembatani komunikasi, memastikan bahwa semua pihak memiliki pemahaman yang sama.
    6. Menghindari Rework
      1. Jika QA tidak memahami dokumen ini, risiko miskomunikasi atau salah interpretasi terhadap persyaratan akan meningkat.
      2. Hal ini bisa menyebabkan bug baru yang muncul setelah pengembangan selesai, yang berujung pada biaya dan waktu tambahan untuk perbaikan.
    7. Menyusun Strategi Pengujian
      Dokumen ini memberikan informasi yang diperlukan untuk menentukan strategi pengujian, seperti cakupan pengujian, prioritas, atau jenis pengujian (manual vs otomatis).

    Kesimpulan
    QA yang tidak mampu membaca atau memahami dokumen seperti FSD, BRD, PRD, atau SRS akan sulit menjalankan tugasnya secara maksimal. Dokumen-dokumen tersebut adalah panduan utama untuk memahami apa yang diharapkan dari sistem, sehingga QA dapat memastikan bahwa hasil akhirnya sesuai dengan kebutuhan bisnis dan bebas dari cacat.

    1. Meningkatkan Kualitas Pengalaman Pengguna
      QA tidak hanya bertugas memastikan aplikasi bebas bug, tetapi juga memastikan aplikasi memberikan pengalaman yang optimal bagi pengguna. Memahami UI/UX membantu QA mengidentifikasi elemen desain yang tidak intuitif, seperti navigasi yang rumit atau elemen visual yang membingungkan.
    2. Kemampuan Memberikan Umpan Balik yang Lebih Bernilai
      Dengan pengetahuan UI/UX, QA dapat memberikan umpan balik yang tidak hanya berfokus pada aspek teknis, tetapi juga pada usability. Misalnya, QA dapat menunjukkan jika tombol terlalu kecil untuk diakses atau jika perjalanan pengguna (user journey) terlalu rumit.
    3. Mendeteksi Masalah Usability
      Tidak semua masalah usability adalah bug. Sebagai contoh, jika pengguna merasa sulit untuk menemukan informasi tertentu, itu mungkin bukan masalah teknis, tetapi desain UI/UX yang buruk. QA dengan pengetahuan UI/UX dapat mengidentifikasi dan mendokumentasikan masalah tersebut.
    4. Efisiensi dalam Uji Coba
      Dengan memahami prinsip-prinsip UI/UX, QA dapat dengan cepat memahami logika desain aplikasi, yang membantu mereka membuat skenario pengujian yang lebih efektif dan relevan untuk mengevaluasi pengalaman pengguna.
    5. Kolaborasi yang Lebih Baik dengan Tim Desain
      QA sering berkolaborasi dengan desainer untuk memastikan aplikasi memenuhi kebutuhan pengguna. Pengetahuan UI/UX membantu QA berbicara dalam bahasa yang sama dengan desainer, mempercepat proses iterasi dan perbaikan.
    6. Memastikan Konsistensi dan Standar Desain
      QA dapat memvalidasi apakah elemen UI sesuai dengan pedoman desain (design guidelines) dan standar perusahaan, seperti konsistensi warna, font, ikonografi, dan tata letak.
    7. Meningkatkan Karier Profesional
      Pengetahuan UI/UX memberikan keunggulan kompetitif di pasar kerja. Banyak perusahaan mencari QA yang tidak hanya memahami pengujian teknis tetapi juga mampu mengevaluasi produk dari perspektif pengguna.

    Contoh Kasus

    1. Tanpa Pengetahuan UI/UX
      QA hanya mencatat bahwa tombol login berfungsi dengan benar.
    2. Dengan Pengetahuan UI/UX
      QA mencatat bahwa tombol login berfungsi dengan benar, tetapi posisinya kurang strategis, warnanya tidak cukup kontras, dan teksnya terlalu kecil, sehingga mengurangi aksesibilitas.

    Kesimpulan
    Ilmu UI/UX memungkinkan QA untuk tidak hanya memastikan "aplikasi berjalan" tetapi juga memastikan "aplikasi berjalan dengan baik untuk pengguna." Ini menciptakan aplikasi yang lebih berkualitas dan meningkatkan kepuasan pengguna.

    1. Meningkatkan Pemahaman Konteks Bisnis
      1. Dengan memahami proses bisnis, QA dapat mengerti bagaimana aplikasi berkontribusi terhadap tujuan organisasi.
      2. Pemahaman ini membantu dalam memastikan bahwa fitur dan fungsi aplikasi selaras dengan kebutuhan bisnis.
    2. Mengenali Risiko Utama
      1. QA yang memahami keseluruhan proses bisnis dapat mengidentifikasi risiko dan potensi kesalahan yang berdampak langsung pada operasional bisnis.
      2. Ini memungkinkan pengujian yang lebih fokus pada area kritis.
    3. Desain Pengujian yang Efektif
      1. Pengetahuan sistem bisnis membantu QA dalam merancang skenario uji yang realistis, mencakup skenario edge case, dan simulasi alur kerja nyata.
      2. QA juga dapat membuat skenario pengujian yang mendekati pengguna akhir, sehingga mempercepat identifikasi celah.
    4. Validasi End-to-End
      Aplikasi bisnis sering kali melibatkan integrasi antar sistem. Dengan memahami alur bisnis secara menyeluruh, QA dapat menguji proses end-to-end untuk memastikan bahwa sistem bekerja dengan baik di setiap titik integrasi.
    5. Memastikan Kepatuhan Regulasi
      Proses bisnis yang didigitalisasi sering tunduk pada regulasi (misalnya OJK). QA perlu memastikan bahwa sistem tidak hanya fungsional tetapi juga mematuhi aturan hukum yang berlaku.
    6. Meningkatkan Kolaborasi dengan Tim Lain
      1. QA yang memahami alur bisnis dapat berkomunikasi lebih efektif dengan pemangku kepentingan seperti Product Owner, Developer, dan Business Analyst.
      2. Ini membantu dalam mengklarifikasi kebutuhan dan prioritas pengujian.
    7. Mengurangi Risiko Kegagalan Proyek
      Dengan pengetahuan bisnis, QA dapat membantu mencegah implementasi fitur yang salah atau tidak relevan dengan kebutuhan bisnis, yang dapat menyebabkan kerugian besar bagi perusahaan.
    8. Meningkatkan Pengalaman Pengguna (UX)
      Dengan memahami kebutuhan pengguna akhir dalam konteks proses bisnis, QA dapat membantu memastikan bahwa sistem tidak hanya fungsional tetapi juga mudah digunakan.

    Kesimpulan
    QA yang memahami proses bisnis yang didigitalisasi tidak hanya memastikan kualitas teknis aplikasi, tetapi juga berkontribusi langsung pada kesuksesan bisnis dengan menjamin bahwa sistem mendukung operasional secara efektif dan efisien.