Types of Testing

    Ada banyak sekali tipe atau jenis jenis pengujian. Kali ini kita akan membahas beberapa tipe pengujian yang sering digunakan.

UNIT TESTING

    Unit Testing adalah jenis pengujian perangkat lunak yang dilakukan pada unit atau komponen individual. Biasanya, Unit Testing dilakukan oleh developer pada fase pengembangan aplikasi. Setiap unit dalam Unit Testing dapat dilihat sebagai metode, fungsi, prosedur, atau objek. Developer sering menggunakan automation tools seperti NUnit, Xunit, JUnit untuk mengeksekusi pengujian.\

WHITE BOX TESTING

    White box testing adalah teknik pengujian di mana struktur internal atau kode aplikasi terlihat dan dapat diakses oleh QA. Dalam teknik ini, mudah untuk menemukan celah dalam desain aplikasi atau kesalahan dalam logika bisnis.

Dalam melakukan verifikasi White Box Testing Ada beberapa hal yang dapat diuji:

  1. Security. apakah software ini memiliki sistem keamanan yang baik
  2. Broken or poorly structured
  3. Spesifikasi dari alur fungsi
  4. Expektasi output
  5. Fungsi kodingannya

Adapun cara untuk melakukan White Box Testing yaitu

  1. Harus mengerti source code. Penguji harus sangat paham tentang apk pemrograman yang dipakai oleh developer.
  2. Membuat test case and eksekusi.
  3. Mempunyai pengetahuan yg dalam terhadap kodenya. Oleh karena itu, white box testing sering kali dilakukan oleh developer.

Ada beberapa tools yang dapat digunakan pada white box testing

  1. parasoft jtest
  2. eclEmma
  3. nUnit
  4. pyUnit
  5. HTML Unit
  6. cpp Unit

INTEGRATION TESTING

    Integration Testing adalah jenis pengujian perangkat lunak di mana dua atau lebih modul aplikasi secara logis dikelompokkan bersama dan diuji secara keseluruhan. Fokus dari Integration Testing adalah untuk menemukan cacat pada antarmuka, komunikasi, dan aliran data antar modul. Pendekatan top-down atau Bottom-up digunakan saat mengintegrasikan modul ke dalam keseluruhan sistem. Jenis pengujian ini dilakukan pada pengintegrasian modul sistem atau antar sistem.

SYSTEM TESTING

    System Testing adalah pengujian untuk memastikan bahwa keseluruhan sistem telah berfungsi dan telah memenuhi persyaratan pengguna (user requirement). System Testing biasanya dilakukan di akhir setiap iterasi untuk mengidentifikasi isu-isu penting. Biasanya pengujian ini harus dilakukan sesering mungkin.

END TO END TESTING

    End to end Testing adalah jenis pengujian di mana seseorang akan melakukan pengujian dari awal hingga akhir skenario aplikasi. Adapun proses End To End Testing yaitu

  1. Test Environment setup.
  2. Deskripsikan semua sistem. Penguji harus mengetahui sistem secara keseluruhan.
  3. Deskripsikan roles dan responsibility di semua sistem.
  4. End to End Requirement tracking dan desain sistem.
  5. Input dan output data pada sistem.

Contoh End to end Testing pada proses pengambilan uang melalui ATM:

Login > Cek Saldo (Pastikan ada saldo yang akan di ambil) > Tarik tunai --> Cek Saldo (Berkurang sesuai yang diambil) --> Logout.

BLACK BOX TESTING

    Black Box Testing adalah teknik pengujian perangkat lunak di mana pengujian dilakukan tanpa mengetahui struktur internal, desain, atau kode dari sistem yang diuji. Penguji harus fokus hanya pada input dan output dari sistem. Adapun cara melakukan Black Box Testing yaitu:

  1. Mengetahui requirement, dan spesifikasinya
  2. Tester memilih input yang valid untuk mengetahui apakah proses softwarenya sudah benar
  3. Mengetahui positif dan negatif testing.
  4. Tester menjelaskan ekspektasi keluaran dari input yg dimasukkan
  5. Software tester membuat test case
  6. Tes case di eksekusi
  7. Software tester di kompare. lalu diajukan ke dev apabila ada bug. supaya bisa di fixed.

SANITY TESTING

    Sanity Testing adalah jenis pengujian dimana seseorang akan melakukan pengujian secara keseluruhan pada produk yang dirilis, untuk mengkonfirmasi apakah hal itu tepat untuk melakukan pengujian secara rinci atau tidak. Biasanya selama jenis pengujian ini, QA memeriksa hal berikut:

  1. Apakah produk yang dirilis sudah berjalan dengan benar atau tidak
  2. Apakah user dapat menavigasikan ke semua halaman aplikasi atau tidak
  3. Apakah semua fungsi penting sudah tersedia atau tidak
  4. Apakah semua koneksi yang diperlukan telah ditetapkan dengan benar atau tidak

SMOKE TESTING

    Smoke Testing dilakukan untuk memverifikasi bahwa fungsionalitas dasar dan kritis dari sistem yang diuji berfungsi dengan baik pada tingkat yang sangat tinggi. Setiap kali produk baru disediakan oleh tim pengembangan, tim Pengujian Perangkat Lunak akan memvalidasi produk dan memastikan bahwa tidak ada masalah besar. Tim pengujian akan memastikan bahwa produk stabil, dan tingkat pengujian terperinci akan dilakukan lebih lanjut.

MONKEY TESTING

    Ini adalah jenis pengujian di mana seseorang akan melakukan tindakan abnormal pada aplikasi. Dengan sengaja, untuk memeriksa stabilitas aplikasi.

ACCEPTANCE TESTING

Acceptance Testing adalah jenis pengujian di mana end user/klien/bisnis/pelanggan menguji aplikasi perangkat lunak dengan skenario bisnis. User menerima aplikasi perangkat lunak hanya ketika semua fitur dan fungsi berfungsi seperti yang diharapkan. Ini juga disebut User Acceptance Testing (UAT).

ALPHA TESTING

    Ini adalah jenis Acceptance Testing yang dilakukan di perusahaan perangkat lunak oleh para engineer atau development team sebelum mengirimkan aplikasi ke klien.

BETA TESTING

    Ini juga merupakan jenis pengujian Acceptance Testing yang dilakukan di tempat klien baik oleh end user atau pihak ketiga, sebelum implementasi aplikasi yang sebenarnya.

SECURITY TESTING

    Ini adalah jenis pengujian di mana seseorang akan memeriksa apakah aplikasi dilindungi dengan benar atau tidak.

PENETRATION TESTING

    Penetration Testing atau Pen Test adalah jenis pengujian keamanan yang dilakukan sebagai serangan siber resmi pada sistem untuk mengetahui titik lemah sistem dari segi keamanan. Pen Test dilakukan oleh kontraktor luar, umumnya dikenal sebagai peretas resmi. Itulah mengapa itu juga dikenal sebagai peretasan resmi. Kontraktor melakukan operasi yang berbeda seperti injeksi SQL, manipulasi URL, time out session, dan memberikan laporan kepada perusahaan.

PERFORMANCE TESTING

    Performance Testing adalah pengujian stabilitas dan waktu respons aplikasi. Kata stabilitas berarti kemampuan aplikasi untuk menahan adanya beban data. Waktu respon adalah seberapa cepat sebuah aplikasi tersedia untuk user. Performance Testing dilakukan dengan bantuan tools seperti: Loader.IO, JMeter, LoadRunner, dll.

LOAD TESTING

    Eksekusi aplikasi di bawah konfigurasi yang diharapkan user dan beban yang diharapkan user untuk memperkirakan kinerja disebut juga dengan Load Testing. Pada Load Testing, sistem diberikan beban yang berbeda beda guna menganalisa kinerja dari sistem.

STRESS TESTING

    Eksekusi aplikasi di bawah konfigurasi yang diharapkan user dan beban interval untuk memperkirakan kinerja disebut stress testing, dilakukan untuk mengetahui sekuat apa server bisa menampung visitor atau data. Adapun tujuan dari Stress Testing adalah untuk:

  1. Menganalisa behaviour dari sistem setelah failure. misal muncul pop up bahwa sistem telah mencapai batas
  2. Melihat apakah ada data yang kena dampak dari stress testing
  3. Memastikan bahwa sistem kita bisa menyembuhkan diri dari failure

Matric Stress Testing

  1. Mencari tahu seberapa banyak halaman yg bisa dibuka dalam 1 detik
  2. Datanya bisa merespon berapa size data nya per detik
  3. Berapa kali pengujiannya dibanding number of time dari client

USABILITY TESTING

    Ini adalah jenis pengujian di mana seseorang akan menguji aplikasi ramah pengguna atau mudah untuk digunakan. Usability testing merupakan pengujian yang dilakukan untuk memastikan apakah software sudah sesuai dengan persyaratan dari pengguna. Umumnya usability testing mengevaluasi persyaratan fungsional program dan kualitas dari user interface. User berinteraksi dengan sistem untuk menentukan apakah fungsi telah seperti yang diharapkan dan apakah user interface membuat sistem dapat mudah digunakan. Pengujian ini sering dilakukan untuk mendapatkan feedback yang cepat dalam meningkatkan interface dan mengkoreksi kesalahan dalam komponen perangkat lunak.

EXPLORATORY TESTING

    Memiliki pengetahuan dasar tentang beberapa konsep, melakukan sesuatu dan mengetahui lebih banyak tentang konsep yang sama dikenal sebagai Exploring. Ini adalah jenis pengujian dimana QA akan melakukan pengujian pada aplikasi tanpa memiliki pengetahuan tentang persyaratan, hanya dengan menjelajahi fungsionalitas secara paralel.

CROSS-BROWSER TESTING

    Pengujian lintas browser adalah menguji aplikasi pada browser yang berbeda, sistem operasi, perangkat seluler untuk melihat tampilan dan nuansa serta kinerja.

COMPATIBILITY TESTING

    Ini adalah jenis pengujian di mana seseorang akan menginstal aplikasi ke beberapa environment berbeda, disiapkan dengan konfigurasi berbeda, untuk memeriksa apakah aplikasi tersebut cocok dengan environment tersebut atau tidak. Adapun tipe dari komponen pengujian yaitu:

  1. Hardware : Menguji suatu hardware untuk memastikan apakah sistem ini kompatibel di beberapa jenis hardware yang berbeda.
  2. Operating System : Menguji apakah sistem ini kompatibel apabila digunakan di berbagai operasi sistem yang berbeda.
  3. Software : Menguji apakah sistem ini kompatibel apabila digunakan di berbagai software yang berbeda.
  4. Network : Menguji suatu network untuk memastikan apakah sistem ini kompatibel di beberapa jenis network yang berbeda.
  5. Browser : Menguji suatu browser untuk memastikan apakah sistem ini kompatibel di beberapa jenis browser yang berbeda.
  6. Mobile : Menguji suatu mobile untuk memastikan apakah sistem ini kompatibel di beberapa jenis mobile yang berbeda.
  7. Version of the software : Menguji suatu versi software untuk memastikan apakah sistem ini kompatibel di beberapa jenis mobile yang berbeda.

  • Backward : Menguji pada software yang versinya lebih lama atau lebih jadul.
  • Forward : Menguji pada software yang versinya paling terbaru.

Tools yang dapat digunakan:

  1. Real Devices
  2. Browserstack : Untuk mengecek di browser yang berbeda.
  3. Virtual Desktop : Untuk run aplikasi di multiple OS.

REGRESSION TESTING

    Ini adalah jenis pengujian di mana seseorang akan melakukan pengujian pada fungsionalitas yang sudah diuji lagi dan lagi. Setiap kali QA mengidentifikasi defects yang dirilis oleh developer. Pembangunan berikutnya dirilis, kemudian QA akan memeriksa fungsionalitas dari defect tersebut serta fungsionalitas terkait sekali lagi secara menyeluruh.

    Setiap kali beberapa fitur baru ditambahkan, produk yang dibangun berikutnya dirilis ke tim departemen pengujian. Kemudian QA akan memeriksa semua fitur terkait dari fitur baru tersebut sekali lagi. Inilah yang dikenal sebagai Regression Testing. Singkatnya, tujuan utamanya yaitu untuk meminimalisir bug yang mungkin akan muncul setelah adanya pembaharuan fitur pada software.

Cara Melakukan Regression Testing:

  1. Melakukan Retest
  2. Melakukan test selection
  3. Memilih test case priority

    Itulah  beberapa  jenis-jenis  software  testing.  Pada  intinya  semua   jenis software  testing diperlukan untuk memastikan sebuah software dapat berjalan dengan baik dan sesuai dengan yang diharapkan.

Sumber


Komentar

Postingan populer dari blog ini

Software Testing Life Cycle

API Testing using Postman