Anda di halaman 1dari 6

Pengujian dengan Unit Testing dan Test case pada

Proyek Pengembangan Modul Manajemen


Pengguna
Annisa Nauli Hasibuan Teduh Dirgahayu
Program Studi Informatika – Program Sarjana Jurusan Informatika
Universitas Islam Indonesia Universitas Islam Indonesia
Yogyakarta, Indonesia Yogyakarta, Indonesia
17523189@students.uii.ac.id teduh.dirgahayu@uii.ac.id

Abstract--Modul Manajemen Pengguna adalah suatu modul Pengujian dapat menjadi alat ukur kualitas perangkat
yang berfungsi untuk mengelola pengguna suatu sistem lunak yang sangat diperlukan sebelum sebuah perangkat lunak
perangkat lunak. Dalam pengembangan modul ini, penulis dan tersebut dirilis atau diluncurkan. Hal tersebut perlu dilakukan
tim diberi spesifikasi modul yang diinginkan oleh perusahaan. untuk meyakinkan pelanggan atau pengguna bahwa perangkat
Untuk memastikan bahwa modul yang dihasilkan sudah sesuai lunak tersebut sudah layak untuk digunakan dan memenuhi
dengan spesifikasi perusahaan tersebut, penulis dan tim perlu kinerja sesuai kebutuhan dari pelanggan atau pengguna [1].
melakukan pengujian. Pengujian perangkat lunak berfungsi Teknik pengujian yang digunakan dalam pengembangan
untuk menemukan kesalahan dan cacat saat menjalankan modul Manajemen Pengguna adalah unit testing dan test case.
program perangkat lunak tersebut. Pengujian dapat menjadi alat
ukur kualitas suatu perangkat lunak sebelum diluncurkan. Unit testing adalah teknik untuk menguji apakah kode
Makalah ini menyampaikan aktivitas pengujian dalam program perangkat lunak sudah efektif dan bebas dari
pengembangan modul Manajemen Pengguna dengan unit testing kesalahan. Pada beberapa kasus pengembangan perangkat
dan test case. Hasil dari melakukan pengujian dengan unit testing, lunak, sering terjadi bahwa kode program yang dikembangkan
penulis dan tim menemukan kesalahan atau cacat yang tidak ternyata kurang efektif atau bahkan tidak pernah digunakan.
terlihat ketika program dijalankan dan membuat kode program Pengujian jenis ini dapat membantu dalam menemukan kode
yang dikembangkan lebih efektif. Sedangkan, hasil dari program yang kurang efektif tersebut serta dapat mengukur
pengujian dengan test case, penulis dan tim dapat memastikan
seberapa efektif kode program pada pengembangan perangkat
fitur atau fungsionalitas yang telah dikembang sudah sesuai
lunak tersebut. Selain itu, pengujian ini sering gunakan oleh
dengan spesifikasi perusahaan.
para pengembang untuk menemukan kesalahan dan cacat
Keywords—Pengujian, Unit Testing, Test Case yang tidak terlihat saat program dieksekusi.
Test case merupakan teknik pengujian perangkat lunak
I. PENDAHULUAN
yang menggunakan serangkaian skenario eksekusi untuk
Modul Manajemen Pengguna adalah suatu modul yang mengetahui apakah modul yang sedang dikembangkan sudah
berfungsi untuk mengelola pengguna suatu sistem perangkat memenuhi spesifikasi dari PT. Dua Empat Tujuh. Pada
lunak. Modul ini bersifat generik sehingga dapat dimasukkan hakikatnya pengujian tidak dapat membuktikan kebenaran
ke dalam proyek lain. Saat ini, PT. Dua Empat Tujuh sedang semua kemungkinan yang terjadi dalam eksekusi modul
mengembangkan modul Manajemen Pengguna yang akan tersebut. Namun hal ini dapat didekati dengan melakukan
dimasukkan ke dalam proyek ERP yang berjalan. Proyek perencanaan dan desain test case yang baik, sehingga test case
pengembangan modul Manajemen Pengguna merupakan dapat memberikan jaminan efektivitas perangkat lunak
proyek baru yang dikerjakan oleh penulis dan tim mulai dari sampai pada tingkat tertentu sesuai dengan yang diharapkan
nol. Dalam pengembangan proyek ini, penulis dan tim diberi [2].
spesifikasi modul yang diinginkan oleh perusahaan. Untuk
memastikan bahwa modul yang dihasilkan sudah sesuai Tujuan makalah ini adalah untuk memberi gambaran
dengan spesifikasi perusahaan tersebut, penulis dan tim perlu implementasi pengujian menggunakan unit testing dan test
melakukan pengujian (testing) modul Manajemen Pengguna case pada proyek pengembangan modul Manajemen
yang sedang dikembangkan. Pengguna. Pada implementasi pengujian dengan unit testing,
penulis akan membuat sebuah potongan kode program.
Pengujian merupakan salah satu aktivitas penting dalam Dimana potongan kode program tersebut akan menemukan
pengembangan perangkat lunak. Pengujian bertujuan untuk kesalahan atau cacat dari sebuah fitur atau fungsionalitas
meminimalkan peluang kegagalan dalam eksekusi perangkat modul yang telah dikembangkan oleh tim pengembang.
lunak. Pengujian perangkat lunak juga bertujuan untuk Setelah melakukan pengujian dengan unit testing, penulis
menemukan kesalahan (error) dan cacat (bug) saat eksekusi akan melakukan pengujian dengan test case pada modul
perangkat lunak tersebut. Kesalahan pada perangkat lunak Manajemen Pengguna. Pada implementasi pengujian dengan
dapat menyebabkan perangkat lunak tersebut tidak dapat test case, penulis akan membuat sekumpulan skenario
dijalan. Sedangkan cacat pada perangkat lunak menyebabkan berdasarkan masukan seperti kondisi dan hasil yang telah
perangkat lunak tersebut tidak berjalan sesuai dengan yang ditentukan sebelumnya. Pengujian tersebut dilakukan untuk
diharapkan. memastikan apakah fitur atau fungsionalitas yang telah
dikembangkan oleh tim pengembang sudah sesuai dengan C. Test Case
spesifikasi dari perusahaan atau tidak Test case adalah pengujian yang dilakukan berdasarkan
II. DASAR TEORI beberapa masukan seperti kondisi dan hasil yang telah
ditentukan sebelumnya [2]. Hasil dari test case yang telah
A. Pengujian dilakukan akan dibandingkan dengan hasil yang telah
Pengujian perangkat lunak adalah proses eksekusi sistem ditentukan sebelumnya. Jika terdapat perbedaan di antara
perangkat lunak dengan tujuan untuk menemukan kesalahan keduanya maka akan dilakukan perbaikan pada kode program.
atau cacat pada perangkat lunak tersebut [3]. Pada hakikatnya, Test case menjadi titik awal untuk melakukan pengujian
perangkat lunak yang berkualitas adalah perangkat lunak yang setelah memasukan nilai-nilai inputan ke sistem. Setelah itu,
bebas dari kesalahan dan cacat secara objektif. Untuk akan didapat hasil yang definitif dan meninggalkan sistem di
mendapatkan hasil yang objektif, perangkat lunak harus beberapa titik akhir atau juga dikenal sebagai postcondition
melalui suatu proses pengujian yang terstruktur, terencana, eksekusi [7].
dan terdokumentasi dengan baik. Pengujian yang baik Test case yang baik adalah test case yang mempunyai
memiliki probabilitas tinggi dalam menemukan kesalahan [4]. kemungkinan tinggi dalam menemukan kesalahan dan cacat
Selain itu, perangkat lunak juga harus tepat waktu dan dana, yang sebelumnya belum ditemukan, bukan yang dapat
sesuai dengan kebutuhan dan keinginan pelanggan atau memperlihatkan bahwa program telah bekerja dengan benar
pengguna, serta mudah dalam pemeliharaannya. [2].
Berdasarkan hasil pengujian, pengembang dapat mencari III. METODE
dan menelusuri kesalahan sampai ke kebutuhan pelanggan
dan pengguna, untuk kemudian memperbaiki sebanyak Seperti yang sudah dijelaskan sebelumnya, penulis dan
mungkin kesalahan dalam kode program suatu perangkat tim menggunakan unit testing dan test case sebagai metode
lunak sebelum menyerahkan perangkat lunak tersebut kepada pengujian pada pengembangan modul Manajemen Pengguna.
pelanggan atau pengguna. Hal tersebut dilakukan untuk Pada implementasinya, penulis melakukan pengujian dengan
menghindari cacat yang paling fatal, yaitu cacat yang dapat unit testing terlebih dahulu. Hal tersebut dilakukan untuk
dilihat oleh pelanggan atau pengguna perangkat lunak menguji langsung apakah kode program yang sudah dibuat
tersebut. Cacat pada perangkat lunak dapat mengakibatkan masih ditemukan kesalahan dan cacat. Setelah itu, penulis
perangkat lunak tersebut gagal dalam memenuhi kebutuhan melakukan pengujian dengan test case untuk memastikan fitur
atau keinginan dari pelanggan atau pengguna perangkat lunak atau fungsionalitas yang dikembangkan sudah sesuai dengan
tersebut. spesifikasi yang telah diberikan perusahaan. Gambaran dari
penjelasan urutan pengujian dapat dilihat pada Gambar 1.
Pada umumnya pengujian perangkat lunak dilakukan
sesudah tahap pemrograman pada pengembangan perangkat
lunak, akan tetapi perencanaan pengujian sebaiknya dilakukan
pada tahap analisis pengembangan perangkat lunak.
B. Unit Testing
Unit testing merupakan tahap dasar dalam pengujian. Unit
testing berfokus pada pengujian building block yang lebih
kecil daripada program atau sistem yang diuji. Pengujian ini
mengeksekusi setiap fitur atau fungsionalitas untuk
memastikan masing-masing fitur atau fungsionalitas tersebut
berfungsi sesuai dengan yang diharapkan [5]. Pada definisi
lainnya, unit testing merupakan pengujian yang mencakup
pengujian sepotong atau sebagian kode [6]. Dengan demikian,
pengujian ini dapat digunakan untuk menguji kelas atau
modul tertentu.
Pada implementasinya, unit testing berupa sebuah kode
program yang dibuat oleh tim pengembang untuk menguji
sebuah fitur atau fungsionalitas pada sebuah sistem. Hal
tersebut dilakukan untuk membuktikan apakah kode program
yang telah dikembangkan sudah sesuai yang diharapkan atau
tidak. Unit testing ini sangat efektif bagi tim pengembang,
karena akan mempermudah tim pengembang dalam
memperbaiki desain kode program dan mengurangi waktu
saat melakukan debugging. Gambar 1. Flowchart urutan pengujian
Unit testing dilakukan setelah tim pengembang Untuk penjelasan lengkap tentang implementasi dari
selesai menulis kode program pada suatu modul dalam masing-masing pengujian dengan unit testing dan test case
program perangkat lunak, atau bisa juga setelah selesai akan dijelaskan sebagai berikut:
menambahkan suatu fitur atau fungsionalitas dalam program
perangkat lunak tersebut. Unit testing termasuk pengujian A. Unit Testing
otomatis yang membutuhkan suatu tool, yang mana di setiap Pengujian menggunakan unit testing termasuk pengujian
bahasa pemrograman yang dipakai akan menggunakan tools otomatis sehingga tim pengembang perlu menyediakan kode
yang berbeda. program untuk menguji fitur atau fungsionalitas yang
diinginkan, kemudian menjalankan program perangkat lunak
tersebut. Pada pengujian unit testing ini, penulis
menggunakan testing framework Jest sebagai tool
pengujiannya. Adapun alasan menggunakan tools tersebut
karena dalam pengembangan modul Manajemen Pengguna,
tim pengembang menggunakan dua framework yang salah
satunya adalah framework React Js.
Selain itu, testing framework Jest ini memiliki running test
suites yang cepat dan, secara default, test suites akan
dijalankan secara paralel, sehingga sangat cocok untuk
menguji komponen-komponen framework React [8]. Tidak
hanya itu, penulis juga menggunakan testing library Enzyme
untuk melakukan pengujian pada komponen-komponen
React. Testing library Enzyme memiliki method yang
disediakan sangat baik untuk memanipulasi output dari virtual
DOM [9].
Langkah pertama dalam unit testing adalah melakukan
konfigurasi pada program yang akan diuji. Gambar 2
merupakan perintah konfigurasi framework Jest pada
program.

Gambar 2. Konfigurasi framework Jest


Setelah mengkonfigurasi framework Jest pada program,
langkah berikutnya adalah mengkonfigurasi library Enzyme.
Gambar 3 merupakan perintah konfigurasinya. Gambar 4. Kode program unit testing form create user
Setelah itu, untuk mempermudah running test dalam unit
testing ini, penulis melakukan konfigurasi perintah pada
package.json program modul Manajemen Pengguna, seperti
pada Gambar 5. Ketika akan menjalankan running test kode
Gambar 3. Konfigurasi library Enzyme program yang telah dibuat sebelumnya, cukup dilakukan
dengan perintah “npm run test”.
Setelah melakukan semua konfigurasi yang diperlukan,
langkah selanjutnya adalah membuat kode program untuk
fitur atau fungsionalitas yang akan diuji. Sebagai contoh
implementasinya, penulis akan menguji fitur form create user Gambar 5. Konfigurasi perintah test pada package.json
pada modul Manajemen Pengguna. Gambar 4 merupakan
kode program untuk melakukan unit testing pada form create B. Test Case
user. Berbeda dengan unit testing, test case termasuk pengujian
manual, sehingga dalam implementasinya tim pengembang
harus melakukan pengujian ini satu per satu pada setiap fitur
atau fungsionalitas yang akan diuji. Dalam pembuatan test
case, ada beberapa atribut yang dibutuhkan, seperti pada
Tabel 1.

TABLE I. ATRIBUT TEST CASE

Atribut Keterangan Atribut


Fitur Nama fitur atau fungsionalitas yang akan diuji

Test case id Identitas dari fitur atau fungsionalitas yang akan diuji
Test case
Deskripsi fitur atau fungsionalitas yang akan diuji
description
Pre condition Kondisi sistem sebelum melakukan pengujian

Test steps Langkah-langkah saat melakukan pengujian


Expected Hasil yang diinginkan dari fitur atau fungsionalitas
result yang diuji
Hasil yang sebenarnya terjadi pada fitur atau
Actual result
fungsionalitas yang telah diuji
Status Status sudah melakukan test (pass or fail)
Setelah menyusun atribut-atribut yang dibutuhkan,
langkah selanjutnya adalah membuat model test case sesuai
dengan atribut yang telah ditentukan sebelumnya yang dapat
dilihat pada Tabel 2.

TABLE II. MODEL TEST CASE


S
F
Test t
i Test Pre Expec-
Case Test Actual a
t Case Condi- ted
Descrip- Steps Result t
u ID tion Result
tion u
r
s

IV. HASIL DAN PEMBAHASAN


A. Unit Testing
Setelah selesai memasukkan kode program untuk unit
testing program yang akan diuji, langkah selanjutnya
melakukan running test. Gambar 6 merupakan hasil dari
running unit testing yang sudah dilakukan. Pada gambar
tersebut, dapat dilihat terdapat kesalahan di beberapa baris
pada class form create user, seperti kesalahan dalam
penulisan komponen program ‘class’ yang seharus
‘className’, ‘Required’ yang seharusnya ‘required’, ‘for’
yang seharus ‘htmlfor’, ‘selected’ yang seharusnya Gambar 6. Hasil unit testing form create user
‘defaultValue’ atau ‘value’, dan kesalahan pada identifikasi Setelah mengetahui dibagian mana saja yang salah
variabel yang dibutuhkan dalam program. pada class form create user tersebut, tim pengembang
Padahal, jika program tersebut dijalankan sudah tidak memperbaiki bagian-bagian yang salah tersebut sampai
terdapat kesalahan pada tampilannya dan semua semua kesalahan terselesaikan. Gambar 7 merupakan hasil
fungsionalitasnya berfungsi sesuai dengan yang diharapkan. dari running testing unit yang dilakukan setelah memperbaiki
Hal ini sering sekali terjadi pada pengembangan perangkat kode program pada class form create user.
lunak, yang membuat tim pengembang mengira jika program
yang dikembangkan sudah berhasil dan tidak ada kesalahan.
Namun, ternyata realitanya tidak demikian. Oleh karena itulah
pengujian unit testing pada pengembangan perangkat lunak
penting untuk dilakukan.

Gambar 7. Hasil unit testing form create user terbaru


B. Test Case
Setelah menyusun atribut-atribut yang dibutuhkan dalam
melakukan pengujian menggunakan test case, Tabel 3 adalah
hasil implementasinya untuk fitur atau fungsionalitas create
user:
TABLE III. TEST CASE FUNGSIONALITAS CREATE USER
Test
Actual
Fitur Case Test Case Description Pre Condition Test Steps Expected Result Status
Result
ID
1. Klik tombol "Create User"
2. Masukkan nama : Magdalena Joana Kembali ke
3. Masukkan nomor telepon : halaman daftar
Menambahkan +6289631977045 pengguna dan data
TC01 pengguna baru dengan 4. Masukkan email : pengguna baru akan Sesuai Pass
data yang valid magda@gmail.com langsung muncul
5. Masukkan password : Agh.Bi1* pada daftar
6. Pilih role : Role 1 pengguna.
7. Klik tombol "Simpan"
1. Klik tombol "Create User"
2. Masukkan nama : Tetap berada
3. Masukkan nomor telepon: didalam halaman
+6289631977045 form "Create User"
Salah satu kolom ada
TC02 4. Masukkan email : dan pada kolom Sesuai Pass
yang kosong
magda@gmail.com nama terdapat alert,
5. Masukkan password : Agh.Bi1* karna kolom nama
6. Pilih role : Role 1 belum diisi.
7. Klik tombol "Simpan"
1. Klik tombol "Create User" Tetap berada
2. Masukkan nama : Magdalena Joana didalam halaman
Sudah berada di 3. Masukkan nomor telepon: form "Create User"
Create
Kolom nomor telepon halaman +6889631977045 dan pada kolom
User
TC03 harus valid nomor dashboard 4. Masukkan email : nomor telepon Sesuai Pass
telepon Indonesia magda@gmail.com terdapat alert, karna
5. Masukkan password : Agh.Bi1* nomor telepon tidak
6. Pilih role : Role 1 nomor telepon
7. Klik tombol "Simpan" Indonesia
1. Klik tombol "Create User"
2. Masukkan nama : Tetap berada
Magdalena_Joana didalam halaman
3. Masukkan nomor telepon: form " Create User"
Kolom nama hanya
+6289631977045 dan pada kolom
TC04 boleh berisi abjad dan Sesuai Pass
4. Masukkan email : nama terdapat alert,
spasi
magda@gmail.com karena kolom nama
5. Masukkan password : Agh.Bi1* berisi selain abjad
6. Pilih role : Role 1 dan spasi
7. Klik tombol "Simpan"
1. Klik tombol "Create User"
Tetap berada
2. Masukkan nama : Magdalena Joana
Kolom password didalam halaman
3. Masukkan nomor telepon:
kurang dari 8 karakter form " Create User"
+6289631977045
dan harus berisi dan pada kolom
TC05 4. Masukkan email : Sesuai Pass
minimal karakter, password terdapat
magda@gmail.com
huruf besar, huruf alert, karna
5. Masukkan password : nauuuu
kecil, angka, simbol password kurang
6. Pilih role : Role 1
dari 8 karakter
7. Klik tombol "Simpan"

Pada Tabel 3, dapat dilihat bahwa semua fitur atau Paging 1 100 %
fungsionalitas create user sudah sesuai dengan spesifikasi Entry limit 1 100 %
yang diberikan oleh perusahaan kepada tim pengembang.
Selain itu, pada gambar tersebut terdapat perbandingan hasil
yang diharapkan dengan hasil yang sebenarnya. Hal tersebut V. KESIMPULAN
yang nantinya akan dapat digunakan oleh tim pengembang Diharapkan makalah ini dapat menjadi gambaran dari
untuk memperbaiki fitur atau fungsionalitas yang sedang implementasi pengujian dengan unit testing dan test case.
diuji. Selain itu juga dapat menjadi gambaran untuk para
pengembang betapa penting suatu pengujian dalam
Tabel 4 merupakan statistik data hasil pengujian dengan pengembangkan suatu perangkat lunak. Salah satu manfaat
test case untuk semua fitur atau fungsionalitas dari modul yang didapatkan dari pengujian perangkat lunak ini adalah
Manajemen Pengguna. pengembangan menghasilkan perangkat lunak yang
berkualitas. Salah satu komponen perangkat lunak dikatakan
TABLE IV. STATISTIK DATA PENGUJIAN
berkualitas adalah perangkat lunak yang bebas dari kesalahan
Fitur Jumlah Test Case Persentase Lulus Uji dan cacat [2].
Create User 5 100 %
Pengujian dengan unit testing dapat membantu penulis dan
Edit User 5 100 %
tim dalam menemukan kesalahan dan cacat yang tidak dapat
Delete User 2 100 % dilihat saat program dijalankan, seperti hasil dari pengujian
Search 4 75%
dengan unit testing form create user yang sudah dilakukan.
Hal tersebut dapat terjadi karena kode program yang telah
dikembangkan kurang efektif. Dengan demikian, unit testing VI. REFERENCES
ini dapat membuat kode program dibuat lebih efektif. Selain
itu, unit testing ini dapat membantu penulis dan tim untuk
menemukan dan memperbaiki kesalahan dan cacat lebih [1] J. F. Andry and Reinaldo, "Testing dan Implementasi Aplikasi Parkir
di PT ABC Menggunakan Metode Black Box," Prosiding Seminar
cepat, sehingga dapat mempersingkat waktu pengembangan Nasional Multidisiplin Ilmu, 2017.
perangkat lunak tersebut.
[2] S. Romeo, Testing dan Implementasi Sistem, Surabaya: STIKOM,
Sedangkan, pengujian dengan test case dapat 2003.
mempermudah tim pengembang yang baru mengembangkan [3] G. Myers, The Art Of Sortware Testing, New York: Wiley, 1979.
proyek perangkat lunak, agar proyek tersebut tersebut sudah [4] R. Pressman, Software Engineering : A Practitioner’s Approach, New
sesuai dengan keinginan dan kebutuhan klien. Pada York: McGraw-Hill, 2010.
implementasinya test case dilakukan dengan membandingkan [5] W. Lewis, Software Testing and Continuous Quality Improvement,
antara hasil yang sebenarnya terjadi dan hasil yang Third Edition., Boston: Auerbach Publication, 2009.
diharapkan. Hal tersebut akan mempermudah tim [6] R. Black, Managing the Testing Process:Practical Tolls and
pengembang menemukan dan memperbaiki kesalahan yang Techniques for Managing Hardware and Software Testing, 2nd
terdapat pada perangkat lunak. Jika ditarik kesimpulannya, Edition., Hoboken: Wiley Publishing Inc, 2002.
pengujian dengan menggunakan test case ini dapat [7] R. Yunisa, "Perbandingan 2 Teknik White Box Testing: Statement
menemukan kesalahan dan cacat yang dapat dilihat. Selain itu, Coverage Testing Dan Branch Coverage Testing (Studi Kasus :
Sistem Informasi Reporting Community TB-HIV ‘Aisyiyah
untuk hasil dari pengujian dengan test case yang dilakukan Tanggamus)," Universitas Islam Indonesia, Yogyakarta, 2018.
pada fitur atau fungsionalitas create user yaitu sudah sesuai
dengan spesifikasi yang diberikan oleh perusahaan. [8] M. R. Rijal, "React dan TDD dalam 10 Menit — Part 1,"
Wonderlabs, 6 April 2017. [Online]. Available:
https://medium.com/wonderlabs/react-dan-tdd-dalam-10-menit-part-
1-98ee19807ff9. [Accessed 20 July 2020].
[9] Nostra Technology, "React Unit Testing Menggunakan Enzyme,"
Nostra Technology, 21 December 2018. [Online]. Available:
http://blog.nostratech.com/2018/07/react-unit-testing-menggunakan-
enzyme.html. [Accessed 20 July 2020].

Anda mungkin juga menyukai