SYNTAX TESTING
Dosen pengampu :
Ginanjar Setyo Permadi, S.Kom., M.Kom
Disusun oleh :
C. Tujuan
Untuk mengetahui kualitas program aplikasi sebelum digunakan, serta
menghindari kesalahan program, sehingga pengguna dapat merasa nyaman saat
menggunakan program aplikasi tersebut.
2
BAB II
PEMBAHASAN
3
2. Define the syntax of language
Tahap ini mendefinisikan bahasa yang digunakan sesuai dengan aturan yang
dipakai untuk melakukan pengujian yang sudah di tentukan dalam tata cara formal
BNF (backus normal form) .
3. Test and Debug the syntax
Terbagi dua tahap yakni :
a. Pengujian “Normal” kondisi
Tahap ini dilakukan pada setiap kondisi “normal” atau data-data valid
dari masukan bahasa yang digunakan yang mencakup aturan BNF.
b. Pengujian “the garbage”.
Penjelasan pada tahap ini dilakukannya pengujian dari kondisi “the
garbage” di dalam sistem untuk pengecekan apakah terdapat data-data yang
tidak valid.
4
3. Field-value errors (kesalahan nilai field)
Kesalahan nilai bidang adalah bidang ilegal dalam sebuah kalimat, kesalahan
ini dapat dinilai dari kesalahn batas nilai dengan elemen numerik dan non-numerik.
Nilai yang tepat pada kisaran batas juga harus diperiksa, hal-hal yang bermasalah
seperti pada data dengan tipe integer harus meliputi nilai batas.
4. Error dependent on the context (kesalahan pada konteks)
Jenis kesalahan ini melanggar beberapa bagian dalam tata bahasa.
5. State Dependency Error (kesalahan ketergantungan kondisi)
Tidak semua kalimat dapat diterima disetiap kemungkinan status komponen
perangkat lunak.
Menggunakan spesifikasi BNF cara mudah uji validasi format desain bagi para
desainer untuk mengatur pekerjaan dan tentunya tidak mudah untuk mengulang
pengecekan karena dengan dilakukan test ini dapat membedakan antara data yang salah
dan data yang benar. BNF mempermudah uji validasi menggunakan syntax karena
notasi formal.
5
E. Impelemntasi testing Syntax
Berdasarkan (Society, 2001) test yang dilakukan untuk menghasilkan valid atau
tidak valid berdasarkan model sintaksi. Pada test kali ini hanya memeriksa input float
sesuai dengan sintaksi, dengan kata lain mempertimbangkan komponen yang hanya
memeriksa apakah input float_in sesuai dengan sintaksis nomor floating point, float
(akan didefinisikan di bawah). Komponen menampilkan check_res, yang
menggunakan bentuk 'valid' atau 'tidak valid' bergantung pada hasil pemeriksaannya.
Berikut ini adalah representasi dari sintaks untuk angka floating point dalam Backus
Naur (BNF):
• float = int "e" int.
• int = ["+" | "-"] nat.
• nat = {menggali}.
• dig = "O" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9".
Terminal ditunjukkan dalam tanda kutip, ini adalah bagian paling dasar dari
sintaks - karakter aktual yang membentuk input ke komponen. | memisahkan alternatif.
[] mengelilingi item opsional, yaitu item yang tidak ada alternatifnya. {} mengelilingi
item yang mungkin diulang satu kali atau lebih.
1. Menguji Kasus dengan Sintaks Valid
Langkah pertama adalah untuk memperoleh opsi dari sintaks. Setiap opsi
diikuti oleh label, dalam bentuk [opt_1], [opt_2], dll., Untuk memungkinkannya
diidentifikasi nanti.
• float tidak memiliki pilihan.
• int memiliki tiga opsi: nat [opt_1], "+" nat [opt_2] dan "-" nat [opt_3].
• nat memiliki dua opsi: satu digit angka [opt_4] dan beberapa digit angka
[opt_5].
• dig memiliki sepuluh opsi: satu untuk setiap digit [opt_6 hingga opt_15].
Dengan demikian ada lima belas opsi yang harus dicakup. Langkah
selanjutnya adalah membuat uji kasus untuk mencakup opsi. Pengujian berikut
mencakup semuanya:
6
3 -6e-7 opt_3 'valid'
4 6e-2 opt_4 'valid'
5 1234567890e3 opt_5 'valid'
6 0e0 opt_6 'valid'
7 1e1 opt_7 'valid'
8 2e2 opt_8 'valid'
9 3e3 opt_9 'valid'
10 4e4 opt_10 'valid'
11 5e5 opt_11 'valid'
12 6e6 opt_12 'valid'
13 7e7 opt_13 'valid'
14 8e8 opt_14 'valid'
15 9e9 opt_15 'valid
Ini tidak berarti set tes minimal untuk menggunakan 15 opsi (ini dapat
dikurangi menjadi hanya tiga kasus uji, misalnya, 2, 3 dan 5 di atas), dan beberapa
kasus uji akan menggunakan lebih banyak opsi daripada satu yang tercantum dalam
kolom 'opsi dieksekusi'. Setiap opsi telah diperlakukan secara terpisah di sini untuk
membantu memahami derivasi mereka. Pendekatan ini juga dapat berkontribusi
pada kemudahan yang menjadi penyebab kesalahan.
2. Uji Kasus dengan Sintaks Tidak Valid
Langkah pertama adalah membuat daftar periksa mutasi generik. Daftar
periksa yang mungkin adalah:
• m1. memperkenalkan nilai yang tidak valid untuk suatu elemen;
• m2. mengganti elemen dengan elemen lain yang didefinisikan;
• m3. kehilangan elemen yang ditentukan;
• m4. tambahkan elemen tambahan.
Mutasi generik ini diterapkan pada elemen individu dari sintaks untuk
menghasilkan mutasi tertentu. Elemen-elemen, diwakili dalam bentuk el_1, el_2,
dll., Dari sintaks untuk float dapat diidentifikasi dari representasi BNF seperti yang
ditunjukkan di bawah ini:
7
float = int "e" int. el_1 = el_2 el_3 el_4.
int = ["+"|"-"] nat. el_5 = el_6 el_7.
nat = {dig}. el_8 = el_9.
dig = "0"|"1"|"2"|"3"|"4"|"5"|"6"|"7"|"8"|"9". el_10 = el_11.
["+" | "-"] telah diperlakukan sebagai elemen tunggal karena mutasi item
opsional secara terpisah tidak membuat kasus uji dengan sintaks yang tidak valid
(menggunakan mutasi generik ini). Langkah selanjutnya adalah membuat kasus uji
untuk menutupi mutasi. :
15 e0 m3 el_2 'invalid'
16 00 m3 el_3 'invalid'
8
17 0e m3 el_4 'invalid'
Beberapa mutasi tidak dapat dibedakan dari ekspansi yang terbentuk dengan benar dan
ini telah dibuang. Sebagai contoh, mutasi m2 generik (el_2 untuk el_4) menghasilkan sintaks
yang benar karena m2 adalah "mengganti elemen dengan elemen lain yang didefinisikan" dan
el_2 dan el_4 adalah sama (int).
Beberapa mutasi yang tersisa tidak dapat dibedakan satu sama lain dan ini dilindungi
oleh satu uji kasus. Misalnya, menerapkan m1 mutasi umum ('perkenalkan nilai yang tidak
valid untuk elemen ") dengan mengganti el_4, yang harus berupa bilangan bulat, dengan" +
"membuat formulir" 0e + ". Ini adalah input yang sama seperti yang dihasilkan untuk kasus uji
11 di atas. Banyak lagi kasus uji dapat dibuat dengan membuat pilihan yang berbeda saat
menggunakan mutasi tunggal, atau menggabungkan mutasi.
9
BAB III
PENUTUP
A. Kesimpulan
Berdasarakan materi yang sudah di terangkan maka penulis menuliskan
kesimpulan bahwa, Syntax Testing adalah salah satu jenis teknik pengujian seperti
black box namun bersifat statis yang digunakan untuk memeriksa format dan tata
bahasa dari input data yang digunakan dalam aplikasi perangkat lunak. Terdapat
beberapa tahapan dalam Syntax Testing a. Identify the target language or format b.
Define the syntax of language c. Test and Debug the syntax. Dalam pengujian seringkali
terjadi kesalahan dalam pengujian Syntax seperti syntax errors, kesalahan pembatas,
kesalahan pada nilai field, kesalahan pada konteks serta kesalahan dalam
ketergantungan kondisi. Dengan demikian dapat dilakukan implementasi pada syntax
testing, yang dapat diketahui dengan hasil dari melakukan pengujian syntax yaitu
dengan mengetahui bahwa hasil tersebut valid apa tidak valid. Pada implementasi
tersebut peneliti menggunakan float sebagai test syntasis.
B. Saran
Demikian materi yang penulis buat semoga pembaca dapat memahami maksud
dan makna materi ini. Dan semoga materi ini bisa bermanfaat bagi kita semua.
Khusunya pembaca. Serta jika ada kesalahan pada penulisan materi ini kami selaku
penulis minta maaf sebesar-besarnya. Jika ada materi yang kurang berkenan mohon
saran dan kritik agar penulis dapat memperbaiki materi ini.
10
Daftar Pustaka
Ammann, P., & Offutt, J. (2008). Introduction to Software Testing. New York: The United of
America by Cambridge University Press.
Beizer, B. (2003). Software Testing Techiques. Dreamtech.
Moreira, A. M., Antunes, C. H., & Ramalho, V. D. (2013). Application of a Syntax-based
Testing Method and Tool to Software Product Line. INES, 3.
Romeo. (2003). Modul Ajar Testing dan Implementasi Sistem . Surabaya: STIKOM.
Society, B. C. (2001). Standard for Software Component Testing. SIGIST.
Tal, O., Knight, S., & Dean, T. (2004). Syntax-based Vulnerability Testing of Frame-based
Network Protocol. IEEE MILCOM.
11