Konsep Dasar Software Testing

Software Testing merupakan Proses memverifikasi dan memvalidasi untuk menentukan kesesuaian software dengan persyaratan atau kebutuhan yang telah ditentukan. Pengujian produk perangkat lunak dilakukan untuk memastikan fitur dan kapabilitas hasil pengembangan sudah sesuai dengan persyaratan yang didefinisikan dalam "requirement" awal. Umumnya software tester memiliki tim sendiri di bawah kepemimpinan project manager di sebuah organisasi.
Testing menjadi salah satu komponen dalam SDLC Agile | Sumber Gambar (producttribe.org )

Manfaat Software Testing
  1. Mengurangi biaya pengembangan perangkat lunak
  2. Mengkonfirmasi kesesuaian aplikasi yang dikembangkan dengan persyaratan konsumen/klien atau tidak.
  3. Menemukan defect dalam sistem perangkat lunak.
  4. Memastikan berbagai fitur yang dirilis sudah sesuai dengan spesifikasi yang didefinisikan di awal.
  5. Memastikan kualitas perangkat lunak sebelum benar-benar dirilis ke publik.
  6. Menemukan potensi celah yang dapat mengakibatkan kerugian pengguna

Yang Dilakukan dalam Pengujian
  1. Verifikasi yaitu Memastikan perangkat lunak dikembangkan dengan benar (well-engineered). Sering disebut static testing.
  2. Validasi yaitu Memastikan perangkat lunak yang dikembangkan sesuai dengan kebutuhan calon pengguna. Sering disebut sebagai dynamic testing.
Konsep Dasar Software Testing
Perbedaan validasi dan verifikasi dalam pengujian | Sumber Gambar (softwaretestinghelp.com)

Software Testing Lifecycle

Konsep Dasar Software Testing

Tipe Software Testing

Konsep Dasar Software Testing

Tipe Software Testing Berdasarkan Fungsionalitas

Konsep Dasar Software Testing

Contoh Test Case Functional vs Non-Functional Testing

Konsep Dasar Software Testing

Perbandingan Functional vs Non-Functional Testing

Konsep Dasar Software Testing

Software Testing berdasarkan Sudut Pandang

Konsep Dasar Software Testing

Perbandingan Black Box vs White Box Testing

Konsep Dasar Software Testing

Contoh Test Report: Black Box

Konsep Dasar Software Testing

Tipe Software Testing Berdasarkan Eksekusi

Konsep Dasar Software Testing

Tipe-Tipe Lain dalam Software Testing

Konsep Dasar Software Testing

Posisi Software Tester di Organisasi
  1. Menggunakan pendekatan agile, software tester terkelompok dalam tim-tim kecil yang menangani tugas spesifik.
  2. Dipimpin test manager di bawah arahan project manager/product owner.

Konsep Dasar Software Testing

Struktur tim pengembang software dan posisi software tester | Sumber Gambar (h2kinfosys.com)

Susunan Tim Software Tester

Konsep Dasar Software Testing

Kompetensi Software Tester
  1. Kemampuan Teknis
    • Pengelolaan basis data (SQL)
    • Linux/Windows command
    • Test Management Tools (TestLink, qTest, TestRail dll)
    • Defect Tracking Tools ( QC, Bugzilla, Jira, dll)
    • Automation Tools (VBScript, JavaScript, C# dll)
  2. Kemampuan Non-Teknis
    • Analisis
    • Komunikasi
    • Manajemen waktu dan tim
    • Passion dan attitude
Konsep Dasar Software Testing
Kompetensi ideal seorang software tester | Sumber Gambar (guru99.com)

Kesimpulan
  1. Software testing adalah suatu tahap dalam pengembangan software untuk menguji software dari segi fungsionalitas dan non-fungsionalitas.
  2. Software testing tidak hanya bertujuan untuk menemukan suatu kesalahan dalam sistem, namun juga untuk mengurangi biaya pengembangan dan memberikan produk yang memuaskan.
  3. Ada banyak tipe software testing, antara lain functional dan non-functional testing, blacbox dan whitebox testing, manual dan automated testing, dan lain-lain.
  4. Pemilihan tipe software testing disesuaikan dengan kebutuhan/persyaratan.
  5. Software tester di organisasi biasanya di bawah naungan tim kecil yang dipimpin oleh product manager/product owner.
  6. Terdapat beberapa kompetensi yang harus dipenuhi oleh software tester, baik itu teknis atau pun non-teknis.

Sumber Referensi :
atlassian | atlassian | microsoft | guru99