250 likes | 370 Views
Testing & Implementasi Sistem. Pertemuan 1.
E N D
Testing & ImplementasiSistem Pertemuan 1
Mahasiswa semester 7 yang mengikutiperkuliahan TIS diharapkanmampumerancangtest planberdasarkanpemahamanterhadapkonsepdasar testing danpemilihanterhadapalat bantu testing yang didasarimetodologiwhite boxmaupunblack box, baikdengankinerjaindividumaupundenganbekerjasamadalamtim.Diharapkan 65% mahasiswa lulus dengannilai minimal B & kehadirankuliah 100%. TujuanPerkuliahan
Agarwal, B.B., Tayal, S.P., Gupta, M. (2010) Software Engineering & Testing, Jones & Bartlett Publishers: Massachusetts. • Snell, P., Powers, L. (2011) Microsoft Visual Studio 2010 Unleashed, Pearson Education: London. • Gousset, M., Keller, B., Krishnamoorthy, A., Woodward, M. (2010) Professional Application Lifecycle Management with Visual Studio 2010, Wilay Publishing Inc. : Indianapolis. • Farrel-Vinay, P. (2008) Manage Software Testing, Auerbach Publications: New York. Pustaka
“Testing merupakancarauntukdapatlebihmengertidanmemahami proses pengembangan, termasukpengembangandiripribadi, untukmencapaihidup yang lebihdanlebihberarti. Karenakesuksesanbukanlahposisidimanaberadasaatini, namunmerupakantingkatkuantitasdankualitasmaknadaripengalamanhidup yang telahdicapaihinggasaatini.” Opening Quote
Testing software adalah proses mengoperasikan software dalamsuatukondisi yang di kendalikan, untuk (1) verifikasiapakahtelahberlakusebagaimanatelahditetapkan (menurutspesifikasi), (2) mendeteksi error, dan (3) validasiapakahspesifikasi yang telahditetapkansudahmemenuhikeinginanataukebutuhandaripengguna yang sebenarnya. • Verifikasiadalahpengecekanataupengetesanentitas-entitas, termasuk software, untukpemenuhandankonsistensidenganmelakukanevaluasihasilterhadapkebutuhan yang telahditetapkan. (Are we building the system right ?) • Validasimelihatkebenaransistem, apakah proses yang telahditulisdalamspesifikasiadalahapa yang sebenarnyadiinginkanataudibutuhkanolehpengguna. (Are we building the right system?) • Deteksierror: Testing seharusnyaberorientasiuntukmembuatkesalahansecaraintensif, untukmenentukanapakahsuatuhaltersebutterjadibilamanatidakseharusnyaterjadiatausuatuhaltersebuttidakterjadidimanaseharusnyamerekaada. Definisi Testing
Testing membuatkualitasdapatdilihatsecaraobyektif, karena testing merupakanpengukurandarikualitassoftware. Dengan kata lain testing berartipengendaliankualitas (Quality Control - QC) • QC mengukurkualitasproduk, danJaminankualitas (Quality Assurance – QA) mengukurkualitas proses yang digunakanuntukmembuatprodukberkualitas. • Testing tidakdapatmemastikankualitassoftware, namundapatmemberikankepercayaanataujaminanterhadapsoftware dalamsuatutingkattertentu. • Testing merupakanpembuktiandalamsuatukondisiterkendali, dimanasoftware difungsikansebagaimana yang diharapkanpadatest case yang digunakan. • Tugasdari QA adalah superset dari testing. Misinyaadalahuntukmembantudalamminimalisasiresikokegagalanproyek. • Tiapindividu QA harusmemahamipenyebabkegagalanproyekdanmembantutimuntukmencegah, mendeteksidanmembenahimasalah. • Kadangtim testing direferensikansebagaitim QA. Hubungan Testing danKualitas
Sumber: Gartner Juni 2012 DistribusiKeberhasilan & KegagalanProyek IT terhadapUkuranProyek
Sumber: Gartner Juni2012 MengapaProyekGagal?
Seorangpengembangbertugasmembangun, sedangkanseorang tester justruberusahauntukmenghancurkan. • Apabilaseorangdisainerharusmenanamkanpadabenaknyadalam-dalamakantestabilitas, programerharusberorientasipada “zero defect minded”, maka tester harusmempunyaikeinginan yang mendasaruntuk “membuktikankodegagal (fail), danakanmelakukanapasajauntukmembuatnyagagal.” • Jadibilaseorang tester hanyainginmembuktikanbahwakodeberaksisesuaidenganfungsibisnisnya, maka tester tersebuttelahgagaldalammenjalankantugasnyasebagai tester. Psikologi Testing
Semuatesharusdapatdilacakterhadapkebutuhanpelanggan. Hal inidilakukanuntukmengungkapsetiaperror yang dapatmenyebabkan program atausistemgagalmemenuhikebutuhanklien. • Tesharusdirencanakanjauhsebelumtesdimulai.Rencanatesbisamulaidibuatsegerasetelah model kebutuhanselesai. Test cases dapatdimulaisegerasaatdisain model dilakukan. • Terapkanprinsip Pareto ke testing software.Secarasederhana, prinsip Pareto menyatakanbahwa 80% darisemua error yang takdicakupselama testing kemungkinanbesardapatdilacaksampai 20% darisemuakomponen program. Masalahnya, bagaimanamengisolasikomponen-komponen yang dicurigaidanbenar-benarmelakukantesterhadapkomponentersebut. • Testing harusdimulaidariygkecilke yang besar.Pertamatesdirencanakandandieksekusifokuspadakomponen individual. Kemudian, fokusakanbergeseruntukmenemukan error dalamklusterkomponenterintegrasidanakhirnyadalamsistemsecarakeseluruhan. • Testing yang komplitdanmendalamtidakmungkin.Jumlahpermutasijalurbahkanuntuk program berukuransedangsangatlahbesar, karenaitutakmungkinmengeksekusitiapkombinasijalursalama testing. • Agar efektif, testing harusdilakukanpihak ke-3. Hal iniberkaitandenganpsikologi testing, dan tester harusindependen, agar pengukuran yang takbias. Prinsip-Prinsip Testing
Domain Masukan: Domain darimasukan yang mungkinsangatbanyakjumlahnya, dimanaharusdilakukantessemuamasukan yang valid, semuamasukan yang tak valid, semuamasukan yang diedit, semuavariasimasukanberdasarkanpadawaktukejadian, olehkarenaitudibutuhkanprioritasdalampemilihan domain masukandarisistem yang akandites. • Misalkansajadilakukan testing program kalkulatordengan 10 digit bilanganinteger, akanada 1010 masukanpositifdan 1010 masukannegatif, untuk testing terhadapmasukan valid. Dan untukmasukantak valid, misalkanpenangananpengetikanmasukanalfabetdarikeyboard. • Kompleksitas: User interface dandisainsangatkomplekuntukdilakukan testing secarakomplit. Jikasuatukesalahandisainterjadi, bagaimanaseorang tester dapatmenyatakansuatubug adalahbug bilahaltersebutadadalamspesifikasi, danlebihdaripadaitubagaimanaseorang tester dapatmengenalibahwatingkahlakusistemtersebutadalahsebuahbug. Pembuktiankebenaran program berdasarkanlogikajugatidakdimungkinkankarenaakanmenghabiskanwaktu, danwaktuadabatasannya. Testing yang KomplitTakMungkin
Jalur Program: Akan terdapatsangatbanyakjalur yang mungkindilewatipadasuatu program untukditessecarakomplit. • Misalakandilakukan testing terhadapkode program sebagaimanaterdapatpadagambar di kanan. • Plotkansemuajalurdariawal (START) sampaiakhir (END). X akandapatpergike END ataumelakukanloop kembalike A 19 kali. Ada lima Jalurdari A ke X, yaitu: ABCX, ABDEGX, ABDEHX, ABDFIX, dan ABDFJX. • Makakeseluruhanpermutasikombinasijalur yang harusditesadalah 5 + 52 + 53 + … + 520 = 1014 (100 Triliun). Testing yang KomplitTakMungkin
Testing bukanlahsuatuhal yang sederhana, karena: • Untuk melakukan testing secara efektif, harus mengetahui keseluruhan sistem. • Sistemtidaksederhanaatautidakmudahuntukdipahami. • Bukanlahsuatuhal yang berlebihanuntukmengatakanbahwa testing merupakanpekerjaan yang sulit. • Untukdapatsuksesdalammelakukan testing dibutuhkanhal-halpentingsebagaiberikut: • Kreatifitas. • Pengetahuanbisnis. • Pengalamantesting. • MetodologiTesting. Testing Pekerjaanyang KreatifdanSulit
Testing adalah proses menjalankan program dengan maksud menemukan error. • Sebuah test case yang baik adalah test case yang memiliki probabilitas tinggi untuk menemukan error yang belum ditemukan. • Sebuah testingyang sukses adalah testing yang mengungkap error yang belum ditemukan. DasarObyektivitas Testing
Meningkatkankepercayaanbahwasistemdapatdigunakandengantingkatresiko yang dapatditerima. • Menyediakaninformasi yang dapatmencegahterulangnyaerror yang pernahterjadi. • Menyediakaninformasi yang membantuuntukdeteksierror secaradini. • Mencarierror dankelemahanatauketerbatasansistem. • Mencari sejauh apa kemampuan dari sistem. • Menyediakaninformasiuntukkualitasdariproduksoftware. ObyektivitasTesting Lainnya
Unit testing Testing penulisankode-kode program dalamsatuanunit terkecilsecara individual. • System Testing Proses testing padasistemterintegrasiuntukmelakukanverifikasibahwasistemtelahsesuaispesifikasi. • Acceptance Testing Testing formal yang dilakukanuntukmenentukanapakahsistemtelahmemenuhikriteriapenerimaandanmemberdayakanpelangganuntukmenentukanapakahsistemdapatditerimaatautidak. 3 Tingkatan Testing Secara Umum
User interface errors - sistemmemberikansuatutampilan yang berbedadarispesifikasi. • Error handling – pengenalandanperlakuanterhadaperror bilaterjadi. • Boundary – related errors - perlakuanterhadapnilaibatasandarijangkauanmereka yang mungkintidakbenar. • Calculation errors - perhitunganarimatikadanlogika yang mungkintidakbenar. • Initial and later states - fungsigagalpadasaatpertamadigunakanatausesudahitu. • Control flow errors - pilihanterhadapapa yang akandilakukanberikutnyatidaksesuaiuntuk status saatini. • Errors in handling or interpreting data - melewatkandanmengkonversi data antarsistem (danmungkinkomponen yang terpisahdarisistem) dapatmenimbulkanerror. 13 kategori utama defect dari software
Race conditions - biladuaevent diprosesakanmakasalahsatuakanditerimaberdasarkanprioritassampaipekerjaanselesaidenganbaik, barupekerjaanberikutnya. Bagaimanapunjugakadang-kadang event lain akandiprosesterlebihdahuludandapatmenghasilkansesuatu yang tidakdiharapkanatautidakbenar. • Load conditions - saatsistemdipaksapadabatasmaksimum, masalahakanmulaimuncul, sepertiarrays, overflow, diskfull. • Hardware- antarmukadengansuatudevice mungkintidakdapatberoperasidenganbenarpadasuatukondisitertentusepertidevice unavailable. • Source and Version Control - program yang telahkadaluwarsamungkinakandapatdigunakanlagibilaadarevisiuntukmemperbaikinya. • Documentation- penggunatakdapatmelihatoperasi yang telahdideskripsikandalamdokumenpanduan. • Testing errors - tester membuatkesalahanselama testing danberpikirbahwasistemberkelakuantakbenar. 13 kategori utama defect dari software
Debugging bukantesting. • Debugging terjadisebagaikonsekuensi testing yang berhasil. Yaitubilamanatest case menemukanerror, debugging adalah proses menghilangkanerror. Debugging vs Testing
“Kesuksesanitusederhana, yaitusaatkitaberhasilmencapaitujuansuatukegiatan yang sederhana. Akumulasikesuksesandarikegiatansederhana yang terintegrasiakanmenghasilkankesuksesan yang lebihbesar, demikianseterusnya, hinggakitamencapaikesuksesanhidup yang sesungguhnya.” Terimakasih
Bikin Grup FB untuk Kelas: 131-S1SI-TIS-Q1