350 likes | 479 Views
FASE SDLC. Systems Development Life Cycle. SOFTWARE TESTING. Definisi testing. Menurut standar ANSI/IEEE 1059 Testing adalah proses menganalisa suatu
E N D
FASE SDLC Systems Development Life Cycle
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
Terdapatduakegiatandalammelakukanverifikasi, yaitu : • VerifikasiStatik, yaituberhubungandengananalisisrepresentasisistematikuntukmenemukanmasalah, biasadisebut Software inspection • VerifikasiDinamis, yaituberhubungandengandenganpelaksanaandanmemperhatikanperilakuproduk, biasa disebut Software testing.
KualitasPerangkatLunak Pengujian dilakukan untuk mendapatkan perangkat lunak dengan kualitas yang baik. Pengertiankualitasperangkatlunakterbagiduatingkat, yaitukualitas intrinsic produkdankepuasan customer. Pernyataan pengertian tersebut dinyatakan dalam bentuk pengukuran kualitas perangkatlunak, yaitu : • Kualitas (intrinsic) produk Pengukurandilakukandenganmenggunakanjumlah defect yang terjadidalamsuatuperangkatlunakataudenganmemperkirakanberapa lama perangkatlunakmasihdapatberfungsisebelumterjadi crash. 2) Kepuasan customer Pengukuran yang dilakukandenganmemperhatikanpermasalahan yang dihadapi customer dantingkatkepuasan customer selamamenggunakanperangkatlunaktersebut.
Definisi kualitas • Menurut Crosby Kualitasadalahpemenuhanterhadapkebutuhan • Menurut ISO-8402 Kualitasadalahkeseluruhandarifitur yang menjadikansuatuprodukdapatmemuaskanataudipakaisesuaikebutuhandenganharga yang terjangkau • Menurut W.E Perry Kualitasadalahpemenuhanterhadapstandar. • MenurutR.Glass Kualitasadalahtingkatkesempurnaan. • MenurutJ.Juran Kualitasadalahtepatguna.
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
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 • 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 Testing Acceptance Testing User Testing Component Testing Integration Testing
Rencana Pengujian • Proses testing • 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.
ArtiPengujianBagiPenguji 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.
KlasifikasiKesalahan Program : 1. Kesalahanbahasa (language error) Kesalahancarapenulisan program (syntax error) dan/ataukesalahantatabahasa (grammatical error) 2. Kesalahansewaktuproses (run-time error) Kesalahankondisi yang belumterpenuhiatau yang akanmenyebabkan program hang dan/crash. 3. Kesalahanlogika (logical error) Kesalahanmengartikankeinginananalis. Tidakterjadikesalahan program secarasintaksis, tetapiakanmenghasilkansesuatu yang tidakdiharapkan.
PengertianKesalahan : • Mistake : suatuaksimanusia yang menyebabkanhasiltidakbenar 2. Faults : suatulangkahsalah, baikprosesataudefinisi data dalam program komputer. Perkembangandari mistake berpotensialmenuju failure. 3. Failure : Suatuhasil yang salah. Hasiladalahmanifestasidari fault (contoh : crash) 4. Error : Jumlahdarihasil yang salah.
Failures, Faults • Failure: output yang tidakbenar/tidaksesuaiketikasistemdijalankan • Fault: kesalahandalam source code yang mungkinmenimbulkan failure ketika code yg fault tsbdijalankan Tabel Failure Class (KelasKegagalan)
Defect vs Failure : • Defect adalahhal-hal yang tergabungdalamsistem software (dapatditemukandalam software, dokumentasidantatakerja manual), yang padaawalnyatidakmempunyaidampakapapun, hinggaakhirnyamempunyaiberpengaruhpada user/customer danpengoperasiansistem (yang disebutcacat) 2. Defect yang menyebabkansuatu error dalampengoperasianatauberdampak negative pada user/customer disebutFailure
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.