Implementasi Automated Testing Framework dengan Junit dan FitNesse

Pada kesempatan kali ini saya akan mecontohkan cara implementasi testing framework JUnit dan FitNesse dalam bahasa pemrograman Java. Keduanya berfungsi untuk mengecek suatu method dari suatu program yang kita buat apakah keluaran yang dihasilkan sesuai dengan yang direncanakan.

Dalam implementasi disini, kedua testing framework menggunakan method yang sama yakni method login, register, dan email validation.

Untuk lebih jelasnya langsung saka ke implementasi dari masing-masing testing framework.

JUnit

Versi JUnit yang digunakan disini merupakan JUnit5. Setelah selesai menulis kode, kemudian integrasikan JUnit5 dengan project yang dibuat. Kemudian siapkan satu class, disini saya namakan class User yang didalamnya terdapat email dan password. dibuat juga constructor lalu get dan set untuk setiap variable.

1. Login

Potongan kode diatas merupakan kode sederhana untuk melakukan login dimana akan mengembalikan nilai true jika login menggunakan email “admin” dan password “admin”.

Kemudian buat method testingnya.

testLogin akan menyiapkan dua variable, yakni expected yang akan berisi value yang diharapkan dan actual yang berisi value sebenarnya yang dihasilkan method login. Pada kode tersebut, digunakan fungsi assertEquals(x,y,z) dimana fungsinya untuk mengecek apakah value x sama dengan y. Sedangkan z merupakan komentar untuk memudahkan kita mengetahui jika ada kesalahan pada saat testing.

Kemudian coba jalankan testing, pertama kita lakukan jika email atau/dan password yang dimasukan salah. Maka JUnit akan menampilkan seperti berikut:

Dikatakan bahwa AssertionFailedError: Aksi Login, maksudnya adalah terdapat kesalahan/ketidak sesuaian pada pengetesan dengan nama Aksi Login, dimana expected-nya true namun kenyataannya adalah false karena email dan/atau pasword tidak sesuai. 

Sekarang lakukan dengan email dan password yang benar yaitu admin, maka akan tampil seperti berikut:

Bar berwarna hijau menyatakan bahwa pengetesan berhasil. Variable yang kita cek pada assertion sesuai antara expected dengan actual-nya.

2. Register

Kode diatas merupakan kode untuk melakukan registrasi dimana diberikan masukan berupa email dan password, kemudian dilakukan pengecekan terhadap email. Jika lolos validasi email maka data email dan password disimpan. Sebaliknya jika tidak, maka gagal registrasi.

Kode untuk pengetesannya:

Berdasarkan kode diatas, pertama kita menyiapkan email dan password yang akan kita registrasi. Kemudian untuk pengecekan nya, disiapkan array expeted untuk menyimpan email dan password tersebut. Selain itu, dilakukan juga registrasi melalui method register dengan email dan password yang sama. Setelah registrasi, program akan mengambil data yang telah diregistrasi kemudian menyimpannya pada array actual. Kemudian dilakukan pengecekan menggunakan assertEquals().

Berikut keluaran jika registrasi gagal:

Registrasi gagal karena array yang diharapkan berisikan email dan password yang didaftarkan, namum pada kenyataannya array tersebut kosong (null).

Selanjutnya dilakukan pengecekan jika regisrasi berhasil:

Karena berhasil, maka dapat dlihat bahwa errors dan failures yang tertulis adalah 0, dan bar status berwarna hijau.

3. Email Validation

Pada method emailValidation, dilakukan pengecekan format email yang akan menghasilkan nilai true or false.

Berikut kode pengetesannya:

Gambar diatas berisi pengetesan JUnit terhadap method emailValidation, dimana pertama akan disiapan email yang akan di cek formatnya, kemudian digunakan assertTrue() terhadap hasil dari penggunaan method emailValidation dengan email tersebut. assertTrue() merupakan salah satu assertion yang dimana variable yang di cek haruslah bernilai true.

Berikut jika email yang dimasukan tidak sesuai format:

Bar akan berwarna merah karena ketidaksesuaian antara yang diharapkan (true) dengan kenyataannya (false).

Sedangkan jika email yang dimasukan sesuai dengan format, maka akan muncul seperti berikut:

Karena format email yang dimasukan benar, maka bar status berwarna hijau.

FitNesse

Dalam pengujian menggunakan FitNesse, class yang dipakai masih sama, namun yang membedakan adalah dihilangkannya parameter yang dibutuhkan pada method-method yang digunakan. Karenan nantina, FitNesse sendiri yang akan mengakses langsung method tersebut tanpa harus kita instansiasi secara manual.

Langkah pertama setelah menginstall FitNesse pada perangkat kemudian jalankan server FitNesse nya kemudian akses kama akan muncul halaman awal dari FitNesse yang nantinya kita melakukan pengecekan didalamnya.

1. Login

Buat test page untuk pengetesan untuk method login, kemudian edit sehingga menampilkan tabel seperti berikut:

Berdasarkan gambar diatas, hal pertama yang harus disiapkan adalah classpath yang berisi direktori temap menyimpan file .class dari program java yang dibuat. kemudian import testingFitNesse adalah memasukkan testing FitNesse kedalam halaman tersebut yang nantinya digunakan untuk pengecekan. Lalu User merupakan nama class dari program java yang saya buat. setelah itu masukan variable yang dibutuhkan untuk pengecekan, yakni email dan password. Yang terakhir masukan nama method yang akan dicek, karena akan mengecek login, maka masukan login?.

Berikut hasil dari pengetesan:

Dapat dilihat dari warna, hijau berarti antara expected dan actual sesuai sedangkan merah adalah sebaliknya.

2. Register

Untuk register sama, buat test page untuk pengetesan untuk method register, kemudian edit sehingga menampilkan tabel seperti berikut:

Ketentuannya sama seperti sebelumnya, yang membedakan disini adalah output keluarannya string “Berhasil!” atau “Gagal!”. Berikut hasil dari pengetesan register:

3. Email Validation

Masih juga sama seperti sebelumnya, buat test page untuk pengetesan untuk method emailValidation, kemudian edit sehingga menampilkan tabel seperti berikut:

Disini hanya menggunakan variable email, karena hanya akan mengecek email. Untuk keluarannya sama seperti login, yakni true or false. Berikut hasil dari penegetesan method emailValidation terhadap test case pada tabel diatas:

Kesimpulan

Dari implementasi yang sudah diperlihatkan, dapat disimpulkan bahwa kedia testing framwork baik itu JUnit maupun FitNesse memiliki tujuan yang sama, yakni mengetes kesesuaian program yang dibuat dengan yang direncanakan. Perbedaannya mungkin dibagian waktu penggunaannya, meskipun itu juga kembali ke pengguna dari testing framework itu sendiri untuk menentukan kapan akan menggunakan JUnit atau FitNesse. Namun, saya pribadi lebih berpikir bahwa JUnit lebih tepat digunakan ketika proses pengkodean atau programming dimana pengetesan bisa dilakukan langsung oleh programmer sehingga kesalahan dapat diketahui dan diperbaiki lebih awal. Sedangkan FitNesse lebih ke arah pengetesan setelah program selesai, kemudian diuji menggunakan kumpulan kemungkinan yang dimasukan oleh pengguna, yang nantinya jika ditemukan ketidaksesuaian maka dilakukan revisi program.

Related posts

Leave a Comment