Testing
Testing adalah sebuah bagian selanjutnya dari proses SDLC setelah tahap perancangan. Bagian ini adalah bagian kritis untuk menjamin kualitas sebuah produk atau aplikasi perangkat lunak (software) yang dilihat dari berbagai sisi seperti spesifikasi, desain sampai tahap pengkodean. Tesing sangat penting untuk melakukan pengujian perangkat lunak karena hasilnya akan berdampak langsung pada sederetan aktifitas kegiatan produksi, dimana peluang terjaninya kesalahan user sangat besar akibat ketidakmampuan user untuk menyesuaikan dengan perangkat lunak yang dikembangkan diikuti oleh aktivitas jaminan kualitas yang harus terjaga.
Dalam lingkungan yang ideal, perekayasa perangkat lunak mendesain suatu program computer, sebuah sistem atau produk dengan testabilitas dalam pikirannya. Hal ini memungkinkan individu yang berurusan dengan pengujian mendesain test case yang efektif secara lebih mudah. Testabilitas adalah seberapa mudah sebuah program computer dapat diuji. Karena sangat sulit, perlu diketahui apa yang dapat dilakukan untuk membuatnya menjadi lebih mudah. Procedural dan menggunakannya sebagai pedoman untuk menetapkan basis set dari jalur eksekusi.
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.
Pengujian white-box berfokus pada struktur control program. Test case dilakukan untuk memastikan bahwa semua statemen pada program telah dieksekusi paling tidak satu kali selama pengujian dan bahwa semua kondisi logis telah diuji. Pengujian basic path, tehnik pengujian white-box, menggunakan grafik (matriks grafiks) untuk melakukan serangkaian pengujian yang independent secara linear yang akan memastikan cakupan.
Pengujian aliran data dan kondisi lebih lanjut menggunakan logika program dan pengujian loop menyempurnakan tehnik white-box yang lain dengan memberikan sebuah prosedur untuk menguji loop dari tingkat kompleksitas yang bervariasi. Pengujian black-box didesain untuk mengungkap kesalahan pada persyaratan fungsional tanpa mengabaikan kerja internal dari suatu program.
Tehnik pengujian black-box berfokus pada domain informasi dari perangkat lunak, dengan melakukan test case dengan menpartisi domain input dari suatu program dengan cara yang memberikan cakupan pengujian yang mendalam.
Metode pengujian graph-based mengeksplorasi hubungan antara dan tingkah laku objek-objek program. Partisi ekivalensi membagi domain input ke dalam kelas data yang mungkin untuk melakukan fungsi perangkat lunak tertentu. Analisis nilai batas memeriksaa kemampuan program untuk menangani data pada batas yang dapat diterima.
Metode pengujian yang terspesialisasi meliputi sejumlah luas kemampuan perangkat lunak dan area aplikasi. GUI, arsitektur client/ server, dokumentasi dan fasilitas help dan sistem real time masing-masing membutuhkan pedoman dan tehnik khusus untuk pengujian perangkat lunak.
Integrasi Top-Down adalah pendekatan incremental dengan menggerakkan ke bawah melalui hirarki control, dimulai dengan control utama. Strategi intergrasi top-down memeriksa control mayor atau keputusan pada saat awal di dalam proses pengujian. Pada struktur program yang difaktorkan dengan baik, penarikan keputusan terjadi pada tingkat hirarki yang lebih tinggi sehingga terjadi lebih dulu.
Strategi top-down kelihatannya tidak sangat rumit, tetapi di dalam praktenya banyak menimbulkan masalah logistic. Biasanya masalah ini terjadi jika dibutuhkan pemrosesan di dalam hirarki pada tingkat rendah untuk menguji secara memadai tingkat yang lebih tinggi.
Pengujian Integrasi Bottom-up memulai konstruksi dan pengujian dengan modul atomic (modul pada tingkat paling rendah pada struktur program). Karena modul diintegrasikan dari bawah ke atas, maka pemrosesan yang diperlukan untuk modul subordinate ke suatu tuingkat yang diberikan akan selalu tersedia dan kebutuhan akan stub dapat dieliminasi. Strategi integrasi bottom-up dapat diimplementasi dengan langkah-langkah:
- modul tingkat rendah digabung ke dalam cluster (build) yang melakukan subfungsi perangkat lunak spesifik.
- Driver (program control untuk pengujian) ditulis untuk mengkoordinasi input dan output test case
- cluster diuji
- driver diganti dan cluster digabungkan dengan menggerakkannya ke atas di dalam struktur program.
Software untuk melakukan pengujian
Crystal REVS for C++.
CR C++ adalah software untuk menghitung cyclometric complexity terhadap sebuah program berbasis c++. Software ini melakukan pengujian kode program menggunakan bahasa c/c++ dengan menghasilkan flowchart dan menghitung cyclomatrik complexity dari kode tersebut berdasarkan complexity measure dari MCcabe. Aplikasi ini terintegrasi dengan beberapa fungsi seperti flowchart, rich tree, data flow. Hasil dokumentasi dalam bentuk HTML atau auto-formatting. Tokes panel, comment panel pada satu tools.
Dengan aplikasi ini, kita dapat mengexplore source code, mengetahui flowchart untuk memahami alur logic dan fungsi kode program serta mengetahui besarnya cyclometric complexity sehingga kita dapat menarik kesimpulan mengenai kode program yang telah kita buat mudah dibaca dan kita bisa focus pada logic program yang telah kita buat. Contoh tampilan aplikasi ini saya tampilkan dibawah ini :
Baca Selengkapnya..