Anda di halaman 1dari 6

REVIEW PAPER

Software Test Process, Testing Types and Techniques

Itti Hooda, Ph.D.


Research Scholar
Department of Computer Science and Applications
M.D. University, Rohtak-124 001, Haryana, India

Rajender Singh Chhillar, Ph.D.


Professor and Head
Department of Computer Science and Applications
M.D. University, Rohtak-124 001, Haryana, India

1. PENGENALAN
Pengujian Perangkat Lunak adalah kegiatan utama untuk mengevaluasi dan mengeksekusi
perangkat lunak dengan maksud untuk mengetahui kesalahan. Dengan melakukan pengujian
perangkat lunak, kita bisa mengetahui apakah sistem sudah memenuhi syarat atau tidak.
Paper ini terbagi menjadi dua bagian utama, dimana bagian pertama mencakup proses
pengujian dan yang kedua mencakup jenis pengujian. Pada bagian pertama akan dibahas
beberapa hal yaitu analisis, Perencanaan dan Persiapan, Pelaksanaan dan Penutupan. Dalam
tahap persiapan pengujian, terdapat beberapa bagian yaitu tes persiapan kasus, tes seleksi
kasus, uji kasus optimasi dan uji persiapan data dimana semua bagian ini akan dibahas secara
lebih detail pada halaman-halaman selanjutnya. Didalam pengujian perangkat lunak, terdapat
banyak jenis pengujian diantaranya Black Box, White Box, Pengujian State Based, pengujian
keamanan, pengujian Look and Feel, pengujian Alpha dan Beta dan masih banyak lagi.
Berdasarkan penelitian dan pengkajian yang telah dilakukan di dalam paper ini, semua jenis
pengujian di atas dikategorikan ke dalam tiga jenis tingkat pengujian, yaitu fungsional,
kinerja dan keamanan.

2. MENGOPTIMALAN PROSES PENGUJIAN PERANGKAT LUNAK


Software Testing Life Cycle ( STLC ) atau Siklus Hidup Pengujian Perangkat Lunak
digunakan untuk mendeteksi dan memperbaiki kesalahan dengan menggunakan berbagai
teknik pengujian.Didalam paper ini akan dijelaskan tahapan yang diperlukan dalam pengujian
siklus hidup sebuah perangkat lunak, dimana tanpa tahapan itu, siklus hidup sebuah
perangkat lunak tidak akan selesai secara efisien. Proses pengujian perangkat lunak dapat di
sesuaikan dengan permintaan atau keinginan pelanggan atau kebutuhan suatu proyek. Adapun
proses yang dapat digunakan ketika melakukan pengujian perangkat lunak yaitu analisis,
perencanaan dan persiapan, pelaksanaan dan penutupan. Ada berbagai macam metode
pengujian perangkat lunak yang bisa di temukan dari beberapa jurnal penelitian, buku dan
majalah. Berdasarkan hasil studi dan penelitian yang telah dilakukan, didalam paper ini
berbicara tentang tiga metode utama yang dibutuhkan dalam pengujian perangkat lunak
antara lain fungsionalitas, kinerja dan keamanan.
2.1 Tahap Uji Analisis
Tahap analisis merupakan tahap dasar dari proses pengujian perangkat lunak. Kumpulan
persyaratan harus dibahas dengan pelanggan untuk mengidentifikasi hasil yang pada dasarnya
masuk dalam kategori non-fungsional seperti kegunaan, skalabilitas, rawatan serta kinerja
dan keamanan. Ketika terdapat kendala dalam pengujian baik karena sistem maupun karena
keadaan, maka harus dikomunikasikan kepada tim bisnis. Dalam tahap ini, tim penguji akan
membahas dan menganalisa persyaratan dan mengidentifikasi pengujian yang harus
dilakukan serta menetapkan prioritas untuk pengujian anggota team. Persyaratan lingkungan
pengujian meliputi persyaratan perangkat keras dan perangkat lunak yang dibutuhkan oleh
sebuah perangkat lunak yang akan diuji.
2.2 Tes Perencanaan dan Tahap Persiapan
Di dalam rencana pengujian hal pertama yang harus di siapkan adalah dokumen, yang
menguraikan ruang lingkup, tujuan, fitur yang akan diuji, fitur yang tidak akan diuji, jenis
pengujian, peran dan tanggung jawab tim penguji. Tim penguji akan bersama-sama mulai
mempersiapkan uji kasus dan uji data dimana uji kasus menguraikan tentang langkah-langkah
yang diperlukan untuk pengujian untuk mencapai hasil yang aktual. Ketika hasil dari
pengujian tidak sesuai dengan hasil yang diharapkan, maka bug akan terbuka. Dalam uji
kasus, kita bisa menggunakan Requirement Traceability Matrix (RTM). RTM adalah
pemetaan dokumen untuk menelusuri kebutuhan untuk tes yang diperlukan untuk
memverifikasi bahwa persyaratan tersebut terpenuhi. Uji data juga dihasilkan dengan
menggunakan beberapa algoritma dan peralatan lain. Terdapat berbagai macam algoritma
yang bisa digunakan untuk menghasilkan dan mengoptimalkan uji kasus. Swain et.al
mengusulkan sebuah teknik agar bisa menghasilkan uji kasus yaitu dengan menggunakan
urutan diagram. Persiapan lingkungan pengujian merupakan salah satu tahap yang paling
penting yang siapkan oleh tim penguji yang terpisah.

2.3 Tahap Pelaksanaan Tes


Dalam tahap ini, penguji mengeksekusi perangkat lunak berdasarkan hasil uji kasus. Meski
hasil yang diharapkan tidak sesuai, maka penguji akan membuka bug dan menetapkan hal
yang sama dengan pengembang. Sudah banyak proyek dimasa lalu yang berfokus pada
langkah yang harus untuk diambil untuk melaporkan kesalahan validasi yang dibahas secara
harian atau mingguan yang bersamaan dengan kemajuan proyek.

2.4 Tes Penutupan


Tes penutupan adalah tahap penting yang mencakup semua laporan pengujian, yang
memastikan bahwa pengujian perangkat lunak telah berhasil dan tidak ada lagi ditemukan
bug. Setelah semua di tinjau dan disetujui oleh manajer, maka peluncuran perangkat lunak
akan dilakukan. Dan selanjutnya akan kembali ditinjau apakah software berjalan dengan baik
tanpa ada masalah sedikitpun.

3. JENIS SOFTWARE PENGUJIAN


Berdasarkan hasil penelitian dan studi, ada berbagai macam teknik pengujian perangkat lunak
seperti Black Box, White Box, Grey Box, Regresi, Kehandalan, Kegunaan, Kinerja, Unit,
Sistem, Integrasi, keamanan, smoke, dan pengujian berorientasi objek dll. Dalam pengujian
perangkat lunak, tidak semua teknik diatas harus digunakan karena waktu yang tersedia tidak
mencukupi. Banyak perangkat lunak yang mengalami crash karena kurangnya pengujian
fungsional. Sebagai contoh pada tahun 2014, situs Indian Railway mengalami crash karena
karena server tidak mampu mengimbangi jumlah pengunjung website. Setelah melakukan
beberapa survei, untuk melakukan pengujian perangkat lunak, harus menggunakan perpaduan
yang tepat dari beberapa jenis pengujian. Didalam paper ini, akan fokus pada 3 teknik saja
yaitu fungsionalitas, Performance atau kinerja, dan Secutiry testing atau pengujian keamanan.
Fungsionalitas merupakan aspek pertama dan utama dalam pengujian perangkat lunak yang
bisa menjamin kualitas perangkat lunak tersebut. Didalam pengujian juga terdapat pengujian
statis dan dinamis, dimana pengujian fungsional dan non-fungsional masuk dalam kategori
pengujian Dinamis.

3.1 Pengujian Fungsional


Pada tahap awal desain dan pengembangan, desain yang bagus dari sebuah perangkat lunak
harus dibuat dengan tujuan untuk memuaskan pelanggan. Alur pengujian fungsional dapat
digambarkan dengan menggunakan berbagai diagram Use Case, misalnya diagram
sekuensial, diagram kelas, dan lain-lain. Dalam berbagai tingkat pengujian, terdapat berbagai
berbagai jenis metode pengujian fungsioanl dan tekniknya. Contohnya pengujian Unit,
Pengujian Integrasi dan Pengujian Sistem. Dalam tingkat pengujian, ada beberapa jenis
pengujian yang bisa digunakan diantaranya Black Box, White Box, Grey Box, Pengujian
regresi, Pengujian Fuzz, Pengujian Eksplorasi dan lain-lain. Uji kasus dibuat dengan tujuan
untuk mengetahui apa yang seharusnya aplikasi lakukan. Metode pengujian Fungsional pada
dasarnya berfokus kepada APA yang seharusnya dilakukan aplikasi, bukan
BAGAIMANA. Pengujian Unit dikerjakan oleh penegmbang, Pengujian Integrasi dan
Pengujian Sistem dilakukan oleh tim Penguji dan Pengujian Penerimaan Pengguna dilakukan
oleh tim Bisnis.

Jenis Utama dari Pengujian Fungsional dijelaskan secara singkat pada tabel1 dibawah

S.No Testing Types Definition

tingkat terendah dari pengujian yang utamanya dilakukan oleh


1 Pengujian Unit pengembang untuk menguji unit kode

Pengujian ini dilakukan untuk mengetahui apakah komunikasi


2 Pengujian Integrasi data mengalir dengan benar di tiap komponen.
Pengujian sistem dilakukan untuk mengetahui apakah sistem
Pengujian Sistem berjalan dengan sebagaimana mestinya seperti yang telah
3 ditentukan dalam dokumen persyaratan.
Untuk memastikan pelanggan mendapatkan hasil sesuai
Acceptance dengan yang diharapkannya sehingga memberikan respon
4 balik yang baik untuk peningkatan kualitas perangkat lunak.
Pengujian Black Box untuk memastikan apakah hasil output
aplikasi sudah benar sesuai dengan inputan. Pengujian Black
Box terdiri atas beberapa jenis pengujian yaitu Equivalence
Pengujian White Box Class Partisi, batas analisis nilai, kesalahan menebak dan lain-
5
dan Black Box lain. White Box untuk memeriksa kode dari Program untuk
memastikan apakah tidak ada kode yang berlebihan atau salah.
Pengujian white Box akan memperhatikan penulisan logika,
struktur, perulangan, dan lain sebagainya.

3.2 Pengujian Kinerja


Pengujian kinerja merupakan salah satu jenis pengujian non-fungsional yang menguji kinerja
perangkat lunak, baik iut dalam kondisi yang memungkinkan maupun tidak. Pengujian
kinerja mencakup tingkat keberhasilan dan frekuensi kegagalan. Stress testing dan Load
testing merupakan jenis pengujian yang paling populer dalam pengujian kinerja. Stress
testing dilakukan untuk mengetahui sejauh mana sistem dapat bekerja. Beban yang berat akan
diberikan untuk mengetahui ketahanan sistem. Pengujian ketahanan biasa juga disebut
dengan Soak testing. Pengujian ini dilakukan untuk mengetahui apakah sistem mampu
mempertahankan beban secara terus menerus. Tujuan utama dilakukannya Soak sistem yaitu
untuk menemukan perilaku sistem dalam penggunaan secara terus menerus. Pengujian Spike
dilakukan dengan meningkatkan jumlah pengguna dan memperhatikan perilaku sistem
apakah dapat bertahan atau tidak. Ada banyak Software yang bisa digunakan untuk menguji
kinerja perangkat lunak, misalnya Soap UI dan Jmeter. Namun software yang paling populer
yang bisa digunakan untuk menguji kinerja dari perangkat lunak yaitu dengan menggunakan
Load Runner Tool serta beberapa aplikasi dari IBM. Kurangnya pengujian kinerja
mengakibatkan banyaknya kegagalan yang terjadi pada industri perangkat lunak.

3.3 Pengujian Keamanan


saat ini, serangan Buffer Overflow merupakan yang paling umum. Dalam sistem berorientasi
objek, masalah desain juga termasuk cara untuk mengangani kesalahan. Beberapa masalah
dalam desain antara lain saluran data yang tidak terlindungi, kurangnya audit, kesalahan
logging dan timing, serta adanya pesan kesalahan. Perangkat lunak diperlukan untuk menguji
fitur keamanan seperti otentikasi yang kuat, kriptografi dan kontrol akses, serta beberapa
mekanisme keamanan yang lainnya. Gary McGraw menunjukkan bahwa kerentanan atau
celah adalah kesalahan yang bisa dimanfaatkan oleh penyerang. Sistem diuji dengan
menggunakan otentikasi, otorisasi dan berbagai jenis ancaman. Pengujian keamanan
perangkat lunak sangat penting dilakukan untuk melindungi informasi, layanan, keterampilan
dan sumber daya.
Pengujian keamanan pada dasarnya memiliki dua jenis yaitu :

a. Pengujian perangkat lunak mengenai mekanisme perangat lunak yang fungsional


b. Melakukan resiko berdasarkan pendekatan menurut pola pikir.

Pengujian penetrasi adalah pengujian keamanan dimana tim evaluasi berusaha menghindari
fitur keamanan dari suatu sistem berdasarkan ilmu dan pengetahuan mereka tentang sistem.
Barton Miller, Universitas Wisconsin pada tahun 1988 menggunakan pengujian Fuzz dimana
pengujian ini dilakukan dengan tidak valid, acak dan memberikan data tak terduga kepada
perangkat lunak untuk mengetahui reaksi dari perangkat lunak tersebut. Teknik pengujian ini
hanya untuk menguji fitur sederhana dari perangkat lunak, bukan untuk struktur kode
perangkat lunak. Tabel 2 dibawah ini akan memberikan ringkasan pengujian diatas.
Tabel 2

Testing Types Methods


Black Box, White Box, Pengujian Pasangan, tabel transisi, tabel
1. Pengujian keputusan, pengujian berdasarkan model, pengujian use based,
Fungsional pengujian eksplorasi, pengujian berbasis spesifikasi, pengujian
regresi, pengujian smoke, pengujian sanity
2. Pengujian Kinerja Load, Spike, Stress, Soak, dan Pengujian Konfigurasi

Static Analyzer, Serangan brute Force, SQL Injection dan Cross


3. Pengujian Keamanan
Site Scripting (XSS), pengujian Penetrasi dan Pengujian Fuzz.

4. PEMETAAN PROSES PENGUJIAN PERANGKAT LUNAK DAN PROSES


PENGUJIANNYA
Telah dibahas sebelumnya dalam paper ini, terdapat 4 tahap utama dalam siklus hidup
pengujian perangkat lunak. Setiap tahapan memerlukan beberapa macam pengujian. Dalam uji
analisis dan uji tahap persiapan, yang dibuthkan hanya verifikasi dokumen. Setelah semua
persiapan dimulai, maka proses pengujian akan dilakukan. Pada tahap ini, semua jenis
pengujian akan dilakukan seperti yang ada pada gambar dibawah ini.

Tes Analisis Tes Persiapan Pelaksanaan tes Pelaksanaan tes


( menganalisis & ( persiapan dan pemantauan dan pemantauan
meninjau rencana pengujian, ( bug logging dan ( bug logging dan
persyaratan ) uji kasus, uji data ) pelacakan ) pelacakan )

Pengujian statis/verifikasi (review, inspeksi, Pengujian


walkthrough) Dinamis/validasi

Pengujian Fungsional Pengujian Kinerja Pengujian Keamanan


( pengujian unit, pengujian ( Pengujian beban, ( Static Analyzer, Serangan
Pengujian Stress, Spike, Brute Force, SQL Injeksi
integrasi, pengujian sistem,
Pengujian Soak, dan dan Cross Site Scripting
pengujian black box & (XSS), pengujian penetrasi
white box ) Pengujian Konfigurasi )
dan pengujian Fuzz

5. KESIMPULAN
Gambar 1 Pemetaan Fase Pengujian Perangkat Lunak dan jenis pengujiannya
Maksud dari pembuatan paper ini yaitu untuk melakukan penelitian tentang berbagai tahapan
siklus hidup perangkat lunak serta jenis-jenis pengujiannya. Setelah meninjau lebih jauh
tentang paper ini, dapat disimpulkan bahwa ada 4 tahap utama dalam siklus hidup pengujian,
yaitu analisis, perencanaan dan persiapan, pelaksanaan, dan penutupan. Beberapa kegagalan-
kegagalan yang baru juga bisa dipejari yang mana disebabkan oleh kurangnya kinerja dan
keamanan pengujian. Pengujian fungsional membutuhkan banyak waktu. Oleh karena itu,
banyak perangkat lunak sebelumnya mengalami crash karena kurangnya pengujian
fungsional. Jadi didalam paper ini telah ditunjukkan beberapa kombinasi pengujian untuk
menciptakan perangkat lunak yang berkualitas.

KELEBIHAN DAN KEKURANGAN PAPER


Setelah membaca keseluruhan isi dari paper, ada beberapa kelebihan dan kekurangan yang
bisa kami simpulkan. Kelebihan dari paper ini yaitu :

a. Menjelaskan dengan detail teknik pengujian yang umum digunakan.


b. Menggunakan banyak referensi dari berbagai sumber untuk melengkapi isi dari paper.
c. Pembahasan yang diangkat merupakan materi yang sangat umum dibutuhkan dalam
pengujian perangkat lunak.

Adapun kekurangan dari paper ini yaitu :

a. Banyak teknik pengujian yang dimunculkan, namun ada beberapa yang sama sekali
tidak dijelaskan sehingga memunculkan pertanyaan untuk pembaca
b. Pembahasan jelas, namun masih dalam ruang lingkup yang sempit.
c. Kurang mengangkat contoh kasus dari hasil penelitian.

Anda mungkin juga menyukai