Latest Games :

Advertise

Home » , » pengujian black box dan white box testing dan implementasi

pengujian black box dan white box testing dan implementasi

Rabu, 13 Februari 2019 | 0 komentar





pengujian black box dan white box

A.                Definisi Black Box

Black box testing adalah pengujian yang dilakukan hanya mengamati hasil eksekusi melalui data uji dan memeriksa fungsional dari perangkat lunak. Jadi dianalogikan seperti kita melihat suatu koatak hitam, kit hanya bisa melihat penampilan luarnya saja, tanpa tau ada apa dibalik bungkus hitam nya. Sama seperti pengujian black box, mengevaluasi hanya dari tampilan luarnya(interface nya) , fungsionalitasnya.tanpa mengetahui apa sesungguhnya yang terjadi dalam proses detilnya (hanya mengetahui input dan output).


Black Box pengujian adalah metode pengujian perangkat lunak yang menguji fungsionalitas aplikasi yang bertentangan dengan struktur internal atau kerja (lihat pengujian white-box). Pengetahuan khusus dari kode aplikasi / struktur internal dan pengetahuan pemrograman pada umumnya tidak diperlukan. Uji kasus dibangun di sekitar spesifikasi dan persyaratan, yakni, aplikasi apa yang seharusnya dilakukan. Menggunakan deskripsi eksternal perangkat lunak, termasuk spesifikasi, persyaratan, dan desain untuk menurunkan uji kasus. Tes ini dapat menjadi fungsional atau non-fungsional, meskipun biasanya fungsional. Perancang uji memilih input yang valid dan tidak valid dan menentukan output yang benar. Tidak ada pengetahuan tentang struktur internal benda uji itu.


Metode uji dapat diterapkan pada semua tingkat pengujian perangkat lunak: unit, integrasi, fungsional, sistem dan penerimaan. Ini biasanya terdiri dari kebanyakan jika tidak semua pengujian pada tingkat yang lebih tinggi, tetapi juga bisa mendominasi unit testing juga.


Pengujian pada Black Box berusaha menemukan kesalahan seperti:


        Fungsi-fungsi yang tidak benar atau hilang
        Kesalahan interface
        Kesalahan dalam struktur data atau akses database eksternal
        Kesalahan kinerja
        Inisialisasi dan kesalahan terminasi


Menurut Myers (1979) Bkack Box Adalah Proses menjalankan program dengan maksud menemukan kesalahan.


Menurut IEEE (1990) : Pengujian yang mengabaikan mekanisme internal sistem atau komponen dan fokus semata-mata pada output yang dihasilkan yang merespon input yang dipilih dan kondisi eksekusi. Pengujian yang dilakukan untuk mengevaluasi pemenuhan sistem atau komponen dengan kebutuhan fungsional tertentu.


Black box  Digunakan untuk menguji fungsi-fungsi khusus dari PL yang dirancang. Kebenaran pengujian dilihat dari keluaran yang dihasilkan dari data atau kondisi masukan yang diberikan untuk fungsi yang ada tanpa melihat bagaimana proses untuk mendapatkan keluaran tersebut.  Dari keluaran yang dihasilkan, kemampuan program dalam memenuhi kebutuhan pemakai dapat diukur sekaligus dapat diketahui kesalahannya.


Black Box...



 


Tujuan Black Box



1.      Fungsi yang tidak benar atau hilang


2.      Kesalahan interface


3.      Error pada struktur data atau akses database external


4.      Error pada kinerja


5.      Error pada saat inisialisasi dan terminasi


6.      Kesensitifan sistem terhadap nilai input tertentu


7.      Batasan dari suatu data


Pertanyaan yang akan dijawab dari pengujian Black Box...?



1.      Bagaimana validitas fungsional diuji ?


2.      Jenis input apa yang akan membuat kasus pengujian


3.      menjadi  lebih baik ?


4.      Apakah sistem akan sangat sensitif terhadap nilai input   tertentu ?


5.       Bagaimana batasan dari suatu data diisolasi ?


6.       Berapa rasio data dan jumlah data yang dapat


7.      ditoleransi  oleh system ?


8.      Apa akibat yang akan timbul dari kombinasi spesifik data  pada operasi sistem?




Beberapa metode/teknik pengujian Black Box



1.      Metode Graph Based


2.      Metode Equivalence Partitioning


3.      State Transition Table


4.      Boundary Values Analysis


 Metode Graph Based


1.      Pada teknik/metode ini langkah yang dilakukan  dalah memahami objek (data dan program) yang dimodelkan didalam PL


2.      Langkah selanjutnya menentukan sederetan pengujian yang membuktikan bahwa semua objek memiliki hubungan antara satu dengan lainnya.



Metode Graph Based.




                   = Simpul, merepresentasikan objek


                  = link, merepresentasikan hubungan antar  objek


Beban simpul (node weight), menggambarkan properti dari suatu simpul


Beban link (link weight), menggambarkan karakterisktik suatu link


Contoh grafik pengolah kata (MS.Word)


Pendekatan pengujian :



1.      Definisikan semua simpul dan beban simpul dimana objek dan atribut didefenisikan.


      Tentukan titik mulai (simpul masuk) dan berhenti (simpul keluar)


2.      Bangun link dan beban link kemudian diberi nama.


3.      Masing – masing link dipelajari secara terpisah, sehingga test case dapat didesain.


4.      Jika terdapat hubungan transitif, maka pelajari hubungan tersebut untuk menentukan bagaimana pengaruh hubungan tersebut menyebar pada objek yang ditentukan.



Contoh hubungan transitif :   Ada 3 objek X,Y,Z


   hubungannya :


diperlukan untuk menghitung Y


diperlukan untuk menghitung Z


sehingga dibangun hubungan transitif antara X dgn Z :


  X diperlukan untuk menghitung Z


Secara grafis :





1.      Untuk link simetris, bila link tersebut benar – benar 2 arah (simetris), maka harus diuji kedua arah tersebut.


2.       Pada saat desain test case dimulai, harus diperhatikan :


ü  Cakupan simpul (node coverage)


ü  Cakupan link (link coverage)


 Metode Equivalence Partitioning


ü   Merupakan test case yang ideal mengungkapkan kelas kesalahan, karena pada teknik ini berusaha mengungkapkan kelas-kelas kesalahan sehingga mengurangi jumlah total test case yang harus dikembangkan.


ü  Metode ini membagi domain input dari suatu program  kedalam kelas - kelas data sehingga test case dapat diperoleh.


ü  Kelas data yang terbentuk disajikan sebagai kondisi input dalam kasus uji.


ü   Kelas merupakan himpunan nilai-nilai yang valid dan tidak valid.


ü   Desain test case partisi ekivalensi didasarkan pada evaluasi terhadap kelas ekivalensi untuk suatu kondisi input




Contoh Form Pengujian


1.      Pengujian Interface Sistem



Pengujian fungsi interface sistem bertujuan untuk mengetahui fungsionalitas dari elemen-elemen interface yang terdapat didalam halaman sistem. Elemen-elemen interface yang diujikan adalah elemen button


B.                 Pengertian White Box Testing


White box testing adalah pengujian yang didasarkan pada pengecekan terhadap detail perancangan, menggunakan struktur kontrol dari desain program secara procedural untuk membagi pengujian ke dalam beberapa kasus pengujian. Secara sekilas dapat diambil kesimpulan white box testing merupakan petunjuk untuk mendapatkan program yang benar secara 100%.



1.  Tujuan white box testing :


a)      Untuk mengetahui cara kerja suatu perangkat lunak secara internal.


b)      Untuk menjamin operasi - operasi internal sesuai dengan spesifikasi yang telah ditetapkan dengan menggunakan struktur kendali dari prosedur yang dirancang.


2.   Pelaksanaan white box testing :


a)      Menjamim seluruh independent path dieksekusi paling sedikit satu kali. Independent path adalah jalur dalam program yang menunjukkan paling sedikit satu kumpulan proses ataupun kondisi baru.


b)      Menjalani logical decision pada sisi dan false.


c)      Mengeksekusi pengulangan (looping) dalam batas - batas yang ditentukan.


d)     Menguji struktur data internal.



3.      Langkah - langkah white box testing :



a)      Mendefinisikan semua alur logika.


b)      Membangun kasus            untuk   digunakan dalam pengujian.


c)      Melakukan pengujian.


4.       Kelebihan dan Kekurangan White Box Testing:



a)   Mengetahui Kesalahan logika, dimana digunakan pada sintaks ‘if’ dan pengulangan. White Box Testing akan mendeteksi kondisi - kondisi yang tidak sesuai dan mendeteksi kapan proses pengulangan akan berhenti.


b)   Ketidaksesuaian asumsi, yaitu menampilkan asumsi yang tidak sesuai dengan kenyataan, yang selanjutnya untuk di analisis dan diperbaiki.


c)   Kesalahan ketik, berguna untuk mendeteksi bahasa pemrograman yang bersifat case sensitive.


d)  Kekurangan dari pengujian ini adalah saat pengujian untuk perangkat lunak yang tergolong besar. White Box Testing dianggap sebagai strategi yang tergolong boros, karena akan melibatkan sumber daya yang besar untuk melakukannya.


5.    Jenis – Jenis White Box Testing

 Notasi Diagram Alir (Path Graph Notation)


Notasi yang digunakan untuk menggambarkan jalur eksekusi adalah notasi diagram alir atau grafik program, yang menggunakan notasi lingkaran (simpul atau node) dan anak panah (link atau edge). Notasi ini menggambarkan aliran control logika yang digunakan dalam suatu bahasa pemrograman. Setiap representasi rancangan prosedural dapat diterjemahkan kedalam flow graph.



Gambar Notasi Diagram Alir.




Gambar dibawah ini merupakan bagian dari PDL (Program Design Language) dan flow graph-nya.


5.       Kompleksitas Siklomatis (Cyclomatic Complexity)

Kompleksitas Siklomatis adalah metriks perangkat lunak yang memberikan pengukuran kuantitatif terhadap kompleksitas logis suatu program. Ketika digunakan dalam konteks metode ujicoba berbasis alur, nilai yang didapat akan menentukan jumlah jalur independen dalam himpunan path, serta akan memberi nilai batas atas bagi jumlah pengujian yang harus dilakukan, untuk memastikan bahwa semua pernyataan telah dieksekusi sedikitnya satu kali.


Jalur independent adalah jalur yang terdapat dalam program yang mengintroduksi sedikitnya satu rangkaian pernyataan proses atau kondisi baru.


Berdasarkan contoh PDL yang pertama, maka jalur independent yang didapat:


Jalur 1 : 1 – 11


Jalur 2 : 1 – 2 – 3 – 4 – 5 – 10 – 1 – 11


Jalur 3 : 1 – 2 – 3 – 6 – 8 – 9 – 10 – 1 – 11


Jalur 4 : 1 – 2 – 3 – 6 – 7 – 9 – 10 – 1 – 11


Misalkan setip path yang baru memunculkan edge yang baru, dengan path :


1 – 2 – 3 – 4 – 5 – 10 – 1 – 2 – 3 – 6 – 8 – 9 – 10 – 1 – 11


Path diatas tidak dianggap sebagai independent path karena kombinasi path diatas telah didefinisikan sebelumnya Ketika ditetapkan dalam graf alur, maka independent path harus bergerak sedikitnya 1 edge yang belum pernah dilewati sebelumnya.


Kompleksitas cyclomatic dapat dicari dengan salah satu dari 3 cara berikut :


1.      Jumlah region dari grafik alur mengacu kepada komplesitas cyclomatic


2.      Kompleksitas cyclomatic V(G) untuk grafik alur G didefinisikan sebagai:


V(G) = E – N + 2, dimana E = jumlah edge, dan N = jumlah node


3.      Kompleksitas cyclomatic V(G) untuk grafik alur G didefinisikan sebagai:


V(G) = P + 1, dimana P = jumlah predicates nodes yang diisikan dalam grafik alor G


Simpul Predikat adalah penggambaran suatu node yang memiliki satu atau lebih inputan, dan lebih dari satu output.


Berdasarkan flow graph gambar (b) diatas, maka kompleksitas cyclomatic-nya dapat di hitung sebagai berikut :


Grafik alir diatas mempunyai 4 region V(G) = 11 edges – 9 nodes + 2 = 4


V(G) = 3 predicates nodes + = 4


Hasil kompleksitas cyclomatic menggambarkan banyaknya path dan batas atas sejumlah ujicoba yang harus dirancang dan dieksekusi untuk seluruh perintah dalam program.


Berdasarkan contoh PDL yang kedua, maka jalur independent yang didapat :


Jalur 1 : 1,2,3 – 4 – 5 – 10 – 11 – 12


Jalur 2 : 1,2,3 – 4 – 6 – 7 – 9 – 10 – 11 – 12


Jalur 3 : 1,2,3 – 4 – 8 – 9 – 10 – 11 – 12


Contoh pengujian white-box


Menurut kebutuhan segitiga diberikan di bawah ini untuk menyelesaikan proses dan menyelesaikan tes:


1. Masukan kondisi:


1, kondisi 1: a + b c


2, kondisi 2: a + c b


3, kondisi 3: b + c a


4, kondisi 04:00


5, kondisi 5-0


6, 7 kondisi 6-0, kondisi 7: a == b


8, kondisi 8: a == c


9, kondisi 9: b == c


10, kondisi 10: a2 + b2 c2 ==


11, kondisi 11: a2 + b2 c2 ==


12, kondisi 12: c2 + a2 == b2


2.      Output:


1, tidak dapat terbentuk segitiga


2, sebuah segitiga sama sisi


3, segitiga sama kaki


4, segi tiga siku-siku


5, segitiga umum


6, beberapa pihak tidak memenuhi pembatasan




6.       Berikut Contoh White Box Testing Software Contoh Testing White Box 1:


 


Menggunakan grafik aliran ini, kita dapat menghitung jumlah jalur independen melalui kode. Kami melakukan ini dengan menggunakan metrik disebut nomor cyclomatic (McCabe, 1976), yang didasarkan pada teori grafik. Cara termudah untuk menghitung jumlah siklomatik adalah dengan menghitung jumlah conditional / predikat (diamond) dan tambahkan 1. Dalam contoh di atas, ada lima conditional. Oleh karena itu, jumlah cyclomatic kami adalah 6, dan kami memiliki enam jalur independen melalui kode. Jadi kita sekarang dapat menghitungnya:


1.      1-2-3-4-5-10 (properti yang dimiliki oleh orang lain, tidak mempunyai uang untuk sewa)


2.      1-2-3-4-6-10 (properti yang dimiliki oleh orang lain, membayar sewa)


3.      1-2-3-10 (properti yang dimiliki oleh pemain)


4.      1-2-7-10 (properti yang tersedia, tidak memiliki cukup uang)


5.      1-2-7-8-10 (properti yang tersedia, punya uang, tidak ingin membelinya)


6.      1-2-7-8-9-10 (properti yang tersedia, punya uang, dan membelinya)


Kami ingin menulis kasus pengujian untuk memastikan bahwa setiap jalur yang akan diuji setidaknya sekali. Seperti dikatakan di atas, jumlah siklomatik adalah batas bawah pada jumlah kasus uji yang akan kita tulis. Uji kasus yang ditentukan dengan cara ini adalah yang kami gunakan dalam pengujian basis patch.


Contoh Pengujian White Box 2:


Step 1: Contoh prosedur di bawah ini menunjukkan bagaimana laporan algoritma dipetakan ke node grafik, nomor di sebelah kiri.


public double calculate(int amount)


    {


-1-  double rushCharge = 0;


-1-               if (nextday.equals("yes") )


     {


-2-               rushCharge = 14.50;


     }


-3-               double tax = amount * .0725;


-3-                 if (amount >= 1000)


     {


-4-                 shipcharge = amount * .06 + rushCharge;


     }


-5-                 else if (amount >= 200)


     {


-6-                 shipcharge = amount * .08 + rushCharge;


     }


-7-                 else if (amount >= 100)


     {


-8-                 shipcharge = 13.25 + rushCharge;


     }


-9-                 else if (amount >= 50)


     {


-10-             shipcharge = 9.95 + rushCharge;


     }


-11-             else if (amount >= 25)


     {


-12-             shipcharge = 7.25 + rushCharge;


     }       else


     {


-13-             shipcharge = 5.25 + rushCharge;


     }


-14-             total = amount + tax + shipcharge;


-14- return total;


     } //end calculate


         


Dibawah ini adalah flowchart dari contoh program diatas:




Step 2: Menentukan kompleksitas cyclomatic dari grafik aliran.


V(G) = E - N + 2


        = 19 - 14 + 2


        =  7


Keterangan:


E : Jumlah Busur atau Link


N : Jumlah Simpul


Ini menjelaskan bahwa  batas atas pada ukuran basis set. Artinya, memberikan jumlah jalur independen yang perlu kita cari.


Step 3: Menentukan dasar jalur independen


Path 1:  1 - 2 - 3 - 5 - 7 - 9 - 11 - 13 - 14


Path 2:  1 - 3 - 4 - 14


Path 3:  1 - 3 - 5 - 6 - 14



Path 4:  1 - 3 - 5 - 7 - 8 - 14


Path 5:  1 - 3 - 5 - 7 - 9 - 10 - 14


Path 6:  1 - 3 - 5 - 7 - 9 - 11 - 12 - 14


Path 7:  1 - 3 - 5 - 7 - 9 - 11 - 13 – 14






Share this article :

Tidak ada komentar:

Posting Komentar

 
Support : Creating Website | Johny Template | Mas Template
Copyright © 2011. irfan keygames - All Rights Reserved
Template Modify by Creating Website
Proudly powered by Blogger