net/publication/340583631
CITATION READS
1 2,588
7 authors, including:
1 PUBLICATION 1 CITATION
Politeknik Negeri Bandung
15 PUBLICATIONS 21 CITATIONS
SEE PROFILE
SEE PROFILE
All content following this page was uploaded by Ani Rahmani on 12 April 2020.
Abstrak
Abstrak-- Pada siklus pengembangan software, testing diperlukan untuk memastikan kualitas
software sebelum dirilis. Pemilihan teknik testing yang digunakan dalam pelaksanaan testing
bergantung pada karakteristik software yang akan dirilis. Aplikasi berbasis web sebagai contoh,
akan cenderung menggunakan teknik end-to-end untuk memastikan halaman web berinteraksi
sesuai dengan requirement. Berkaitan dengan masa development cycle dari sebuah software
yang semakin singkat, maka dipandang perlu kajian untuk menentukan teknik pengerjaan
testing (secara manual maupun automated testing) pada end-to-end testing. Penelitian yang
dilakukan bertujuan untuk melihat karakteristik dan teknis pengujian end-to-end testing yang
mungkin dapat dilakukan dalam pengembangan perangkat lunak, baik secara manual atau pun
secara otomatis. Dari kajian yang dilakukan, diketahui bahwa jumlah iterasi pelaksanaan end-
to-end testing sangat berpengaruh dalam pemilihan teknik pengerjaan yang digunakan. Hal ini
dapat menjadi dasar untuk menentukan teknik testing yang akan diambil: manual atau otomatis.
Abstract
In software development life cycle, testing is needed to ensure the quality of the software before
it is released. Choosing the testing technique depends on the characteristics of the software to
be released. Web-based applications, for example, will tend to use end-to-end testing techniques
to ensure web pages interact according to requirements. The cycle of software development
recently is getting shorter. It is necessary to study to determine the testing implementation
techniques (manually or automated) on the right end-to-end testing. The research objective is
to look at the characteristics and technical testing of end-to-end testing that can be done in
software development, both manually and automatically. The result showed that the number of
iterations of end-to-end testing is very influential in the selection of quality techniques used.
That can be a basis for determining testing techniques: manual or automatic.
18
JTT (Jurnal Teknologi Terapan) | Volume 6, Nomor 1, Maret 2020 p-ISSN 2477-3506
e-ISSN 2549-1938
19
JTT (Jurnal Teknologi Terapan) | Volume 6, Nomor 1, Maret 2020 p-ISSN 2477-3506
e-ISSN 2549-1938
testing dengan penulisan test script menggunakan halaman web, dan sudah sesuai dengan kebutuhan
Protractor, dan dipersilakan untuk melakukan uji user (Palmér, T, H, dkk, 2015: 1). Pelaksanaan
coba terlebih dahulu. end-to-end testing terbagi menjadi dua metode,
Dokumentasi tata cara pelaksanaan end-to-end yaitu horizontal end-to-end testing dan vertical end
testing secara manual maupun menggunakan –to-end testing.
Protractor telah di distribusikan terlebih dahulu Horizontal end-to-end testing merupakan
sebelum hari pelaksanaan eksperimen. Dokumentasi metode yang paling banyak digunakan. Jika akan
tersebut dilengkapi juga dengan cara menjalankan melakukan end-to-end testing dengan metode
SUT, panduan installasi alat eskperimen, contoh test horizontal, misalnya pada web penjualan buku,
report hasil uji dengan manual testing, contoh test maka semua proses yang mencakup pengisian data
script yang dikerjakan dengan Protractor, dan alamat pembeli, detail pembelian, termasuk detail
referensi pendukung dari Protractor. pembelian yang dilakukan pembeli harus dilakukan
Pelaksanaan eksperimen kelompok manual testing dari awal sampai akhir.
adalah: tester mencatat waktu awal mulai Vertical end-to-end testing merupakan metode
mengeksekusi pada setiap test item, melakukan yang sangat kompleks sehingga jarang dilakukan,
testing pada SUT1 dengan mengikuti langkah- karena end-to-end testing dengan metode ini
langkah dan test data (input) untuk setiap test item melakukan testing termasuk application
yang terdapat pada test case. Selanjutnya programming interface (API) dan structured query
membandingkan hasil eksekusi SUT dengan actual language (SQL).
output yang diharapkan pada test case. Test report Pelaksanaan end-to-end testing dapat
yang dibuat diharuskan menyertakan tangkapan menggunakan salah satu metode ataupun keduanya
layar hasil eksekusi setiap test item. Setiap selesai untuk kebutuhan testing scenario yang kompleks.
mengeksekusi satu test item, tester diharuskan Pada pelaksanaannya, end-to-end testing merupakan
mencatat waktu selesai. salah satu teknik testing yang bisa dieksekusi
Prosedur pelaksanaan eksperimen kelompok dengan manual testing ataupun dengan automated
automated dimulai dengan tester membuat test script software testing.
dengan acuan test cases. Ketika memulai
transformasi test item ke dalam bentuk script, tester 2.2.1 Manual Testing
diharuskan mencatat waktu mulai. Apabila test script Manual testing adalah sebuah teknik testing
telah selesai, selanjutnya dijalankan di Protractor, dimana tester menyiapkan test cases secara manual
dan hasil eksekusi diperiksa dari generate report dan mengeksekusi test cases untuk mengidentifikasi
yang tersedia, dan terakhir mencatat waktu selesai. defect di software (Sharma, 2014: 252; Dobles, I
Tester yang tergabung pada kelompok dkk, 2019: 7)
automated dibolehkan melakukan manual testing Secara umum penggunaan manual testing pada
pada test item yang dipandang tidak dapat pelaksanaan end-to-end testing adalah melakukan
diautomasi dengan prosedur yang disamakan eksekusi test dengan menjalankan software sesuai
dengan eksperimen kelompok manual. Hal tersebut dengan skenario yang tertulis pada test cases.
dilakukan, karena tidak semua item test dapat Selanjutnya membandingkan output yang keluar
dijalankan secara automated. dari aplikasi dengan output yang diharapkan dari
Setelah tester di kedua kelompok selesai setiap test cases.
melaksanakan pengujian pada SUT1, selanjutnya
dilakukan satu kali lagi eksperimen menggunakan 2.2.2 Automated Software Testing
SUT2 (re-testing). Pelaksanaan end-to-end testing Automated software testing melibatkan
kedua kelompok pada re-testing sama dengan pada pengem- bangan test script menggunakan scripting
pelaksanaan testing sebelumnya. languages seperti phyton, java script, atau tool
command language (TCL), sehingga test case dapat
2.2 End-to-end testing dieksekusi oleh komputer dengan minimal campur
End-to-end testing adalah sebuah metodologi tangan manusia. (Sharma,R,M, 2014: 252). Pada
yang digunakan untuk menguji apakah flow aplikasi (Dudekula, 2011: 7) juga dijelaskan bahwa
bekerja sebagaimana yang dirancang dari awal automated software testing adalah proses membuat
hingga selesai. End-to-end testing merupakan salah sebuah program (test script) yang mensimulasikan
satu teknik testing yang harus dilakukan oleh langkah-langkah test case manual dalam bahasa
perusahaan pengembang web, karena jika telah pemrograman apapun dengan bantuan external
melewati end-to-end testing, secara umum automation helper tool lainnya. Eksekusi end-to-
dipandang telah menjamin interaksi user dengan end testing menggunakan automated software
20
JTT (Jurnal Teknologi Terapan) | Volume 6, Nomor 1, Maret 2020 p-ISSN 2477-3506
e-ISSN 2549-1938
testing membutuhkan konversi test case menjadi 2.4 Software under Test (SUT)
test script, yang setelah itu dilakukan running test Software yang digunakan untuk pengujian
script pada automation tools tersebut. (software under test / SUT) adalah sebuah web
online shop sederhana untuk penjualan kue.
2.3 Protractor SUT yang dibangun diasumsikan telah melalui
Pemilihan automation framework yang level testing sebelum end-to-end testing (unit testing,
digunakan bergantung pada teknik testing yang akan dan integrasi testing). Terdapat tiga SUT yang
diterapkan untuk pengujian system under test. disiapkan, yaitu SUT training, dan SUT untuk
Pemilihan Protractor sebagai automation eksperimen yang dinamakan sebagai SUT1 dan
framework, karena teknik testing pada penelitian SUT2.
yang dilakukan adalah end-to-end testing. Selain itu SUT training digunakan untuk kebutuhan
juga dilatarbelakangi oleh object penelitian yang pelaksanaan training sebelum pelaksanaan
dibangun menggunakan angular js pada front-end, eksperimen end-to-end testing. SUT1 merupakan
dimana angular js untuk pelaksanaan end-to-end SUT yang digunakan pada eksperimen end-to-end
testing telah menyediakan Protractor sebagai testing iterasi pertama (SUT1 dikondisikan sebagai
automation framework. SUT sebelum proses bug fixing). SUT 2 adalah SUT
Protractor adalah sebuah open source end-to- yang digunakan untuk eksperimen pelaksanaan re-
end test framework untuk aplikasi AngularJS end-to-end testing (SUT 2 di kondisikan sebagai
(Bustamante 2017: 1). Protractor dibangun di atas SUT setelah bug fixing).
WebDriverJs, yaitu sebuah implementasi resmi Pada SUT1 terdapat bugs yang ditanam secara
Javascript Selenium. Protractor dapat dilihat sengaja sebanyak 20 buah. Bugs tersebut terdiri dari
sebagai sebuah tool yang berinteraksi dengan kesalahan penulisan (typo), kesalahan perpindahan
website seperti yang biasa dilakukan oleh user. halaman, fitur yang tidak berfungsi (contoh fungsi
Protractor sebagai test-runner masih menggunakan searching tidak berfungsi), dan kesalahan
sebuah test-framework, yaitu Jasmine, Mocha dan perhitungan.
Cucumber. Pada penelitian ini, test-framework yang End-to-end testing difokuskan pada simulasi
digunakan adalah Jasmine. actual user (skenario test atau end-to-end flow
Pemilihan Jasmine selain diperkuat karena aplikasi per screen) tanpa pemeriksaan basis data,
Jasmine merupakan test-framework default ketika maka SUT hanya dibangun menggunakan fake back-
installasi Protractor, juga karena menggunakan end untuk pemrosesan data yaitu hanya dengan
Cucumber. Versi Protractor yang digunakan adalah Javascript, sedangkan pada bagian front-end
protractor versi 5.1.1. Protactor pada versi tersebut memanfaatkan Angular Js.
tidak menyertakan Cucumber sebagai test-
framework secara default yang dapat digunakan 2.5 Test Case
pada Protractor. Apabila menggunakan Mocha Penelitian dilaksanakan untuk melihat waktu
maka Chai harus disertakan sebagai framework pengerjaan end-to-end testing secara manual
tambahan. Hal ini karena pada Mocha, fungsi expect mengguna-kan automation framework. Selain
tidak diadaptasi untuk mengerti promise, sedangkan mengetahui waktu pengerjaan, juga luaran dari
Protractor dibangun di atas WebDriverJs, dan penelitian ini dapat merepresentasikan faktor-faktor
WebDriverJS berjalan secara asynchronous, yang berpengaruh dalam pelaksanaan end-to-end
sehingga keseluruhan fungsi akan memiliki testing. Karena penelitian berfokus pada test
kembalian promise. exexution, maka perancangan test cases menjadi
Selain menggunakan Protractor, untuk proses terpenting.
memudah-kan pembacaan hasil running test script, Software Testing Life Cycle (STLC)
pada console digunakan juga Jasmine-spec-reporter. didefinisikan sebagai rangkaian kegiatan yang
Jasmine-spec-reporter adalah sebuah package npm sistematis dalam testing. Menurut (Afzal, 2007:9),
yang berupa real time console spec reporter untuk banyak sumber memiliki pendekatan berbeda
Jasmine. Selain Jasmine-spec-reporter juga mengenai aktivitas atau phase yang harus dilewati
digunakan Protractor-jasmine2-html-reporter untuk pada STLC. Pada penelitian ini phase yang diikuti
kebutuhan meng-generate laporan hasil ekseskusi adalah phase utama STLC, yaitu terdiri dari test
test (telah di lengkapi tangkapan layar) pada planning, test design, test execution, dan test review.
eksperimen automated. Dokumen test cases yang digunakan untuk
eksperimen ini telah melalui proses test planning
dan design. hHasil dari test planning adalah
dokumen test plan yang disusun berdasarkan acuan
21
JTT (Jurnal Teknologi Terapan) | Volume 6, Nomor 1, Maret 2020 p-ISSN 2477-3506
e-ISSN 2549-1938
IEEE Std 829-1998 untuk Software Test Tabel 1. Jumlah Test Item
Documentation, dan dokumen test design yang
Test Cases Code Jumlah Test Item
disusun berdasarkan sumber yang sama dengan test TC 1 40
plan. TC 2 51
Pada pengembangan test cases untuk TC 3 37
pelaksanaan end-to-end testing tidak ada template TC 4 44
khusus (Palmér, T, H, dkk, 2015: 1). Pada penelitian TC 5 27
yang dilakukan test case yang dikembangkan
menerapkan teknik equivalence partitioning, nature
of the application (web-based software). III. HASIL DAN PEMBAHASAN
Equivalance Partitioning melibatkan pembagian Hasil eksperimen dan pembahasan untuk
domain input ke dalam koleksi subset (atau mengetahui perbandingan lama pengerjaan end-to-
equivalence classes) berdasarkan pada kriteria atau end testing dengan manual dan dengan automated
relasi yang ditentukan (19759:2005ISO, 2005: 4-8). software testing dijelaskan sebagai berikut.
Contoh penerapan pada test cases misalnya input qty
kue yang valid adalah angka 1 – 1000, maka ada tiga 3.1 Hasil Eksperimen
case yang terbentuk (lihat representasi Gambar 2).
a. Case 1 digunakan untuk testing invalid input, Tabel 2 merupakan rekapitulasi dari lembar
dimana test data dari nilai input qty berupa nilai survei yang disebar pada tester yang terlibat pada
yang lebih kecil dari nilai minimum input yang penelitian. Dari lembar survei ini dapat diketahui
valid (lebih kecil dari 1). lebih dalam latar belakang pengalaman responden
terhadap hal-hal yang berkaitan dengan beberapa
b. Case 2 digunakan untuk testing valid input,
aspek yang dibutuhkan dari eksperimen.
dimana test data dari nilai input qty berupa nilai
Pada table 3 dan table 4 secara berurut
yang memiliki range sama atau diantara nilai
merupakan data lama pengerjaan eksperimen secara
minimum dan nilai maksimum dari input yang
manual dan automated software testing.
valid (contoh 10).
c. Case 3 digunakan untuk testing invalid input, Pada prosedur pelaksanaan end-to-end testing
dimana test data dari nilai input qty berupa nilai secara otomatis, tester dibolehkan melakukan
yang lebih besar dari nilai maskimum input manual testing jika menurut tester, test item yang
yang valid (lebih kecil dari 1000). terdapat pada test case tidak dapat diotomasi.
Mengenai hal tersebut dinyatakan bahwa memilih
Techniques based on the nature of the application penggunaan automated software testing pada
yang diterapkan adalah nature dari web-based pelaksanaan testing tidak sepenuhnya menghilang-
software. Pengembangan test case yang kan manual testing, karena ada beberapa hal pada
berdasasrkan teknik ini dan masih berkaitan dengan test cases yang tidak dapat dioutomasi, (Sharma,
end-to-end testing diantaranya pengecekan field 2014: 253), sehingga pada test metric dapat
label, fungsional tombol pada page, dan pengecekan ditentukan berapa banyak test case yang dapat di-
scenario (termasuk pengecekan data yang automated. Test metric tersebut adalah percent
ditampilkan, dan hasil perhitungan). automable (persamaan 1).
no. of test items automable
Percent automable = x100% (1)
no.of total test items
3.2 Pembahasan
Berdasarkan tabel 3 dan 4 dapat diketahui bahwa:
Gambar 1. Contoh Equivalence Partitioning a. Pengerjaan end-to-end testing lebih cepat pada
iterasi pertama kali apabila dikerjakan secara
Total test case yang terbentuk berdasarkan SUT manual.
yang disediakan dan dari penerapan teknik yang b. Pada saat re-testing, end-to-end testing akan
telah dipaparkan adalah lima buah test cases, dengan lebih cepat apabila dikerjakan secara automated.
salah satu test case digunakan untuk keperluan Dari kesimpulan yang diperoleh dianalisis lebih
training. Jumlah test item pada masing-masing test lanjut bahwa ada beberapa hal yang harus dipertim-
cases ditunjukkan pada Tabel 1. bangkan untuk memutuskan pelaksanaan end-to-end
testing secara manual ataupun otomatis.
22
JTT (Jurnal Teknologi Terapan) | Volume 6, Nomor 1, Maret 2020 p-ISSN 2477-3506
e-ISSN 2549-1938
Matakuliah
AngularJS
Protractor
Javascript
Selenium
Software
Software
Training
Test Jumlah Tester Total Percent
Testing
Testing
Tester
23
JTT (Jurnal Teknologi Terapan) | Volume 6, Nomor 1, Maret 2020 p-ISSN 2477-3506
e-ISSN 2549-1938
24
JTT (Jurnal Teknologi Terapan) | Volume 6, Nomor 1, Maret 2020 p-ISSN 2477-3506
e-ISSN 2549-1938
25