Review Paper
Software Testing Metodologi
Agung Sulistyanto
1611600709
agung.sulistyan@gmail.com
Abstraksi-Makalah ini bertujuan untuk
meninjau makalah yang membahas metodologi
dalam pengujian software. Kontribusi utama
dalam makalah ini adalah memberikan
gambaran umum tentang pengujian software
dengan metodologi yang berhasil dirangkum.
Tulisan ini tidak menyimpulkan metodologi
terbaik dan optimal pada kasus pengujian
software, karena metodologi terbaik
tergantung pada kebutuhan, fokus masalah
dan lingkungan hidup sistem yang telah ada.
Tulisan ini memaparkan kelebihan dan
kekurangan dari tiap-tiap metodologi. Tulisan
ini juga bermanfaat untuk mahasiswa atau
pengembang software yang baru memulai
dalam memahami pengujian software.
Kata kunci: software testing, metodologi
pengujian perangkat lunak, paper review
1. Pendahuluan
Pengujian perangkat lunak (software
testing) adalah proses mengevaluasi suatu
sistem atau komponen dengan tujuan untuk
menentukan apakah software yang
dikembangkan memenuhi syarat yang
ditentukan atau tidak. Hal ini digunakan untuk
mengidentifikasi kebenaran, kelengkapan,
keamanan dan kualitas produk perangkat lunak
yang dihasilkan terhadap spesifikasi. Sehingga
perlu dilakukan proses pengujian suatu sistem
untuk mengidentifikasi kesalahan atau
kebutuhan yang hilang dari yang seharusnya.
Ada banyak metodologi yang dilakukan
dalam pengujian perangkat lunak, namun
pengujian yang efektif dari produk yang
kompleks pada dasarnya adalah sebuah proses
penyelidikan, bukan hanya soal menciptakan
dan mengikute alur prosedur. Makah ini akan
membahas tentang metodologi software
testing yang paling umum dan sering
digunakan untuk mendeteksi kesalahan,
diantaranya: Black Box Testing, White Box
Testing dan Gray Box Testing. Ketiga
metodologi ini digunakan dalam
menggambarkan sudut pandang untuk
merancang test cases.
2. Diskusi
Bagian ini membahas proses dari tiap-tiap
metodologi. Dalam setiap sub bagian akan
membahas sejumlah hal yang telah dilakukan
dalam berbagai penelitian.
A. Black Box Testing
Teknik ini adalah pengujian tanpa melihat cara
kerja sistem didalam aplikasi. Hanya
memastikan kebutuhan dasar (input dan
output) sudah sesuai tanpa mengetahui
program atau struktur logika sistem bekerja.
Black Box Testing memperlakukan perangkat
lunak seperti “kotak hitam” – tanpa memiliki
pengetahuan tentang cara kerja internal sistem
dan hanya mengkaji aspek dasar dari suatu
sistem. Saat melakukan pengujian black box,
penguji harus mengetahui arsitektur dari
sistem tanpa perlu akses kedalam sumber
kode. [5]
Beberapa kelebihan dan kekurangan pengujian
black box, diantaranya:[4][5][10]
Keuntungan
a. Efisien terhadap susmber kode yang
besar.
b. Persepsi penguji sangat sederhana.
c. Perspektif pengguna dan pengembang
sistem berbeda (tester dan
programmer yang independen satu
sama lain).
d. Cepat dalam pembuatan test case.
Kekurangan
a. Hanya sejumlah operator scenario
pengujian sebenarnya dilakukan.
Akibatnya, hanya ada cakupan
terbatas.
b. Tidak ada spesifikasi yang jelas,
sehingga test case sulit dirancang.
c. Pengujian tidak efisien.
B. White Box Testing
Teknik ini adalah pengujian rinci dari struktur
logika didalam program. Dalam pengujian
white box penguji membutuhkan akses penuh
seluruh sumber kode yang digunakan.
White Box Testing adalah metode desain uji
kasus yang menggunakan struktur kontrol dari
desain procedural untuk membuat test case.
White box testing dapat mengungkapkan
kesalahan implementasi seperti manajemen
kunci yang buruk dengan menganalisis kerja
internal san struktur dari software. Pengujian
white box berlaku pada saat integrasi, satuan
dari tingkat sistem dari proses pengujian
perangkat lunak. Dalam pengujian white box,
penguji perlu melihat kedalam sumber kode
dan mengetahui unit kode jika berperilaku tidak
semestinya.[3]
Beberapa kelebihan dan kekurangan pengujian
white box, diantaranya:[3][4][10]
Keuntungan
a. Mengungkapkan kesalah pada kode
yang tersembunyi dengan menghapus
baris kode tidak perlu.
b. Memberikan efek yang bermanfaat.
c. Cakupan maksimum dicapai selama tes
menulis scenario.
Kekurangan
a. Hal ini sangat mahal karena
membutuuhkan penguji yang handal
untuk melakukannya.
b. Banyak alur yang akan tetap belum
teruji karena sulit untuk melihat ke
setiap sudut untuk mengetahui
kesalahan yang tersembunyi pada
setiap baris kode.
c. Beberapa code yang hilang pada code
dapat diketahui.
C. Gray Box Testing
Teknik ini adalah kombinasi antara Black Box
Testing dan White Box Testing. Digunakan
untuk pengujian dengan keterbatasan
pengetahuan tentang cara kerja internal sistem
dan memiliki pengetahuan tentang aspek
kebutuhan dasar dari sistem.
Teknik black box testing dapat meningkatkan
cakupan pengujian dengan memungkinkan kita
untuk focus pada semua lapisan dari setiap
sistem yang kompleks melalui kombinasi dari
semua pengujian black box dan white box
testing.
Dalam grey box testing penguji harus memiliki
pengetahuan tentang struktur data internal dan
algoritma, untuk tujuan mendesain test case.
Contoh teknik pengujian grey box testing
adalah:[6]
a. Architectural Model
b. Unified Modeling Language (UML)
c. State Model (Finite State Machine)
Dalam grey box testing, menguji kode dari dua
module yang dipelajari (metode pengujian
white box) untuk desain test cases dan actual
test yang sebenarnya dilakukan dalam
interface (metode black box).
Beberapa keuntungan dan kekurangan dalam
pengujian pengujian grey box, diantaranya:
[4][6][10]
Kelebihan
a. Pengujian grey box memberikan
gabungan manfaat pengujiaan black
box dan white box.
b. Dalam pengujian grey box, penguji
bergantung pada definisi interface dan
spesifikasi fungsional dari source
code.
c. Dalam pengujian grey box, penguji
dapat merancang skenario pengujian
yang sangat baik.
d. Pengujian dilakukan dari sudut
pandang pengguna bukan dari sudut
pandang desainer sistem.
e. Membuat tes authoring cerdas.
f. Pengujian berisi.
Kekurangan
a. Cakupan tes terbatas jika akses source
code tidak tersedia.
b. Sulit untuk mengasosiasikan
identifikasi cacat dalam aplikasi
terdistribusi.
c. Banyak alur program yang tetap
belum teruji.
d. Jika desainer software telah
melakukan pengujian, test bisa
berlebihan.
Tabel 1.1 Perbandingan
No. Black Box Testing Grey Box testing White Box Testing
1. Hanya analisis aspek
fundamental, tidak terbukti
cara kerja secara internal.
Pengetahuan partial cara
kerja internal.
Pengetahuan penuh cara
kerja internal.
2. Granularity rendah. Granularity menengah. Granularity tinggi.
3. Dilakukan oleh end user,
tester dan developer (User
Acceptance Testing).
Dilakukan oleh end user,
tester dan developer (User
Acceptance Testing).
Dilakukan oleh developer dan
tester.
4. Pengujian didasarkan pada
external exception –
perilaku internal pada
program diabaikan.
Test desain didasarkan pada
diagram basis data tingkat
tinggi, data flow diagram,
internal states, pengetahuan
tentang algoritma dan
arsitektur.
Internal sepenuhnya
diketahui.
5. Tidak cocok untuk pengujian
algoritma.
Tidak cocok untuk pengujian
algoritma.
Cocok untuk pengujian
algoritma.
3. Kesimpulan
Kita dapat menentukan pengujian software
sebagai suatu kegiatan yang bertujuan untuk
mengevaluasi atribut atau kemampuan dari
sebuah program untuk menentukan bahwa
telah memenuhi spesifikasi yang dibutuhkan.
Pengujian software dapat memberikan
pendangan independen dari software untuk
memungkinkan bisnis menghargai risiko
implementasi software.
Untuk melakukan software dengan cara yang
lebih efektif, dalam makalah ini telah dijelaskan
dan dibandingkan 3 (tiga) teknik pengujian
software yang utama.
4. Daftar Pustaka
[1] Mohd. Ehmer Kahn, "Different Forms ff
Software Testing Techniques for Finding
Errors," IJSC, Vol. 7, Issue 3, No 1, pp
11-16, May 2010
[2] Software Testing Methodologies by
Azhar available at http://azhar-
paperpresentation.blogspot.com/2010/
04/software-testing-
methodologies.html
[3] Mohd. Ehmer Khan, “Different
Approaches to White Box testing
Technique for Finding Errors,” IJSEIA,
Vol. 5, No. 3, pp 1-13, July 2011
[4] Software Testing Methods available at
http://www.tutorialspoint.com/softwar
e_testing/testing_methods.htm
[5] Mohd. Ehmer Khan, “Different
Approaches to Black Box Testing
Technique for Finding Errors,” IJSEA,
Vol. 2, No. 4, pp 31-40, October 2011
[6] Grey Box Testing from Wikipedia
available at
http://en.wikipedia.org/wiki/Gray_box_
testing
[7] Comparison among Black Box Testing,
Gray Box Testing & White Box Testing
available at
http://www.softwaretestinggenius.com
/articalDetails?qry=404
[8] Predicting the Future of Testing by
Harry Robinson available at
http://www.stickyminds.com/sitewide.a
sp?Function=edetail&ObjectType=COL
&ObjectId=6887
[9] Software Testing available at
https://www.tutorialspoint.com/softwar
e_testing/
[10] Mohd. Ehmer Khan and Farmeena
Khan, "A Comparative Study of White
Box, Black Box and Grey Box Testing
Techniques," IJACSA, Vol. 3, No. 6,
2012

Paper Review - Metodologi Testing

  • 1.
    Review Paper Software TestingMetodologi Agung Sulistyanto 1611600709 agung.sulistyan@gmail.com Abstraksi-Makalah ini bertujuan untuk meninjau makalah yang membahas metodologi dalam pengujian software. Kontribusi utama dalam makalah ini adalah memberikan gambaran umum tentang pengujian software dengan metodologi yang berhasil dirangkum. Tulisan ini tidak menyimpulkan metodologi terbaik dan optimal pada kasus pengujian software, karena metodologi terbaik tergantung pada kebutuhan, fokus masalah dan lingkungan hidup sistem yang telah ada. Tulisan ini memaparkan kelebihan dan kekurangan dari tiap-tiap metodologi. Tulisan ini juga bermanfaat untuk mahasiswa atau pengembang software yang baru memulai dalam memahami pengujian software. Kata kunci: software testing, metodologi pengujian perangkat lunak, paper review 1. Pendahuluan Pengujian perangkat lunak (software testing) adalah proses mengevaluasi suatu sistem atau komponen dengan tujuan untuk menentukan apakah software yang dikembangkan memenuhi syarat yang ditentukan atau tidak. Hal ini digunakan untuk mengidentifikasi kebenaran, kelengkapan, keamanan dan kualitas produk perangkat lunak yang dihasilkan terhadap spesifikasi. Sehingga perlu dilakukan proses pengujian suatu sistem untuk mengidentifikasi kesalahan atau kebutuhan yang hilang dari yang seharusnya. Ada banyak metodologi yang dilakukan dalam pengujian perangkat lunak, namun pengujian yang efektif dari produk yang kompleks pada dasarnya adalah sebuah proses penyelidikan, bukan hanya soal menciptakan dan mengikute alur prosedur. Makah ini akan membahas tentang metodologi software testing yang paling umum dan sering digunakan untuk mendeteksi kesalahan, diantaranya: Black Box Testing, White Box Testing dan Gray Box Testing. Ketiga metodologi ini digunakan dalam menggambarkan sudut pandang untuk merancang test cases. 2. Diskusi Bagian ini membahas proses dari tiap-tiap metodologi. Dalam setiap sub bagian akan membahas sejumlah hal yang telah dilakukan dalam berbagai penelitian. A. Black Box Testing Teknik ini adalah pengujian tanpa melihat cara kerja sistem didalam aplikasi. Hanya memastikan kebutuhan dasar (input dan output) sudah sesuai tanpa mengetahui program atau struktur logika sistem bekerja. Black Box Testing memperlakukan perangkat lunak seperti “kotak hitam” – tanpa memiliki pengetahuan tentang cara kerja internal sistem dan hanya mengkaji aspek dasar dari suatu sistem. Saat melakukan pengujian black box, penguji harus mengetahui arsitektur dari sistem tanpa perlu akses kedalam sumber kode. [5]
  • 2.
    Beberapa kelebihan dankekurangan pengujian black box, diantaranya:[4][5][10] Keuntungan a. Efisien terhadap susmber kode yang besar. b. Persepsi penguji sangat sederhana. c. Perspektif pengguna dan pengembang sistem berbeda (tester dan programmer yang independen satu sama lain). d. Cepat dalam pembuatan test case. Kekurangan a. Hanya sejumlah operator scenario pengujian sebenarnya dilakukan. Akibatnya, hanya ada cakupan terbatas. b. Tidak ada spesifikasi yang jelas, sehingga test case sulit dirancang. c. Pengujian tidak efisien. B. White Box Testing Teknik ini adalah pengujian rinci dari struktur logika didalam program. Dalam pengujian white box penguji membutuhkan akses penuh seluruh sumber kode yang digunakan. White Box Testing adalah metode desain uji kasus yang menggunakan struktur kontrol dari desain procedural untuk membuat test case. White box testing dapat mengungkapkan kesalahan implementasi seperti manajemen kunci yang buruk dengan menganalisis kerja internal san struktur dari software. Pengujian white box berlaku pada saat integrasi, satuan dari tingkat sistem dari proses pengujian perangkat lunak. Dalam pengujian white box, penguji perlu melihat kedalam sumber kode dan mengetahui unit kode jika berperilaku tidak semestinya.[3] Beberapa kelebihan dan kekurangan pengujian white box, diantaranya:[3][4][10] Keuntungan a. Mengungkapkan kesalah pada kode yang tersembunyi dengan menghapus baris kode tidak perlu. b. Memberikan efek yang bermanfaat. c. Cakupan maksimum dicapai selama tes menulis scenario. Kekurangan a. Hal ini sangat mahal karena membutuuhkan penguji yang handal untuk melakukannya. b. Banyak alur yang akan tetap belum teruji karena sulit untuk melihat ke setiap sudut untuk mengetahui kesalahan yang tersembunyi pada setiap baris kode. c. Beberapa code yang hilang pada code dapat diketahui. C. Gray Box Testing Teknik ini adalah kombinasi antara Black Box Testing dan White Box Testing. Digunakan untuk pengujian dengan keterbatasan pengetahuan tentang cara kerja internal sistem dan memiliki pengetahuan tentang aspek kebutuhan dasar dari sistem.
  • 3.
    Teknik black boxtesting dapat meningkatkan cakupan pengujian dengan memungkinkan kita untuk focus pada semua lapisan dari setiap sistem yang kompleks melalui kombinasi dari semua pengujian black box dan white box testing. Dalam grey box testing penguji harus memiliki pengetahuan tentang struktur data internal dan algoritma, untuk tujuan mendesain test case. Contoh teknik pengujian grey box testing adalah:[6] a. Architectural Model b. Unified Modeling Language (UML) c. State Model (Finite State Machine) Dalam grey box testing, menguji kode dari dua module yang dipelajari (metode pengujian white box) untuk desain test cases dan actual test yang sebenarnya dilakukan dalam interface (metode black box). Beberapa keuntungan dan kekurangan dalam pengujian pengujian grey box, diantaranya: [4][6][10] Kelebihan a. Pengujian grey box memberikan gabungan manfaat pengujiaan black box dan white box. b. Dalam pengujian grey box, penguji bergantung pada definisi interface dan spesifikasi fungsional dari source code. c. Dalam pengujian grey box, penguji dapat merancang skenario pengujian yang sangat baik. d. Pengujian dilakukan dari sudut pandang pengguna bukan dari sudut pandang desainer sistem. e. Membuat tes authoring cerdas. f. Pengujian berisi. Kekurangan a. Cakupan tes terbatas jika akses source code tidak tersedia. b. Sulit untuk mengasosiasikan identifikasi cacat dalam aplikasi terdistribusi. c. Banyak alur program yang tetap belum teruji. d. Jika desainer software telah melakukan pengujian, test bisa berlebihan. Tabel 1.1 Perbandingan No. Black Box Testing Grey Box testing White Box Testing 1. Hanya analisis aspek fundamental, tidak terbukti cara kerja secara internal. Pengetahuan partial cara kerja internal. Pengetahuan penuh cara kerja internal. 2. Granularity rendah. Granularity menengah. Granularity tinggi. 3. Dilakukan oleh end user, tester dan developer (User Acceptance Testing). Dilakukan oleh end user, tester dan developer (User Acceptance Testing). Dilakukan oleh developer dan tester. 4. Pengujian didasarkan pada external exception – perilaku internal pada program diabaikan. Test desain didasarkan pada diagram basis data tingkat tinggi, data flow diagram, internal states, pengetahuan tentang algoritma dan arsitektur. Internal sepenuhnya diketahui. 5. Tidak cocok untuk pengujian algoritma. Tidak cocok untuk pengujian algoritma. Cocok untuk pengujian algoritma.
  • 4.
    3. Kesimpulan Kita dapatmenentukan pengujian software sebagai suatu kegiatan yang bertujuan untuk mengevaluasi atribut atau kemampuan dari sebuah program untuk menentukan bahwa telah memenuhi spesifikasi yang dibutuhkan. Pengujian software dapat memberikan pendangan independen dari software untuk memungkinkan bisnis menghargai risiko implementasi software. Untuk melakukan software dengan cara yang lebih efektif, dalam makalah ini telah dijelaskan dan dibandingkan 3 (tiga) teknik pengujian software yang utama. 4. Daftar Pustaka [1] Mohd. Ehmer Kahn, "Different Forms ff Software Testing Techniques for Finding Errors," IJSC, Vol. 7, Issue 3, No 1, pp 11-16, May 2010 [2] Software Testing Methodologies by Azhar available at http://azhar- paperpresentation.blogspot.com/2010/ 04/software-testing- methodologies.html [3] Mohd. Ehmer Khan, “Different Approaches to White Box testing Technique for Finding Errors,” IJSEIA, Vol. 5, No. 3, pp 1-13, July 2011 [4] Software Testing Methods available at http://www.tutorialspoint.com/softwar e_testing/testing_methods.htm [5] Mohd. Ehmer Khan, “Different Approaches to Black Box Testing Technique for Finding Errors,” IJSEA, Vol. 2, No. 4, pp 31-40, October 2011 [6] Grey Box Testing from Wikipedia available at http://en.wikipedia.org/wiki/Gray_box_ testing [7] Comparison among Black Box Testing, Gray Box Testing & White Box Testing available at http://www.softwaretestinggenius.com /articalDetails?qry=404 [8] Predicting the Future of Testing by Harry Robinson available at http://www.stickyminds.com/sitewide.a sp?Function=edetail&ObjectType=COL &ObjectId=6887 [9] Software Testing available at https://www.tutorialspoint.com/softwar e_testing/ [10] Mohd. Ehmer Khan and Farmeena Khan, "A Comparative Study of White Box, Black Box and Grey Box Testing Techniques," IJACSA, Vol. 3, No. 6, 2012