Anda di halaman 1dari 5

PERAN PENTING TESTING DAN QUALITY ASSURANCE DALAM

SIKLUS PENGEMBANGAN SISTEM

Hari Mantik
hari.mantik@yahoo.com

Abstrak
Testing merupakan kegiatan pengujian dalam menilai tingkat fungsionalitas dalam suatu
aplikasi/program. Mulai dari mana dan sampai sejauh mana seorang tester melakukan pengujian
terhadap suatu sistem? Apakah pengujian hanya meneliti tingkat error/bug dari suatu sistem, tanpa
melihat dari sudut atau perspektif yang lain?

Posisi pengujian dalam daur hidup pengembangan sistem berada pade fase implementasi, atau fase yang
nyaris berada di akhir siklus. Sudah efektif kah itu? Peran seorang QA (quality assurance) yang
mencakup quality analyst, quality control, dan tester harus lebih diperluas dan seyogyanya sudah
diperkenalkan saat suatu sistem baru dimulai dalam daur hidup sistem (SDLC).

Pendahuluan dibangun saat masa pengembangan.


Testing bukan hanya sebuah kegiatan pengujian
dalam menilai fungsionalitas dalam suatu sistem. Kedua, menghadapi perubahan sistem yang ber-
Testing sebaiknya menjadi suatu alat ukur dalam gerak sangat dinamis dibutuhkan metode pengu-
menentukan kualitas dari sistem, kehandalan dari jian yang berguna sebagai control / pengawasan
sistem, dan tentu saja testing harus menciptakan yang paling efektif di dalam masa pengembangan
hasil yang memberikan rasa percaya diri bagi sistem.
seluruh stakeholders. Beberapa hal yang membuat
testing menjadi keharusan adalah: Ketiga, kerjasama yang baik antara Project-
1. Menemukan kesalahan/bug saat proses pe- Developer-Tester-User merupakan kombinasi ter-
ngembangan produk dalam SDLC. baik dalam meng-hasilkan produk dan sistem
2. Sebagai acuan dalam meningkatkan kepuasan yang berkualitas.
user melalui produk yang handal / reliability.
3. Produk yang berkualitas menciptakan rasa Enam hal penting diperlukannya testing dalam pe-
percaya diri / confidence. ngembangan sistem:
4. Menjamin kinerja suatu produk 1. Testing memberikan informasi bagi para
5. Dan memastikan perusahaan pemilik / product stakeholders
owner tetap berjalan serta meningkatkan 2. Measure quality, testing menetapkan standar
business value. kualitas pada produk,
3. Mitigate risk, testing mengurangi resiko yang
Definisi dan tinjauan testing di-perkirakan timbul,
Software testing merupakan suatu metode dalam 4. Testing memberikan rasa percaya diri,
menilai (assess) tingkat fungsionalitas dalam 6. Testing memastikan bahwa aplikasi harus
suatu aplikasi perangkat lunak. Testing juga sesuai dengan tujuan, dan
merupakan suatu alat ukur dalam menentukan 7. Testing sebagai satu-satunya alat pencari
atau meninjau kualitas, kinerja, ataupun kean- error/bug.
dalan dari suatu aplikasi perangkat lunak sebelum
dilakukan implementasi di ranah publik (real Testing environment / Lingkungan dalam
production). Pertanyaan yang sering timbul ada- proses pe-ngujian.
lah, mengapa testing sangat dibutuhkan? Padahal Testing sebaiknya dilakukan dalam multi-
dalam metodelogi SDLC hanya sedikit yang environment / multi-stage. Hal ini terkait dengan
dibahas mengenai testing. fungsi-fungsi yang akan di uji, dan peran
stakeholder dalam tiap envi-ronment / stage.
Pertama, testing dibutuhkan untuk mengukur Lingkungan testing terbagi atas tiga stage, yaitu:
tingkat error/bug selama masa pengembangan 1. Environment development
(development phase). Tingkat kepercayaan pe- 2. Environment test
langgan sangat tergantung pada kualitas yang 3. Environment production

75
Environment development, atau yang disebut Test planning dan Test Strategy
dengan SIT stage (fase system integration testing), Test plan dan test strategy mendeskripsikan kapan
adalah pengujian yang mencakup blackbox testing dan bagaimana proses pengujian akan dilakukan.
dan whitebox testing. Pengujian dilakukan secara Test plan juga memberikan informasi mengenai
menyeluruh baik oleh team programmer, team testing, background testing, tujan dan resiko
developer, dan team testing. Tujuan dari fase ini testing, dan juga mekanisme bagaimana fungsi-
adalah melihat sistem yang di uji secara dalam, fungsi bisnis dalam aplikasi akan di uji. Hal-hal
komprehensif dan detail dari sudut pandang teknis yang penting dalam test plan adalah:
(programmer dan developer) dan dari sudut 1. User requirement
pandang fungsional (tester). Data yang digunakan 2. Project scope
selama dilakukan pengujian adalah data simulasi. 4. Tipe testing
5. Test design
Environment test, atau yang disebut dengan UAT 6. Test data management
stage (fase user acceptance testing), adalah 7. Testing tools
pengujian yang menitikberatkan pada aspek
fungsional dari suatu sistem. Syarat dimulainya User Requirement
fase ini adalah pengujian di fase SIT sudah selesai. User requirement dalam testing dibagi dalam 2
Aspek fungsional yang di uji diantaranya terkait domain, yaitu functional requirement dan non-
user-interface, fitur-fitur yang bisa secara lang- functional requirement. Walaupun dalam SDLC
sung di akses oleh user, dan laporan manajemen. posisi pengujian terletak pada fase bawah, akan
Pengujian pada fase ini sepenuhnya dilakukan tetapi secara praktis keterlibatan user, tester, dan
oleh user yang dibantu oleh tester. Tujuan dari quality assurance di mulai di saat fase pertama
fase ini selain melihat sistem yang di uji dari pertama kali di gelar. Pengetahuan dan penga-
sudut pandang fungsional adalah sebagao dan laman seorang tester sangat dibutuhkan dalam
peletak dasar sebelum sistem di implementasi ke fase user requirement. Selain dapat menjadi dasar
pengguna yang sebenarnya. Data yang digunakan pembuatan skenario testing dan test case, fase ini
selama dilakukan pengujian dalam fase ini adalah juga mendorong tester dan QA untuk menyelami
data simulasi, tapi kadang data yang digunakan lebih dalam perilaku dari sistem dari sisi
adalah data asli sesuai dengan keinginan dan ijin kebutuhan fungsional serta menjadi engagement
dari user. ring / mediator antara business analyst, developer
dan user.
Environment production, atau yang disebut PR
stage (fase prouduction review), adalah pengujian Project Scope
yang dilakukan setelah sistem secara resmi di Project scope dilihat dari berbagai parameter.
migrasi ke ranah produksi. Pengujian di fase ini Mulai dari jadwal testing, orang-orang yang
penuh resiko, oleh karena itu pengujian biasanya bertanggung jawab atau terlibat dalam testing,
dilakukan seminim dan seefektif mungkin dengan hingga besaran dan ukuran dari testing. Ukuran
menitikberatkan pada fungsi-fungsi utama saja. dan besaran dari testing menjelaskan berbagai
Resiko yang terjadi (terutama kalau pengujian dukungan yang digunakan dalam testing, seperti
sistem perbankan) adalah data nasabah yang riil, penggunaan perangkat (komputer, laptop, tablet,
bukan data simulasi seperti yang digunakan pada telepon seluler, dan lainnya), penggunaan sistem
fase-fase sebelumnya. Pengujian pada fase ini operasi (linux, windows, android, atau ios),
dilakukan oleh user yang berkoordinasi dengan penggunaan platform, penggunaan database, dan
team operation dan tester. dukungan lainnya yang harus ditetapkan untuk
menjaga besaran dan ukuran pengujian berada
Membagi pengujian dalam multi-environment dalam koridor yang benar. Penetapan besaran dan
juga memudahkan manajemen dalam melihat ukuran ini sangat membantu manajemen dalam
benar atau tidak nya proses SDLC berjalan dalam menghitung budget, sumber daya yang digunakan
proses pengembangan sistem. Pada tahap SIT dan jadwal pengujian.
stage tidak ditemukan kesalahan (bug), tapi bug
ditemukan kembali di UAT stage, dan bahkan Tipe testing
seringkali ditemukan kembali di PR stage. Hal ini Beberapa tipe testing yang paling lazim dilakukan
membuat proses testing harus dilakukan dengan oleh perusahaan pengembangan sistem adalah,
perencanaan, mekanisme dan prosedur yang baik. full cycle testing atau integration testing,

76
regression testing, automation testing, smoke test dilakukan dalam hitungan jam, fokus pada
testing, dan penetration testing. GUI dan transaksi yang kritikal. Smoke test, atau
kadang disebut dengan sanitation test biasa
Full cycle testing atau integration testing adalah dilakukan setelah suatu fitur di deploy/migrasi ke
suatu kegiatan dengan menjalankan seluruh environment baru. Para tester melakukan ini pada
pengujian fung-sional berdasarkan skenario saat pre-UAT, pre-Production, dan sebelum
testing seluruh yang sepenuhnya disadur dari regression test. Smoke test wajib dilakukan untuk
dokumen user requirement. Testing ini dilakukan menghindari defect atau bug yang bersifat minor
pertama kali oleh tester pada environment akan tapi sering menjadi hambatan dalam proses
development dalam SIT stage (fase system pengembangan sistem.
integration testing). Seluruh user requirement
yang sudah di terjemahkan ke dalam skenario Penetration testing, yang sering disingkat pentest
testing harus di uji sepenuhnya secara detail. adalah suatu kegiatan dimana tester bekerjasama
Integration test yang berada dalam full cycle dengan seorang security analyst mencoba
testing ini menitikberatkan pada semua kegiatan mensimulasikan serangan yang bisa dilakukan
testing. Baik functional test atau blackbox test kedalam suatu jaringan organisasi/perusahaan
yang dilakukan oleh test tester, dan unit test atau tertentu untuk menemukan kelemahan yang ada
whitebox test yang di kerjakan oleh developer. pada sistem jaringan tersebut. Pentest sering
dilakukan pada aplikasi yang banyak memuat
Regression testing adalah pengujian yang transaksi keuangan dan terkait kerahasiaan
dilakukan terhadap suatu sistem yang sebelumnya nasabah. Aplikasi perbankan atau aplikasi produk
sudah berjalan sebagai akibat adanya perubahan, keuangan lainnya rutin dilakukan pentest untuk
penambahan, ataupun perbaikan modul. menghindari serangan-serangan yang bisa
Regression testing sering juga disebut dengan menyebabkan banyak kerugian secara finansial
pengujian ulang, dilakukan sebagai antisipasi jika terhadap nasabah mereka.
segala perubahan atau perbaikan yang terjadi
mempunyai dampak yang serius dan signifikan Test Design
terhadap suatu sistem. Regression harus dilakukan Test design merupakan aktivitas membuat dan
pada semua environment, mulai dari SIT stage, menuliskan skenario testing dalam suatu
UAT stage, hingga PR stage. pengembangan sistem. Pembuatan dan penulisan
skenario testing tidaklah mudah. Seseorang harus
Automation testing adalah serangkaian kegiatan mengetahui dan mempunyai syarat sebagai
test yang dilakukan menggunakan secara non berikut sebelum menuliskan skenario.
manual dan menggunakan aplikasi tertentu. 1. Mengetahui proses bisnis sesuai dengan area
Dengan kata lain, mulai dari pembuatan skenario yang akan di uji
testing, hingga eksekusi testing dilakukan secara 2. Memahami sejarah dan perilaku dari aplikasi
otomatis. Tidak seluruh aplikasi dapat dilakukan yang akan di uji
test secara otomatis, banyak yang masih harus 3. Paham akan fungsi-fungsi atau fitur yang
dilakukan secara manual. Beberapa contoh fungsi terdapat dalam sistem
yang sering dilakukan dengan automation testing 4. Menguasai pengetahuan dari testing itu sendiri
diantaranya adalah login, registration form, 5. Dan awareness terhadap mekanisme testing
koneksi database, dan beberapa pengecekan GUI ataupun scope dari testing.
lainnya. Testing pada fungsi yang memuat
transaksi keuangan ataupun yang berhubungan Test data management
dengan pihak ketiga masih dilakukan secara Test data adalah segala informasi yang digunakan
manual dan semi otomatis. Automation test biasa sebagai input/masukan dalam melakukan testing.
dilakukan dengan beberapa alasan antara lain, Test data bisa bisa berupa data statis atau data
requirement secara konstan tidak atau jarang transaksional seperti kode user name, momor
sekali berubah, beberapa projek dengan behavior identitas, nomor rekening bank, nomor kartu
yang sama, dan menguji load atau kinerja sistem kredit dan sebagainya.
yang biasanya hanya dilakukan oleh perusahaan
sebanyak sekali atau dua kali dalam setahun. Test data management, adalah bagaimana me-
ngelola data-data agar sesuai dengan kebutuhan
Smoke test merupakan test cepat terhadap fitur- testing. Baik data yang harus sesuai dengan for-
fitur yang penting dalam suatu aplikasi. Smoke mat yang diinginkan oleh programmer atau user,

77
dan data scramble yang mewakili data nasabah Mengingat dalam SDLC testing berada di posisi
tapi dipastikan kerahasiaannya terjaga. akhir dan tidak berkesan strategis menyebabkan
pekerjaan testing tidak sepenting pekerjaan
Test data management merupakan bagian dari seorang database administrator, system analis dan
testing yang penting, akan tetapi sering ter- programer. Padahal tidak demikian. Eksekusi
lewatkan. Melakukan testing tanpa test data yang memang di akhir, tapi formulasi dan strategi
berkualitas akan mengakibatkan hasil test yang berada di awal. Anisisis terhadap dokumen bisnis,
diragukan kualitasnya. Masalah yang sering pembuatan skenario testing dan memahami scope
timbul adalah, tester mempunyai kewajiban adalah bagian penting yang harus dilakukan tester
membuat analisis pada berbagai test data untuk sejak awal suatu proyek dimulai. Berikut adalah
keperluan negative testing, tapi data tersebut beberapa tugas penting dari seorang QA/tester:
sering tidak dapat disediakan oleh programmer. 1. Identifikasi kebutuhan bisnis, review dokumen
Test data management harus di komunikasikan bisnis
dengan bagian developer sejak awal siklus 2. Identifikasi timeline, scope, test data,
pengembangan sistem dimulai. environment, dan impact analysis (Test Plan)
3. Membuat skenario testing / test cases
Testing tools 4. Bekerjasama dengan internal (developer,
Alat bantu testing, sering disebut dengan testing project manager) dan eksternal (user, product
tools, testing manager, atau test director, adalah owner)
suatu aplikasi yang berguna untuk membantu 6. Eksekusi testing
jalannya testing. Aplikasi testing ini tidak hanya 7. Membuat laporan dan memberikan
digunakan untuk membantu beberapa testing dari rekomendasi ke manajemen.
manual menjadi otomatis. Aplikasi ini juga
digunakan sebagai issue tracking dan project Test validation
management. Mengingat semakin besar aktivitas Test validation merupakan proses evaluasi sistem
testing dan semakin besar kapasitas hubungan atau perangkat lunak baik di saat proses
kerja antara testing, developer, project mana- pengembangan dimulai, proses pengembangan
jement dan user, maka tools seperti Jira, redmine berjalan, hingga proses akhir pengembangan
atau HP quality center menjadi pilihan penting untuk mengawal kegiatan testing sesuai dengan
untuk memayungi seluruh kegiatan testing mulai tujuan yang telah ditetapkan. Seorang Quality
dari review dokumen, pembuatan skenario testing assurance harus memastikan suatu produk tidak
sampai ke eksekusi testing bersama-sama dengan hanya berkualitas secara fisik (delivered), tetapi
divisi terkait lainnya. juga berkualitas dalam proses dan prosedur
(gambar 1). Test validation berarti tester harus
Deskripsi Pekerjaan Quality Assurance dan memastikan dan memonitor bahwa dirinya sendiri
tester dan stakeholder lainnya (programer, project
Tester dalam beberapa kondsi kadang di-ana- manajer, dan departemen terkait lainnya) telah
logikan seperti warung kopi. Artinya, ada apli- melakukan pekerjaan sesuai dengan prosedur dan
kasi, selesai dibuat, silahkan dan segera di test. mekanisme yang ada.

Gambar 1: Test validation. Sumber: https://www.tutorialspoint.com

78
Kesimpulan dan user harus berada dalam koridor dan proses
Testing dalam siklus pengembangan sistem tidak yang telah disepakati.
hanya mencari kesalahan dari perangkat lunak,
testing mencakup pengetahuan terhadap perang- Daftar pustaka
kat lunak itu sendiri. Pengetahuan terhadap Sommerville, Ian. Software Engineering 9th
perilaku sistem, pemahaman terhadap mekanisme edition, Pearson, 2011
kerja pengembangan perangkat lunak, prosedural Perry, William E. Effective method for software
dan proses bisnis adalah bagian penting dari testing, Wiley, 2006
kegiatan testing dalam daur hidup pengembangan Pressman, Roger. Software engineering: A
sistem. Testing tidak hanya bicara do the right practitioner’s approach, McGraw Hill, 2005
things (melakukan hal yang benar sesuai tujuan: Article, IEEE – Standard 1012 – 1998, standard
menguji perangkat lunak, mencari bug, dan for software verification and validation
melaporkan). Testing harus memberikan per- Case study: Ogilvy dan Bullseye Digital,
spektif do the things right (sudahkah kita melaku- berdasarkan dokumen dan riset, 2015
kan sesuatu dengan benar?). Artinya, selain tester http://softwaretestingfundamentals.com, 2016
harus paham terhadap seluruh dokumen fung- http://softwaretestingessentials.com, 2016
sional, mengerti scope dari proyek sistem infor- https://www.altassian.com/software/jira, 2017
masi, tester harus memastikan, mengawal dan me- www.redmine.org, 2017
monitor bahwa seluruh pekerjaan yang ber- https://www.tutorialspoint.com
hubungan dengan eksekusi testing baik yang
berhubungan dengan developer, project manager

79

Anda mungkin juga menyukai