white box and black box testing

on Rabu, 14 Oktober 2009

Desain ujicoba untuk software atau produk teknik lainnya sama sulitnya dengan desain inisial dari produk itu sendiri. Dengan tujuan dari ujicoba itu sendiri yaitu, mendesain ujicoba yang tingkat kemungkinan penemuan kesalahan yang tinggi dengan jumlah waktu dan usaha yang sedikit.
Selama beberapa dekade, metode desain ujicoba kasus telah dikembangkan. Metode ini menyediakan pendekatan sistematik untuk ujicoba. Hal yang lebih penting yaitu, metode-metode ini menyediakan mekanisme yang dapat membantu memastikan kelengkapan ujicoba dan menyediakan tingkat kemungkinan yang tinggi dalam penemuan kesalahan pada software.
Semua produk yang dikembangkan (engineered) dapat diujicoba dengan salah satu cara dari 2 cara berikut :
1.Mengetahui fungsi-fungsi yang dispesifikasikan pada produk yang didesain untuk melakukannya, ujicoba dapat dilakukan dengan mendemonstrasikan setiap fungsi secara menyeluruh;
2. Mengetahui cara kerja internal dari produk, ujicoba dapat dilakukan untuk memastikan bahwa seluruh operasi internal dari produk dilaksanakan berdasarkan pada spesifikasi dan komponen internal telah digunakan secara tepat.
Pendekatan pertama adalah black box testing dan yang kedua adalah white box testing. Black box testing menyinggung ujicoba yang dilakukan pada interface software. Walaupun didesain untuk menemukan kesalahan, ujicoba blackbox digunakan untuk mendemonstrasikan fungsi software yang dioperasikan; apakah input diterima dengan benar, dan ouput yang dihasilkan benar; apakah integritas informasi eksternal terpelihara.
Ujicoba blackbox memeriksa beberapa aspek sistem, tetapi memeriksa sedikit mengenai struktur logikal internal software.
White box testing didasarkan pada pemeriksaan detail prosedural. Alur logikal suatu software diujicoba dengan menyediakan kasus ujicoba yang melakukan sekumpulan kondisi dan/atau perulangan tertentu. Status dari program dapat diperiksa pada beberapa titik yang bervariasi untuk menentukan apakah status yang diharapkan atau ditegaskan sesuai dengan status sesungguhnya.
Sepintas seolah-olah white box testing akan menghasilkan program yang 100% benar, yang diperlukan hanyalah mendefinisikan alur logikal, membangun kasus uji untuk memeriksa software tersebut dan mengevaluasi hasil yang diperoleh. Sayangnya, ujicoba yang menyeluruh ini menghadirkan masalah logical tertentu. Untuk sebuah program sederhana sekalipun, terdapat banyak alur logikal yang memungkinkan.
Sehingga white box testing sebaiknya hanya dilakukan pada alur logikal yang penting. Struktur data-struktur data yang penting dapat diujikan dengan uji validitas. Atribut dari black box testing dan white box testing dapat dikombinasikan untuk digunakan bersama.

    Game Jackpot Menggunakan Visual Basic.Net 2005

    on Kamis, 25 Juni 2009

    Objek

    Properti

    Pengaturan

    Form 1

    Text

    BackgroundImage

    Jackpot

    DSC01013.JPG

    PictureBox 1

    Name

    Visible

    picPilih 1

    False

    PictureBox 2

    Name

    Visible

    picPilih 2

    False

    PictureBox 3

    Name

    Visible

    picPilih 3

    False

    PictureBox 4

    Name

    Visible

    picPilih 4

    False

    PictureBox 5

    Name

    Visible

    picPilih 5

    False

    PictureBox 6

    Name

    Visible

    picPilih 6

    False

    PictureBox 7

    Name

    Visible

    picPilih 7

    False

    PictureBox 8

    BackColor

    BorderStyle

    Name

    Size

    White

    Fixed3D

    picSlot1

    73;73

    PictureBox 9

    BackColor

    BorderStyle

    Name

    Size

    White

    Fixed3D

    picSlot2

    73;73

    PictureBox 10

    BackColor

    BorderStyle

    Name

    Size

    White

    Fixed3D

    picSlot3

    73;73

    Button 1

    BackColor

    Cursor

    FlatStyle

    Font

    Text

    Name

    PeachPuff

    Hand

    Popup

    Goudy Stout,12pt

    &SPIN

    btnSpin

    Button 2

    BackColor

    Cursor

    FlatStyle

    Font

    Text

    Name

    PeachPuff

    Hand

    Popup

    Goudy Stout,12pt

    &EXIT

    btnOK

    Button 3

    BackColor

    Cursor

    FlatStyle

    Font

    Text

    Name

    PeachPuff

    Hand

    Popup

    Goudy Stout,12pt

    &Wallpaper

    btnWpp

    Button 4

    BackColor

    Cursor

    FlatStyle

    Font

    Text

    Name

    PeachPuff

    Hand

    Popup

    Goudy Stout,12pt

    &ABOUT

    btnStg

    Label 1

    Font

    TextAlign

    Name

    ArialBlack,9pt

    MiddleCenter

    lblUang

    Timer 1

    Name

    TimSpin

    Timer 2

    Interval

    Name

    1000

    TimStop1

    Timer 3

    Interval

    Name

    2000

    TimStop2

    Timer 4

    Interval

    Name

    3000

    TimStop3

    Coding Programnya adalah :

    Option Explicit On

    Option Strict On

    Public Class Form1

    Dim Uang As Integer

    Dim Final(3) As Integer

    Dim Pilih(7) As PictureBox

    Const jeruk As Integer = 1

    Const cherry As Integer = 2

    Const gom2 As Integer = 3

    Const meyie As Integer = 4

    Const manda As Integer = 5

    Const tujuh As Integer = 6

    Const Bar As Integer = 7

    Private Function AngkaAcak() As Integer

    Return CInt(Rnd() * 7 - 0.5) + 1

    End Function

    Private Sub btnOK_Click(ByVal sender As System.Object, ByVal e As _ System.EventArgs) Handles btnOK.Click

    MessageBox.Show("ANDA MENDAPATKAN UANG SEBESAR Rp." + Str(Uang) + _ " " + "TERIMA KASIH TELAH MEMAINKAN GAMES KAMI")

    Me.Close()

    End Sub

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As _ System.EventArgs) Handles MyBase.Load

    Me.lbljam.Text = Format(Now, "dddd,dd MMM yyyy HH : mm : ss")

    Randomize()

    Uang = 100000

    picPilih1.Image = Image.FromFile("jeruk.jpg")

    picPilih2.Image = Image.FromFile("cherry.jpg")

    picPilih3.Image = Image.FromFile("gom2.jpg")

    picPilih4.Image = Image.FromFile("meyie.jpg")

    picPilih5.Image = Image.FromFile("manda.jpg")

    picPilih6.Image = Image.FromFile("tujuh.jpg")

    picPilih7.Image = Image.FromFile("bar.jpg")

    Pilih(1) = picPilih1

    Pilih(2) = picPilih2

    Pilih(3) = picPilih3

    Pilih(4) = picPilih4

    Pilih(5) = picPilih5

    Pilih(6) = picPilih6

    Pilih(7) = picPilih7

    Me.CenterToScreen()

    picSlot1.Image = Pilih(AngkaAcak()).Image

    picSlot2.Image = Pilih(AngkaAcak()).Image

    picSlot3.Image = Pilih(AngkaAcak()).Image

    btnSpin.Focus()

    End Sub

    Private Sub btnSpin_Click(ByVal sender As System.Object, ByVal e As_ System.EventArgs) Handles btnSpin.Click

    My.Computer.Audio.Play(My.Resources.spin,AudioPlayMode.BackgroundLoop)

    If Uang = 0 Then

    MessageBox.Show("Uang habis!", "Game Over", _

    MessageBoxButtons.OK)

    Me.Close()

    End If

    Uang -= 1000

    TimSpin.Enabled = True

    TimStop1.Enabled = True

    TimStop2.Enabled = True

    TimStop3.Enabled = True

    End Sub

    Private Sub TimSpin_Tick(ByVal sender As System.Object, ByVal e As_ System.EventArgs) Handles TimSpin.Tick

    My.Computer.Audio.Play(My.Resources.spin,AudioPlayMode.BackgroundLoop)

    If TimStop1.Enabled Then

    picSlot1.Image = Pilih(AngkaAcak()).Image

    End If

    If TimStop2.Enabled Then

    picSlot2.Image = Pilih(AngkaAcak()).Image

    End If

    If TimStop3.Enabled Then

    picSlot3.Image = Pilih(AngkaAcak()).Image

    End If

    End Sub

    Private Sub TimStop1_Tick(ByVal sender As System.Object, ByVal e As_ System.EventArgs) Handles TimStop1.Tick

    TimStop1.Enabled = False

    Final(1) = AngkaAcak()

    picSlot1.Image = Pilih(Final(1)).Image

    picSlot1.Refresh()

    End Sub

    Private Sub TimStop2_Tick(ByVal sender As System.Object, ByVal e As_ System.EventArgs) Handles TimStop2.Tick

    TimStop2.Enabled = False

    Final(2) = AngkaAcak()

    picSlot2.Image = Pilih(Final(2)).Image

    picSlot2.Refresh()

    End Sub

    Private Sub TimStop3_Tick(ByVal sender As System.Object, ByVal e As_ System.EventArgs) Handles TimStop3.Tick

    Dim Menang As Integer

    TimStop3.Enabled = False

    Final(3) = AngkaAcak()

    picSlot3.Image = Pilih(Final(3)).Image

    picSlot3.Refresh()

    TimSpin.Enabled = False

    If Final(1) = cherry Then

    Menang = 2000

    If Final(2) = cherry Then

    Menang = 4000

    If Final(3) = cherry Then

    Menang = 6000

    End If

    End If

    ElseIf Final(1) = gom2 And Final(2) = gom2 And _

    Final(3) = gom2 Then

    Menang = 10000

    ElseIf Final(1) = meyie And Final(2) = meyie And _

    Final(3) = meyie Then

    Menang = 15000

    ElseIf Final(1) = manda And Final(2) = manda And _

    Final(3) = manda Then

    Menang = 20000

    ElseIf Final(1) = tujuh And Final(2) = tujuh Then

    Menang = 25000

    If Final(3) = tujuh Then

    Menang = 50000

    End If

    End If

    Uang += Menang

    If Menang = 50000 Then

    lblUang.Text = "Jackpot Mng 50000"

    My.Computer.Audio.Play(My.Resources.jackpot,AudioPlayMode.WaitToComplete)

    ElseIf Menang > 0 Then

    lblUang.Text = "Menang Rp. " + Format(Menang, "0")

    My.Computer.Audio.Play(My.Resources.Win,AudioPlayMode.WaitToComplete)

    Else

    lblUang.Text = "Maaf"

    My.Computer.Audio.Play(My.Resources.Blow,AudioPlayMode.WaitToComplete)

    End If

    lblUang.Text += " - Uang Rp. " + Format(Uang, "0")

    End Sub

    Private Sub btnWpp_Click(ByVal sender As System.Object, ByVal e As_ System.EventArgs) Handles btnWpp.Click

    OpenFileDialog1.Filter = "jpeg|*.jpg|bitmap|*.bmp|gif|*.gif"

    OpenFileDialog1.ShowDialog()

    End Sub

    Private Sub OpenFileDialog1_FileOk(ByVal sender As System.Object, ByVal_ e As System.ComponentModel.CancelEventArgs) Handles OpenFileDialog1.FileOk

    Me.BackgroundImage = New Bitmap(Me.OpenFileDialog1.FileName)

    End Sub

    Private Sub btnStg_Click(ByVal sender As System.Object, ByVal e As_ System.EventArgs) Handles btnStg.Click

    MessageBox.Show("cara bermain games ini sangat mudah. Anda_

    cukup meng-klik tombol spin dan membiarkannya berhenti.Anda akan mendapatkan_ nilai seperti terdapat pada ketentuan.Apabila gambar yang Anda dapatkan_

    tidak ada dalam ketentuan maka nilai Anda akan di kurangi Rp.1.000,-_

    Anda juga dapat mengganti wallpaper games ini sesuai selera Anda. Silahkan_ mencoba... semoga Anda cepat kaya!")

    End Sub

    Private Sub timjam_Tick(ByVal sender As System.Object, ByVal e As_ System.EventArgs) Handles timjam.Tick

    Me.lbljam.Text = Format(Now, "dddd,dd MMM yyyy HH : mm : ss")

    End Sub

    End Class

    Keterangan Coding Programnya :

    Option Explicit On

    Option Strict On

    Kedua fungsi ini berfungsi untuk menampilkan kesalahan sintaks apabila kita membuat konversi tipe data secara eksplisit yang bisa menyebabkan hilangnya data. Juga adanya penanganan eksepsi ( kejadian yang tidak diharapkan yang muncul saat kode di eksekusi). Kedua fungsi ini juga mengurangi ketidak-telitian programmer dalam mendeklarasikan variable yang digunakan. Dengan fungsi ini, tidak ada variable yang sama yang dideklarasikan dengan tipe yang berbeda. Sehingga kesalahan dalam pengkodean program menjadi lebih sedikit.

    Dim Uang As Integer

    Dim Final(3) As Integer

    Dim Pilih(7) As PictureBox

    Const jeruk As Integer = 1

    Const cherry As Integer = 2

    Const gom2 As Integer = 3

    Const meyie As Integer = 4

    Const manda As Integer = 5

    Const tujuh As Integer = 6

    Const Bar As Integer = 7

    Disini, semua variabel yang akan digunakan di deklarasikan.

    Uang : Menampung nilai uang yang diakumulasikan

    Final(3) : Array yang menampung gambar akhir dari perputaran gambar pada 3 PicSlot

    Pilih(7) : Array yang menampung setiap gambar pada 7 picPilih

    jeruk : Isi dari Array ke (1)

    cherry : Isi dari Array ke (2)

    gom2 : Isi dari Array ke (3)

    meyie : Isi dari Array ke (4)

    manda : Isi dari Array ke (5)

    tujuh : Isi dari Array ke (6)

    bar : Isi dari Array ke (7)

    Private Function AngkaAcak() As Integer

    Return CInt(Rnd() * 7 - 0.5) + 1

    End Function

    Fungsi untuk mengacak tujuh gambar yang ada. Fungsi ini nantinya akan dipanggil pada saat tombol spin ditekan.

    Private Sub btnOK_Click(ByVal sender As System.Object, ByVal e As _ System.EventArgs) Handles btnOK.Click

    MessageBox.Show("ANDA MENDAPATKAN UANG SEBESAR Rp." + Str(Uang) + _ " " + "TERIMA KASIH TELAH MEMAINKAN GAMES KAMI")

    Me.Close()

    End Sub

    Tombol exit untuk keluar dari permainan. Sebelum benar – benar keluar dari aplikasi permainan jackpot, akan keluar sebuah messageBox yang berisi jumlah uang yang terakhir di dapatkan. Kemudian aplikasi akan di tutup setelah pengguna menekan tombol OK.

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As _ System.EventArgs) Handles MyBase.Load

    Me.lbljam.Text = Format(Now, "dddd,dd MMM yyyy HH : mm : ss")

    Randomize()

    Uang = 100000

    picPilih1.Image = Image.FromFile("jeruk.jpg")

    picPilih2.Image = Image.FromFile("cherry.jpg")

    picPilih3.Image = Image.FromFile("gom2.jpg")

    picPilih4.Image = Image.FromFile("meyie.jpg")

    picPilih5.Image = Image.FromFile("manda.jpg")

    picPilih6.Image = Image.FromFile("tujuh.jpg")

    picPilih7.Image = Image.FromFile("bar.jpg")

    Pilih(1) = picPilih1

    Pilih(2) = picPilih2

    Pilih(3) = picPilih3

    Pilih(4) = picPilih4

    Pilih(5) = picPilih5

    Pilih(6) = picPilih6

    Pilih(7) = picPilih7

    Me.CenterToScreen()

    picSlot1.Image = Pilih(AngkaAcak()).Image

    picSlot2.Image = Pilih(AngkaAcak()).Image

    picSlot3.Image = Pilih(AngkaAcak()).Image

    btnSpin.Focus()

    End Sub

    Kami menyediakan sebuah label jam pada sudut kanan bawah permainan jackpot. Jam ini akan muncul sejak pertama kali aplikasi di jalankan. Bersamaan dengan itu, pada setiap picPilih akan disimpankan gambar yang nantinya akan dimunculkan secara acak. Kemudian setiap picPilih ini dideklarasikan sebagai array. Me.CenterToScreen( ) berfungsi untuk menempatkan form ke tengah layar pada saat aplikasi dijalankan. Randomize( ) berfungsi untuk membuat array benar-benar acak. Dan pada masing- masing picSlot juga langsung ditempatkan gambar yang sudah di acak. Kami juga mengeset tombol Spin sebagai focus, agar pengguna dapat menekan tombol Enter atau huruf S untuk menjalankan Spin.

    Private Sub btnSpin_Click(ByVal sender As System.Object, ByVal e As_ System.EventArgs) Handles btnSpin.Click

    My.Computer.Audio.Play(My.Resources.spin,AudioPlayMode.BackgroundLoop)

    If Uang = 0 Then

    MessageBox.Show("Uang habis!", "Game Over", _

    MessageBoxButtons.OK)

    Me.Close()

    End If

    Uang -= 1000

    TimSpin.Enabled = True

    TimStop1.Enabled = True

    TimStop2.Enabled = True

    TimStop3.Enabled = True

    End Sub

    Pada saat button Spin ditekan, akan keluar suara spin yang sudah kami simpan di dalam resource. Penyimpanan file suara atau gambar di dalam resource, agar pengguna tidak perlu lagi mengganti directory suara atau gambar tersebut pada saat program ini dipindahkan ke komputer lain atau ke folder yang berbeda.

    Apabila uang sudah habis, maka pada saat tombol spin di tekan, akan keluar sebuah messageBox yang memberi tahu pemain bahwa uangnya sudah habis.

    Private Sub TimSpin_Tick(ByVal sender As System.Object, ByVal e As_ System.EventArgs) Handles TimSpin.Tick

    My.Computer.Audio.Play(My.Resources.spin,AudioPlayMode.BackgroundLoop)

    If TimStop1.Enabled Then

    picSlot1.Image = Pilih(AngkaAcak()).Image

    End If

    If TimStop2.Enabled Then

    picSlot2.Image = Pilih(AngkaAcak()).Image

    End If

    If TimStop3.Enabled Then

    picSlot3.Image = Pilih(AngkaAcak()).Image

    End If

    End Sub

    Disini gambar akan ditampilkan secara acak ke masing – masing picSlot yang sudah disediakan. Tempo pengacakan gambar pada setiap timer pada setiap picSlot dibuat berbeda intervalnya, agar picSlot 1 lebih dulu berhenti diikuti picSlot 2 kemudian picSlot 3.

    Private Sub TimStop1_Tick(ByVal sender As System.Object, ByVal e As_ System.EventArgs) Handles TimStop1.Tick

    TimStop1.Enabled = False

    Final(1) = AngkaAcak()

    picSlot1.Image = Pilih(Final(1)).Image

    picSlot1.Refresh()

    End Sub

    Private Sub TimStop2_Tick(ByVal sender As System.Object, ByVal e As_ System.EventArgs) Handles TimStop2.Tick

    TimStop2.Enabled = False

    Final(2) = AngkaAcak()

    picSlot2.Image = Pilih(Final(2)).Image

    picSlot2.Refresh()

    End Sub

    Private Sub TimStop3_Tick(ByVal sender As System.Object, ByVal e As_ System.EventArgs) Handles TimStop3.Tick

    Dim Menang As Integer

    TimStop3.Enabled = False

    Final(3) = AngkaAcak()

    picSlot3.Image = Pilih(Final(3)).Image

    picSlot3.Refresh()

    TimSpin.Enabled = False

    If Final(1) = cherry Then

    Menang = 2000

    If Final(2) = cherry Then

    Menang = 4000

    If Final(3) = cherry Then

    Menang = 6000

    End If

    End If

    ElseIf Final(1) = gom2 And Final(2) = gom2 And _

    Final(3) = gom2 Then

    Menang = 10000

    ElseIf Final(1) = meyie And Final(2) = meyie And _

    Final(3) = meyie Then

    Menang = 15000

    ElseIf Final(1) = manda And Final(2) = manda And _

    Final(3) = manda Then

    Menang = 20000

    ElseIf Final(1) = tujuh And Final(2) = tujuh Then

    Menang = 25000

    If Final(3) = tujuh Then

    Menang = 50000

    End If

    End If

    Uang += Menang

    If Menang = 50000 Then

    lblUang.Text = "Jackpot Mng 50000"

    My.Computer.Audio.Play(My.Resources.jackpot,AudioPlayMode.WaitToComplete)

    ElseIf Menang > 0 Then

    lblUang.Text = "Menang Rp. " + Format(Menang, "0")

    My.Computer.Audio.Play(My.Resources.Win,AudioPlayMode.WaitToComplete)

    Else

    lblUang.Text = "Maaf"

    My.Computer.Audio.Play(My.Resources.Blow,AudioPlayMode.WaitToComplete)

    End If

    lblUang.Text += " - Uang Rp. " + Format(Uang, "0")

    End Sub

    Gambar akhir, hasil dari pengacakan pada picSlot 1 , kemudian disimpan dalam sebuah variabel array Final(1) begitu juga pada picSlot 2 dan 3. Setelah picSlot 3 selesai menempatkan gambarnya pada Final(3), langsung dilakukan pengecekan terhadap hasil gambar yang didapatkan apakah ada yang sama dengan ketentuan yang sudah ditetapkan. Apabila ada salah satu dari ketentuan gambar tersebuat, maka uang akan ditambahkan sesuai dengan ketentuan tersebut. Dan nilai uang yang sudah ditambahkan akan dicetak ke lblUang. Dan akan keluar suara win.wav. Sebaliknya, apabila tidak ada gambar yang sama dengan ketentuan yang ada, akan dicetak kata “maaf” ke lblUang tersebut, dan akan keluar suara blow.wav.

    Private Sub btnWpp_Click(ByVal sender As System.Object, ByVal e As_ System.EventArgs) Handles btnWpp.Click

    OpenFileDialog1.Filter = "jpeg|*.jpg|bitmap|*.bmp|gif|*.gif"

    OpenFileDialog1.ShowDialog()

    End Sub

    Private Sub OpenFileDialog1_FileOk(ByVal sender As System.Object, ByVal_ e As System.ComponentModel.CancelEventArgs) Handles OpenFileDialog1.FileOk

    Me.BackgroundImage = New Bitmap(Me.OpenFileDialog1.FileName)

    End Sub

    Untuk membuat permainan jackpot ini fleksibel. Kami sengaja membuat fasilitas untuk mengganti wallpaper sesuai dengan keinginan pengguna. Pada saat button wallpaper ditekan, akan keluar sebuah kotak dialog open file, yang akan memudahkan pengguna untuk memilih directory penyimpanan gambar yang pengguna inginkan sebagai wallpaper permainan jackpot ini. Setelah pengguna menekan tombol open maka gambar yang dipilih akan ditempatkan sebagai backgroundImage permainan ini. Kami juga membatasi file gambar yang akan diambil yaitu hanya gambar yang ekstensinya jpg, bmp, dan gif.

    Private Sub btnStg_Click(ByVal sender As System.Object, ByVal e As_ System.EventArgs) Handles btnStg.Click

    MessageBox.Show("cara bermain games ini sangat mudah. Anda_

    cukup meng-klik tombol spin dan membiarkannya berhenti.Anda akan mendapatkan_ nilai seperti terdapat pada ketentuan.Apabila gambar yang Anda dapatkan_

    tidak ada dalam ketentuan maka nilai Anda akan di kurangi Rp.1.000,-_

    Anda juga dapat mengganti wallpaper games ini sesuai selera Anda. Silahkan_ mencoba... semoga Anda cepat kaya!")

    End Sub

    Kami memberikan bantuan untuk pengguna yang belum mengetahui cara bermain game kami dengan membuat satu button ABOUT yang apabila ditekan akan memunculkan sebuah MessageBox yang berisi penjelasan tentang cara bermain permainan jackpot yang kami buat.

    Private Sub timjam_Tick(ByVal sender As System.Object, ByVal e As_ System.EventArgs) Handles timjam.Tick

    Me.lbljam.Text = Format(Now, "dddd,dd MMM yyyy HH : mm : ss")

    End Sub

    timJam ini adalah sebuah timer yang mengatur jam yang dimunculkan pada sudut kanan bawah form permainan jackpot ini. Agar pengguna dapat melihat waktu saat bermain permainan jackpot ini.