Perancangan Perangkat Lunak

dokumen-dokumen yang mirip
Strategi Pengujian Perangkat Lunak. Fakultas Ilmu Komputer dan Teknologi Informasi Jurusan Sistem Informasi Univesitas Gunadarma

PERTEMUAN 13 STRATEGI PENGUJIAN PERANGKAT LUNAK

STRATEGI PENGUJIAN PERANGKAT LUNAK

PENGUJIAN PERANGKAT LUNAK

Testing dan Implementasi Sistem Informasi

Strategi Pengujian Perangkat Lunak

Hubungan antara rencana pengujian dan proses pengembangan system. Tim RPL 1 3

Testing is the exposure of a system to trial input to see wheter it produces corect output Adalah proses eksekusi suatu program dengan maksud

DASAR-DASAR PENGUJIAN PERANGKAT LUNAK

Dasar-dasar Pengujian Perangkat Lunak. Minggu ke 5

Rekayasa Perangkat Lunak

BAB 4 PELAKSANAAN PENGUJIAN

Perancangan Sistem Informasi

Dasar-Dasar Pengujian Perangkat Lunak. Fakultas Ilmu Komputer dan Teknologi Informasi Jurusan Sistem Informasi Univesitas Gunadarma

Pengujian Perangkat Lunak Berorientasi Objek. Tim RPL Teknik Informatika

Strategi Pengujian Perangkat Lunak. Minggu ke 8

14. PENGUJIAN PERANGKAT LUNAK Dasar-dasar Pengujian 14.2 Teknik Pengujian 14.3 Strategi Pengujian dan V&V

Rekayasa Perangkat Lunak

Pengujian pada Perangkat Lunak. Lukman Hakim

TESTING & IMPLEMENTASI SISTEM 4KA. Teknik Pengujian Perangkat Lunak. helen.staff.gunadarma.ac.id

3/17/16 Testing dan Audit Perangkat Lunak - Universitas Mercu Buana Yogyakarta

Rekayasa Perangkat Lunak

PENGUJIAN PERANGKAT LUNAK. Muhammad Riza Hilmi, ST.

Pengujian Berorientasi Obyek

Teknik Informatika S1

PEMELIHARAAN PERANGKAT LUNAK. Ign.F.Bayu Andoro.S, M.Kom

Teknik Informatika S1

TEKNIK PENGUJIAN PERANGKAT LUNAK (Software Testing Techniques)

Strategi Testing. Rudi Susanto. module to be tested. results. software engineer test cases

TESTING DAN IMPLEMENTASI SISTEM. WAHYU PRATAMA, S.Kom., MMSI.

TESTING DAN IMPLEMENTASI SISTEM. WAHYU PRATAMA, S.Kom., MMSI.

Pengujian Perangkat Lunak

Teknik Pengujian (2) Whitebox Testing

TEKNIK PENGUJIAN PERANGKAT LUNAK PERTEMUAN 14

TEKNIK PENGUJIAN PERANGKAT LUNAK PERTEMUAN 14

SOFTWARE TESTING. Ratna Wardani

TESTING DAN IMPLEMENTASI SISTEM. WAHYU PRATAMA, S.Kom., MMSI.

TEKNIK PENGUJIAN PERANGKAT LUNAK. Ign.F.Bayu Andoro.S, M.Kom

Teknik Informatika S1

Dibuat Oleh : 1. Andrey ( )

Silabus dan Satuan Acara Perkuliahan

White Box Testing dan Black Box Testing, Perbedaannya Serta Contohnya.

TINJAUAN PUSTAKA. Pengujian adalah proses eksekusi program untuk menemukan kesalahan.

Nama : Rendi Setiawan Nim :

TESTING PROGRAM. Pertemuan Nurul Adhayanti

Tugas Rekayasa Perangkat Lunak

Software Testing Technique

TESTING SW SE6161 Perancangan dan Analisis Perangkat Lunak 1

Testing dan Implementasi Sistem

Object Oriented Analysis (OOA) dan Object Oriented Design (OOD)

3/17/16 Testing dan Audit Perangkat Lunak - Universitas Mercu Buana Yogyakarta

System Testing Pengujian terhadap integrasi sub-system, yaitu keterhubungan antar sub-system.

Teknik Unit Testing. Pressman, Roger S/W Engineering edisi 5/7 chapter 17

PENGUJIAN BERORIENTASI OBJEK

DAFTAR ISTILAH. Activity Diagram

DESAIN TEST CASE. Tugas ke 11 Rekayasa Perangkat Lunak

PENGUJIAN PERANGKAT LUNAK

TUGAS MAKALAH. Testing dan Implementasi Sistem White Box Testing

GARIS-GARIS BESAR PROGRAM PENGAJARAN (GBPP)

GARIS-GARIS BESAR PROGRAM PENGAJARAN (GBPP)

BAB 5 FAKTOR PENGUJIAN

RENCANA PROGRAM KEGIATAN PERKULIAHAN SEMESTER (RPKPS)

Pengujian Berorientasi Obyek. Minggu ke 6

ABSTRAKSI DEKOMPOSISI PENGUJIAN Dalam REKAYASA PERANGKAT LUNAK

PENGANTAR RUP & UML. Pertemuan 2

Materi. Definisi Test Case White Box Testing Blackbox Testing Teknik Testing yang Lain Penggunaan Metode Tes

SATUAN ACARA PERKULIAHAN PROGRAM STUDI : S1 SISTEM INFORMASI

Gambar (a) PDL for test design

ABSTRAK. Kata kunci : voucher elektronik SMS (Short Message Service)

MAKALAH DESAIN TEST CASE. NAMA : RANI JUITA NIM : DOSEN : WACHYU HARI HAJI. S.Kom.MM

Teknik Informatika S1

BAB 3 PENGUJIAN DALAM SIKLUS PENGEMBANGAN

TESTING AND IMPLEMENTATION SYSTEM Strategi Pengujian Perangkat Lunak dan Membangun Test Case

Pengujian dan Implementasi Sistem Informasi

BAB 1 PENDAHULUAN 1.1 Latar Belakang Masalah 1.2 Perumusan Masalah

SATUAN ACARA PERKULIAHAN (SAP)

Teknik Informatika S1

Testing dan Implementasi

1. Dr. I Ketut Eddy Purnama, ST.,MT. 2. Ahmad Zaini, ST.,M.Sc. Asti Nurhayati

Tujuan 04/07/ :01

METODE PENGUJIAN PERANGKAT LUNAK

GARIS-GARIS BESAR PROGRAM PENGAJARAN PROGRAM STUDI: S1 SISTEM INFORMASI Semester : 7

BAB 6 METODE PENGUJIAN

SATUAN ACARA PERKULIAHAN MATA KULIAH TESTING & IMPLEMENTASI SISTEM (KA) KODE / SKS : KK / 3 SKS

Produk perangkat lunak tersebut:

BAB 1 PENDAHULUAN. Secara umum, diketahui bahwa dalam suatu siklus pengembaangan perangkat lunak selalu terdapat empat proses utama, yaitu :

BAB V IMPLEMENTASI SISTEM. tersebut siap diterapkan atau diimplementasikan. Tahap Implementasi Sistem

1. Hardware terdistribusi. 2. Program terdistribusi. Nama : Gede Doddi Raditya Diputra NIM : Kelas : 5.C

SATUAN ACARA PERKULIAHAN MATA KULIAH TESTING & IMPLEMENTASI SISTEM (JURUSAN SISTEM INFORMASI) KODE / SKS : AK / 3 SKS

BAB V IMPLEMENTASI DAN PENGUJIAN SISTEM. konfigurasi pada perangkat lunak serta perangkat keras sesuai kebutuhan sistem

Review Rekayasa Perangkat Lunak. Nisa ul Hafidhoh

A. Pengujian Perangkat Lunak

REKAYASA PERANGKAT LUNAK. 3 sks Sri Rezeki Candra Nursari reezeki2011.wordpress.com

Program Development Cycle

PENGUJIAN PERANGKAT LUNAK (SOFTWARE TESTING)

White Box Testing Merupakan metode perancangan test case yang menggunakan struktur kontrol dari perancangan prosedural untuk mendapatkan test case.

STRATEGI PENGUJIAN PERANGKAT LUNAK. Pertemuan 12

BAB III METODE PENELITIAN. testing dalam suatu siklus hidup pengebangan software. White box testing adalah

BAB 2 LANDASAN TEORI Enterprise Resource Planning (ERP)

Software Design. Konsep dan Prinsip Desain Struktur Desain. Mira/Rpl/Design

Transkripsi:

Perancangan Perangkat Lunak Pengujian Perangkat Lunak Universitas Gunadarma 1 Perancangan Perangkat Lunak

Outline 1 Strategi Pengujian Secara Umum 2 Pengujian Perangkat Lunak Pengujian Dalam Konteks OO 3 Pengujian Sistem 2 Perancangan Perangkat Lunak

Strategi Pengujian Secara Umum Strategi Pengujian Berupa Rencana Pengujian Desain Pengujian Eksekusi Pengujian Cukup fleksibelsehingga setiap proyek dapat mempunyai kasus pengujian yang berbeda Harus cukup detail sehingga dapat dijadikan tolok ukur kemajuan proyek Hasil: Dokumen Spesifikasi Pengujian panduan bagi pelaksana dan milestone bagi manajemen 3 Perancangan Perangkat Lunak

Strategi Pengujian Secara Umum Karakteristik Pengujian Generik Memasukkan formal technical reviews untuk mengeliminasi error sebelum pengujian dimulai Dimulai dari komponen-komponen sistem sampai pada sistem secara keseluruhan Teknik pengujian dipilih sesuai dengan ketepatannya setiap waktu / kasus Dilaksanakan oleh pengembang PL atau tim independen Pengujian & Debugging tidak sama, tetapi debugging harus ada di setiap testing 4 Perancangan Perangkat Lunak

Strategi Pengujian Secara Umum Organisasi Pengujian Perangkat Lunak Perbedaan konsep Verifikasi (membuat PL dengan benar) dan Validasi (membuat PL yang benar) Problem Psikologi: Pengembang cenderung untuk memperlihatkan fitur sistem dan validasinya terhadap kebutuhan user Pelaksanaan oleh tim luar potensi membuat konflik dg pengembang Tim luar bukan bertanggungjawab thd kualitas PL 5 Perancangan Perangkat Lunak

Strategi Pengujian Secara Umum Kapan Pengujian Selesai? Problem: Tidak pernah selesai Biaya: Selesai begitu dana untuk Pengujian telah habis Kriteria Statistik (Musa & Ackerman) 95% kepercayaan terhadap sistem tsb apabila dalam 1000 jam sisem berjalan terdapat probabilitas 0.995 operasi PL yang tidak gagal 6 Perancangan Perangkat Lunak

Strategi Pengujian Secara Umum Rencana 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: kekuranga staff, alat, waktu dll. Proses testing Deskripsi fase-fase utama dalam pengujian 7 Perancangan Perangkat Lunak

Strategi Pengujian Secara Umum Failure & Faults Failure: output yang tidak benar/tidak sesuai ketika sistem dijalankan Fault: kesalahan dalam source code yang mungkin menimbulkan failure ketika code yg fault tsb dijalankan 8 Perancangan Perangkat Lunak

Outline Pengujian Perangkat Lunak 1 Strategi Pengujian Secara Umum 2 Pengujian Perangkat Lunak Pengujian Dalam Konteks OO 3 Pengujian Sistem 9 Perancangan Perangkat Lunak

Proses Pengujian Pengujian Perangkat Lunak 10 Perancangan Perangkat Lunak

Proses Pengujian I Pengujian Perangkat Lunak Pengujian Unit Komponen-komponen diuji secara individual Pengujian terhadap kode program dan algoritma Pengujian Modul Pengujian himpunan komponen-komponen yang saling berkaitan atau bergantungan Pengujian Sub-Sistem Pengujian modul yang diintegrasikan kedalam satu sub-sistem. Fokus ada pada pengujian antar-muka Pengujian Sistem Pengujian sistem secara keseluruhan Pengujian terhadap adanya pembrojolan (emergent properties) 11 Perancangan Perangkat Lunak

Proses Pengujian II Pengujian Perangkat Lunak Pengujian Penerimaan Pengguna Pengujian Penerimaan Pengguna terhadap PL tersebut Validasi terhadap Kebutuhan Pengguna 12 Perancangan Perangkat Lunak

Testing Phases Pengujian Perangkat Lunak 13 Perancangan Perangkat Lunak

Pengujian Unit Pengujian Perangkat Lunak 14 Perancangan Perangkat Lunak

Pengujian Unit Pengujian Perangkat Lunak Antarmuka: untuk memastikan aliran data yang masuk dan keluar sesuai Struktur Data Lokal memastikan integritas variabel lokal selama eksekusi Kondisi Unit Pada Batas Limit unit selalu beroperasi dengan benar pada limit-limit tertentu Independent Path algoritma yang berdiri sendiri beroperasi dengan benar Error handling path algoritma untuk mendeteksi dan menangani error beroperasi dengan benar 15 Perancangan Perangkat Lunak

Path Testing Pengujian Perangkat Lunak Tujuannya meyakinkan bahwa himpunan test case akan menguji setiap path pada suatu program paling sedikit satu kali. Titik awal untuk path testing adalah suatu program flow graph yang menunjukkan node-node yang menyatakan program decisions (mis.: if-then-else condition) dan busur menyatakan alur kontrol Statements dengan conditions adalah node-node dalam flow graf. 16 Perancangan Perangkat Lunak

Pengujian Perangkat Lunak Program Flow Graphs Menggambarkan alur kontrol. Setiap cabang ditunjukkan oleh path yg terpisah dan loop ditunjukkan oleh arrows looping kembali ke loop kondisi node. Digunakan sebagai basis untuk menghitung cyclomatic complexity Cyclomatic complexity = Jumlah edges Jumlah Node + ( 2 Number Cyclomatic complexity menyatakan jumlah test untuk menguji control statements 17 Perancangan Perangkat Lunak

Pengujian Perangkat Lunak Cyclomatic Complexity Cyclomatic Complexity Risk Evaluation 1-10 a simple program, without much risk 11-20 more complex, moderate risk 21-50 complex, high risk program greater than 50 untestable program (very high risk) source:http://www.sei.cmu.edu/str/descriptions/cyclomatic body.html 18 Perancangan Perangkat Lunak

Pengujian Perangkat Lunak Program Flow Graphs 19 Perancangan Perangkat Lunak

Defect Testing Pengujian Perangkat Lunak 20 Perancangan Perangkat Lunak

Interface Testing Pengujian Perangkat Lunak Parameter interfaces Data dikirim dari satu procedure ke procedure lainnya. Shared memory interfaces Block of memory dishare diantara procedure-procedure Procedural interfaces Sub-system mengencapsulasi sekumpulan procedure-procedure yang akan dipanggil oleh sub-system lainnya Message passing interfaces Sub-systems meminta services dari sub-systems lainnya 21 Perancangan Perangkat Lunak

Interface Testing Pengujian Perangkat Lunak Interface misuse componen pemanggil memanggil component lainnya dan membuat suatu kesalahan dalam penggunaan interfacenya (mis.: parameter dg urutan yg tidak sesuai). Interface misunderstanding component pemanggil salah dalam mengasumsikan behaviour component yg dipanggil. Timing errors Component yg memanggil dan yg dipanggil beroperasi pada kecepatan yg berbeda sehingga dimungkinkan mengakses informasi yg tidak uptodate (synchronization problem). 22 Perancangan Perangkat Lunak

Pengujian Perangkat Lunak Petunjuk Interface Testing Merancang test dimana parameter ke procedure yg dipanggil berada pada nilai batas extrim Test Menggunakan null pointer Perancangan tests sehingga component yg di test akan fail. Menggunakan stress testing pada message passing Pada shared memory systems, variasikan urutan dimana komponen diaktifkan. 23 Perancangan Perangkat Lunak

Pengujian Perangkat Lunak Kesalahan Umum Dalam Coding kesalahan aritmatika operasi menggunakan modus yang bercampur inisialisasi yang tidak benar presisi yang tidak terakurasi representasi simbolik yang tidak benar 24 Perancangan Perangkat Lunak

Pengujian Modul Pengujian Perangkat Lunak 25 Perancangan Perangkat Lunak

Pengujian Perangkat Lunak Pengujian Integrasi Sistem Incremental Integration vs Big Bang 26 Perancangan Perangkat Lunak

Pengujian Perangkat Lunak Pengujian Integrasi Sistem Top-down Integration Depth First Integration Breadth First Integration Memverifikasi kontrol Bottom-up Integration Stubs tidak diperlukan Clustering Pada prakteknya, kebanyakan test integrasi menggunakan kombinasi kedua strategi pengujian tsb. 27 Perancangan Perangkat Lunak

Top Down Pengujian Perangkat Lunak 28 Perancangan Perangkat Lunak

Bottom-UP Pengujian Perangkat Lunak 29 Perancangan Perangkat Lunak

Pengujian Perangkat Lunak Pengujian Regresi dan Smoke Pengujian berulang terhadap komponen / modul yang telah diuji sebelumnya akibat integrasi dengan yang belum diuji Smoke: integrasi bertahap dibuat setiap hari dalam bentuk build pengujian diulang pada tahap integrasi ini Keuntungan Resiko integrasi diminimalisasi Kualitas produk meningkat Memudahkan diagnosa error dan koreksi Kemajuan proyek dapat dilihat dengan mudah 30 Perancangan Perangkat Lunak

Outline Pengujian Perangkat Lunak Pengujian Dalam Konteks OO 1 Strategi Pengujian Secara Umum 2 Pengujian Perangkat Lunak Pengujian Dalam Konteks OO 3 Pengujian Sistem 31 Perancangan Perangkat Lunak

Pengujian Perangkat Lunak Pengujian Dalam Konteks OO Pengujian Dalam Konteks OO Prinsip enkapsulasi dan information hiding Components yang diuji adalah class object yang diinstantiate ke object. Lebih besar dibandingkan pengujian sebuah function sehingga pendekatan white-box testing perlu diperluas. Tidak jelasnya top suatu system untuk top-down integration dan testing Pengujian class-class dan penurunannya Detail algoritma dalam setiap class dan keturunannya 32 Perancangan Perangkat Lunak

Pengujian Perangkat Lunak Pengujian Dalam Konteks OO Pengujian Integrasi Dalam Konteks OO Pengujian Thread pengujian terhadap beberapa class yang tergabung dalam satu thread diuji terhadap input yang ditentukan sebelumnya Pengujian Berdasarkan Penggunaan pengujian class terhadap penggunaannya di class yang lain pertama adalah pengujian independent class kedua adalah pengujian dependent class Cluster Testing 33 Perancangan Perangkat Lunak

Testing Levels Pengujian Perangkat Lunak Pengujian Dalam Konteks OO Testing operations pada objects Testing object classes Testing clusters cooperating objects Testing OO system secara lengkap 34 Perancangan Perangkat Lunak

Object Class Testing Pengujian Perangkat Lunak Pengujian Dalam Konteks OO Complete test yang menguji class melibatkan Testing semua operations suatu object Setting dan interrogating semua attribute object Menguji object untuk semua state (keadaan) yg mungkin Inheritance akan mengakibatkan sulitnya perancangan object class tests seperti information yg diuji sulit dilokalisasi. 35 Perancangan Perangkat Lunak

Integrasi Obyek Pengujian Perangkat Lunak Pengujian Dalam Konteks OO Levels integrasi sedikit berbeda untuk sistem yang berorientasi object. Cluster testing digunakan untuk test integrasi and testing clusters terhadap cooperating objects Identifikasi clusters menggunakan knowledge dari operation objects dan system features yang diimplementasikan oleh cluster tersebut. 36 Perancangan Perangkat Lunak

Pengujian Perangkat Lunak Cluster Testing Approach Pengujian Dalam Konteks OO Use-case atau scenario testing Testing berdasarkan pada interaksi user dengan sistem. Keuntungannya diujikan oleh user yg berpengalaman. Object interaction testing Tests barisan interaksi object yang berhenti ketika suatu operation object tidak memanggil service dari object lain. 37 Perancangan Perangkat Lunak

Testing Workbench Pengujian Perangkat Lunak Pengujian Dalam Konteks OO Testing merupakan suatu proses yg cukup mahal. Testing workbenches menyediakan tool-tool untuk mereduksi waktu yg dibutuhkan dan total cost pengujian Kebanyakan testing workbenches merupakan open systems karena kebutuhan testing membutuhkan tergantung dr spesifikasi organisasi Sulit diintegrasikan dengan closed design dan analysis workbenches 38 Perancangan Perangkat Lunak

Testing Workbench Pengujian Perangkat Lunak Pengujian Dalam Konteks OO 39 Perancangan Perangkat Lunak

Pengujian Perangkat Lunak Testing Workbench Adaption Pengujian Dalam Konteks OO Scripts dibuat untuk user interface simulator dan model test data generator Test outputs harus disiapkan secara manual sebagai pembanding. Special-purpose file comparators harus dibuat 40 Perancangan Perangkat Lunak

Pengujian Sistem Pengujian Sistem Pengujian Volume Bagaimana sistem dapat terus beroperasi dalam volume pelayanan yang besar Pengujian Recovery Bagaimana sistem dapat merekover dirinya thd suatu kesalahan Pengujian Keamanan Bagaimana sistem dapat mempertahankan dirinya agar tidak masuk ke dalam state of insecure Pengujian Stress Bagaimana sistem dapat bertahan beroperasi dalam tekanan waktu dan banyak pelayanan Pengujian Performa Bagaimana performa sistem dalam melaksanakan pekerjaannya 41 Perancangan Perangkat Lunak

Pengujian Volume Pengujian Sistem Menemukan kelemahan sistem selama melakukan pemrosesan data dalam jumlah yang besar dalam periode waktu yang singkat. Tujuan: meyakinkan bahwa sistem tetap melakukan pemrosesan data anatar batasan fisik dan batasan logik. Contoh: Mengujikan proses antar server dan antar partisi hardisik pd satu server. 42 Perancangan Perangkat Lunak

Stress Test Pengujian Sistem Menguji sistem dengan nilai yg melebihi maksimum load. Stressing suatu system menyebabkan tidak mudah kerusakan. Stressing suatu system test failure behaviour. Systems seharusnya tidak gagal total. Stress testing mencek kehilangan service yg tidak diduga ataupun data yg hilang. Khusus untuk sistem terdistribusi dapat menyebabkan degradasi jaringan sehingga overload. Contoh: Melakukan login ke server ketika sejumlah besar workstation melakukan proses menjalankan perintah sql database. 43 Perancangan Perangkat Lunak

Pengujian Sistem Performance Testing Dilakukan secara paralel dengan Volume dan Stress testing untuk mengetahui unjuk kerja sistem (waktu respon, throughput rate) pada beberapa kondisi proses dan konfigurasi. Dilakukan pada semua konfigurasi sistem perangkat keras dan lunak. Mis.: pd aplikasi Client-Server diujikan pd kondisi korporate ataupun lingkungan sendiri (LAN vs. WAN, Laptop vs. Desktop) Menguji sistem dengan hubungannya sistem ke lain pada server yg sama. Load Balancing Monitor Network Monitor 44 Perancangan Perangkat Lunak

Recovery Testing Pengujian Sistem Investigasi dampak kehilangan data melalui proses recovery ketika terjadi kegagalan proses. Penting dilakukan karena data yg disimpan di server dapat dikonfigurasi dengan berbagai cara. Kehilangan Data terjadi akibat kegagalan sistem, hardisk rusak, peghapusan yg tidak sengaja, kecelakaan, virus dan pencuri. 45 Perancangan Perangkat Lunak

Security Testing Pengujian Sistem Privilege access terhadap database diujikan pada beberapa user yang tidak memiliki privilegeaccess ke database. Shutdown database engine melalui operating system (dengan beberapa perintah OS) yg dapat mematikan aplikasi database. Buffer-Overflow - Menangani parameter input yang melebihi batas buffer Penetration-test: password crack, brute-force attack, etc 46 Perancangan Perangkat Lunak

Kesimpulan Pengujian Sistem Pengujian merupakan milestone penting dalam PPL Konsep: uji unit yang kecil dan kemudian integrasinya secara bertahap sampai membentuk sistem yang seutuhnya Problem dalam pengujian: State Space Explosion Problem Pemilihan kasus dan jumlah kasus yang cukup tergantung kompleksitas algoritma dan arsitektur PL Banyak kesalahan disebabkan: coding yang tidak sempurna & pengambilan asumsi yang salah 47 Perancangan Perangkat Lunak

End Terimakasih