Systems Development Life Cycle FASE SDLC Systems Development Life Cycle
SOFTWARE TESTING
Definisi testing Menurut standar ANSI/IEEE 1059 Testing adalah proses menganalisa suatu entitas software untuk mendeteksi perbedaan antara kondisi yang ada dengan kondisi yang diinginkan (defect/errors/bugs) dan mengevaluasi fitur-fitur dari entitas software
Cont'd Testing software adalah proses mengoperasikan software dalam kondisi yang dikendalikan, untuk : Verifikasi apakah telah berlaku sebagaimana telah ditetapkan (menurut spesifikasi) Are we building the system right? Validasi apakah spesifikasi yang telah ditetapkan sudah memenuhi keinginan atau kebutuhan dari pengguna sebenarnya Are we building the right system? > Mendeteksi error
Proses verifikasi dan validasi mempunyai dua obyektif prinsipal, yaitu : Menemukan kekurangan dalam sebuah sistem; Memperkirakan apakah sistem berguna dan dapat digunakan atau tidak dalam situasi operasional
Terdapat dua kegiatan dalam melakukan verifikasi, yaitu : Verifikasi Statik, yaitu berhubungan dengan analisis representasi sistematik untuk menemukan masalah, biasa disebut Software inspection Verifikasi Dinamis, yaitu berhubungan dengan dengan pelaksanaan dan memperhatikan perilaku produk, biasa disebut Software testing.
Kualitas Perangkat Lunak Pengujian dilakukan untuk mendapatkan perangkat lunak dengan kualitas yang baik. Pengertian kualitas perangkat lunak terbagi dua tingkat, yaitu kualitas intrinsic produk dan kepuasan customer. Pernyataan pengertian tersebut dinyatakan dalam bentuk pengukuran kualitas perangkat lunak, yaitu : Kualitas (intrinsic) produk Pengukuran dilakukan dengan menggunakan jumlah defect yang terjadi dalam suatu perangkat lunak atau dengan memperkirakan berapa lama perangkat lunak masih dapat berfungsi sebelum terjadi crash. 2) Kepuasan customer Pengukuran yang dilakukan dengan memperhatikan permasalahan yang dihadapi customer dan tingkat kepuasan customer selama menggunakan perangkat lunak tersebut.
Definisi kualitas Menurut Crosby Kualitas adalah pemenuhan terhadap kebutuhan Menurut ISO-8402 Kualitas adalah keseluruhan dari fitur yang menjadikan suatu 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 dan kualitas Software yang berkualitas adalah software yang bebas error dan bug secara objektif, tepat waktu dan dana, sesuai dengan kebutuhan atau keinginan dan dapat dirawat (maintainable) Definisi objektif : Suatu proses pembuktian yang terstruktur, terencana dan terdokumentasi dengan baik
Cont'd Testing membuat kualitas dapat dilihat secara objektif, karena testing merupakan pengukuran dari kualitas software Testing tidak dapat memastikan kualitas software, namun dapat memberikan jaminan terhadap software pada suatu tingkat tertentu Jaminan kualitas (Quality Assurance – QA) mengukur kualitas proses yang digunakan untuk membuat produk berkualitas Testing merupakan bagian dari aktifitas QA
AKTIFITAS TESTING PADA FASE SDLC Aktivitas testing Requirement Menentukan pendekatan verifikasi yang akan dilakukan Memeriksa kelengkapan desain Menggenerate data untuk functional test Memeriksa kekonsistenan desain dengan requirement Desain functional dan structural test Memeriksa kekonsistenan dengan desain
Fase SDLC Aktivitas testing Program/ coding Memeriksa kelengkapan tahap implementasi Menggenerate data untuk structural dan functional test Test Testing aplikasi Instalasi Menempatkan sistem yang telah dites ke lingkungan produksi Maintenance Modifikasi dan retest
Siklus testing Perencanaan Pembuatan testcase Pelaksanaan testing Unit testing Module testing Sub-system integration testing System integration testing Acceptance testing Pendokumentasian testing
Proses Testing --- tingkatan testing Unit testing Pengujian masing-masing unit komponen program untuk meyakinkan bhw sudah beroperasi secara benar Module Testing Pengujian terhadap koleksi unit-unit komponen yang saling berhubungan. Sub-system Testing Pengujian terhadap koleksi module-module yang membentuk suatu sub-system (aplikasi)
Proses Testing System Testing Acceptance Testing Pengujian terhadap integrasi sub-system, yaitu keterhubungan antar sub-system Acceptance Testing Pengujian terakhirs sebelum sistem dipakai oleh user. Melibatkan pengujian dengan data dari pengguna sistem. Biasa dikenal sebagai “alpha test” (“beta test” untuk software komersial, dimana pengujian dilakukan oleh potensial customer)
Proses Testing Unit Testing Module Testing Sub-system Testing System Acceptance Testing User Testing Component Testing Integration Testing
Rencana Pengujian Proses testing Pelacakan Kebutuhan Item yg diuji Deskripsi fase-fase utama dalam pengujian Pelacakan Kebutuhan Semua kebutuhan user diuji secara individu Item yg diuji Menspesifikasi komponen sistem yang diuji Jadual Testing Prosedur Pencatatan Hasil dan Prosedur Kebutuhan akan Hardware dan Software Kendala-kendala Mis: kekurangan staff, alat, waktu dll.
Hubungan antara rencana pengujian dan proses pengembangan system Spesifikasi Kebutuhan Spesifikasi System Perancangan System Detail Perancangan Acceptance Test plan System Integration Test plan Sub-System Integration Test plan Module and Unit code and test System Integration test Sub-System Integration test Acceptance test Service
Prioritas Testing Hanya test yang lengkap yg dapat meyakinkan sistem terbebas dari kesalahan, tetapi hal ini sangat sulit dilakukan. Prioritas dilakukan terhadap pengujian kemampuan sistem, bukan masing-masing komponennya. Pengujian untuk situasi yg tipikal lebih penting dibandingkan pengujian terhadap nilai batas.
Test data dan Test Cases Test data: Input yang yang direncanakan digunakan oleh sistem. Test cases: Input yang digunakan untuk menguji sistem dan memprediksi output dari input jika sistem beroperasi sesuai dengan spesifikasi.
Proses defect testing
Arti Pengujian Bagi Penguji Seorang penguji berburu errors : 1. Suatu penguji yang baik adalah seseorang yang mempunyai probabilitas yang baik untuk mendeteksi error yang belum ditemukan. Pengujian yang sukses adalah pengujian yang mendeteksi error yang belum ditemukan. 2. Berfokus pada error yang terlihat/ada.
Klasifikasi Kesalahan Program : 1. Kesalahan bahasa (language error) Kesalahan cara penulisan program (syntax error) dan/atau kesalahan tata bahasa (grammatical error) 2. Kesalahan sewaktu proses (run-time error) Kesalahan kondisi yang belum terpenuhi atau yang akan menyebabkan program hang dan/crash. 3. Kesalahan logika (logical error) Kesalahan mengartikan keinginan analis. Tidak terjadi kesalahan program secara sintaksis, tetapi akan menghasilkan sesuatu yang tidak diharapkan.
Pengertian Kesalahan : Mistake : suatu aksi manusia yang menyebabkan hasil tidak benar 2. Faults : suatu langkah salah, baik proses atau definisi data dalam program komputer. Perkembangan dari mistake berpotensial menuju failure. 3. Failure : Suatu hasil yang salah. Hasil adalah manifestasi dari fault (contoh : crash) 4. Error : Jumlah dari hasil yang salah.
Failures, Faults Failure: output yang tidak benar/tidak sesuai ketika sistem dijalankan Fault: kesalahan dalam source code yang mungkin menimbulkan failure ketika code yg fault tsb dijalankan Tabel Failure Class (Kelas Kegagalan) Failure Class Deskripsi Transient Muncul untuk input tertentu Permanent Muncul untuk semua input Recoverable Sistem dapat memperbaiki secara otomatis Unrecoverable Sistem tidak dapat memperbaiki secara otomatis Non-corrupting Failure tidak merusak data Corrupting Failure yang merusak sistem data
Defect vs Failure : Defect adalah hal-hal yang tergabung dalam sistem software (dapat ditemukan dalam software, dokumentasi dan tata kerja manual), yang pada awalnya tidak mempunyai dampak apapun, hingga akhirnya mempunyai berpengaruh pada user/customer dan pengoperasian sistem (yang disebut cacat) 2. Defect yang menyebabkan suatu error dalam pengoperasian atau berdampak negative pada user/customer disebut Failure
Kategori Defect : Wrong -- Spefikasi telah diimplementasikan secara salah (variances form user). Missing -- Suatu requirement tertentu tidak dimasukkan ke dalam produk (Variance from product evaluation) atau terdapat requirement yang baru ada ketika produk selesai dibuat atau dalam masa pembuatan. Extra -- Suatu requirement tergabung dalam program tetapi belum / tidak ditentukan (Variances from specification product.