Testing merupakan Proses menganalisa suatu entitas software atau sistem untuk mendeteksi perbedaan antara kondisi yang ada dengan kondisi yang diinginkan (defect / error / bugs) dan mengevaluasi fitur-fitur atau data-data dari entitas software (standar IEEE1059).
Atau juga dapat di katakan dengan proses menjalankan atau run dan mengevaluasi perangkat lunak (secara manual maupun otomatis) untuk menguji apakah perangkat lunak sudah memenuhi persyaratan atau belum, dalam artian testing ini menguji sebuah sistem apakah sistem tersebut sudah dapat di gunakan atau belum dan sudah sesuai dengan apa yang di rancang atau belumnya.
Testing ini juga memiliki sebuah tujuan di antara lain untuk :
Ø Menguji sehingga dapat menemukan kesalahn yang sebelumnya belum bisa di temukan.
Ø Pengujian yang baik bukan untuk memastikan tidak ada kesalahan tetapi untuk memcari sebanyak mungkin kesalahan yang ada pada program, agar program yang ada dapat berjalan sesuai dengan apa yang telah di harapkan/di rencanakan.
Dalam testing terbagi ke dalam dua kriteria dalam melakukan sebuah pengujian sebuah perangkat lunak.
1. Software Verification.
Pada kriteria ini hal yang perlu di cari atau di testing berkenaan dengan apakah metode dalam pengembangan sistem sudah benar atau belum, serta sistem yang ada apakah sudah sesuai belum dengan spesifikasi yang ada.
2. Software Validation.
Pada kriteria yang kedua ini berkenaan dengan pengujian apakah sistem yang dikembangkan sudah benar serta sistem yang ada sudah sesuai dengan yang diharapkan pengguna atau belum.
Dalam testing dan implementasi sistem dikenal 2 metode pengujian yang populer, yakni pengujian black box dan pengujian white box.
1. Black Box
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. Pengujian Black-Box berusahan menemukan kesalahan dalam kategori (Pressman, 1997) :
a) Fungsi-fungsi yang salah.
b) Kesalahan desain interface.
c) Kesalahan dalam struktur berkas atau akses database eksternal.
d) Kesalahan kinerja (bisa sistem atau manusia).
e) Masalah inisialisasi.
Kategori error yang akan diketahui melalui black box testing :
Fungsi yang hilang atau tak benar pada sistem.
Error dari antar-muka
Error dari struktur data atau akses eksternal database.
Error dari kinerja atau tingkah laku
Error dari inisialisasi dan terminasi
2. White Box
Pada metode white box testing pengujian yang dilakukan berdasarkan pada pengecekan terhadap detail perancangan sistem yang ada, menggunakan struktur kontrol dari desain program secara procedural untuk membagi pengujian ke dalam beberapa kasus pengujian.
Pengujian dengan menggunakan White-Box membuat programmer dapat melakukan beberapa hal berikut :
1. Kepastian bahwa semua modul program pernah di uji paling tidak satu kali.
2. Menggunakan keputusan logis pada sisi true atau false.
3. Mengeksekusi semua looping dan pencabangan pada setiap operasi modul.
4. Menggunakan struktur berkas untuk menjamin validasi.
Langkah dalam penerapan metode testing white box yang pertama kita mendefinisikan sebuah alus logika dari sebuah sistem ,kemudian membangun kasus untuk digunakan dalam pengujian lalu yang terakhir kita tinggal melakukan pengujian. Namun metode ini mempunyai kelemahan seperti untuk software atau perangkat lunak yang tergolong besar ,metode pengujian dengan white box testing dianggap sebagai strategi yang tergolong boros, karena akan melibatkan sumberdaya yang besar untuk melakukannya.
Teknik pengujian pada white box testing:
a) Menggambarkan kode program ke dalam graph yaitu node & edge.
Jika berhubungan bernilai 1, bila tidak bernilai nol.
Dalam pengujian ini akan diperoleh hasil :
· Kemungkinan source code yang dieksekusi
· Waktu yang dibutuhkan
· Memori yang digunakan
· Sumber daya yang digunakan
b) Basic path, yaitu pengukuran kompleksitas kode program dan pendefinisian alur yang akan dieksekusi.
Digambarkan sequence, if, atau while nya.Uji coba basis path adalah teknik uji coba white box yang 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.
c) Data flow testing, untuk mendeteksi penyalahgunaan data dalam sebuah program.
d) CyclomaticComplexity
Cyclomatic Complexity merupakan suatu sistem pengukuran yang menyediakan ukuran kuantitatif dari kompleksitas logika suatu program. Pada Basis Path Testing, hasil dari cyclomatic complexity digunakan untuk menentukan banyaknya independent paths. Independent path adalah sebuah kondisi pada program yang menghubungkan node awal dengan node akhir.
Dari kedua metode testing di atas ,keduanya memiliki sebuah perbedaan White Box lebih kepada struktural yang melakukan testing pada software/program aplikasi menyangkut security dan performance program tersebut meliputi test code ,desain implementasi ,security, data flow serta software failure. Sedangkan pada metode Black Box lebih kepada fungsi/fungsional menguji berdasarkan apa yang di lihat serta hanya fokus pada fungsionalitas dan hasil keluaran atau output serta metode Black Box dilakukan setelah White Box testing.
Implementasi Sistem Informasi
Implementasi merupakan tahap meletakkan sebuah sistem supaya siap untuk dioperasikan sesuai dengan apa yang telah dibuat pada tahap desain atau meruapakan tahap dimana sistem yang telah dirancang pada tahap sebelumnya diterapkan, berupa perangkat lunak maupun perangkat keras yang digunakan. Dengan penerapan sistem yang dirancang, hasilnya dapat dioperasikan dan digunakan secara optimal sesuai kebutuhan.
Tahap dari proses implementasi sistem merupakan bagian dari pengembangan sistem informasi hanya saja Implementasi sistem (system implementation). Merupakan kegiatan memperoleh dan mengintegrasikan sumber daya fisik dan konseptual yang menghasilkan suatu sistem yang bekerja. Tahap implementasi sistem (system implementation) adalah tahap meletakkan sistem supaya siap dioperasikan.
Dalam menjalankan sebuah kegiatan implementasi perlu dilakukan beberapa halberikut sebelum dilakukannya implementasi yaitu:
• Pengumpulan data (data gathering) Jika sudah ada sistem yang berjalan sebelumnya maka perlu dilakukan pengumpulan data dan informasi yang dihasilkan dari sistem yang ada.
• Analisa Sistem Jika tahapan pengumpulan data dilakukan dengan melibatkan klien atau pengguna sistem informasi, maka mulai dari tahapan analisa lebih banyak dilakukan oleh pihak pengembang sendiri.
• Perancangan Sistem (design) Merancang alir kerja (workflow) dari sistem dalam bentuk diagram alir (flowchart) atau Data Flow Diagram (DFD). Merancang basis data (database) dalam bentuk Entity Relationship Diagram (ERD) bisa juga sekalian membuat basis data secara fisik.
• Penulisan kode program (Coding) Programming (desktop application) atau Scripting (web-based application) hanyalah salah satu tahapan dari siklus hidup pengembangan sistem. Tahapan ini dilakukan oleh satu atau lebih programmer.
• Testing Biasanya tahapan ini dilakukan oleh Quality Assurance dari pihak pengembang untuk memastikan bahwa software yang dibangun telah berjalan sesuai dengan yang diharapkan
Tahapan dalam mengimplementasikan sebuah Sistem Informasi
System Development Life Cycle (SDLC), SDLC adalah tahapan-tahapan pekerjaan yang dilakukan oleh analis sistem dan programmer dalam membangun sistem informasi
Langkah yang digunakan meliputi :
• Melakukan survei dan menilai kelayakan proyek pengembangan sistem informasi.
• Mempelajari dan menganalisis sistem informasi yang sedang berjalan.
• Menentukan permintaan pemakai sistem informasi.
• Memilih solusi atau pemecahan masalah yang paling baik.
• Menentukan perangkat keras (hardware) dan perangkat lunak (software).
• Merancang sistem informasi baru.
• Membangun sistem informasi baru.
• Mengkomunikasikan dan mengimplementasikan sistem informasi baru.
• Memelihara dan melakukan perbaikan/peningkatan sistem informasi baru bila diperlukan.
System Development Lyfe Cycle (SDLC)
SDLC memiliki beberapa model yang cukup populer dan banyak digunakan adalah waterfall. Beberapa model lain SDLC misalnya fountain, spiral, rapid, prototyping, incremental, build & fix, dan synchronize & stabilize.
Dalam sebuah siklus SDLC, terdapat enam langkah yaitu :
• Analisis sistem
• Spesifikasi kebutuhan sistem
• Perancangan sistem
• Pengembangan sistem
• Pengujian sistem
• Implementasi dan pemeliharaan sistem
SDLC berfungsi untuk menggambarkan tahapan-tahapan utama dan langkah-langkah dari setiap tahapan yang secara garis besar terbagi dalam tiga kegiatan utama, yaitu :
• Analysis
• Design
• Implementation
Setiap kegiatan dalam SDLC dapat dijelaskan melalui tujuan (purpose) dan hasil kegiatannya (deliverable).