Dibuat Oleh : 1. Andrey
(41813120186)
FAKULTAS ILMU KOMPUTER PROGRAM STUDI SISTEM INFORMASI UNIVERSITAS MERCU BUANA JAKARTA 2015
Definisi Test Case Test case merupakan suatu tes yang dilakukan berdasarkan pada suatu inisialisasi, masukan, kondisi ataupun hasil yang telah ditentukan sebelumnya. Untuk menghasilkan suatu sistem aplikasi atau sistem software yang baik sesuai dengan kebutuhan user atau pengguna aplikasi sudah merupakan kewajiban para sistem developer. Sistem software dikatakan berkualitas apabila sesuai dengan harapan user, sesuai dengan bisnis proses, mempermudah kerja user dan memiliki sedikit bug bahkan tanpa bug sama sekali. Ini merupakan suatu tantangan untuk para software developer untuk menghasilkan software tersebut. Testing (Pengujian Perangkat Lunak) adalah elemen kritis dari jaminan kualitas perangkat lunak dan merepresentasikan kajian pokok dari spesifikasi, desain, dan pengkodean. Pentingnya pengujian perangkat lunak dan implikasinya yang mengacu pada kualitas perangkat lunak tidak dapat terlalu ditekan karena melibatkan sederetan aktivitas produksi di mana peluang terjadinya kesalahan manusia sangat besar dan arena ketidakmampuan manusia untuk melakukan dan berkomunikasi dengan sempurna maka pengembangan perangkat lunak diiringi dengan aktivitas jaminan kualitas. Meningkatnya visibilitas (kemampuan) perangkat lunak sebagai suatu elemen sistem dan “biaya” yang muncul akibat kegagalan perangkat lunak, memotivasi dilakukannya perencanaan yang baik melalui pengujian yang teliti. Pada dasarnya, pengujian merupakan satu langkah dalam proses rekayasa perangkat lunak yang dapat dianggap sebagai hal yang merusak daripada membangun.
Sejumlah aturan yang berfungsi sebagai sasaran pengujian pada perangkat lunak adalah: 1. Pengujian adalah proses eksekusi suatu program dengan maksud menemukan kesalahan. 2. Test case yang baik adalah test case yang memiliki probabilitas tinggi untuk menemukan kesalahan yang belum pernah ditemukan sebelumnya. 3. Pengujian yang sukses adalah pengujian yang mengungkap semua kesalahan yang belum pernah ditemukan sebelumnya. Sasaran utama desain test case adalah untuk mendapatkan serangkaian pengujian yang memiliki kemungkinan tertinggi di dalam pengungkapan kesalahan pada perangkat lunak. Untuk mencapai sasaran tersebut, digunakan 4 kategori yang berbeda dari tehnik desain test case: Pengujian white-box, pengujian black-box,Integrasi Bottom-Up dan Integrasi Top-Down.
Tujuan Tujuan pembuatan dokumen test case antara lain: 1. Memberikan panduan kepada tester untuk melakukan pengujian aplikasi 2. Sebagai bahan masukan kepada tim pengembang aplikasi 3. Menjadi dasar pengembangan bagi pengerjaan proyek selanjutnya 4. Sebagai salah satu dokumen pendukung penyelesaian proyek IT
Keterangan Kode Beberapa kode yang digunakan pada matrix skenario ini antara lain: •
V (Valid)
:
menunjukkan bahwa komponen yang membentuk skenario
memiliki nilai yang benar atau valid, sehingga membuat sistem sukses •
I (Invalid)
:
menunjukkan bahwa komponen yang membentuk skenario
memiliki nilai yang salah atau invalid, sehingga membuat sistem menjalankan skenario alternatifnya •
NA (Not Access) :
menunjukkan bahwa komponen yang membentuk skenario
tersebut tidak memiliki peranan atau tidak bisa diakses pada saat tertentu di dalam skenario itu sendiri
Adapun kegunaan dari test case ini, adalah sebagai berikut : •
Untuk melakukan testing kesesuaian suatu komponen terhadap spesifikasi – Black Box Testing
•
Untuk melakukan testing, kesesuaian suatu komponen terhadap desain – White Box Testing
White Box Testing Kadang disebut juga glass box testing atau clear box testing, adalah suatu metode desain test case yang menggunakan struktur kendali dari desain prosedural. Metode desain test case dapat menjamin : •
Semua jalur (path) yang independen / terpisah dapat dites setidaknya sekali tes.
•
Semua logika keputusan dapat dites dengan jalur yang salah dan atau jalur yang benar.
•
Semua loop dapat dites terhadap batasannya dan ikatan operasionalnya.
•
Semua struktur internal dapat dites untuk memastikan validitasnya.
Mengapa melakukan white box bilamana black box testing berfungsi untuk testing pemenuhan terhadap kebutuhan / spesifikasi ? •
Kesalahan logika dan asumsi yang tidak benar kebanyakan dilakukan ketika coding untuk “kasus tertentu” . Dibutuhkan kepastian bahwa eksekusi jalur ini telah dites.
•
Asumsi bahwa adanya kemungkinan terhadap eksekusi jalur yang tidak benar. Dengan white box testing dapat ditemukan kesalah ini.
•
Kesalahan penulisan acak. Seperti berada pada jalur logika yang membingungkan pada jalur normal.
Cakupan pernyataan, cabang, dan jalur. Cakupan pernyataan, cabang dan jalur adalah suatu teknik white box testing yang menggunakan alur logika dari program untuk membuat test cases. Yang dimaksud dengan alur logika adalah cara dimana suatu bagian dari program tertentu dieksekusi saat menjalankan program.
Alur logika suatu program dapat dipresentasikan dengan flow graph, yang akan dibahas lebih lanjut pada sub bab berikutnya (basis path testing). Sebagai contoh dapat dilihat pada gambar di bawah ini.
Suatu Flow Graph terbentuk dari : •
Nodes (titik), mewakili pernyataan (atau sub program) yang akan ditinjau saat eksekusi program.
•
Edges (anak panah), mewakili jalur logika program untuk menghubungkan satu pernyataan (atau sub program) dengan yang lainnya.
•
Branch nodes (titik cabang), titik titik yang mempunyai lebih dari satu anak panah keluaran.
•
Branch edges (anak panah cabang), anak panah yang keluar dari suatu cabang.
•
Paths (jalur), jalur yang mungkin untuk bergerak dari satu titik ke titik lainnya sejalan dengan keberadaan arah anak panah.
Eksekusi suatu test case menyebabkan program untuk mengeksekusi pernyataan-pernyataan tertentu, yang berkaitan dengan jalur tertentu, sebagaimana tergambar pada flow graph.
Keunggulan dan Kekurangan White Box Keunggulan •
Kebenaran program dalam mendefinisikan algoritma dapat diketahui secara langsung dengan pengolahan path.
•
Menentukan kualitas pekerjaan coding dan pengaruhnya untuk standar coding. Kekurangan
•
Jumlah biaya untuk white box testing lebih besar daripada biaya yang dibutuhkan untuk black box, untuk ukuran software yang sama.
•
Belum mampu melakukan tes ketersediaan, kehandalan, daya tahan beban dan testing – testing lain yang berhubungan dengan kebutuhan faktor – faktor untuk operasi, revisi dan transisi.
Basis Path Testing Uji coba basis path adalah teknik uji coba white box yg diusulkan Tom McCabe. Metode ini memungkinkan perancang test case mendapatkan ukuran kekompleksan logical dari perancangan prosedural dan menggunkan ukuran ini sbg petunjuk untuk mendefinisikan basis set dari jalur pengerjaan. Test case yg didapat digunakan untuk mengerjakan basis set yg menjamin pengerjaan setiap perintah minimal satu kali selama uji coba. Basis path hadir dalam 2 bentuk : •
Zero Path : Jalur penghubung yang tidak penting atau jalur pintas yang ada pada satu sistem.
•
One Path : Jalur penghubung yang penting atau berupa proses pada suatu sistem.
Pengujian basis path memungkinkan desain test case mengukur kompleksitas logis dari desain procedural dan menggunakannya sebagai pedoman untuk menetapkan basis set dari jalur eksekusi. Test case yang dilakukan untuk menggunakan basis set tersebut dijamin untuk menggunakan setiap statemen di dalam program paling tidak sekali selama pengujian. Perangkat yang digunakan : 1. Notasi Flow Graph atau Program Graph 2. Kompleksitas Siklomatis Kompleksitas Siklomatis adalah metric perangkat lunak yang memberikan pengukuran kuantitaif terhadap kompleksitas logis suatu program. Kompleksitas Siklomatis menentukan jumlah jalur independen dalam basis set suatu program dan memberikan batas atas bagi jumlah pengujian yang harus dilakukan untuk memastikan bahwa semua statemen telah dieksekusi sedikitnya satu kali.
3. Graph Metrik Graph metrik adalah matrik empat persegi yang mempunyai ukuran yang sama dengan jumlah node pada flowgraph. Masing-masing baris dan kolom mempunyai hubungan dengan node yang telah ditentukan dan pemasukan data matrik berhubungan dengan hubungan (edge) antar node. Contoh sederhana pemakaian graph metrik dapat digambarkan sebagai berikut : Melakukan Test Case 1. Dengan menggunakan desain atau kode sebagai dasar, gambarkan sebuah grafik alir yang sesuai. 2. Tentukan kompleksitas siklomatis dari grafik alir resultan. 3. Tentukan sebuah basis set dari jalur independen secara linier. 4. Siapkan test case yang akan memaksa adanya eksekusi setiap basis set.
PENGUJIAN KONDISI Adalah sebuah metode disain test case yang menggunakan kondisi logis yang ada pada suatu program.
Contoh : Kondisi sederhana dari persamaan relasional E1 (Operator relasional) E2 E1 dan E2 merupakan persamaan matematika Operator Relasional adalah sasalah satu dari operator berikut ini : <, ≤, =, ≠ ( – = ), >, ≥ Operator Boolean : OR (‘│’), AND (‘&’), NOT (‘-‘) Setiap bahasa pemrograman memiliki kemampuan untuk melakukan pengujian kondisi agar program dapat berjalan dinamis dan interaktif. Untuk menguji setiap kondisi, diperlukan pembanding yang bisa sama dengan, lebih besar, lebih kecil, atau tidak sama dengan lainnya. Untuk mengujinya dibutuhkan operator yang dapat menyatakan kondisi tersebut, yaitu dengan operator : <
Lebih kecil
>
Lebih besar
<=
Lebih kecil & sama dengan
>=
Lebih besar & sama dengan
==
Sama dengan
!=
Tidak sama dengan
Dalam testing dan implementasi sistem dikenal 2 metode pengujian yang populer, yakni pengujian black box dan pengujian white box, untuk maksud dan contoh pengujian white box beberapa waktu lalu sudah pernah saya share, jadi untuk yang kali ini membahas black box testing dan contoh dari pengujian black box itu sendiri. Black-Box Testing merupakan pengujian yang berfokus pada spesifikasi fungsional dari perangkat lunak, tester dapat mendefinisikan kumpulan kondisi input dan melakukan pengetesan pada spesifikasi fungsional program. Ciri-Ciri Black Box Testing 1.Black box testing berfokus pada kebutuhan fungsional pada software, berdasarkan pada spesifikasi kebutuhan dari software. 2.Black box testing bukan teknik alternatif daripada white box testing. Lebih daripada itu, ia merupakan pendekatan pelengkap dalam mencakup error dengan kelas yang berbeda dari metode white box testing. 3.Black box testing melakukan pengujian tanpa pengetahuan detil struktur internal dari sistem atau komponen yang dites. juga disebut sebagai behavioral testing, specification-based testing, input/output testing atau functional testing.
Pada black box testing terdapat jenis teknik disain tes yang dapat dipilih berdasarkan pada tipe testing yang akan digunakan, yang diantaranya : 1. Equivalence Class Partitioning 2. Boundary Value Analysis 3. State Transitions Testing 4.Cause-Effect Graphing Kategori error yang akan diketahui melalui black box testing : •
Fungsi yang hilang atau tak benar
•
Error dari antar-muka
•
Error dari struktur data atau akses eksternal database
•
Error dari kinerja atau tingkah laku
•
Error dari inisialisasi dan terminasi
Equivalence Partitioning Merupakan metode black box testing yang membagi domain masukan dari suatu program ke dalam kelas-kelas data, dimana test cases dapat diturunkan [BCS97a]. Equivalence partitioning berdasarkan pada premis masukan dan keluaran dari suatu komponen yang dipartisi ke dalam kelas-kelas, menurut spesifikasi dari komponen tersebut, yang akan diperlakukan sama (ekuivalen) oleh komponen tersebut. Dapat juga diasumsikan bahwa masukan yang sama akan menghasilkan respon yang sama pula. Nilai tunggal pada suatu partisi ekuivalensi diasumsikan sebagai representasi dari semua nilai dalam partisi.
Analisa partisi pada Equivalence Partitioning Black Box 1. Tester menyediakan suatu model komponen yang dites yang merupakan partisi dari nilai masukan dan keluaran komponen. 2. Masukan dan keluaran dibuat dari spesifikasi dari tingkah laku komponen. 3. Partisi adalah sekumpulan nilai, yang dipilih dengan suatu cara dimana semua nilai di dalam partisi, diharapkan untuk diperlakukan dengan cara yang sama oleh komponen (seperti mempunyai proses yang sama). Partisi untuk nilai valid dan tidak valid harus ditentukan. Contoh Black Box Testing dengan Equivalence Partitioning : Pemeliharaan data untuk aplikasi bank yang sudah diotomatisasikan. Pemakai dapat memutar nomor telepon bank dengan menggunakan mikro komputer yang terhubung dengan password yang telah ditentukan dan diikuti dengan perintah-perintah. Data yang diterima adalah : –
Kode area
: kosong atau 3 digit
–
Prefix
: 3 digit atau tidak diawali 0 atau 1
–
Suffix
: 4 digit
–
Password
: 6 digit alfanumerik
–
Perintah
: check, deposit, dll
Selanjutnya kondisi input digabungkan dengan masing-masing data elemen dapat ditentukan sebagai berikut:
Kode area : kondisi input, Boolean –kode area mungkin ada atau tidak kondisi input, range –nilai ditentukan antara 200 dan 999 Prefix : kondisi input range > 200 atau tidak diawali 0 atau 1 Suffix : kondisi input nilai 4 digit Password : kondisi input boolean –passwordmungkin diperlukan atau tidak kondisi input nilai dengan 6 karakter string Perintah : kondisi input set berisi perintah-perintah yang telah didefinisikan
Keunggulan dan Kekurangan Black Box:
Keunggulan •
Black box testing dapat menguji keseluruhan fungsionalitas perangkat lunak.
•
Black box testing dapat memilih subset test yang secara efektif dan efisien dapat menemukan cacat. Dengan cara ini black box testing dapat membantu memaksimalkan testing investment. Kekurangan
•
Ketika tester melakukan black box testing, tester tidak akan pernah yakin apakah perangkat lunak yang diuji telah benar-benar lolos pengujian. Sumber : 1.https://donysiswandi.wordpress.com/2013/12/28/jeinis-jenis-pengujian-pada-perangkat-lunak/ 2.https://rinnooberta.wordpress.com/2013/11/06/pengujian-white-box/ 3.https://johns1987.wordpress.com/2013/11/22/3-metode-pengujian-dalam-perangkat-lunak/ 4. https://hermanzacharias.wordpress.com/2012/04/19/skenario-test/