Rabu, 03 Juli 2019

White Box Testing

A. Pengertian White Box Testing

White Box Testing adalah salah satu cara untuk menguji suatu aplikasi atau software dengan cara melihat modul untuk dapat meneliti dan menganalisa kode dari program yang di buat ada yang salah atau tidak. 

Kalau modul yang telah dan sudah di hasilkan berupa output yang tidak sesuai dengan yang di harapkan maka akan di compile ulang dan di cek kembali kode-kode tersebut hingga mencapai sesuai denganyang di harapkan.

Kasus yang sering menggunakan white box testing akan di uji dengan beberapa tahapan yaitu
1.      Pengujian seluruh keputusan yang menggunakan logikal.
  1. Pengujian keseluruh loop yang ada sesuai batasan-batasannya.
  2. Pengujian pada struktur data yang sifatnya internal dan yang terjamin validitasnya.

B. Kelebihan Yang Terdapat Di White Box Testing

1.      Kesalahan Logika
Menggunakan sintax ‘if’ dan sintax pengulangan. Dan langkah selanjutnya metode white box testing ini akan mencari dan mendeteksi segala kondisi yang di percaya tidak sesuai dan mencari kapan suatu proses perulangan di akhiri.

2.      Ketidaksesuaian Asumsi
Menampilkan dan memonitori beberapa asumsi yang di yakini tidak sesuai dengan yang di harapkan atau yang akan di wujudkan, untuk selanjutnya akan di analisa kembalai dan kemudian di perbaiki.

3.      Kesalahan Pengetikan
Mendeteksi dan mencarian bahasa-bahasa pemograman yang di anggap bersifat case sensitif.

C. Kekurangan Yang Terdapat Di White Box Testing

Pada perangkat lunak yang jenisnya besar, metode white box testing ini dianggap boros karena melibatkan banyak sumberdaya untuk melakukannya.

D. Pengujian White Box Testing

Pengujian ke white box testing adalah menguji yang di dasarkan kepada pengecekkan ke dalam detail rancangan, penggunaan yang di lakukan struktur control dari suatu desain pemograman untuk dapat membagi pengujian ke beberapa kasus pengujian. Dan di dapat bahwasanya white box testing menggungakan petunjuk untuk menghasilkan program yang di harapkan dan efisien.

Metode pengujian pada white box testing ini sering di lakukan untuk:

1.      Memberikan dan membuat suatu jaminan bahwa seluruh jalur-jalur yang independen hanya menggunakan modul minimal satu kali.
  1. Keputusan yang sifatnya logis dapat di gunakan di semua kondisi true (benar) atau false (salah).
  2. Mengeksekusi seluruh perulangan yang ada ke pada batas nilai dan operasional di setiap situasi dan kondisi.
  3. Syarat yang di lakukan dalam menjalankan strategi white box testing
  4. Mendefinisikan tentang seluruh alur-alur logika yang ada.
  5. Membangun dan membuat suatu kasus yang akan di gunakan untuk tahap pengujian.
  6. Hasil pengujian yang telah di dapatkan akan di lakukan eveluasi kembali.
  7. Pengujian yang di lakukan haruslah secara menyeluruh.

Black Box Testing


A. Pengertian Black Box Testing

Black Box testing merupakan salah satu bentuk pengujian untuk menguji suatu software tertentu. Bentuk lain yang mirip seperti Black Box Testing adalah White Box Testing. Untuk pengujian Black Box Testing lebih memfokuskan pada hasil yang dituju tanpa memikirkan proses internal yang terjadi di dalam software tersebut. Seperti: pemrograman, design, maintenance, dan lain sebagainnya.




    Black Box Testing adalah suatu pengujian yang dilakukan hanya untuk mengamati hasil dari eksekusi pada software tersebut. Pengamatan hasil ini melalui data uji dan memeriksa fungsional dari perangkat lunak itu sendiri. Jadi dapat dianalogikan seperti kita melihat suatu kotak hitam. Dimana kita hanya bisa melihat penampilan pada luarnya saja, tanpa mengetahui apa yang ada dibalik kotak hitam tersebut. Pengujian black box testing ini juga mengevaluasi hanya pada tampilan luarnya saja (interface), fungsionalnya, dan tidak melihat atau mengetahui apa yang sesungguhnya terjadi di dalam proses detilnya. Namun hanya mengetahui proses input dan output-nya saja.

B. Fungsi Black Box Testing

Berikut adalah fungsi-fungsi dari proses pengujian Black Box Testing:
1.      Menemukan fungsi-fungsi yang tidak benar atau hilang di dalam suatu software.
2.      Mencari kesalahan interface yang terjadi saat software dijalankan.
3.      Untuk mengetahui kesalahan dalam struktur data atau akses database eksternal di dalam suatu aplikasi.
4.      Menguji kinerja dari software tersebut.
5.      Menginisialisasikan dan mencari kesalahan dari terminasi software itu sendiri.

A.    Macam-macam Model Black Box Testing:
1.      Boundary Value testing
·      Pengujian yang melatih nilai-nilai batas.
·      Banyak kesalahan terjadi pada kesalahan masukan.
·      BVA mengijinkan untuk menyeleksi kasus uji yang menguji batasan nilai input.
·      BVA merupakan pelengkap dari equivalence class testing.
Langkah-Langkah:
1.      Identifikasi kelas ekuivalen
2.      Identifikasi batasan untuk tiap kelas ekuivalen
3.      Buat uji kasus dengan memilih satu titik pada nilai bawah batasan dan satu titik pada niali atas batasan.

2.      Use Case Testing
·      Mendefinisikan transaksi pada proses yang ada pada suatu sistem (requirment definition).
·      Use case biasanya dibuat oleh developer dan untuk developer, tetapi informasi pada use case sangat berguna bagi tester.
Fungsi Use Case
1.      Menggambarkan functional requirments dari sebuah sistem pada sisi pengguna.
2.      Dapat digunakan untuk proses identifikasi kebutuhan pengguna.
3.      Menyediakan dasar untuk komponen internal sistem, struktur, & keterhubungan.
4.      Menyediakan dasar dalam membangun test case dalam sistem dan acceptance level.
Langkah-Langkah:
1.    Mempertimbangkan resiko dari transaksi dan jenis-jenisnya pada saat pengujian.
2.    Mulai dengan data yang normal dalam transaksi, pilih transaksi yang vital bagi sistem.
3.    Pastikan setiap extension pada use case telah diuji, ujilah dengan kondisi- kondisi yang ekstrim.

3. Comparison Testing
·      Pada beberapa aplikasi reliability dari sebuah perangkat lunak sangat penting.
·      Redundansi perangkat keras dan perangkat lunak mungkin digunakan untuk meminimalisir kesalahan (error).
·      Untuk redundansi perangkat lunak, gunakan tim yang terpisah untuk mengembangkan setiap versi perangkat lunak yang independen.
·      Uji setiap versi dengan data yang sama untuk memastikan semua versi menghasilkan keluaran yang sama.
·      Jalankan semua versi dengan paralel dan perbandingan keluaran secara real-time.

4. Performance Testing
·      Mengevaluasi kemampuan program untuk beroperasi dengan benar dipandang dari sisi acuan kebutuhan. misalnya: alirandata, ukuran pemakaian memori, kecepatan eksekusi, dll.
·      Untuk mencari tahu beban kerja atau kondisi konfigurasi program.
·      Spesifikasi mengenai performansi didefinisikan pada saat tahap spesifikasi atau desain.
·      Dapat digunakan untuk menguji batasan lingkungan program.

5. Endurance Testing
·      Endurance testing melibatkan kasus uji yang diulangulang dengan jumlah tertentu dengan tujuan untuk mengevaluasi program apakah sesuai dengan spesifikasi kebutuhan.
Contoh:
·      Untuk menguji keakuratan operasi matematika (floating point, rounding off, dll).
·      Input/outputs (jika menggunakan framework untuk memvalidasi bagian input dan output).
·      Spesifikasi kebutuhan pengujian didefinisikan pada tahap spesifikasi kebutuhan atau desain.

Unified Modelling Languan

A. Pengertian UML

Unified Modeling Language (UML) adalah sebuah bahasa yang berdasarkan grafik/gambar untuk memvisualisasi, menspesifikasikan, membangun, dan pendokumentasian dari sebuah sistem pengembangan software berbasis OO (Object-Oriented). UML sendiri juga memberikan standar penulisan sebuah sistem blue print, yang meliputi konsep bisnis proses, penulisan kelas-kelas dalam bahasa program yang spesifik, skema database, dan komponenkomponen yang diperlukan dalam sistem software. UML adalah salah satu tool / model untuk merancang pengembangan software yang berbasis object oriented. UML sebagai sebuah bahasa yang memberikan vocabulary dan tatanan penulisan kata-kata dalam ‘MS Word’ untuk kegunaan komunikasi. Sebuah bahasa model adalah sebuah bahasa yang mempunyai vocabulary dan konsep tatanan / aturan penulisan serta secara fisik mempresentasikan dari sebuah sistem. 

UML tidak hanya merupakan sebuah bahasa pemograman visual saja, namun juga dapat secara langsung dihubungkan ke berbagai bahasa pemograman, seperti JAVA, C++, Visual Basic, atau bahkan dihubungkan secara langsung ke dalam sebuah object-oriented database. Begitu juga mengenai pendokumentasian dapat dilakukan seperti; requirements, arsitektur, design, source code, project plan, tests, dan prototypes. Untuk dapat memahami UML membutuhkan bentuk konsep dari sebuah bahasa model, dan mempelajari 3 (tiga) elemen utama dari UML seperti building block, aturan-aturan yang menyatakan bagaimana building block diletakkan secara bersamaan, dan beberapa mekanisme umum (common).

Building blocks. Tiga macam yang terdapat dalam building block adalah:
1)      Benda/Things, adalah abstraksi yang pertama dalam sebuah model
2)      Hubungan/Relationships, sebagai alat komunikasi dari benda-benda,
3)      Bagan/Diagrams. Sebagai kumpulan / group dari benda-benda/things.

B. Diagram UML

1. Use Case Diagram 

Use case diagram menggambarkan fungsionalitas yang diharapkan dari sebuah sistem. Yang ditekankan adalah “apa” yang diperbuat sistem, dan bukan “bagaimana”. Sebuah use case merepresentasikan sebuah interaksi antara aktor dengan sistem. Use case merupakan sebuah pekerjaan tertentu, misalnya login ke sistem, meng-create sebuah daftar belanja, dan sebagainya.  Seorang/sebuah aktor adalah sebuah entitas manusia atau mesin yang berinteraksi dengan sistem untuk melakukan pekerjaan-pekerjaan tertentu. 

Use case diagram dapat sangat membantu bila kita sedang menyusun requirement sebuah sistem, mengkomunikasikan rancangan dengan klien, dan merancang test case untuk semua feature yang ada pada sistem.  Sebuah use case dapat meng-include fungsionalitas use case lain sebagai bagian dari proses dalam dirinya. Secara umum diasumsikan bahwa use case yang di-include akan dipanggil setiap kali use case yang meng-include dieksekusi secara normal.  

Sebuah use case dapat di-include oleh lebih dari satu use case lain, sehingga duplikasi fungsionalitas dapat dihindari dengan cara menarik keluar fungsionalitas yang common.  Sebuah use case juga dapat meng-extend use case lain dengan behaviour-nya sendiri. Sementara hubungan generalisasi antar use case menunjukkan bahwa use case yang satu merupakan spesialisasi dari yang lain.

Komponen use case sendiri hanya ada 3 macam, yaitu Sistem, aktor dan juga use case sendiri. Berikut ini adalah penjelasan mengenai Use case diagram:

a.       System
Sebagai batasan sistem yang ada pada relasi dengan actor actor yang biasa menggunakannya dari luar sistem, dan fitur-fitur yang harus disediakan dalam sistem. Perangkat ini akan digambarkan dengan pola segi empat yang akan membatasi semua use case yang ada dalam sistem terhadap pihak yang mana sistem tersebut akan berinteraksi. Sistem tersebut akan dibeli label, sesuai dengan nama label tersebut. Tapi umumnya sistem ini tidak diberi gambar karena tidak terlalu memberikan arti bagi diagram tersebut.

b.      Actor
Actor disini sebenarnya bukan bagian dari diagram, akan tetapi actor ini adalah salah satu alat untuk menciptakan use case diagram jadi lebih mudah. Actor ini akan digunakan untuk menjelaskan sesuatu atau juga seseorang yang sedang berinteraksi dengan sistem.

Dimana actor ini akan memberikan informasi pada sistem, hanya akan menerima informasi dari sistem, atau juga keduanya (yaitu memberikan informasi dari sistem, atau menerima informasi dari sistem). Disini Actor juga tidak akan memiliki kontrol terhadap use case itu sendiri, namun hanya diberikan gambaran umum atau juga spesifik, guna memudahkan Anda dalam menggunakan hubungan atau relationship yang ada.

Ada beberapa hal yang memungkinkan actor berhubungan dengan sistem lainnya, antara lain :

·         Ketika seseorang ataupun pihak lain akan mengelola sistem tersebut.
·         Adanya kepentingan terhadap sistem, dimana arus informasi baik untuk si penerima maupun inputan sistem saling berkepentingan.
·         Adanya external resource yang digunakan oleh sistem tersebut.
·         Adanya sistem lain yang tengah berinteraksi dengan sistem yang dibuat.

c.       Relasi dalam usecase
Use case diagram memiliki relasi sebagai berikut, yaitu:
Association: Menghubungkan link antar element.
Generalization: Sebuah elemen dapat merupakan spesialis dari elemen lainnya bisa disebut dengan pewarisan sifat (inheritance).
Dependency: Sebuah elemen bergantung dalam beberapa cara ke element lain.
Aggregation: Bentuk association dimana sebuah elemen berisi elemen lainnya.

Tipe-tipe /streo type yang mungkin trjadi pada usecase diagram:
·         <<Include>>, kelakuan yang harus terpenuhi agar sebuah event dapat terjadi.
·         <<Extends>>, kelakuan yang hanya berjalan pada kondisi tertentu.
·         <<Communicates>>, mungkin ditambahkan untuk asosiasi yang menunjukkan asosiasinya adalah communicates association.

2. Diagram Kelas

     Diagram kelas adalah sebuah spesifikasi yang jika diinstansiasi akan menghasilkan sebuah objek dan merupakan inti dari pengembangan dan desain berorientasi objek. Class menggambarkan keadaan (atribut/properti) suatu sistem, sekaligus menawarkan layanan untuk memanipulasi keadaan tersebut (metoda/fungsi).   Class diagram menggambarkan struktur dan deskripsi class, package dan objek beserta hubungan satu sama lain seperti containment, pewarisan, asosiasi, dan lain-lain.


3. Diagram Objek

Diagram Objek menggambarkan struktur sistem dari segi penamaan objek dan jalannya objek dalam sistem. dalam diagram objek harus di pastikan bahwa semua kelas yang sudah didefinisikan pada diagram kelas harus dipakai objeknya, karena jika tidak pendefinisian kelas itu tidak dapat dipertanggung jawabkan. Sebuah diagram objek merupakan gambaran objek-objek pada sebuah sistem pada satu titik waktu. karena lebih menonjolkan printah-printah dari pada kelas daigram objek sering disebut juga sebagai diagram perintah. Elemen-elemen sebuah diagram objek adalah spesifikasi perintah.




4. Diagram Sekuen

Diagram sekuen menggambarkan interaksi antar objek di dalam dan di sekitar sistem (termasuk pengguna, display, dan sebagainya) berupa message yang digambarkan terhadap waktu. Sequence diagram terdiri atar dimensi vertikal (waktu) dan dimensi horizontal (objek-objek yang terkait).  

Sequence diagram biasa digunakan untuk menggambarkan skenario atau rangkaian langkah-langkah yang dilakukan sebagai respons dari sebuah event untuk menghasilkan output tertentu. Diawali dari apa yang men-trigger aktivitas tersebut, proses dan perubahan apa saja yang terjadi secara internal dan output apa yang dihasilkan. 

Masing-masing objek, termasuk aktor, memiliki lifeline vertikal.  Message digambarkan sebagai garis berpanah dari satu objek ke objek lainnya. Pada fase desain berikutnya, message akan dipetakan menjadi operasi/metoda dari class.  

Activation bar menunjukkan lamanya eksekusi sebuah proses, biasanya diawali dengan diterimanya sebuah message. Untuk objek-objek yang memiliki sifat khusus, standar UML mendefinisikan icon khusus untuk objek boundary, controller dan persistent entity.  

5. Diagram Kolaborasi/Komunikasi

Model Komunikasi Diagram interaksi antara benda atau bagian dalam hal mengurutkan. Diagram komunikasi merupakan kombinasi dari informasi yang diambil dari Kelas, urutan, dan Use case diagram menggambarkan baik struktur statis dan perilaku dinamis dari suatu sistem

Namun, diagram komunikasi menggunakan pengaturan bebas-berupa objek dan link seperti yang digunakan dalam diagram Object. Dalam rangka mempertahankan Urutan pesan dalam suatu diagram format bebas, pesan diberi label dengan nomor kronologis dan ditempatkan di dekat link pesan yang dikirim. Membaca diagram komunikasi yaitu mulai dari pesan 1.0, dan mengikuti pesan dari objek ke objek.

Diagram komunikasi menunjukkan banyak informasi yang sama seperti diagram urutan, tetapi karena cara informasi tersebut disajikan, beberapa di antaranya lebih mudah untuk mencari salah satu diagram daripada yang lain. Diagram komunikasi menunjukkan tiap elemen berinteraksi dengan baik, namun diagram urutan menunjukkan urutan di mana interaksi berlangsung lebih jelas.

Tujuan Communication Diagram:
1.      Model pesan melewati antara objek atau peran yang mengantarkan fungsionalitas kasus dan operasi penggunaan.
2.      Mekanisme model dalam desain arsitektur system.
3.      Tangkap interaksi yang menunjukkan pesan yang dilewatkan antara objek dan peran dalam skenario kolaborasi.
4.      Model skenario alternatif dalam kasus penggunaan atau operasi yang melibatkan kolaborasi dari berbagai objek dan interaksi.
5.      Dukung identifikasi objek (karenanya kelas), dan atributnya (parameter pesan) dan operasi (pesan) yang ikut serta dalam use case.

6. Diagram Status

Diagram status atau state diagram atau statechart diagram menunjukkan kondisi yang dapat dialami atau terjadi pada sebuah objek sehingga setiap objek memiliki sebuah diagram status. Diagram status diadopsi dari penggambaran kondisi mesin status (state machine) yang menggambarkan status apa saja yang dialami oleh mesin, misalnya mesin pembelian kopi dengan uang koin.

    Diagram Status mengambarkan seluruh state/status yang memungkinkan obyek-obyek dalam class dapat dimiliki dan kejadian-kejadian yang menyebabkan satus berubah. Perubahan dalam suatu state disebut juga transisi (transition). 

    Suatu transisi juga dapat memiliki sebuah aksi yang dihubungkan pada status, lebih spesifik apa yang harus dilakukan dalam hubungannya dengan transisi status. Pada diagram ini, perilaku sistem ditunjukkan. Sebuah status adalah kondisi selama hidup objek atau interaksi selama memenuhi suatu kondisi, melaksanakan suatu aksi, atau menunggu suatu kejadaian. Simbol-simbol yang ada pada diagram status adalah sebagai berikut:

7. Diagram Aktivitas


Diagram aktivitas diagram menggambarkan berbagai alir aktivitas dalam sistem yang sedang dirancang, bagaimana masing-masing alir berawal, decision yang mungkin terjadi, dan bagaimana mereka berakhir. Activity diagram juga dapat menggambarkan proses paralel yang mungkin terjadi pada beberapa eksekusi.    Activity diagram merupakan state diagram khusus, di mana sebagian besar state adalah action dan sebagian besar transisi di-trigger oleh selesainya state sebelumnya (internal processing). 

Oleh karena itu activity diagram tidak menggambarkan behaviour internal sebuah sistem (dan interaksi antar subsistem) secara eksak, tetapi lebih menggambarkan proses-proses dan jalur-jalur aktivitas dari level atas secara umum.  Sebuah aktivitas dapat direalisasikan oleh satu use case atau lebih. Aktivitas menggambarkan proses yang berjalan, sementara use case menggambarkan bagaimana aktor menggunakan sistem untuk melakukan aktivitas. Sama seperti state, standar UML menggunakan segiempat dengan sudut membulat untuk menggambarkan aktivitas. Decision digunakan untuk menggambarkan behaviour pada kondisi tertentu. Untuk mengilustrasikan proses-proses paralel (fork dan join) digunakan titik sinkronisasi yang dapat berupa titik, garis horizontal atau vertikal. Activity diagram dapat dibagi menjadi beberapa object swimlane untuk menggambarkan objek mana yang bertanggung jawab untuk aktivitas tertentu. 

8. Diagram Komponen

Diagram komponen adalah diagram UML yang menampilkan komponen dalam system dan hubungan antara mereka. Pada component View, akan difokuskan pada organisasi fisik system. Pertama, diputuskan bagaimana kelas-kelas akan diorganisasikan menjadi kode pustaka. Kemudia akan dilihat bagaimana perbedaan antara berkas eksekusi, berkas dynamic link library (DDL), dan berkas runtime lainnya dalam system.

Beberapa tipe komponen sebagai berikut :
a.       Komponen
Notasi-notasi komponen mempresentasikan module perangkat lunak dengan sebuah antar muka yang di Devinisikan dengan baik. Para spesifikasi komponen, kita dapat menspesifikasi tipe komponen dalam kolom stereotype (Active X, Applet, Aplikasi, DLL, Executable). Dalam UML, notasi keadaan digambarkan sebagai berikut.


b.       Subprogram specification and Body
Notasi ini mempresentasikan spesifikasi subprogram yang terlihat dan bagian implementasi. Subprogram secara tipikal adalah kumpulan beberapa subroutine. Subprogram tidak berisi devinisi kelas.


c.       Main program

Notasi ini mempresentasikan program utama. Program utama adalah berkas yang berisi root program. Contoh, pada power builder, ada berkas yang berisi obyek Aplikasi.


d.       Package Specification and Body
Sebuah paket atau package adalah implementasi kelas. Sebuah paket spesifikasi adalah berkas header, yang berisi informasi fungsi prototype untuk kelas. Di C++, spesifikasi paket adalah berkas .h. di Java, kita menggunakan notasi paket spesifikasi untuk mempresentasikan berkas .java. Sebuah package Body berisi kode untuk operasi-operasi dari kelas. Di C++, package body adalah berkas .cpp.



Ada notasi tambahan yang digunakan untuk komponen runtime termasuk berkas-berkas executable, berkas DLL, dan beberapa task lainnya.

e.       Task Specification and Body
Notasi-notasi ini mempresentasikan paket yang memiliki Thread kontrol yang berdiri sendiri. Berkas executable biasanya mempresentasikan spesifikasi task dengan ekstensi.


f.       Database
 Notasi ini mempresentasikan sebuah basis data, yang berisi satu atau beberapa skema. Pada komponen diagram, basis data ditunjukkan seperti ini :



9. Diagram Deployment

Deployment diagram adalah salah satu jenis alat atau bahasa (UML) yang digunakan untuk memvisualisasikan, menspesifikasikan, dan mendokumentasikan proses yang terjadi pada suatu sistem perangkat lunak berbasis Object Oriented yang akan dibangun. Tujuan atau fungsi dari deployment diagram yaitu untuk menggambarkan/memvisualisasikan secara umum proses yangterjadi pada suatu sistem/software. Dalam deployment diagram terdapat simbol-simbol serta relasi yang sering digunakan yaitu sbb :

1.  Node


Node digunakan untuk menggambarkan infrastruktur apa saja yang terdapat pada sistem. Biasanya node digambarkan sebagai server, pc, dan lain-lain.

2.  Component



Komponen digunakan untuk menggambarkan elemen-elemen apa saja yang terdapat pada suatu node. 

3.  Communicates / Link



Communicates digunakan untuk menghubungkan antar node yang saling berinteraksi.

4.  Dependency


    Dependency digunakan untuk menggambarkan hubungan ketergantungan antar node atau komponen yang saling ketergantungan.

Koneksi Database Buku

1.       Aktifkan aplikasi xampp terlebih dahulu. 2.       Masuklah pada browser lalu ke localhost/phpmyadmin , kemudian buat lah sebua...