210 likes | 672 Views
Testing dan Implementasi Sistem. Bab 2. Dasar-Dasar Testing. Lecturer: Arochman. Tujuan : Memberikan landasan yang cukup dalam memahami dasar-dasar testing ( seperti obyektifitas dan prinsip-prinsip dasar testing dn testabilitas ).
E N D
Testing danImplementasiSistem Bab 2. Dasar-Dasar Testing Lecturer: Arochman Tujuan: • Memberikanlandasan yang cukupdalammemahamidasar-dasar testing (sepertiobyektifitasdanprinsip-prinsipdasar testing dntestabilitas). • Memberikangambaransecaraumumtentangsiklushidup testing danintegrasinyadidalamsiklushiduppengembangan software. Referensi: • Pressman, Roger S., “Software Engineering: A Practitioner’s Approach,” Fifth Edition, McGraw-Hill, New York, 2001. • Hetzel, Bill, “The Complete Guide to Software Testing,” Second Edition, John Wiley & Sons, 1988. • Collard & Co., “Software testing & Quality Assurance Techniques,” Collard & Co., 1997. • Shoemaker, Dan, and Jovanovic, Vladan, “Engineering A Better Software Organization,” Quest Publishing House, Michigan, 1999.
1. Obyektifitas Testing Dasar-Dasar Testing 2. Misi dari Tim Testing • Meningkatkankepercayaanbahwasistemdapatdigunakandengantingkatresiko yang dapatditerima • Menyediakaninformasi yang dapatmencegahterulangnya error yang pernaterjadi • Menyediakaninformasi yang membantuuntukmendeteksi error secaradini • Mencari error dankelemahanatauketerbatasansistem • Mencarisejauhapakemampuandarisistem • Menyediakaninformasiuntukkualitasproduk software Misidaritim testing tidakhanyauntukmelakukan testing, tapijugauntukmembantumeminimalkanresikokegagalanproyek Tester tidakmelakukanpembenahanataupembedahankode, tidakmempermalukanataumelakukankomplainpadasuatuindividuatautim, hanyamenginformasikan Tester adalahindividu yang memberikanhasilpengukurandarikualitas software
3. Psikologi Testing Dasar-Dasar Testing 4. Prinsip-prinsip Testing • Tester haruskeinginan yang mendasaruntuk “membuktikankodegagal, danakanmelakukanapasajauntukmembuatnyagagal” • Bilaseorang tester hanyainginmembuktikanbahwakodeberaksisesuaidenganfungsibisnisnya, maka tester tersebuttelahgagaldalammenjalankantugasnyasebagai tester Testing yang komplittidakmungkin Testing merupakanpekerjaankreatifdansulit Alasanpentingdiadakan testing adalahuntukmencegahterjadi errors Testing berbasispadaresiko Testing harusdirencanakan Testing membutuhkanindependensi
5. Testabilitas Dasar-Dasar Testing • Untukmembantu testing dalammendisain test case yang efektifdanlebihmudah, perekayasa software harusmenempatkantesttabilitasdalambenaknya. • Menurut James bach, testabilitas software adalahseberapamudah (suatu program komputer) dapatdites. • Karakteristik yang dapatmengarahpada software yang dapatdites: • Operability, Semakinbaik software bekerja, akanmembuat software ditesdenganlebihefisien. • Observability,apa yang andalihat, adalahapa yang andates. • Controllability,dengansemakinbaikkitamengenali software, semakinbanyak testing yang dapatdiotomatisasidandioptimalisasi. • Decomposability,denganpengendalianbatasan testing, kitadapatlebihcepatdalammengisolasimasalahdanmelakukan testing ulang yang lebihbaik. • Simplicity,semakinsedikit yang dites, semakincepatkitamelakukannya. • Stability,Semakinsedikitperubahan, semakinsedikit/ masalahatauganguan testing. • Understandability,semakinbanyakinformasi yang kitamiliki, kitaakandapatmelakukanteslebihbaik.
6. Kemampuan Tester yang Diharapkan Dasar-Dasar Testing • Kemampuansecaraumum • Mempunyaikemampuananalisa yang kuatdanterfokus • Mempunyai kemampuan komunikasi yang baik • Mempunyailatarbelakang QA • Pemahamanterhadapmetodologi • Pengembanganrencanates • Pembuatandanperawatanlingkungantes • Standartes • Dokumentasites (seperti test cases dan procedure test) • Pengetahuanakanpendekatan testing • Integration testing • Acceptance Testing • Stress / Volume Testing • Regression testing • Functional testing • End-To-End Testing • GUI Testing
6. Kemampuan Tester yang Diharapkan […Lanjutan] Dasar-Dasar Testing • Pengetahuantentangsistem (berhubungandenganpasardariorganisasibersangkutan) • Perbankan/Keuangan • ProdukKomersial • Telecom • Internet • Y2K • Pengetahuan dan pengalaman akan penggunaan alat bantu testing • Alat bantu capture atau playback (sepertiWinRunner) • Alat bantu Load testing (sepertiLoadRunner, RoboTest) • Kemampuanterhadaplinkungan testing • Mainframe (seperti MVS, JCL). • Client – Server (seperti WinNT, UNIX) • Kemampuanterhadapaplikasi • Dokumentasi (seperti office, excel, word, Lorus Notes) • Database (seperti oracle, access, 3GL, 4GL, SQL, RDBMS) • Pemrograman (seperti C++, VB, OO)
6. Personalitas Tester Dasar-Dasar Testing • Atributpositif • Terencana • Bermentaljuara • Berpendirianteguh • Praktikal • Analitikal • Bermoralbaik • Atributnegatif • Sedikitempatiterhadappengembang • Kurangberdiplomasi • Skeptis • Keraskepala
6. Personalitas Tester [… Lanjutan] Dasar-Dasar Testing Hambatanapa yang akandihadapi tester dalambekerjasamadenganpengembang?
6. Personalitas Tester [… Lanjutan] Dasar-Dasar Testing • Hambatan yang akandihadapi tester dalambekerjasamadenganpengembang, Pengembang (developers) padaumumnyaakancenderunguntukmelarikandiridanbersembunyidarinya, bilamerekamerasahal-halsebagaiberikut: • Percayabahwa tester akanmenggangguperkerjaanmerekadanmanambahkankerumitandenganmasalah-masalah yang terjadiakibatkeberadaan tester. • Takutuntukmendiskusikanhal-hal yang berkaitandenganpengembangan yang sedangdilakukan, dimanahaltersebutakandapatdigunakanuntukmenjatuhkanmereka.
7. Pengertian Defect dari Software Dasar-Dasar Testing • User interface errors: sistemmemberikansuatutampilan yang berbedadarispesifikasi. • Error handling: pengenalandanperlakuanterhadap error bilaterjadi. • Boundary – related errors: perlakuanterhadapnilaibatasandarijangkauanmereka yang mungkintidakbenar. • Calculation errors: perhitunganarimatikadanlogika yang mungkintidakbenar. • Initial and later states: fungsigagalpadasaatpertamadigunakanatausesudahitu. • Control flow errors: pilihan terhadap apa yang akan dilakukan berikutnya tidak sesuai untuk status saat ini. • Errors in handling or interpreting data: melewatkandanmengkonversi data antarsistem (danmungkinkomponen yang terpisahdarisistem) dapatmenimbulkan error. • Race conditions: biladua event diprosesakanmakasalahsatuakanditerimaberdasarkanprioritassampaipekerjaanselesaidenganbaik, barupekerjaanberikutnya. • Load conditions: saatsistemdipaksapadabatasmaksimum, masalahakanmulaimuncul, seperti arrays, overflow, diskfull.
7. Pengertian Defect dari Software [… Lanjutan] Dasar-Dasar Testing • Hardware: antarmukadengansuatu device mungkintidakdapatberoperasidenganbenarpadasuatukondisitertentuseperti device unavailable. • Source and Version Control: program yang telahkadaluwarsamungkinakandapatdigunakanlagibilaadarevisiuntukmemperbaikinya. • Documentation: penggunatakdapatmelihatoperasi yang telahdideskripsikandalamdokumenpanduan. • Testing errors: tester membuatkesalahanselama testing danberpikirbahwasistemberkelakuantakbenar.
8. SiklusHidup Software secaraUmum Dasar-Dasar Testing Pembagianfase-fase/tahapandapattidaksamaantarasuatuorganisasidenganorganisasi lain, namunsemuanyamemilikitahap-tahapdasar yang sama.
9. SiklusHidup Testing SecaraUmum Dasar-Dasar Testing • Padaawalnya testing merupakansalahsatu sub-fasedarifasepengembangan (development), setelahfase coding. • Sudutpandang testing yang tepatadalahdenganmenyediakansuatusiklushidup testing secaralengkap, yang merupakansuatubagiandanmenjadisatukesatuandidalamsiklushidup software secarakeseluruhan
9. Aktifitas Testing SecaraUmum Dasar-Dasar Testing • Perencanaan • Rencanapendekatanumum • Menentukanobyektivitas testing • Memperjelassecaraumum • Akusisi • Desaintes • Menerapkantes • Pengukuran • Eksekusites • Cekterminasi • Evaluasihasil
10. TigaTingkatan Testing SecaraUmum Dasar-Dasar Testing 10.1. Praktik unit testing secara umum • Unit testing: Testing penulisankode-kode program dalamsatuan unit terkecilsecara individual. • System Testing: Proses testing padasistemterintegrasiuntukmelakukanverifikasibahwasistemtelahsesuaispesifikasi. • Acceptance Testing: Testing formal yang dilakukanuntukmenentukanapakahsistemtelahmemenuhikriteriapenerimaandanmemberdayakanpelangganuntukmenentukanapakahsistemdapatditerimaatautidak. Tujuan: Konfirmasibahwamodultelahdikodedenganbenar. Pelaku: BiasanyaProgramer Apa yang dites: Fungsi (Black Box), Kode (White Box), Kondisi ekstrim dan batasan-batasan. Kapanselesai: Biasanyasaatprogramertelahmerasapuasdantidakdiketahuilagikesalahan. Alat bantu: Tidakbiasadigunakan. Data: Biasanyatidakdidata.
10.2. Praktik system testing secaraumum Dasar-Dasar Testing 10.3. Praktik acceptance testing secara umum • Tujuan: Merakitmodulmenjadisuatusistem yang bekerjadanmenentukankesiapanuntukmelakukan Acceptance Test. • Pelaku: Pemimpintimataugruptes. • Apa yang dites: Kebutuhan dan fungsi sistem, Antarmuka sistem. • Kapanselesai: Biasanyabilamayoritaskebutuhantelahsesuaidantidakadakesalahan mayor yang ditemukan. • Alat bantu: Sistempustakadanpustaka test case, Generator, komparatordan simulator data testing. • Data: Data kesalahan yang ditemukan, Test case Tujuan: Mengevaluasikesiapanuntukdigunakan. Pelaku: Penggunaakhiratauagen. Apa yang dites: Fungsi mayor, Dokumentasi, Prosedur. Kapanselesai: Biasanyabilapenggunatelahmerasapuasatautesberjalandenganlancar / sukses. Alat bantu: Komparator. Data: Formalitasdokumen.
SOAL Dasar-Dasar Testing • Apamisidari Tim testing? • Hal apa yang tidakbolehdilakukan tester dalammenjalankantugas? • Tester dinyatakangagaldalammenjalankantugasnyaapabila? • Kenapa testing yang komplittidakmungkindilakukan? • Apa yang dimaksuddenganTesttabilitas? • Sebutkankemampuansecaraumum yang harusdimiliki tester! • Apaperbedaan testing dalamsiklushiduppengembangan software, antarapandanganmasalaludansekarang? • Sebutkanaktifitas testing secaraumum! • Sebutkantigatingkatan testing secaraumum! • Hal apasaja yang ditespadatingkatan unit testing!
Jawaban Dasar-Dasar Testing • Misidaritim testing tidakhanyauntukmelakukan testing, tapijugauntukmembantumeminimalkanresikokegagalanproyek • Tester tidakmelakukanpembenahanataupembedahankode, tidakmempermalukanataumelakukankomplainpadasuatuindividuatautim • Bilaseorang tester hanyainginmembuktikanbahwakodeberaksisesuaidenganfungsibisnisnya • Karenajumlahkemungkinankombinasi test case yang amatbesar. • Testtabilitasadalahseberapamudah (subuah program komputer) dapatdites • Mempunyaikemampuananalisa yang kuatdanterfokus, mempunyaikemampuankomunikasi yang baik, mempunyailatarbelakang QA. • Padamasalalu testing dilakukansetelahtahap coding, tetapisudutpandang testing sekarangmerupakansuatubagiandanmenjadisatukesatuandidalamsiklushidup software secarakeseluruhan. • Perencanaan, Akusisi, Pengukuran • Unit testing, System testing, Acceptance testing • Fungsi, kode, kondisiekstrimdanbatasan-batasan.