Konsep Dasar Testing dan Kerabatnya — Part 1

(Definisi testing, mengapa testing itu penting, terminologi testing, tujuh prinsip testign, dan hal yang mendukung testing)

Indriani Sitorus
BonapasogitMengajar
4 min readMar 26, 2021

--

Photo by Sigmund from Unsplash

Salam Kenal ^^

Haloo teman-teman semua, kenalin aku Indriani Sitorus biasa dipanggil “ind” atau “ndrii” atau “indri” dll hehe… (atau mau manggil nama lengkap juga boleh ya). Baiklah, semoga semuanya sehat dan tetap berada dalam lindungan Tuhan Yang Maha Kuasa.

Kali ini aku mau sharing tentang “Konsep Dasar Testing dan Kerabatnya — Part 1”. Humm wait, testing dalam konteks ini yang aku maksud adalah Pengujian Software yaa… Mungkin ada nih beberapa dari teman-teman yang sedang mencari referensi terkait “konsep software testing dan kerabatnya itu apa saja sih?” atau mungkin “apa aja hal yang perlu aku ketahui lebih lanjut untuk terjun dalam dunia testing?” dll tentunya dengan menggunakan Bahasa Indonesia supaya lebih mudah dipahami.

Oiya.. artikel kali ini juga berkaitan dengan artikel ku sebelumnya yang berjudul “A Guide for Beginner About Software Quality Assurance

Baiklah… tanpa berlama-lama lagi, Selamat Membaca Part-1!

1.1 Apa yang dimaksud dengan Testing??

Testing adalah sebuah proses yang dilakukan dalam menganalisis sebuah perangkat lunak untuk mendeteksi perbedaan antara existing condition dan expected requirements. Tujuannya yaitu memastikan software terbebas dari kecacatan (bugs). Pengujian perangkat lunak biasanya dikerjakan oleh seorang penguji perangkat lunak (software tester) atau Quality Assurance (QA). Dalam melakukan pengujian, software tester atau QA harus terlibat dalam keseluruhan proses development dari awal sampai akhir.

Bahkan software tester atau QA dituntut untuk lebih paham tentang proses business flow dari perangkat lunak yang sedang dibangun dibandingkan para developer (programmer), supaya saat melakukan pengujian QA dapat memastikan apakah fitur tersebut sudah sesuai requirements atau tidak.

Jika terdapat fitur atau fungsi yang kurang atau belum sesuai dengan requirements, maka software tester atau QA harus mampu berkomunikasi dengan cara yang baik dan benar kepada tim developer. Sebisa mungkin sampaikanlah dengan bahasa yang sopan dan tidak menyinggung perasaan mereka, karena seperti yang kita ketahui bersama bahwa “programmer juga adalah manusia biasa”. Ada kemungkinan mereka (developer/programmer) tidak sengaja melakukan kesalahan pada saat mengerjakan code program atau mungkin ada sesuatu yang kurang dan perlu diperbaiki lagi.

Demikian juga halnya saat software tester atau QA menemukan issue atau bugs pada fitur tertentu, maka harus segera dilaporkan ke forum tim development yang telah disetujui sebelumnya. Jelaskan issue nya apa? di fitur yang mana? dengan kalimat yang singkat, jelas, padat, dan tentunya mudah dipahami ya... Lalu sertakan screenshoot issue agar lebih mudah di-track oleh developer di tim masing-masing.

1.2 Mengapa Testing menjadi hal yang penting??

Pengujian software memainkan peran penting untuk mengukur seberapa baik mutu aplikasi yang dibangun. Tujuannya adalah untuk memastikan aplikasi berjalan sebagaimana mestinya, misalnya end-user berhasil Login ke aplikasi, melakukan order, atau transaksi lain pada aplikasi yang sesuai dengan requirements yang telah ditentukan. Adapun beberapa manfaat pengujian software yaitu:

a. Verifikasi
Verifikasi adalah suatu pengecekan yang dilakukan terhadap entitas-entitas aplikasi untuk penilaian hasil terhadap kebutuhan development (requirement). Istilah verifikasi digunakan untuk memastikan “apakah sistem yang dibangun sudah benar?”

b. Validasi
Setelah melakukan verifikasi untuk melihat kebenaran sistem/ aplikasi, maka validasi dilakukan untuk menentukan “apakah proses yang ditulis dalam spesifikasi adalah apa yang sesungguhnya dibutuhkan oleh end-user?”

c. Deteksi Error
Manfaat lain dari pengujian software adalah untuk melakukan deteksi error pada aplikasi yaitu untuk memastikan “apakah terjadi kesalahan pada sisi aplikasi dimana ada hal yang tidak seharusnya tidak terjadi?” sehingga dalam proses ini deteksi error sangat diperlukan.

1.3 Terminology Testing

  1. Error adalah jumlah kesalahan yang dihasilkan dari code program . Error terjadi karena adanya mistake yaitu tindakan manusia (human origin), misalnya developer mengantuk saat sedang mengoding sehingga terdapat typo pada code program, atau terjadi kesalahan dalam menuliskan function yang akan menghasilkan error, dll.
  2. Defect (bug) adalah hasil dari error dimana terdapat kesalahan langkah, proses atau definisi pada code program.
  3. Failure adalah hasil yang salah dari code program yakni dapat diamati pada output yang dihasilkan.

1.4 Tujuh Prinsip Testing

  1. Show the presence of a defect (bug)
    Testing menunjukkan adanya defect (bug) dalam aplikasi, sehingga “dengan melakukan fixing terhadap defect yang telah ditemukan selama testing dapat meningkatkan kualitas aplikasi”
  2. Exhaustive testing is impossible
    “Exhaustive testing maksudnya adalah pengujian yang dilakukan secara menyeluruh pada aplikasi”. Tentu saja hal ini mustahil dilakukan oleh seorang tester, terlebih lagi jika misalnya tim development hanya memiliki satu orang QA atau tester saja (limitation of testr resoucer). Sehingga perlu ditentukan sebelumnya apa saja yang perlu di-testing dalam satu tahap development.
  3. Early testing saves time and money
    Misalnya ada service/ API baru yang sudah bisa dilakukan testing terlebih dahulu sebelum terintegrasi untuk mencari defect-nya. Sehingga hal ini dapat menghemat waktu seorang tester dalam melakukan pengujian software.
  4. Defects cluster together
    Misalnya ada defect di fitur Login, maka defect lainnya tidak akan jauh dari fitur utama tersebut yaitu Login.
  5. Beware of pesticide paradox (test cases need to be updated)
    Seorang tester harus melakukan update test case secara berkala sesuai dengan versi aplikasi yang terbaru.
  6. Testing is context-dependent
    Testing yang dilakukan harus sesuai dengan konteks bisnis. Misalnya testing di aplikasi pesawat terbang tentu berbeda dengan testing di aplikasi online shop, jadi tergantung konteks bisnisnya.
  7. Absence-of-error is a fallacy
    Misalnya hasil testing hari ini tidak terdapat error di fitur X, tetapi ada saja kemungkinan saat melakukan testing di hari berikutnya terdapat error di fitur tersebut.

1.5 Hal-hal yang Mendukung Testing

Sementara dalam menjalankan proses Software Quality Assurance diperlukan beberapa hal berikut:

  1. Laptop untuk pengujian (Linux/ Windows)
  2. Device untuk pengujian
  3. Pengetahuan Basic Programming
  4. Terbiasa dengan Git
  5. Terbiasa dengan Agile (Scrum Framework)

Sekian penjelasan terkait “Konsep Dasar Testing dan Kerabatnya — Part 1” Semoga bermanfaat ya teman-teman… Jangan lupa tunggu Part 2 nya di bulan April ya [wkwk macam tiktokers aku jadinya :D]

Jika ada saran dan masukan yang ingin ditanyakan atau didiskusikan lebih lanjut, silahkan tulis di kolom komentar. Thank you!! ^^

--

--