REKAYASA PERANGKAT LUNAK I Pengujian Perangkat Lunak Disusun

  • Slides: 61
Download presentation
REKAYASA PERANGKAT LUNAK I Pengujian Perangkat Lunak Disusun Oleh: Adam Mukharil Bachtiar Teknik Informatika

REKAYASA PERANGKAT LUNAK I Pengujian Perangkat Lunak Disusun Oleh: Adam Mukharil Bachtiar Teknik Informatika UNIKOM adfbipotter@gmail. com

AGENDA PERKULIAHAN Penjelasan Umum Pengujian Perangkat Lunak Pengujian White Box Pengujian Black Box

AGENDA PERKULIAHAN Penjelasan Umum Pengujian Perangkat Lunak Pengujian White Box Pengujian Black Box

Penjelasan Umum Pengujian Perangkat Lunak

Penjelasan Umum Pengujian Perangkat Lunak

KONTEN MATERI Definisi Pengujian Perangkat Lunak Tujuan Pengujian Perangkat Lunak Pelaku Pengujian Aktivitas Pengujian

KONTEN MATERI Definisi Pengujian Perangkat Lunak Tujuan Pengujian Perangkat Lunak Pelaku Pengujian Aktivitas Pengujian Strategi Pengujian Metode Pengujian

DEFINISIPENGUJIANPERANGKATLUNAK “Proses menelusuri dan mempelajari sebuah program dalam rangka menemukan kesalahan pada perangkat lunak

DEFINISIPENGUJIANPERANGKATLUNAK “Proses menelusuri dan mempelajari sebuah program dalam rangka menemukan kesalahan pada perangkat lunak sebelum diserahkan kepada pengguna. ” [Roger S. Pressman, 7 th edition]

HAL-HAL DALAM PENGUJIAN errors requirements conformance performance an indication of quality

HAL-HAL DALAM PENGUJIAN errors requirements conformance performance an indication of quality

TUJUANPENGUJIANPERANGKATLUNAK(1) 1. Pengujian adalah proses menjalankan program dengan maksud untuk mencari kesalahan (error). 2.

TUJUANPENGUJIANPERANGKATLUNAK(1) 1. Pengujian adalah proses menjalankan program dengan maksud untuk mencari kesalahan (error). 2. Kasus uji yang baik adalah kasus yang memiliki peluang untuk mendapatkan kesalahan yang belum diketahui sebelumnya. 3. Pengujian dikatakan berhasil bila dapat memunculkan kesalahan yang susah untuk ditemukan.

TUJUANPENGUJIANPERANGKATLUNAK(2) 4. Jadi, pengujian yang baik bukan untuk memastikan tidak ada kesalahan tetapi untuk

TUJUANPENGUJIANPERANGKATLUNAK(2) 4. Jadi, pengujian yang baik bukan untuk memastikan tidak ada kesalahan tetapi untuk mencari sebanyak mungkin kesalahan yang ada di program. 5. Pengujian tidak dapat menunjukkan ke-tidak-hadir-an defect, pengujian hanya menunjukkan bahwa kesalahan perangkat lunak ada.

PELAKUPENGUJIANPERANGKATLUNAK DEVELOPER 1. Paham Sistem 2. Terbatas waktu 3. Subjektif TESTER INDEPENDENT 1. Tidak

PELAKUPENGUJIANPERANGKATLUNAK DEVELOPER 1. Paham Sistem 2. Terbatas waktu 3. Subjektif TESTER INDEPENDENT 1. Tidak paham sistem 2. Kreatif mencari kesalahan 3. Objektif

FOKUSPENGUJIANPERANGKATLUNAK Verification – Apakah proses pembangunan produk dengan benar? Apakah kode sudah dibuat sesuai

FOKUSPENGUJIANPERANGKATLUNAK Verification – Apakah proses pembangunan produk dengan benar? Apakah kode sudah dibuat sesuai dengan spesifikasinya? Validation – Apakah produk yang dibangun benar? Apakah spesifikasi sesuai dengan kebutuhan di awal?

AKTIVITASPENGUJIANPERANGKATLUNAK(1) Subsystem Code Unit Tested Subsystem Requirements Analysis Document System Design Document Integration Test

AKTIVITASPENGUJIANPERANGKATLUNAK(1) Subsystem Code Unit Tested Subsystem Requirements Analysis Document System Design Document Integration Test Functional Test Integrated Subsystems Tested Subsystem Code Unit Test DIUJI OLEH DEVELOPER User Manual Functioning System

AKTIVITASPENGUJIANPERANGKATLUNAK(2) Client’s Understanding of Requirements Global Requirements Performance Test Validated System Acceptance Test Accepted

AKTIVITASPENGUJIANPERANGKATLUNAK(2) Client’s Understanding of Requirements Global Requirements Performance Test Validated System Acceptance Test Accepted System User Environment Installation Test DIUJI OLEH KLIEN DIUJI OLEH DEVELOPER User’s understanding System in Use Usable System DIUJI OLEH PENGGUNA

STRATEGIPENGUJIANPERANGKATLUNAK Unit Testing Integration Testing Validation Testing System Testing

STRATEGIPENGUJIANPERANGKATLUNAK Unit Testing Integration Testing Validation Testing System Testing

PENJELASANSTRATEGIPENGUJIANPERANGKATLUNAK 1. Unit testing: pengujian komponen individual (modul di pemrograman prosedural atau class di

PENJELASANSTRATEGIPENGUJIANPERANGKATLUNAK 1. Unit testing: pengujian komponen individual (modul di pemrograman prosedural atau class di OOP). 2. Integration testing: pengujian terhadap koleksi dari komponen-komponen yang bekerja bersamaan. 3. Validation testing: pengujian aplikasi terhadap kebutuhan pengguna. 4. System testing: pengujian aplikasi secara keseluruhan.

PENJELASANUNITTESTING Modul yang Diuji Software Engineer Hasil Pengujian

PENJELASANUNITTESTING Modul yang Diuji Software Engineer Hasil Pengujian

KOMPONENPADAUNITTESTING 1. Antarmuka perangkat lunak Modul Uji 2. Struktur Data Lokal 3. Batasan dan

KOMPONENPADAUNITTESTING 1. Antarmuka perangkat lunak Modul Uji 2. Struktur Data Lokal 3. Batasan dan Asumsi 4. Independent Path 5. Error Handling Path Uji Kasus

PENDEKATANINTEGRATIONTESTING A B F A top module is tested with stubs B G stubs

PENDEKATANINTEGRATIONTESTING A B F A top module is tested with stubs B G stubs are replaced one at a time, "depth first" C E C D TOP-DOWN G drivers are replaced one at a time, "depth first" as new modules are integrated, some subset of tests is re-run D F E cluster worker modules are grouped into builds and integrated BOTTOM-UP

PENJELASANVALIDATIONTESTING SINKRON? Dokumen Kebutuhan Produk

PENJELASANVALIDATIONTESTING SINKRON? Dokumen Kebutuhan Produk

STRATEGIPENGUJIANSYSTEMTESTING(1) Selected path loop < 20 X Exhausting Testing loop < 20 X Selective.

STRATEGIPENGUJIANSYSTEMTESTING(1) Selected path loop < 20 X Exhausting Testing loop < 20 X Selective. Testing

STRATEGIPENGUJIANSYSTEMTESTING(2) ALPHA TESTING BETA TESTING (Release Preview) Lingkungan Developer Lingkungan user User didampingi developer

STRATEGIPENGUJIANSYSTEMTESTING(2) ALPHA TESTING BETA TESTING (Release Preview) Lingkungan Developer Lingkungan user User didampingi developer User menguji sendiri Hasil pengujian diisi developer Feedback Online End User dipilih developer Perangkat lunak uji disebar Digunakan untuk perangkat lunak yang “High Order”

ALASANALPHADANBETATESTING 1. Secara virtual, mustahil untuk seorang software developer untuk memperkirakan bagaimana customer akan

ALASANALPHADANBETATESTING 1. Secara virtual, mustahil untuk seorang software developer untuk memperkirakan bagaimana customer akan melihat dan menggunakan softwarenya. 2. Instruksi yang disediakan mungkin saja disalahartikan. 3. Kombinasi data yang aneh mungkin bisa digunakan oleh customer. 4. Keluaran dari sistem mungkin sudah jelas bagi tester akan tetapi belum tentu untuk user di dunia nyata. 5. Alpha dan beta testing memungkinkan untuk membuka kesalahan yang mungkin terjadi pada end user.

ALPHATESTING 1. Pengujian alpha diadakan di lingkungan developer oleh sekumpulan end user yang akan

ALPHATESTING 1. Pengujian alpha diadakan di lingkungan developer oleh sekumpulan end user yang akan menggunakan perangkat lunaknya. 2. Pihak developer mendampingi serta mencatat kesalahan-kesalahan maupun permasalahan dalam hal usability yang dirasakan oleh end user.

BETATESTING 1. Pengujian beta dilakukan di lingkungan end user tanpa kehadiran pihak developer. 2.

BETATESTING 1. Pengujian beta dilakukan di lingkungan end user tanpa kehadiran pihak developer. 2. Pengujian ini merupakan pengujian yang bersifat ‘live’ di lingkungan yang sebenarnya. 3. End user mencatat kesalahan yang terjadi kemudian menyampaikannya kepada pihak developer untuk diperbaiki.

METODEPENGUJIANSYSTEMTESTING black-box methods white-box methods Methods Strategies Strategi Pengujian + Metode Pengujian = Pengujian

METODEPENGUJIANSYSTEMTESTING black-box methods white-box methods Methods Strategies Strategi Pengujian + Metode Pengujian = Pengujian yang Optimal

Pengujian White Box

Pengujian White Box

KONTEN MATERI Penjelasan Umum Pengujian White Box Basic Path Testing Cyclomatic Complexity Region Testing

KONTEN MATERI Penjelasan Umum Pengujian White Box Basic Path Testing Cyclomatic Complexity Region Testing Independent Path Graph Matrics Testing Predicate Node Kesimpulan Pengujian White Box

ALASANPENGUJIANWHITEBOX 1. Adanya kesalahan logik dan asumsi yang tidak tepat pada setiap kemungkinan eksekusi.

ALASANPENGUJIANWHITEBOX 1. Adanya kesalahan logik dan asumsi yang tidak tepat pada setiap kemungkinan eksekusi. 2. Ada kemungkinan alur program yang tidak tereksekusi. 3. Ada kemungkinan kesalahan typography yang sulit ditemukan kalau tidak dijalankan.

BASICPATHTESTING Kode Program Flowchart + Flowgraph (Flowchart Optional) Cyclomatic Complexity Mengukur kompleksitas logis dan

BASICPATHTESTING Kode Program Flowchart + Flowgraph (Flowchart Optional) Cyclomatic Complexity Mengukur kompleksitas logis dan mendefinisikan alur eksekusi

FLOWGRAPHNOTATION

FLOWGRAPHNOTATION

KODEPROGRAMKEFLOWCHART

KODEPROGRAMKEFLOWCHART

FLOWCHARTKEFLOWGRAPH

FLOWCHARTKEFLOWGRAPH

CYCLOMATICCOMPLEXITY Software metric yang mengembangkan ukuran secara kuantitatif dari sebuah kompleksitas logik program. V(G)

CYCLOMATICCOMPLEXITY Software metric yang mengembangkan ukuran secara kuantitatif dari sebuah kompleksitas logik program. V(G) = E – N + 2 V(G) = 11 – 9 + 2 = 4 E = Jumlah busur pada flow graph N = Jumlah simpul pada flow graph

REGIONTESTING 4 Jumlah Region = Jumlah kurva tertutup + 1 (region terluar dalam flowgraph

REGIONTESTING 4 Jumlah Region = Jumlah kurva tertutup + 1 (region terluar dalam flowgraph 2 1 Jumlah region = 3 + 1 = 4 3

INDEPENDENTPATH(1) 1. Sebuah independent path adalah jalur di dalam program yang memperkenalkan setidaknya satu

INDEPENDENTPATH(1) 1. Sebuah independent path adalah jalur di dalam program yang memperkenalkan setidaknya satu set pernyataan atau kondisi baru. 2. Sebuah independent path harus bergerak setidaknya sepanjang satu sisi yang belum ditelusuri sebelum jalur tersebut didefinisikan.

INDEPENDENTPATH(2)

INDEPENDENTPATH(2)

GRAPHMATRICSTESTING(1) Flowgraph Penomoran Ulang Flowgraph Pembentukan Matriks dan Perhitungan V(G)

GRAPHMATRICSTESTING(1) Flowgraph Penomoran Ulang Flowgraph Pembentukan Matriks dan Perhitungan V(G)

PENOMORANULANGFLOWGRAPH

PENOMORANULANGFLOWGRAPH

PEMBENTUKANMATRIKSDANPERHITUNGANV(G)(1) Nomor Node Flowgraph PERHITUNGAN V(g)=x+1 JUMLAH Link antar flowgraph (jika ada link isi

PEMBENTUKANMATRIKSDANPERHITUNGANV(G)(1) Nomor Node Flowgraph PERHITUNGAN V(g)=x+1 JUMLAH Link antar flowgraph (jika ada link isi 1) =if(sum(baris)>=1; sum(baris)-1; 0) x=sum(hijau)

PEMBENTUKANMATRIKSDANPERHITUNGANV(G)(2)

PEMBENTUKANMATRIKSDANPERHITUNGANV(G)(2)

PREDICATENODE Predicate node adalah node yang mempunyai kondisi di dalamnya. V(G) = Jumlah predicate

PREDICATENODE Predicate node adalah node yang mempunyai kondisi di dalamnya. V(G) = Jumlah predicate node + 1 V(G) = 3 + 1 = 4

KESIMPULANPENGUJIANWHITEBOX No. Kasus Uji Hasil yang Diharapkan Hasil Sesuai Uji Kasus Keterangan [ ]

KESIMPULANPENGUJIANWHITEBOX No. Kasus Uji Hasil yang Diharapkan Hasil Sesuai Uji Kasus Keterangan [ ] Alur Terlewati [ ] Alur Tidak Terlewati Sejumlah V(g) Diisi kondisi untuk alur yang diperiksa

Pengujian Black Box

Pengujian Black Box

KONTEN MATERI Penjelasan Umum Pengujian Black Box Teknik Pengujian Black Box

KONTEN MATERI Penjelasan Umum Pengujian Black Box Teknik Pengujian Black Box

ALASANPENGUJIANBLACKBOX 1. Fungsi tidak benar atau hilang. 2. Kesalahan antar muka. 3. Kesalahan pada

ALASANPENGUJIANBLACKBOX 1. Fungsi tidak benar atau hilang. 2. Kesalahan antar muka. 3. Kesalahan pada struktur data (pengaksesan basis data). 4. Kesalahan inisialisasi dan akhir program. 5. Kesalahan performasi.

ILUSTRASIPENGUJIANBLACKBOX requirements output input events

ILUSTRASIPENGUJIANBLACKBOX requirements output input events

TUJUANPENGUJIANBLACKBOX 1. Digunakan untuk menguji fungsi-fungsi khusus dari perangkat lunak yang dirancang. 2. Kebenaran

TUJUANPENGUJIANBLACKBOX 1. Digunakan untuk menguji fungsi-fungsi khusus dari perangkat lunak yang dirancang. 2. Kebenaran perangkat lunak yang diuji hanya dilihat berdasarkan keluaran yang dihasilkan dari data atau kondisi masukan yang diberikan untuk fungsi yang ada tanpa melihat bagaimana proses untuk mendapatkan keluaran tersebut. 3. Dari keluaran yang dihasilkan, kemampuan program dalam memenuhi kebutuhan pemakai dapat diukur sekaligus dapat diketahui kesalahannya.

TEKNIKPENGUJIANBLACKBOX 1. Equivalence Partitioning 6. Behavior Testing 2. Boundary Value Analysis/Limit Testing 7. Requirement

TEKNIKPENGUJIANBLACKBOX 1. Equivalence Partitioning 6. Behavior Testing 2. Boundary Value Analysis/Limit Testing 7. Requirement Testing 3. Comparison Testing 8. Performance Testing 4. Sample Testing 9. Endurance Testing 5. Robustness Testing 10. Cause-Effect Relationship Testing

DEFINISIEQUIVALENCEPARTITIONING 1. Input data dan output hasil terdapat di kelas yang berbeda yang sesuai

DEFINISIEQUIVALENCEPARTITIONING 1. Input data dan output hasil terdapat di kelas yang berbeda yang sesuai dengan kelas inputnya. 2. Masing-masing kelas equivalensi partition diproses dimana program akan memproses anggota kelas-kelas tersebut secara equivalen. 3. Test cases dipilih dari masing-masing partisi.

ILUSTRASIEQUIVALENCEPARTITIONING

ILUSTRASIEQUIVALENCEPARTITIONING

ILUSTRASIPARTISIKELASDATA

ILUSTRASIPARTISIKELASDATA

KESIMPULANEQUIVALENCEPARTITIONING No. Kasus Uji Hasil yang Diharapkan Hasil Sesuai Uji Kasus Keterangan [ ]

KESIMPULANEQUIVALENCEPARTITIONING No. Kasus Uji Hasil yang Diharapkan Hasil Sesuai Uji Kasus Keterangan [ ] Diterima [ ] Ditolak Sejumlah Kelas Data Diisi Sampel Input Setiap Kelas Data

BOUNDARYVALUEANALYSIS/LIMITTESTING 1. Menguji untuk input di sekitar batas maupun bawah sebuah range nilai yang

BOUNDARYVALUEANALYSIS/LIMITTESTING 1. Menguji untuk input di sekitar batas maupun bawah sebuah range nilai yang valid. 2. Menguji nilai maksimal dan minimal. 3. Menguji batas struktur data yang dipakai. Misal ukuran array.

ILUSTRASILIMITTESTING Valid Data

ILUSTRASILIMITTESTING Valid Data

COMPARISONTESTING 1. Spesifikasi kebutuhan yang sama memungkinkan menghasilkan aplikasi/ perangkat lunak yang berbeda. 2.

COMPARISONTESTING 1. Spesifikasi kebutuhan yang sama memungkinkan menghasilkan aplikasi/ perangkat lunak yang berbeda. 2. Skenario pengujian pada aplikasi yang demikian bisa digunakan untuk skenario pengujian aplikasi serupa yang lain.

SAMPLETESTING 1. Pengujian Sampel melibatkan pemilihan sejumlah nilai dari kelas kesetaraan input data. 2.

SAMPLETESTING 1. Pengujian Sampel melibatkan pemilihan sejumlah nilai dari kelas kesetaraan input data. 2. Mengintegrasikan nilai-nilai ke kasus uji. 3. Nilai-nilai ini dapat dipilih pada konstan atau variabel interval. 4. Biasa digunakan untuk mengukur perfomansi suatu metode atau untuk kebutuhan scientific.

KESIMPULANSAMPLETESTING No. Kasus Uji Hasil Perhitungan Manual Hasil Uji Coba Keterangan [ ] Diterima

KESIMPULANSAMPLETESTING No. Kasus Uji Hasil Perhitungan Manual Hasil Uji Coba Keterangan [ ] Diterima [ ] Ditolak Sejumlah Percobaan yang Dilakukan Diisi Sampel Data Sesuai Kebutuhan Eksperimen

BEHAVIOURTESTING Pengujian yang hasilnya baru terlihat setelah sekumpulan data diinputkan dalam rangka memanggil sub

BEHAVIOURTESTING Pengujian yang hasilnya baru terlihat setelah sekumpulan data diinputkan dalam rangka memanggil sub program yang ada. Sebagai contoh pengujian pada struktur data stack (tumpukan).

REQUIREMENTTESTING 1. Kebutuhan yang diasosiasikan dengan perangkat lunak (input/output/function/perfomance) diidentifikasi selama aktifitas spesifikasi perangkat

REQUIREMENTTESTING 1. Kebutuhan yang diasosiasikan dengan perangkat lunak (input/output/function/perfomance) diidentifikasi selama aktifitas spesifikasi perangkat lunak dan perancangan. 2. Untuk memfasilitasi pengujiannya, setiap kebutuhan ditelusuri dengan menggunakan matriks keterhubungan.

PERFOMANCETESTING 1. Pengujian ini digunakan untuk mengukur dan mengeksplorasi batas perfomansi dari sebuah kinerja

PERFOMANCETESTING 1. Pengujian ini digunakan untuk mengukur dan mengeksplorasi batas perfomansi dari sebuah kinerja perangkat lunak. 2. Paremeter yang dinilai antara lain: a. Aliran data b. Ukuran memori yang digunakan c. Waktu eksekusi yang digunakan.

KESIMPULANPERFOMANCETESTING Percobaan Ke- Sejumlah Percobaan yang Dilakukan Hasil Perfomansi (Tergantung Faktor Perfomansi) Diisi Sampel

KESIMPULANPERFOMANCETESTING Percobaan Ke- Sejumlah Percobaan yang Dilakukan Hasil Perfomansi (Tergantung Faktor Perfomansi) Diisi Sampel Data Sesuai Faktor Perfomansi

Terima Kasih

Terima Kasih