Testing dan Implementasi Sistem Informasi
P-1 & 2
Fery Updi,M.Kom
Capaian Kompetensi
• Mahasiswa mampu:
• Mengetahui cara melakukan konstruksi Sistem;
• Memahami proses pendefinisian data dan variabel,
• Memahami pembentukan routine;
• Memahami teknik penulisan code dan dokumentasi;
• Memahami konsep debugging dan performance;
• Memahami proses integrasi sistem dan evolusi sistem;
• Memahami konsep testing;
• Memahami jenis dan proses testing;
• Memahami proses testing untuk integrasi dan instalasi;
• Memahami jenis peralatan testing dan perbandinganya;
Apa yang Anda harapkan dari kuliah ini?
• Mencari nilai?
• Memahami testing & implementasi sistem informasi?
Tips Belajar
• Buat catatan!
• Baca buku!
• Banyak bertanya dan belajar dari sumber lain
Pokok Bahasan
• Definisi Tesing dan kualitas
• Hubungan testing dan kualitas
• Faktor kualitas secara umum
• Kualitas software penting bagi organisasi software
Intro
Philip Crosby, 1979
• Masalah testing program muncul secara simultan bersamaan dengan pengalaman pertama dalam menulis program.
• Di awal debutnya, testing merupakan aktifitas yang tidak hanya bertujuan untuk menemukan error tapi juga bertujuan untuk mengkoreksi dan menghilangkannya.
• Sehingga pembahasan masalah testing saat itu lebih banyak ke arah “debugging”, serta kesulitan dalam mengkoreksi dan menghilangkan error.
• Namun sudut pandang ini telah bergeser di tahun 1957, dimana testing program telah dibedakan secara jelas dengan debugging.
Definisi Testing
Testing adalah proses pemantapan kepercayaan akan kinerja program atau sistem sebagaimana yang diharapkan. (Hetzel 1973)
Testing adalah proses eksekusi program atau sistem secara intens untuk menemukan error. (Myers 1979)
Testing adalah tiap aktivitas yang digunakan untuk dapat melakukan evaluasi suatu atribut atau kemampuan dari program atau sistem dan menentukan apakah telah memenuhi kebutuhan atau hasil yang diharapkan. (Hetzel 1983 Revisi)
Beberapa pandangan praktisi tentang testing:
• Melakukan cek pada program terhadap spesifikasi.
• Menemukan bug pada program.
• Menentukan penerimaan dari pengguna.
• Memastikan suatu sistem siap digunakan.
• Meningkatkan kepercayaan terhadap kinerja program.
• Memperlihatkan bahwa program berkerja dengan benar.
• Membuktikan bahwa error tidak terjadi.
• Mengetahui akan keterbatasan sistem.
• Mempelajari apa yang tak dapat dilakukan oleh sistem.
• Melakukan evaluasi kemampuan sistem.
• Verifikasi dokumen.
• Memastikan bahwa pekerjaan telah diselesaikan.
Proses verifikasi dan validasi software?
Testing software adalah proses mengoperasikan software dalam suatu kondisi yang di kendalikan, untuk (1) verifikasi apakah telah berlaku sebagaimana telah ditetapkan (menurut spesifikasi), (2) mendeteksi error, dan (3) validasi apakah spesifikasi yang telah ditetapkan sudah memenuhi keinginan atau kebutuhan dari pengguna yang sebenarnya
verifikasi dan validasi software?
Verifikasi adalah pengecekan atau pengetesan entitas-entitas, termasuk software, untuk pemenuhan dan konsistensi dengan melakukan evaluasi hasil terhadap kebutuhan yang telah ditetapkan. (Are we building the system right ?)
Validasi melihat kebenaran sistem, apakah proses yang telah ditulis dalam spesifikasi adalah apa yang sebenarnya diinginkan atau dibutuhkan oleh pengguna. (Are we building the right system?)
Tujuan akhir testing?
adalah untuk mendapatkan informasi yang dapat diulang secara konsisten (reliable) tentang hal yang mungkin sekitar software dengan cara termudah dan paling efektif, antara lain:
• Apakah software telah siap digunakan?
• Apa saja resikonya?
• Apa saja kemampuannya?
• Apa saja keterbatasannya?
• Apa saja masalahnya?
• Apakah telah berlaku seperti yang diharapkan?
Kualitas
Berikut ini beberapa definisi sederhana tentang kualitas:
• Menurut CROSBY:
Kualitas adalah pemenuhan terhadap kebutuhan.
• Menurut ISO-8402:
Kualitas adalah keseluruhan dari fitur yang menjadikan produk dapat memuaskan atau dipakai sesuai kebutuhan dengan harga yang terjangkau.
• Menurut W.E. Perry:
Kualitas adalah pemenuhan terhadap standar
• Menurut R. Glass:
Kualitas adalah tingkat kesempurnaan.
• Menurut J. Juran:
Kualitas adalah tepat guna.
Hubungan Testing & Kualitas
Definisi software berkualitas adalah software yang bebas error dan bug secara obyektif, tepat waktu dan dana, sesuai dengan kebutuhan atau keinginan dan dapat dirawat (maintainable).
Pengertian kata obyektif adalah suatu proses pembuktian yang terstruktur, terencana dan tercatat / terdokumentasi dengan baik.
Testing membuat kualitas dapat dilihat secara obyektif, karena testing merupakan pengukuran dari kualitas software. Dengan kata lain testing berarti pengendalian kualitas (Quality Control - QC), dan QC mengukur kualitas produk, sedangkan jaminan
Faktor kualitas secara umum
Faktor-faktor kualitas software secara umum dapat dibedakan menjadi tiga faktor, yaitu fungsionalitas, rekayasa, dan adaptabilitas.
Dimana ketiga faktor utama ini dapat juga disebut sebagai dimensi dari ruang lingkup kualitas software. Dan masing-masing faktor akan dibagi-bagi lagi ke dalam faktor- faktor komponen yang lebih detil untuk lebih menjelaskannya.
Faktor komponen kualitas
Berikut contoh yang mengilustrasikan beberapa faktor-faktor komponen yang sering digunakan:
Fungsionalitas (Kualitas Luar) Kebenaran (Correctness) Reliabilitas (Reliability) Kegunaan (Usability) Integritas (Integrity)
Faktor komponen kualitas
Rekayasa (Kualitas Dalam) Efisiensi (Efficiency)
Testabilitas (Testability)
Dokumentasi (Documentation) Struktur (Structure)
Adaptabilitas (Kualitas ke Depan) Fleksibilitas (Flexibility) Reusabilitas (Reusability)
Maintainabilitas (Maintainability)
Pentingnya kualitas software?
Secara natural pengembangan software bukanlah suatu hal yang mudah, bahkan mempunyai kecenderungan untuk mengalami kegagalan. Oleh karena itu berorientasi pada kualitas adalah salah satu usaha dalam menurunkan tingkat resiko terjadinya kegagalan proyek.
Dengan berorientasi pada kualitas, maka organisasi software akan dapat melakukan proses analisa, evaluasi dan pengembangan yang berkesinambungan untuk mencapai suatu proses pengembangan software yang semakin lama semakin efektif, efisien, terukur, terkendali dan dapat diulang secara konsisten dalam menghasilkan suatu produk (software) yang berkualitas, tepat waktu dan pendanaan.
Obyektifitas Testing
Secara umum obyektifitas dari testing adalah untuk melakukan verifikasi, validasi dan deteksi error untuk menemukan masalah dan tujuan dari penemuan ini adalah untuk membenahinya. Namun terdapat pula beberapa pendapat dari praktisi yang dapat pula dipandang sebagai bagian dari obyektifitas testing, antara lain:
• Meningkatkan kepercayaan bahwa sistem dapat digunakan dengan tingkat resiko yang dapat diterima.
• Menyediakan informasi yang dapat mencegah terulangnya error yang pernah terjadi.
• Menyediakan informasi yang membantu untuk deteksi error secara dini.
• Mencari error dan kelemahan atau keterbatasan sistem.
• Mencari sejauh apa kemampuan dari sistem.
Misi dari Tim Testing
Misi dari tim testing tidak hanya untuk melakukan testing, tapi juga untuk membantu meminimalkan resiko kegagalan proyek.
Tester mencari manifestasi masalah dari produk, masalah yang potensial, dan kehadiran dari masalah. Mereka mengeksplorasi, mengevaluasi, melacak, dan melaporkan kualitas produk, sehingga tim lainnya dari proyek dapat membuat keputusan terhadap pengembangan produk.
Tester adalah individu yang memberikan hasil pengukuran dari kualitas produk.
Prinsip-Prinsip Testing
Terdapat 6 kunci prinsip-prinsip testing, yaitu:
• Testing yang komplit tidak mungkin.
• Testing merupakan pekerjaan yang kreatif dan sulit.
• Alasan yang penting diadakannya testing adalah untuk mencegah terjadinya errors.
• Testing berbasis pada resiko.
• Testing harus direncanakan.
• Testing membutuhkan independensi.
Kemampuan Tester
Kemampuan tester yang menjadi permintaan pada umumnya:
1. Kemampuan secara umum
• Mempunyai kemampuan analisa yang kuat dan terfokus
• Mempunyai kemampuan komunikasi yang baik
• Mempunyai latar belakang QA 2. Pemahaman terhadap metodologi
• Pengembangan rencana tes
• Pembuatan dan perawatan lingkungan tes
• Standar tes
Kemampuan Tester
3. Pengetahuan akan pendekatan testing
• Integration testing
• Acceptance Testing
• Stress / Volume Testing
• Regression testing
• Functional testing
• End-To-End Testing
• GUI Testing
Kemampuan Tester
4. Pengetahuan tentang sistem (berhubungan dengan pasar dari organisasi bersangkutan)
• Perbankan/Keuangan
• Produk Komersial
• Telecom
• Internet
• Y2K
5. Pengetahuan dan pengalaman akan penggunaan alat bantu testing
• Alat bantu capture atau playback (seperti WinRunner)
• Alat bantu Load testing (seperti LoadRunner, RoboTest)
Defect dari Software
Menurut Kaner, Falk, dan Nguyen [KAN93], ada 13 kategori utama defect dari software, yaitu :
• User interface errors - sistem memberikan suatu tampilan yang berbeda dari spesifikasi.
• Error handling – pengenalan dan perlakuan terhadap error bila terjadi
• Boundary – related errors - perlakuan terhadap nilai batasan dari jangkauan mereka yang mungkin tidak benar.
• Calculation errors - perhitungan arimatika dan logika yang mungkin tidak benar.
• Initial and later states - fungsi gagal pada saat pertama digunakan atau sesudah itu.
• Control flow errors - pilihan terhadap apa yang akan dilakukan berikutnya tidak sesuai untuk status saat ini.
Defect dari Software
• Errors in handling or interpreting data - melewatkan dan mengkonversi data antar system (dan mungkin komponen yang terpisah dari sistem) dapat menimbulkan error.
• Race conditions - bila dua event diproses akan maka salah satu akan diterima berdasarkan prioritas sampai pekerjaan selesai dengan baik, baru pekerjaan berikutnya. Bagaimanapun juga kadang-kadang event lain akan diproses terlebih dahulu dan dapat menghasilkan sesuatu yang tidak diharapkan atau tidak benar.
• Load conditions - saat sistem dipaksa pada batas maksimum, masalah akan mulai muncul, seperti arrays, overflow, diskfull
• Hardware - antar muka dengan suatu device mungkin tidak dapat beroperasi
Defect dari Software
• Source and Version Control - program yang telah kadaluwarsa mungkin akan dapat digunakan lagi bila ada revisi untuk memperbaikinya.
• Documentation - pengguna tak dapat melihat operasi yang telah dideskripsikan dalam dokumen panduan.
• Testing errors - tester membuat kesalahan selama testing dan berpikir bahwa system berkelakuan tak benar.
Defect/cacat dari Software
• Source and Version Control - program yang telah kadaluwarsa mungkin akan dapat digunakan lagi bila ada revisi untuk memperbaikinya.
• Documentation - pengguna tak dapat melihat operasi yang telah dideskripsikan dalam dokumen panduan.
• Testing errors - tester membuat kesalahan selama testing dan berpikir bahwa system berkelakuan tak benar.
Defect/cacat Software
Defect pada umumnya berupa salah satu dari 3 kategori berikut :
1. Wrong (salah) : Spesifikasi dibuat secara tidak benar. Merupakan cacat kategori ke-2
2. Missing (Hilang/kurang) : spesifikasi kebutuhan tertentu tidak ada pada produk.
Merupakan cacat kategori ke-1
3. Extra : Fungsi yang terdapat dalam produk, tetapi tidak ada dalam spesifikasi kebutuhan. Merupakan cacat kategori ke-1
Defect Vs Failure
• Defect : merupakan cacat/kekurangan (wrong/missing/extra) didalam sistem software, namun tidak memiliki dampak apabila tidak mempengaruhi customer/user dan sistem operasional organisasi.
• Failure : cacat yang menyebabkan error pada operasi atau secara negatif memberikan dampak pada user/customer.
• Defect dapat berubah menjadi Failure yang dapat menyebabkan gangguan/kerusakan pada organisasi.
Perspektif Bisnis Untuk Pengujian
• Pengujian (Testing) memiliki fungsi dan peranan tersendiri dalam sudut pandang bisnis, salah satunya adalah sebagai komponen yang akan menunjukkan Resiko Bisnis (Business Risk)
• Resiko (Risk) adalah kemungkinan adanya kejadian-kejadian yang tidak diinginkan pada sistem yang dapat mencegah kesuksesan implementasi gagasan-gagasan bisnis dari organisasi, Misalnya informasi terlambat atau tidak akurat.
Perspektif Bisnis Untuk Pengujian
• Control (pengendalian) : cara untuk meminimalisasi resiko
• Pengujian Perangkat lunak (Software Testing) merupakan suatu cara pengendalian (Control)
• Maka dapat disimpulkan, bahwa para senior eksekutif organisasi mengandalkan pengendalian seperti pengujian perangkat lunak, untuk membantu mereka dalam memenuhi tujuan bisnis mereka.
Perspektif Bisnis Untuk Pengujian
• Bagaimana Software Testing dapat membantu dalam pengendalian resiko bisnis?
Tester harus memahami peran nya dalam bisnis organisasi
Menghasilkan informasi kemungkinan kekurangan/kesalahan sistem kepada manajemen
Manajemen akan memanfaatkan report/informasi dari hasil testing untuk mengambil tindakan dalam mengatasi resiko.
Pihak yang Berkaitan Dengan Testing
1. Software Customer
Bagian atau departemen yang meminta dikembangkannya suatu software 2. Software User
Individu/grup yang akan menggunakan software setelah selesai dibuat 3. Software Developer
Individu/grup yang menerima/membantu dalam mencatat kebutuhan- kebutuhan user, merancang software, membangun software, dan mengubah serta merawat software seperti yang diperlukan.
4. Software Tester
Pihak yang Berkaitan Dengan Testing
5. Information Services Management
Individual/grup yang bertanggungjawab dalam memenuhi tugas-tugas sehubungan dengan layanan informasi
6. Senior Organization Management
CEO dari organisasi dan senior eksekutif lainnya yang bertanggung-jawab mencapai misi dari organisasi.
7. Auditor
satu atau lebih individu yang bertanggung-jawab untuk mengevaluasi efektifitas, efisiensi, dan pengendalian yang mencukupi pada area information services. Testing sebaiknya di kontrol oleh fungsi audit.