Anda di halaman 1dari 12

TESTING DAN IMPLEMENTASI PERANGKAT LUNAK

SYNTAX TESTING

Dosen pengampu :
Ginanjar Setyo Permadi, S.Kom., M.Kom

Disusun oleh :

Jihan Nur Syalsabilla (1795124006)


M. Anas Mufti A (1795124008)
Fitra Anggraini Sari (1795124020)

Program Studi S1 Sistem Informasi


Fakultas Teknologi Informasi
Universitas Hasyim Asy’ari Tebuireng Jombang
2020
BAB I
PENDAHULUAN
A. Latar Belakang
Era revolusi indusri 4.0 merupakan pengintegrasian antara teknologi cyber dan
teknologi otomatisasi, yang memanfaatkan mesin sebagai tenaga penggerak dan
pemroses dengan begitu mampu meningkatkan efektifitas dan efisensi waktu. Jika di
lihat secara umum perkembangan teknologi dan informasi Indonesia sendiri begitu
pesat, terbukti dengan banyaknya perangkat lunak yang muncul untuk melengkapi
pelayanan masyarakat baik dalam segi pemerintahan atau komersial tentu saja, dapat
membantu kinerja dan kepuasaan sendiri untuk konsumen. Terkait perangkat lunak
yang semakin bermutu, membuat developer mengambil langkah untuk menciptakan
suatu perangkat lunak yang mudah untuk dirasakan oleh para pengguna.
Pembuatan perangkat lunak yang berkualitas tentunya memerlukan tahapan
untuk dapat memberikan kepuasaan terhadap konsumen yang nantinya akan membeli
produk tersebut, sehingga tidak tidak terjadi bugs pada perangkat lunak ketika
digunakan, salah satu dari tahapan tersebut ialah testing dan implementasi berdasarkan
makna testing sendiri yakni proses mengoperasikan perangkat lunak dalam suatu
kondisi yang dikendalikan untuk melakukan verifikasi, mendeteksi error dan
memvalidasi suatu perangkat lunak mampu memenuhi keinginan atau kebutuhan dari
penggunaan yang sebenarnya (Romeo, 2003).
Dalam tahapan testing pihak developer tentu harus melakukan pengujian untuk
mencari letak bugs sampai perangkat lunak tersebut layak untuk digunakan oleh
konsumen. Berbicara tentang testing sebenarnya memiliki bermacam-macam metode
Pada setiap metode memiliki sistem perbedaan yang digunakan namun tetap sesuai
dengan kebutuhan sistem itu sendiri, dengan memilih apakah sistem tersebut perlu
diujikan atau tidak. Pada testing implementasi sistem yang paling umum diguanakan
yaitu metode black box dan white box, karena kedua metode tersebut mudah dalam
pengimplementasiannya.
Selain dua metode tersebut terdapat metode lain salah satunya syntax berfungsi
untuk menguji program, namun perlu juga diketahui fungsi dan proses apa yang harus
dilakukan dalam metode tersebut. Tujuan dari pengujian dengan metode tersebut untuk
menilai apakah program yang dibuat layak digunakan.
Berdasarkan latar belakang diatas kelompok kami akan menjelaskan tentang
metode testing, yakni metode syntax
1
B. Rumusan Masalah
Berdasarkan latar belakang yang telah dijelaskan diatas, dapat dirumuskan
masalah sebagai berikut :
1. Apa saja tahapan dalam Syntax Testing ?
2. Apa Kesalahan yang sering muncul dalam pengujian Syntax?
3. Bagaimana implementasi testing menggunakan Syntax ?

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

A. Pengertian Syntax Testing


Sebelum jauh mengenal Pengertian Syntax Testing lebih baik mengenal sedikit
apa makna syntax sendiri yakni aturan yang harus dipenuhi oleh seorang programmer
bentuk kode yang ditulis dapat dibenarkan dan dimengerti oleh komputer, sehingga
komputer mampu memproses perintahnya.
Syntax Testing adalah jenis teknik pengujian black box yang statis digunakan
untuk memeriksa format dan tata bahasa dari input data yang digunakan dalam aplikasi
perangkat lunak. Pengujian syntax ini dilakukan untuk memverifikasi dan memvalidasi
data input internal dan eskternal ke dalam sistem, baik itu format file, format input data
dari pengguna dan skema basis data. secara umum pengujian ini bersifat otomatis
karena memeriksa semua yang yang berkaitan dengan sistem baik eksternal dan
internal.
Menurut (Tal, Knight, & Dean, 2004) Syntax Testing tidak memiliki kriteria
berhenti yang jelas, karena teknik ini harus menggunakan pengalaman, akal sehat dan
tentu waktu yang dimiliki disaat menghadapi kendala test-suite.
Menurut (Moreira, Antunes, & Ramalho, 2013) pengujian Syntax ini
berdasarkan tata bahasa yang digunkan dalam perangkat lunak, karakteristik yang ada
dalam pengujian ini adalah penggunaan deskripsi sintaksis dari beberapa data yang
digunakan dari perangkat lunak yang sedang diuji.

B. Tahapan dalam Syntax Testing


Menurut (Beizer, 2003) dalam syntax testing memiliki tahapan-tahapan yang perlu
dilakukan untuk mengoptimalkan keberhasilan dalam melakukan testing pada suatu
perangkat lunak, yakni sebagai berikut :
1. Identify the target language or format.
Pada tahap ini mengidentifikasi bahasa yang digunakan atau format yang
dipake, mengindentifikasi juga merupakan aktivitas yang harus dilakukan untuk
menentukan apa saja yang bisa diuji dan memberikan prioritas terhadap kondisi-
kondisi pengujian.

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.

C. Kesalahan dalam pengujian Syntax


Teknik pengujian Syntax memiliki beberapa jenis kesalahan yang dapat
dihasilkan, sebagai berikut :
1. Syntax Related Errors
Kesalahan terkait Syntax adalah pelanggaran tata bahasa secara kasar,
kesalahan tersebut bisa terjadi pada level yang berbeda dalam hierarki tata bahasa
seperti level atas, level menegah dan level lapangan. Kesalahan pada level lapangan
yang paling sederhana terdiri dari data acak dan nilai acak, kesalahan yang disebab
oleh level menengah dan level atas adalah menghilangkan elemen yang
diperlukan, mengulangi, menyusun ulang dan menyarang elemen atau substruktur
elemen.
2. Delimiter Errors (Kesalahan pembatas)
Pembatas menandai pemisah bidang dalam kalimat, dalam bahasa kode ASCII
bidang biasanya berupa karakter dan huruf dan untuk pembatas adalah karakter
spasi (spasi, tab, umpan baris), Karakter pembatas lainnya (koma, titik koma) atau
kombinasinya.
Pembatas dapat dihilangkan, diulang, dikalikan atau diganti oleh beberapa
karakter khas yang tidak biasa, pembatas tipe berpasangan seperti kawat gigi tidak
dapat seimbang, Pembatas juga dapat ditambahkan ditempat-tempat yang salah.

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.

D. Backus Normal Form (BNF)


Backus normal form memiliki makna prosedur notasi yang digunakan untuk
menentukan syntax dalam suatu bahasa pemrograman komputer yang berkaitan dengan
perintah atau instruksi, format dokumen dan protokol komunikasi. BNF diterapkan ke
deskripsi bahasa yang diperlukan. Objek seperti seperti dibawah ini memiliki arti yakni:
a. ::= artinya “is defined as”
b. | artinya “or”
c. * artinya “zero or more occurrences”
d. + artinya “one of more occurrences”
e. An artinya “n pengulangan dari A”

Beberapa contoh dalam BNF sendiri yakni sebagai berikut :

a. Spesial_digit ::= 0|1|2|5


b. Other_digit ::=2|3|4|5|6|7|8|9
c. Ordinary_digit ::= spesial_digit | other_digit
d. Exchange_part ::=other_digit2 ordinary_digit
e. Phone_number ::= Exchange_part Number_part

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:

test case float_in option(s) executed check_res

1 3e2 opt_1 'valid'


2 +2e+5 opt_2 'valid'

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

test case float_in mutation element check_res

1 xe0 m1 x for el_2 'invalid'

2 0x0 m1 x for el_3 'invalid'

3 0ex m1 x for el_4 'invalid'

4 x0e0 m1 x for el_6 'invalid'

5 +xe0 m1 x for el_7 'invalid'

6 ee0 m2 el_3 for el_2 'invalid'

7 +e0 m2 el_6 for el_2 'invalid'

8 000 m2 el_2 for el_3 'invalid'

9 0+0 m2 el_6 for el_3 'invalid'

10 0ee m2 el_3 for el_4 'invalid'

11 0e+ m2 el_6 for el_4 'invalid'

12 e0e0 m2 el_3 for el_6 'invalid'

13 +ee0 m2 el_3 for el_7 'invalid'

14 ++e0 m2 el_6 for el_7 'invalid'

15 e0 m3 el_2 'invalid'

16 00 m3 el_3 'invalid'

8
17 0e m3 el_4 'invalid'

18 y0e0 m4 y in el_1 'invalid'

19 0ye0 m4 y in el_1 'invalid'

20 0ey0 m4 y in el_1 'invalid'

21 0e0y m4 y in el_1 'invalid'

22 y+0e0 m4 y in el_5 'invalid'

23 +y0e0 m4 y in el_5 'invalid'

24 +0yeo m4 y in el_5 '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

Anda mungkin juga menyukai