ISG3J3 PENGUJIAN DAN IMPLEMENTASI Semester Genap 2014/2015
Pendahuluan
Eddy PN - EPN | SI-36-02
Tentang Saya......
• Nama : Eddy • • • •
Prasetyo Nugroho
Beristri 1 dan Anak Tiga Unit kerja : Ilmu Komputer , FPMIPA, UPI Pendidikan S1 Teknik Informatika STT Telkom Pendidikan S2 ,Magister Teknik Bidang Rekayasa Perangkat Lunak, Informatika,ITB • E-mail :
[email protected] • Hp : 08562116367
Bagian #1
Overview Kuliah
3
Deskripsi Ringkas Kuliah Mata kuliah ini membahas aspek-aspek yang harus dipenuhi untuk menghasilkan pengujian perangkat lunak yang dirancang bangun dengan baik. Materi mencakup topik-topik sbb: Konsep Metode Pengembangan Pembangunan P/L (SDLC), Pengujian P/L, Jenis Pengujian Fungsional dan non Fungsional, Perencanaan Pengujian dan Dokumentasi Standar Pengujian P/L. Metode ceramah, riset dan best practice di setiap tahapan yang akan dilakukan dalam perkuliahan ini. 4
Tujuan Instruksional Umum (TIU) Setelah mengikuti kuliah ini diharapkan mahasiswa mampu berperan sebagai system Tester untuk perangkat lunak yang: – Mampu memahami jenis-jenis pengujian Perangkat Lunak – Mampu merancang pengujian dalam suatu kasus pada perangkat lunak. – Mampu melakukan pendokumentasian pengujian perangkat lunak.
5
Materi Kuliah (Tentatif)
6
Silabus 1. Pendahuluan 1. 2. 3. 4. 5.
Framework Pengujian P/L Definisi Pengujian P/L Mengapa P/L perlu di uji Ruang Lingkup Pengujian Gambaran Teknik Pengujian
2. Metodologi Testing 1. 2. 3. 4. 5. 6.
Kebijakan/Standard- Strategi- Teknis Pengujian Konvensional & Life Cycle Testing Strategi Pengujian :Test Factor Latihan membuat strategi Pengujian P/L : tgs1 Tahapan Pengujian : Test Plan –Test description – Report Analysis Dokumen Pengujian
Silabus 3. How – Life Cycle Testing 1. Ruang Lingkup Testing pada tiap fase Pengembangan P/L
4. How – Teknik Testing 1. Unit testing – Tugas 2 1. White Box 2. Black Box 2. Integration Test 1. Top Down 2. Bottom Up 3. System testing – Tugas 3 1. Functional 2. Strutural
5. Pengujian perangkat Lunak Berbasis WEB 6. Pengujian perangkat lunak beroroentasi object
Satuan Acara Perkuliahan
Minggu 1 : materi 1 (Pendahuluan) Minggu 2 : materi 1 (Pendahuluan) Minggu 3 : materi 2 (Metodologi Testing) Minggu 4 : materi 2 – tugas 1 Minggu 5 : materi 3 (Life Cycle Testing) Minggu 6 : materi 4 – unit testing tugas 2 Minggu 7 : materi 4 – unit testing presentasi tugas 2 Minggu 8 : UTS
SAP – setelah UTS
Minggu 9 : materi 4 Integration test Minggu 10: materi 4 System test – tugas 3 Minggu 11: presentasi tugas 3 Minggu 12: materi 5 - Web testing Minggu 13: materi 6 - OO Testing Minggu 14: Studi kasus OO Testing
Referensi William Perry, Effective Methods for Software Testing, 3rd Edition,Wiley, 2006 Roger Pressman, Software Engineering A Practitioner’s Approach, 7th edition, Mc Graw Hill, 2010
11
Metode Perkuliahan - Student Centered Learning
12
Penilaian (Draft) Assessment Component
The Porsion of The Final Grade
Task, Discussion, Presentation, Quiz Middle Exam Final Exam Softskill Component Honesty Creativity Innovation Leadership Communication skill Confidence
13
Konvensi Buat diri anda nyaman selama kuliah. Plagiat = E
Tidak ada nilai susulan atau tugas pengganti. Tidak terpaksa datang untuk mengikuti kuliah. Jumlah kehadiran sesuai ketentuan yang akademik yang berlaku. Terlambat > 30 menit, tidak diperkenankan mengikuti kuliah.
HP dan perangkat komunikasi lainnya harus dinonaktifkan selama kuliah. Untuk kuliah yang tidak dapat diadakan, kuliah pengganti akan dijadwalkan di minggu-minggu berikutnya. 14
Bagian #2
Framework Software Testing dan SDLC
15
Frame Work S/W testing Developer/Customer/User Plan
Developer/ Customer/User
Do
Act
Check Testing
Developer
Frame Work S/W Testing Ujian yang sebenarnya dari sebuah S\W adalah selama ia dipakai untuk mendukung kehidupan sebuah perusahaan atau organisasi Namun agar tidak menimbulkan resiko yang mungkin besar di real world maka sebelum diinstall, diuji dulu, sehingga bisa mengurangi \ menghilangkan resiko
Remember.. Problem Solving COMPUTER SCIENCE
Theories
CUSTOMER
Computer Functions
SOFTWARE ENGINEERING Tools and Techniques to Solve Problem
Problem
Remember ….
Tools Methods Process Quality – – – –
Maintainability Dependability Efficiency Usability
Remember….. Waterfall Model REQUIREMENTS ANALYSIS SYSTEM DESIGN PROGRAM DESIGN CODING
UNIT & INTEGRATION TESTING SYSTEM TESTING ACCEPTANCE TESTING
OPERATION & MAINTENANCE
Remember…. Prototyping Model
LIST OF REVISIONS
revise prototype
LIST OF REVISIONS
LIST OF REVISIONS
user/ customer review
PROTOTYPE REQUIREMENTS
SYSTEM REQUIREMENTS (sometimes informal or incomplete)
PROTOTYPE DESIGN
PROTOTYPE SYSTEM
TEST
DELIVERED SYSTEM
Remember…. Spiral Model EVALUATE ALTERNATIVES AND RISKS
DETERMINE GOALS, ALTERNATIVES, CONSTRAINTS
Risk analysis
Risk analysis
3
Risk analysis
2
Risk analysis Budget
4
Budget
3
Budget
2
start
Budget
1
Prototype 1
Requirements, life-cycle plan
1
4
Proto type 2
Proto type 3
Concept of operation
Proto type 4 Detailed design
Code
Unit test
Implementation plan
PLAN
Acceptance test
System test
DEVELOP AND TEST
V Model OPERATION & MAINTENANCE
Validate requirements
REQUIREMENTS ANALYSIS
ACCEPTANCE TESTING SYSTEM DESIGN
Verify design
PROGRAM DESIGN
SYSTEM TESTING
UNIT & INTEGRATION TESTING
CODING
Frame Work S/W Testing Lakukan saja pengujian secara keseluruhan Bisakah Pengujian kita sempurna? Andai pun bisa, berapa biayanya? Prinsip Ekonomi : biaya harus <= manfaat Mengaitkan S\W Testing dengan Resiko Bisnis Sehingga Perlu Strategi dan Taktik
Exhausted Testing
Selected Test
Framework Testing
Definisi [Perry]: pemeriksaan terhadap perilaku program dengan menjalankan program pada sekumpulan contoh data.
[Myers]: proses mengekeskusi program dengan tujuan mencari kesalahan (error) [Beizer]: pengujian bertujuan untuk menunjukkan kesalahan pada program. [IEEE]: pengujian adalah proses menganalisis komponen perangkat lunak untuk mendeteksi perbedaan antara kondisi yang sudah ada dengan kondisi yang diinginkan dan untuk mengevaluasi
Definisi Definisi Testing : aktivitas untuk memvalidasi dan memverifikasi apakah perangkat lunak yang telah dibangun sudah memenuhi semua kebutuhan user dan benar sesuai dengan spesifikasi yang telah ditetapkan Jika Tester menemukan defect, maka melaporkannya ke tim developer Defect bisa memunculkan Failure
Definisi Definisi Defect : variance dari atribut produk yang diinginkan Ada dua kategori Defect dari Produk – variance dari spesifikasi produk – variance dari expectasi user\customer Tiga Istilah ttg kategori Defect – Wrong : Spek telah diimplementasikan secara tidak benar – Missing : Ada dari Spek yang belum diimplementasikan – Extra : Sebuah Spek yang diinginkan ada di dalam produk, namun belum disebutkan dalam Spek S\W
Definisi Defect : cacat\kerusakan yang ada di dalam sistem software, baik di dalam programnya maupun pada user manual dan dokumentasinya Failure : efek negatif dari defect yang diderita oleh user atau customer Tidak semua defect bisa menjadi failure Namun bisa saja sebuah defect mengakibatkan ribuan failure (contoh kegagalan switching pada satu STO)
Tujuan Testing 1. 2. 3.
Menilai apakah perangkat lunak yang dikembangkan telah memenuhi kebutuhan user Menilai apakah perangkat lunak yang dikembangkan sudah memenuhi kebutuhan yang sudah ditetapkan Menilai apakah tahap pengembangan perangkat lunak telah sesuai dengan metodologi yang digunakan
Tujuan Testing Untuk menemukan kesalahan pada perangkat lunak yang menjadi tujuan pengujian, Penguji Perangkat Lunak dapat melakukannya dengan cara: – – – – –
mempelajari kebutuhan pemakai mempelajari antarmuka fungsional untuk pemakai menjalankan perangkat lunak mempelajari objektif perancangan mempelajari struktur dan perancangan internal
Mengapa S/W perlu diuji Hasil Testing mengindikasikan :
Aliran Informasi dalam S/W Testing(1) Konfigurasi perangkat lunak
Hasil pengujian
Evaluasi
Kesalahan
Pengujian
Debug Perbaikan
Data tingkat kesalahan
Konfigurasi pengujian Hasil diharapkan
Model Keandalan
Keandalan yang diperkirakan
Aliran Informasi dalam S/W Testing(2) – Konfigurasi perangkat lunak meliputi Spesifikasi Kebutuhan Perangkat Lunak, Spesifikasi Perancangan, dan kode sumber. – Konfigurasi pengujian meliputi Perencanaan dan Prosedur Pengujian, kasus uji, dan alat bantu pengujian.
Pihak-pihak yang terkait dengan S/W testing
Pihak-pihak yang terkait dengan S/W testing Customer
User Information service Management CEO
S/W Developer S/W Tester Auditor
Pihak-pihak yang terkait dengan S/W Testing Customer : organisasi \ departemen yang menandatangani kontrak kerja User : individu atau kelompok individu yang akan menggunakan perangkat lunak yang dibangun ISM : individu atau group yang bertanggung jawab mengelola misi layanan informasi di sebuah perusahaan (apakah S/W mendukung misi?)
Pihak-pihak yang terkait dengan S/W Testing CEO : eksekutif yang bertanggungjawab atas tercapainya misi organisasi.Perlu mengetahui apakah S\W sejalan\mendukung misi organisasi Auditor : Individu yang bertanggung jawab mengevaluasi efektivitas, efisiensi, dan kesesuaian mekanisme control di area IT. Testing ini merupakan salah satu fungsi dari auditor untuk melakukan control
Pihak-pihak yang terkait dengan S/W Testing Developer : individu\group yang menerima tugas untuk menulis spesifikasi kebutuhan,merancang, mewujudkan, dan mengelola S\W S\W tester : individu atau group yang bertugas mengecek fungsi dari S/W
Ruang Lingkup Unit Testing
Modul Testing Integration Test
-
System Testing Acceptance test
Ruang Lingkup Object Testing Unit Testing : Setiap komponen secara terpisah diuji dan tidak tergantung pada komponen lain Modul Testing : Suatu modul adalah sekumpulan komponen yang saling tergantung dan saling berhubungan. Pengujian modul dilakukan agar tidak mengganggu/terganggu modul lain
Integration Test : test terhadap beberapa modul untuk menjamin bahwa data dan kontrol dilewatkan antar modul dengan benar dan sesuai
Ruang Lingkup Object Testing System Test : – Pada tahap ini dilakukan proses validasi antara sistem hasil integrasi dengan kebutuhan fungsional dari sistem. Test antara perangkat lunak dikaitkan dengan sistem (untuk Sistem Informasi misalnya) Acceptance Test : – dilakukan sebelum sistem diterima oleh pemakai untuk dioperasikan dalam lingkungan pemakai yang sebenarnya. Program diuji terhadap data yang sebenarnya. Regression Test : • Test setelah terjadi perubahan pada sistem, untuk menjamin bahwa akibat dari perubahan tidak memberikan efek yang negatif
Gambaran Global Teknik Testing Static testing – Verifikasi yang dilakukan tanpa mengeksekusi code
Dynamic testing
– Verifikasi atau validasi yang dilakukan dengan jalan mengeksekusi code
Functional Test
– Apa yang diharapkan bisa dikerjakan oleh sistem – test terhadap kebutuhan bisnis
Structural Test
– Bagaimana sistem dibuat- Menguji apakah arsitektur dari sistem valid
Black Box Testing
– Pengujian berdasarkan spesifikasi eksternal, tanpa perlu mengetahui bagaimana sistem dibangun. Biasanya dilakukan secara data driven, dilihat hasilnya
White Box Testing
Testing berdasarkan kode internal, menguji apakah struktur logic dari coding sudah benar- logic driven
Gambaran Global Teknik Testing Quality Control(QC) – Proses untuk menjustifikasi correctness dari product dan mendefinisikan aksi yang harus diambil jika terdeteksi uncorrectness – Perkerjaan yang di dalamnya adalah proses untuk menjamin bahwa product sesuai dengan spek dan requirement
Quality Assurance(QA)
– Kumpulan aktifitas yang sistematis dan terencana untuk memberikan jaminan yang cukup bahwa produk atau layanan bebas dari defect – Fungsi dari staf untuk mengimplementasikan TQM (Total Quality Management)
Verification
– Semua aktivitas QC selama life cycle yang menjamin bahwa produk antara sesuai dengan spek dan requirement
Validation
– Adalah Test Phase dalam life cycle, tujuannya menjamin bahwa end product sesuai dengan spek dan requirement
Tingkatan adopsi S\W Testing oleh oganisasi Test as an Art Test as a craft Test using defined test process Superior Test Organization World class testing organization
Berbagai Macam proses S\W Testing yang dilakukan saat ini 1. Test as an Art – testing sangat bergantung pada kemampuan dan kreativitas dari S\W tester – sedikit sekali panduan yang dijadikan acuan – hasilnya adalah inconsistency testing – Hasil test sulit untuk bisa diterima sebagai acuan tentang kualitas dari S\W
Berbagai Macam proses S\W Testing yang dilakukan saat ini 2. Test as a Craft – proses testing sudah menjadi budaya yang selalu dilakukan – ada panduan, prosedur, dan standar Test Plan untuk dijadikan acuan – namun pada umumnya tester kurang patuh pada acuan, focusnya hanya menemukan defect dan lapor hanya ke developer – Hasilnya kurang bisa dipercaya, User masih minta acceptance Test
Berbagai Macam proses S\W Testing yang dilakukan saat ini 3. Test Using Defined Process – proses testing sudah didefinisikan dengan sangat baik namun hasilnya masih kurang efektif – Efektif bisa dicapai namun tidak efisien – fokus pada test antara Spek Vs Aplikasi (variansi dari Spesifikasi) – Hasilnya adalah rekomendasi S\W layak atau tidak layak untuk memasuki tahap produksi
Berbagai Macam proses S\W Testing yang dilakukan saat ini 4. Superior Test Organization – proses testing sudah didefinisikan dengan sangat baik berdasarkan OBJECTIVE yang jelas – proses testing bisa dilakukan dengan efektif dan efisien dengan menganaliasis test result,
Berbagai Macam proses S\W Testing yang dilakukan saat ini 5. World Class testing organization – perilaku tester mendekati sempurna – Testing dilakukan berdasarkan bussiness risk reduction – Proses testing bisa menjadi sangat efisien – User/customer relatif percaya dan tidak memerlukan lagi Acceptance test
Review Apakah defect itu? Sebutkan 2 jenis defect, kaitkan wrong,missing, extra dengan 2 jenis tersebut apakah failure itu? Apa kaitan antara defect dengan failure Mengapa pengujian sistem perangkat lunak dikaitkan dengan resiko bisnis? Jelaskan bagaimana keterkaitannya jelaskan peran S|W testing pada “P/L Sistem Informasi Akademik” jelaskan peran S\W testing pada “P\L game Catur” jelaskan peran S\W testing pada “sistem pendukung keputusan perencanaan kegiatan untuk lingkungan Departemen Kebudayaan dan Pariwisata”
Review Apakah kepentingan seorang CEO dikaitkan dengan S\W testing Apakah kepentingan seorang Developer dikaitkan dengan S\W testing Apakah kepentingan seorang Auditor dikaitkan dengan S\W testing Berikan gambaran prosedur testing yang ideal