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.
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
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].