Software testing merupakan sebuah metode untuk mengetahui apakah software yang dibuat, berfungsi dengan baik dan benar. Tanpa adanya software testing, kita tidak dapat mengetahui apakah sebuah software sudah memenuhi semua kriteria yang dibutuhkan untuk user. Software testing sendiri dilakukan berdasarkan SDLC (Software Development Life Cycle), dengan kata lain kita melakukan eksekusi program dan selama proses yang dilakukan, memungkinkan kita untuk menemukan kesalahan atau error.

Pengujian software testing ini adalah tahap yang krusial dan cukup membutuhkan dana berkisar kurang lebih diatas 50% dari total cost pembuatan software tersebut. Beberapa tujuan dari software testing adalah meningkatkan kualitas software, memeriksa system agar memenuhi requirement / kebutuhan, dan mengidentifikasi kelemahan, error dan kesalahan yang terjadi dalam software tersebut.

Dalam software testing, ada siklus yang harus dilewati :

  • Analisis kebutuhan
    Melakukan analisa dari fase SDLC yang dilalui oleh software
  • Analisis Desain
    Analisis ini merupakan bentuk analisis desain dimana melakukan analisa bagian desain dan parameter yang perlu dilakukan testing
  • Test Desain
    Menyempurnakan strategi testing yang akan dilakukan
  • Run test
    Menjalankan testing dan mencari error, bug dan kesalahan yang ada
  • Report Test
    Memberikan report dari hasil testing kepada developer dan memberikan konklusi apakah software tersebut layak digunakan atau tidak.

White-box Testing

White Box Testing adalah salah satu cara untuk menguji suatu aplikasi atau software dengan melihat modul untuk memeriksa dan menganalisis kode program ada yang salah atau tidak. Jika modul ini dan telah diproduksi dalam output yang tidak memenuhi persyaratan, kode akan dikompilasi ulang dan diperiksa lagi sampai mencapai apa yang diharapkan singkatnya White Box Testing ini menguji dengan cara melihat Pure Code dari suatu aplikai/software yang diuji tanpa memperdulikan Tampilan atau UI dari aplikasi tersebut..

Teknik White-box Testing

  • Basis Path Testing
    Basis path testing merupakan metode yang memungkinkan perancang testcase untuk membuat pengukuran kompleksitas logikal dari rancangan prosedural dan menggunakan pengukuran ini sebagai panduan untuk mendefinisikan himpunan basis dari jalur eksekusi. Test case yang dibuat untuk menguji himpunan basis dijamin akan mengeksekusi setiap statement di dalam program sekurangnya sekali pada saat pengujian
  • Flow Graph
    Flow graph merupakan notasi sederhana untuk merepresentasi control flow.
  • Cyclomatic Complexity
    Cyclomatic complexity digunakan untuk mengetahui jumlah jalur yang perlu dicari. Cyclomatic complexity adalah metric software yang menyediakan ukuran kuantitatif dari kompleksitas logikal program. Nilai yang dihitung bagi cyclomatic complexity menentukan  jumlah jalur-jalur yang independen dalam kumpulan basis suatu program dan memberikan jumlah tes minimal yang harus dilakukan untuk memastikan bahwa semua pernyataan telah dieksekusi sekurangnya satu kali.

Cyclomatic complexity mempunyai fondasi dalam teori graph dan dapat dihitung dengan satu dari tiga cara :

  • Jumlah region sama dengan cyclomatic complexity.
  • Cyclomatic complexity, V(G), untuk sebuah flow graph, G, didefnisikan sebagai: V(G) = E – N + 2 E adalah jumlah edge pada flow graph, dan N adalah jumlah node pada flow graph.
  • Cyclomatic complexity, V(G), untuk flow graph, G, juga didefinisikan sebagai: V(G) = P + 1 P adalah jumlah predicate nodes yang terdapat pada flow graph G.

Graph Matrix

Prosedur untuk membuat flow graph dan menentukan himpunan basis path dapat diterima berdasarkan mekanisme. Untuk mengembangkan software yang membantu pengujian basis path, sebuah struktur data yang disebut graph matrix, dapat sangat bermanfaat. Graph matrix adalah matriks kotak yang ukurannya (jumlah baris dan kolom) sama untuk jumlah node pada flow graph. Setiap baris dan kolom berhubungan dengan node yang teridentifikasi, dan data matriks berhubungan dengan koneksi (edge) antara

Kelemahan White Box-Testing:

  1. Sangat mahal untuk dilakukan karena membutuhkan tester yang terampil untuk melakukan pengujian.
  2. Pada perangkat lunak yang jenisnya besar, metode white box testing ini dianggap boros karena melibatkan banyak sumberdaya untuk melakukannya.
  3. Tidak mempedulikan Tampilan UI aplikasinya.

Black-box Testing

Pada Black Box Testing dilakukan pengujian yang didasarkan pada detail aplikasi seperti tampilan aplikasi, fungsi-fungsi yang ada pada aplikasi, dan kesesuaian alur fungsi dengan bisnis proses yang diinginkan oleh customer. Black-box Testing ini lebih menguji ke Tampilan Luar(Interface) dari suatu aplikasi agar mudah digunakan oleh Customer. Pengujian ini tidak melihat dan menguji souce code program. Black-box Testing bekerja dengan mengabaikan struktur control sehingga perhatianya hanya terfokus pada informasi domain.

Keuntungan dari Black-box Testing :

  • Penguji tidak perku memiliki pengetahuan tentang baasa pemograman tertentu
  • Pengujian yang dilakukan berdasarkan sudut pandang user agar dapat mengungkapkan inkosistensi atau ambiguitas dalam spesifikasi.
  • Programmer dan tester memiliki ketergantungan satu sama lain

Kekurangan Black-box Testing :

  • Uji kasus sulit disain tanpa spesifikasi yang jelas
  • Kemungkinan memiliki pengulangan tes yang sudah dilakukan oleh programmer
  • Beberapa bagian back end tidak diuji sama sekali.

Teknik Black-box Testing

  1. Equivalence Partitioning
    Cara kerja teknik ini adalah dengan melakukan partition atau pembagian menjadi beberapa partisi dari input data.
  1. Boundary Value Analysis
    Teknik ini lebih fokus kepada boundary, dimana adakah error dari luar atau sisi dalam software, minimum, maupun maximum nilai dari error yang didapat.
  1. Fuzzing
    Fuzz merupakan teknik untuk mencari bug / gangguan dari software dengan menggunakan injeksi data yang terbilang cacat ataupun sesi semi-otomatis.
  1. Cause-Effect Graph
    Ini adalah teknik testing dimana menggunakan graphic sebagai pacuannya. Dimana dalam grafik ini menggambarkan relasi diantara efek dan penyebab dari error tersebut.
  1. Orthogonal Array Testong
    Dapat digunakan jika input domain yang relatif terbilang kecil ukurannya, tetapi cukup berat untuk digunakan dalam skala besar.
  1. All Pair Testing
    Dalam teknik ini, semua pasangan dari test case di desain sedemikian rupa agar dapat di eksekusi semua kemungkinan kombinasi diskrit dari seluruh pasangan berdasar input parameternya. Tujuannya testing ini adalah memiliki pasangan test case yang mencakup semua pasangan tersebut.
  1. State Transition
    Testing ini berguna untuk melakukan pengetesan terhadap kondisi dari mesin dan navigasi dari UI dalam bentuk grafik.

Referensi

http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.261.1758&rep=rep1&type=pdf (Journal)

http://www.scholarism.net/FullText/ijmcs20154303.pdf (Journal)

https://www.researchgate.net/publication/270554162_A_Comparative_Study_of_White_Box_Black_Box_and_Grey_Box_Testing_Techniques (Journal)

Susilo, J. (2014). Aplikasi Pengujian White Box IBII Online Jugde. Jurnal Informatika dan Bisnis3(2), 56-69.

Jaya, T. S. (2018). Pengujian Aplikasi dengan Metode Blackbox Testing Boundary Value Analysis (Studi Kasus: Kantor Digital Politeknik Negeri Lampung). Jurnal Informatika: Jurnal Pengembangan IT3(1), 45-48.

Author : Annisa Octaviana Nurshanty, Aldo Saputra, Farhan Rifanto Hardjanto, Muhammad Bio Franklyn, Derick Yudanegara
Supervised by :