Software Testing for Quality Assurance

Ryan Naufal
PDB+R
Published in
4 min readApr 29, 2019
Software Testing

Halo semua, kembali lagi dengan saya yang akan menjelaskan beberapa jenis Software Testing diantaranya Mock Testing, Stub Testing, Stress Testing, dan Penetration Testing. Sebelumnya sudah pada kenal saya kan? kalo belum, perkenalkan nama saya Ryan yang merupakan salah satu hacker dari kelompok PDB+R.

Mock Testing

Mock Testing adalah sebuah cara testing yaitu dengan membuat objek yang akan dibandingkan oleh suatu output pada suatu proses. Hal ini dilakukan agar suatu output bisa sesuai dengan yang hasil diinginkan. Pada hal ini hasil yang diinginkan dibuat dalam suatu objek terlebih dahulu, Setelah itu akan dibandingkan dengan output. Tahapan pada Mock Testing :

  • Initialize
  • Set expectations
  • Excercise
  • Verify

Berikut adalah implementasi kelompok kami pada Mock Testing:

Pembuatan objek dummy untuk Mock Testing
Contoh Mock Testing

Stub Testing

Berbeda dengan Mock Testing, Stub Testing adalah sebuah cara testing dengan memasukan input pada suatu proses dan membuat proses tersebut me-return fixed value, throw exception, atau hasil output yang diinginkan dari suatu proses. Stub Testing biasanya digunakan untuk mensimulasikan behavior dari suatu proses yang ada dalam aplikasi. Tahapan pada Stub Testing :

  • Initialize
  • Excercise
  • Verify

Berikut adalah implementasi kelompok kami pada Stub Testing:

Contoh Stub Testing

Stress Testing

Stress Testing merupakan sebuah cara testing yang digunakan untuk memeriksa performa aplikasi dengan nilai maksimum atau melebihi kapasitas request dan jobs pada suatu environtment aplikasi tersebut. Artinya, kita dapat menentukan poin kelemahan dari aplikasi yang dibuat dan memastikan bahwa aplikasi berjalan dengan baik di bawah kapasitas maksimum-nya. Pada Stress Testing, terdapat beberapa informasi yang harus diperhatikan yaitu:

  • Average Response Time
  • Peak Response Time
  • Error Rates
  • CPU Utilization
  • Memory Utilization
Waktu yang dibutuhkan untuk stress testing

Kelompok kami membuat data dummy sebanyak 200 yang termuat dalam csv untuk dimasukkan ke dalam database data mahasiswa. Setelah dimasukkan ke dalam database waktu yang dibutuhkan sekitar 43 detik, hal ini bisa dinilai cukup lama yaitu lebih dari 5 detik (waktu standar untuk timeout). Kenapa memasukkan 200 data saja bisa lama? karena setelah data dimasukkan perlu data mahasiswa perlu diintegrasikan dengan sidang yang ada sehingga data tersebut bisa muncul pada pembuatan jadwal sidang.

Penetration Test

Penetration Testing merupakan simulasi cyberattack yang bisa dilakukan terhadap jaringan organisasi demi menemukan kelemahan pada suatu aplikasi. Penetration Testing penting karena dapat menemukan celah keamanan dari suatu environtment aplikasi sehingga dapat diperbaiki secepatnya. Seorang pentester(orang yang melakukan Penetration Testing) mensimulasikan serangan yang dapat dilakukan, menjelaskan resiko yang bisa terjadi, dan melakukan perbaikan sistem tanpa merusak infrastruktur environtment aplikasi tersebut.

Terdapat 5 cara dari Penetration Testing, yaitu:

  1. Perencanaan dan Pengintaian: Tahap pendefinisian scope dan goal dari test yang akan dilakukan, seperti target dan metode yang digunakan.
  2. Scanning: Tahap untuk memahami respon dari aplikasi target terhadap berbagai percobaan attack. Dapat dilakukan dengan memeriksa code dan data yang ada.
  3. Gaining Access: Melakukan berbagai attack seperti cross site scripting, SQL injection, dan lain-lain. Selanjutnya tester akan mencoba melakukan eksploitasi kelemahan tersebut diantaranya dengan menambah privilege, atau mencuri data.
  4. Maintaining Access: Tahap untuk melihat apakah kelemahan tersebut dapat digunakan untuk tetap mengakses kedalam sistem.
  5. Analysis: Tahap ini menganalisa kelemahan yang di eksploitasi, data sensitif yang di akses, dan berapa lama waktu pentester dapat berada di dalam sistem tanpa terdeteksi.

Kelompok kami melakukan implementasi penetration test dengan cara mengecek salah satu fitur yang hanya bisa dimasuki oleh role tertentu.

Contoh implementasi penetration testing

Kami mencoba untuk memasuki fitur CRUD Data Mahasiswa dengan cara memasukan url “/data-mahasiswa” dalam keaadan belum login. Hasil yang kami dapatkan adalah seperti pada gambar diatas, dikarenakan fitur tersebut hanya bisa diakses dengan role “sekretariat”, sedangkan kami saat mengetes hal tersebut belum login sehingga belum memiliki role dan tidak bisa memasuki fitur tersebut.

Penutup

Menurut saya, Software Testing sangat berguna terutama untuk membuat suatu aplikasi yang dapat dijalankan dengan baik dan sesuai dengan keinginan developer maupun user.

Mungkin Software Testing dari saya segini dulu, semoga tulisan saya ini bermanfaat buat kalian. Sampai jumpa lagi pada tulisan saya selanjutnya ya :)

--

--