8 Jenis Software Testing

Shoimatul_Mubarokah
QA Malang
Published in
4 min readApr 28, 2020
Photo by : testim.io

Software testing adalah Suatu proses menganalisis item perangkat lunak untuk mendeteksi apakah perangkat lunak yang dikembangkan tersebut telah berfungsi dengan baik dan memenuhi persyaratan yang telah ditentukan, serta melakukan identifikasi terhadap cacat untuk memastikan bahwa produk yang diuji telah bebas dari cacat, sehingga dapat menghasilkan sebuah produk yang berkualitas.

Tujuan dasar pengujian perangkat lunak adalah untuk menghilangkan bug dan meningkatkan berbagai aspek perangkat lunak, seperti kinerja, pengalaman pengguna, keamanan, dan sebagainya.

Banyak pengujian yang bisa kita lakukan untuk meningkatkan kualitas keseluruhan perangkat lunak, serta menghasilkan kepuasan pelanggan yang sangat memuaskan. Berikut ini merupakan jenis jenis software testing yang perlu diketahui oleh seorang QA.

Usability Testing

Usability testing adalah teknik pengujian yang dilakukan untuk mengevaluasi sebuah produk dengan cara mengujinya kepada calon pengguna. Umumnya, selama pengujian, pengguna akan mencoba untuk menyelesaikan tugas yang diberikan, sementara pemilik produk akan mengamati, mendengar, serta mencatat temuan.

Tujuan dari usability testing adalah mencari permasalahan kegunaan, mengumpulkan data kualitatif dan kuantitatif, serta menentukan kepuasan pengguna dengan produk tersebut.

Berdasarkan pengalaman pengguna, interaksi yang dilakukan antara user dengan sistem dapat menentukan apakah fungsi telah sesuai yang diharapkan serta menentukan apakah user interface membuat sistem dapat mudah digunakan.

Unit Test

Unit testing merupakan metode verifikasi perangkat lunak yang dilakukan oleh programmer untuk memastikan kode yang dibuat telah memenuhi persyaratan dan sesuai yang diharapkan. Unit testing berfokus pada verifikasi pada unit yang terkecil pada desain perangkat lunak (komponen atau modul perangkat lunak). Unit-unit kecil ini dapat berupa event, procedure dan function.

Unit testing dilakukan setelah programmer selesai menuliskan suatukode/fungsi/method yang ada dalam suatu class. Dapat juga dilakukan setelah menambahkan sebuah fungsionalitas baru atau setelah melakukan refactoring.

Tool yang digunakan untuk unit testing ada berbagai macam tergantung bahasa pemrograman yang digunakan, misalnya :

  • JUnit untuk bahasa Java
  • NUnit untuk bahasa .Net
  • CUnit untuk bahasa C
  • PHPunit untuk bahasa PHP
  • PyUnit untuk bahasa Python

Smoke Testing

Smoke testing merupakan jenis sofware testing yang dilakukan setelah software di build/dibangun untuk memastikan bahwa fungsi penting dari program bekerja dengan baik. Hal ini dieksekusi “sebelum” setiap rinci tes fungsional atau regresi dijalankan pada perangkat lunak.

Tujuan dari smoke test adalah untuk memverifikasi bahwa fungsionalitas kritis sistem berfungsi dengan baik serta dapat melakukan reject aplikasi yang sudah rusak sejak awal development, sehingga tim QA tidak membuang-buang waktu untuk menginstal ataupun melakukan pengujian terhadap aplikasi perangkat lunak tersebut.

Sebagian contoh smoke testing adalah aplikasi berhasil login, GUI Responsive dll, yang bersifat dasar-dasar aplikasi.

Stress Testing

Stress testing merupakan pengujian perangkat lunak yang dilakukan untuk memverifikasi stabilitas & keandalan sistem. Fungsi utama Pengujian ini yaitu untuk mengukur sistem pada ketahanan dan kemampuan penanganan kesalahannya dalam kondisi beban yang sangat berat sehingga dapat dipastikan sistem tidak akan crash di bawah situasi krisis.

Tujuan dari stress testing adalah untuk menganalisis perilaku sistem setelah terjadi kegagalan. Agar pengujian stres berhasil, sistem harus menampilkan pesan kesalahan yang sesuai ketika sedang dalam kondisi ekstrim.

Rekomendasi tools yang digunakan untuk melakukan stress testing diantaranya yaitu :

  • LoadRunner
  • Jmeter
  • Stress Tester
  • Neo Load

Integration Testing

Integration testing merupakan pengujian perangkat lunak di mana masing-masing unit (yang berinteraksi di dalam sebuah software) digabungkan dan diuji untuk memverifikasi apakah mereka berfungsi sebagaimana mestinya ketika terintegrasi. Tujuan utama di sini adalah untuk menguji antarmuka antar modul.

Contoh sederhana ketika saat upload dan mengirim gambar apakah tampilan gambar yang dikirim sesuai dengan gambar yang diupload tadi.

Regression Testing

Regression testing merupakan jenis pengujian perangkat lunak untuk mengkonfirmasi bahwa perubahan program atau kode baru yang ditambahkan tidak mempengaruhi fitur yang ada.

Regression testing dilakukan dengan tujuan untuk memastikan bahwa perubahan kode baru seharusnya tidak memiliki efek samping pada fungsi yang ada, sehingga dapat dipastikan bahwa kode lama masih berfungsi setelah perubahan kode terbaru dilakukan.

Regression testing diperlukan ketika :

  • Perubahan persyaratan dan kode dimodifikasi sesuai dengan kebutuhan
  • Fitur baru ditambahkan ke perangkat lunak
  • Memperbaiki cacat
  • Memperbaiki masalah kinerja

Performance Testing

Performance test adalah pengujian yang dilakukan untuk memeriksa kecepatan, waktu respons, keandalan, penggunaan sumber daya, skabilitas program perangkat lunak dibawah beban kerja yang diharapkan. Tujuan pengujian ini bukan untuk menemukan bug akan tetapi untuk menghilangkan hambatan kinerja.

Fokus performance testing adalah memeriksa program perangkat lunak yang diantaranya yaitu :

  • Kecepatan : Menentukan apakah aplikasi merespons dengan cepat.
  • Skabilitas : Menentukan beban pengguna meksimal yang dapat ditangani oleh aplikasi perangkat lunak.
  • Stabilitas : Menentukan apakah aplikasi stabil dibawah beban yang bervariasi.

Jika performance testing ini dilewatkan, maka masalah yang akan terjadi yaitu aplikasi akan berjalan lambat ketika pengguna mengakses aplikasi tersebut secara bersamaan, inkonsistensi di berbagai sistem operasi dan kegunaan yang buruk.

User Acceptance Test (UAT)

User Acceptance Testing (UAT) merupakan jenis pengujian yang dilakukan oleh pengguna akhir atau klien untuk memverifikasi / menerima sistem perangkat lunak sebelum memindahkan aplikasi perangkat lunak ke environment production.

UAT dilakukan pada putaran terakhir proses pengujian yaitu sebelum sistem diserahkan kepada user, biasanya dilakukan setelah rangkaian testing seperti Unit Testing, Integration Testing, dan System Testing telah selesai dilakukan.

Tujuan utama dari pengujian ini adalah untuk memvalidasi perangkat lunak terhadap persyaratan bisnis. Validasi ini dilakukan oleh pengguna akhir yang memahami persyaratan bisnis.

Referensi

--

--