Teknik Informatika – Universitas Trunojoyo

Slides:



Advertisements
Presentasi serupa
TEKNIK PENGUJIAN PERANGKAT LUNAK
Advertisements

Rekayasa Perangkat Lunak dan Proses Software
DASAR-DASAR PENGUJIAN PERANGKAT LUNAK
BAB 8 PENGUJIAN PERANGKAT LUNAK
PEMODELAN ANALISIS Kuliah - 5
Software testing Rizqi Prifsanti ( ).
REKAYASA PERANGKAT LUNAK
Sasaran Menjelaskan apa yang dimaksud model proses
Pengujian Sofware – strategi
Pengujian Software - Pelaksanaan
BAB 2 METODE REKAYASA PERANGKAT LUNAK
PENGANTAR REKAYASA PERANGKAT LUNAK I
TESTING DAN QA SOFTWARE PERTEMUAN 5 & 6
Testing.
Teknik Pengujian Perangkat Lunak
Pengujian Black-Box.
TEKNIK PENGUJIAN PERANGKAT LUNAK
PERANCANGAN KASUS UJI.
MANAJEMEN KONFIGURASI SOFTWARE
Perancangan Perangkat Lunak
Testing dan Implementasi Sistem
Software Testing Pertemuan III.
Dasar-dasar Pengujian Perangkat Lunak
Testing Levels. Activities of Test Engineer Test engineer is an information technology professional who is in charge of ane or more technical test activities,
REKAYASA PERANGKAT LUNAK
TEKNIK TESTING DAN STRATEGI TESTING
Metode Pengujian Perangkat Lunak (Black Box)
Testing.
Rekayasa Perangkat Lunak
Systems Development Life Cycle
1 Pendahuluan Pertemuan 12 Matakuliah: H0062/Teori Sistem Tahun: 2006.
Riskha Dwi Anggraeni Software Testing. Software testing adalah proses untuk menganalisa sebuah software Mendeteksi antara kondisi sekarang dengan kondisi.
Pengembangan Siklus Hidup Sistem
Spesifikasi Perangkat Lunak
Tim RPL Teknik Informatika 2017
TEKNIK-TEKNIK PENGUJIAN PERANGKAT LUNAK
14. PENGUJIAN PERANGKAT LUNAK
Rekayasa Perangkat Lunak
TEKNIK PENGUJIAN PERANGKAT LUNAK
REKAYASA PERANGKAT LUNAK
Rekayasa Perangkat Lunak Metode Pengujian Perangkat Lunak
REKAYASA PERANGKAT LUNAK
TESTING DAN IMPLEMENTASI SISTEM
Nur fisabilillah, S.Kom, MMSI | UNIVERSITAS GUNADARMA
Rekayasa Perangkat Lunak
TESTING DAN IMPLEMENTASI SISTEM (Pertemuan Ke-9)
TESTING DAN IMPLEMENTASI SISTEM (Pertemuan Ke-9)
Matakuliah : Konsep object-oriented
Strategi Pengujian Perangkat Lunak & Sistem
Testing dan Implementasi
Black Box Testing.
Rekayasa Perangkat Lunak Dosen : Citra Noviyasari, S.Si, MT
Dasar-dasar Pengujian Perangkat Lunak
TESTING DAN IMPLEMENTASI SISTEM (Pertemuan Ke-10)
BAB VII Implementasi dan Testing
Testing dan Implementasi SI220A
REKAYASA PERANGKAT LUNAK
Rekayasa Perangkat Lunak
PENGANTAR REKAYASA PERANGKAT LUNAK
Validasi dan Verifikasi Software
TEKNIK PENGUJIAN PERANGKAT LUNAK
TEKNIK PENGUJIAN PERANGKAT LUNAK
TESTING DAN QA SOFTWARE PERTEMUAN 10 & 11
TEKNIK PENGUJIAN PERANGKAT LUNAK
Testing dan Implementasi
Pengujian Perangkat Lunak
TEKNIK PENGUJIAN PERANGKAT LUNAK
Tim RPL Teknik Informatika 2018
Kelompok 2 : Maria Bestarina Laili: Ida Megawati: Sakim: Erman Al Hakim: Kunthi Widyati: Ilham.
Fathiah, S.T.,M.Eng Universitas Ubudiyah Indonesia
Transcript presentasi:

Teknik Informatika – Universitas Trunojoyo SOFTWARE TESTING Muhammad Yusuf Teknik Informatika – Universitas Trunojoyo Http://yusufxyz.wordpress.com Email : yusufxyz@gmail.com

Pendahuluan Testing merupakan suatu aktivitas yang dilakukan untuk mengevaluasi kualitas produk dengan mengidentifikasi kerusakan dan permasalahan. Testing software terdiri dari pembuktian dinamis (dynamic) dari jalannya program pada sekumpulan tes yang terbatas(finite), yang sesuai dan biasanya dipilih(selected) dari domain eksekusi yang tak terbatas, yang bertentangan dengan tingkah laku yang diharapkan(expected).

Dynamic : istilah ini berarti bahwa testing termasuk eksekusi program pada input yang bernilai. Finite : walaupun pada program sederhana, banyak kasus test yang secara teoretis memungkinkan bahwa testing yang mendalam bisa membutuhkan waktu berbulan-bulan atau bertahun-tahun untuk dieksekusi.

Selected : Banyaknya teknik testing yang diusulkan pada dasarnya berbeda dalam hal memilih sekumpulan testing, dan software engineers harus sadar bahwa kriteria pemilihan yang berbeda mungkin akan menghasilkan derajat keefektifan yang sangat besar. Expected : hal yang tidak mudah untuk dilakukan adalah memutuskan apakah hasil yang diamati dari suatu eksekusi program bisa diterima atau tidak, jika tidak usaha testing akan sia-sia.

Pandangan mengenai testing software telah berkembang ke yang lebih konstruktif. Testing tidak lagi dilihat sebagai aktivitas yang hanya dimulai setelah tahap membuat program selesai. Testing software sekarang dipandang sebagai aktivitas yang mana harus mencakup seluruh proses pengembangan dan pemeliharaan. Testing adalah cara untuk memeriksa apakah pencegahan sudah efektif atau belum dan juga untuk mengidentifikasi kesalahan

Software Testing Fundamentals (dasar-dasar Pengujian Software) Testing yang berhubungan dengan terminology Kesalahan vs Kegagalan : banyak istilah yang digunakan dalam literature rekayasa perangkat lunak (software) untuk mendeskripsikan kegagalan pemakaian. Seperti kesalahan, kegagalan, error dan lainnya. Key issues Kriteria seleksi testing/criteria kecukupan testing (atau penghentian aturan): Kriteria seleksi testing adalah hal menentukan apakah sekumpulan testing kasus layak ada. Criteria seleksi dapat digunakan untuk memilih test yang layak atau tidak, termasuk untuk menentukan apakah pengujian bisa dihentikan atau tidak.

Keefektifan Testing/tujuan testing : pengujian/testing merupakan observasi sample eksekusi program. Pengujian/testing untuk identifikasi kerusakan : dalam testing ini, test (pengujian) yang berhasil adalah yang menyebabkan system menjadi gagal. Hal ini sangat berbeda dari testing untuk mendemonstrasikan bahwa software akan sesuai dengan spesifikasinya, atau property lain yang dibutuhkan, dimana kasus testing berhasil jika tidak ada kegagalan (yang signifikan) teramati.

Test Level Pengujian software biasanya dilakukan pada level yang berbeda saat proses development & maintenance. Sasaran dari dilakukannya test bisa berupa sebuah modul tunggal atau kumpulan-kumpulan modul (tergantung tujuan, penggunaan, perilaku, ataupun struktur ) 3 Tahapan besar dalam Test secara konseptual dapat dibedakan menjadi : Unit, Integrasi, dan Sistem.

2.1.1 Unit Testing Unit testing menguji fungsi dalam pemisahan komponen yang diuji secara terpisah. Bisa berupa subprogram yang individu atau komponen besar yang tersusun dari banyak unit yang memiliki hubungan erat. Unit testing terkait dengan akses ke kode yang sedang dites serta didukung oleh debugging tools, dan bisa saja melibatkan programmer yang menulis kode.

2.1.2 Integration Testing Proses untuk menguji interaksi antar komponen pada software. Aktivitas yang berjalan terus menerus pada setiap tahapan dimana Software Engineer/SE harus mampu berkonsentrasi di level tempat mereka mengintegrasikan. Untuk software yang kecil & mudah, Incremental Integration testing lebih dianjurkan untuk menyatukan seluruh komponen dalam satu waktu, yang lebih dikenal dengan “big bang testing”

2.1.3 System Testing Perilaku dari sebuah sistem yang utuh lebih mendapat perhatian khusus. Kegagalan fungsional harus bisa diidentifikasi terlebih dahulu selama proses unit & integration testing. System testing mempertimbangkan ketepatan untuk membandingkan sistem dengan persyaratan sistem non-fungsional seperti security, speed, accuracy, reliability

2.3.1 Acceptance Testing Memeriksa perilaku sistem terhadap permintaan customer yang telah menetapkan pilihan. Memastikan apakah permintaan customer telah dapat dipenuhi atau organisasi telah mengidentifikasi pangsa pasar yang cocok untuk software tersebut. Ada kemungkinan melibatkan developer dari sistem.

2.3.2 Installation Testing Setelah melalui acceptance testing, Software diuji untuk di-install pada lingkungan yang menjadi sasaran/target. Dapat dilihat sebagai system testing yang diadakan lagi menurut persyaratan konfigurasi dari hardware. Juga menguji prosedur instalasi.

2.3.3 Alpha & Beta Testing Sebelum software diluncurkan, Software diberikan kepada lingkup kecil yang bisa mewakili himpunan pengguna yang potensial untuk menggunakan software tersebut dalam rangka uji coba (trial) Pengguna akan menyampaikan/melaporkan permasalahan yang dijumpai ketika menggunakan produk software.

2.3.4 Conformance, Correctness, Functional Testing Ditujukan untuk validasi atau pengesahan apakah pengamatan perilaku dari software yang sedang diuji sesuai dengan spesifikasinya.

2.3.5 Reliability achievement & evaluation Dalam membantu mengidentifikasi kesalahan, testing dimaksudkan untuk meningkatkan reliabilitas/ketahanan daya uji.

2.3.6 Regression Testing Pengujian kembali secara selektif dari sebuah sistem/komponen untuk membuktikan bahwa modifikasi tidak menyebabkan dampak yang tidak diharapkan. Software yang sebelumnya telah lulus serangkaian tes, setelah ada modifikasi kondisinya masih tetap layak dan tidak bermasalah.

Ditujukan untuk membuktikan bahwa software yang Stress testing Performance testing Ditujukan untuk membuktikan bahwa software yang telah dibuat memenuhi persyaratan yang telah ditentukan yakni, capacity dan response time. Stress testing Menguji software untuk bekerja di luar /melebihi batasan kapasitasnya. Back-To-Back testing Rangkaian tes tunggal yang dilakukan pada 2 versi implementasi dari produk software, kmdn hasilnya dibandingkan.

Menguji kemampuan restart software setelah terjadi Recovery testing Menguji kemampuan restart software setelah terjadi sebuah “bencana” Configuration testing Menganalisa software dalam berbagai spesifikasi konfigurasi. Usability testing Mengevaluasi seberapa mudah end-user menggunakan & mempelajari software. Seberapa efektif fungsi yang ada dan kemampuan untuk pulih dari kesalahan yang dilakukan oleh user. Test-driven development Meningkatkan kegunaan tes-tes sebagai pengganti untuk sebuah persyaratan perincian dokumentasi.

Test Technique Banyak teknik yang dikembangkan untuk mengungkapkan potensi kesalahan dari program. Prinsipnya adalah menjadi se-sistematis mungkin dalam mengidentifikasi sebuah rangkaian yang mewakili perilaku program seperti domain input, scenario, states, dan dataflow. Teknik digolongkan menjadi white box (mengandalkan informasi ttg bagaimana software telah dicoding) dan black box (mengandalkan perilaku input-output)

Berdasarkan Lembaga Software Engineer & Pengalaman 3.1.1 Ad Hoc testing Test didapat berdasar kemampuan software engineer, lembaga serta pengalaman dengan program yang serupa. Merupakan teknik yang paling praktis. 3.1.2 Exploratory testing Didefinisikan sebagai pembelajaran simultan, rancangan tes, dan eksekusi tes. Keefektifan testing bergantung pada pengetahuan SE, yang bisa didapat dari berbagai sumber : mengamati perilaku produk, kefamiliaran dgn aplikasi, jenis kegagalan & kesalahan yang mungkin terjadi, resiko yang terkait dengan produk tertentu dan sebagainya.

Berdasarkan Spesifikasi /Perincian (1) 3.2.1 Equivalence Partitioning Domain input dibagi menjadi sebuah kumpulan dari subset/ kelas yang sebanding yang mempertimbangkan persamaan berdasar pada relasi yang spesifik & sebuah kumpulan perwakilan dari test yang diambil dari tiap kelas. 3.2.2 Boundary-Value analysis Test case dilakukan dekat dengan batasan variabel domain input yang didasari secara rasional. Kesalahan cenderung terkonsentrasi dekat dengan nilai ekstrim dari input.

Berdasarkan Spesifikasi /Perincian (2) 3.2.3 Decision table Menggambarkan hubungan logika antara kondisi (input) dan aksi (output). Teknik yang berhubungan cause-effect graphing 3.2.4 Finite-state Machine-based Memodelkan sebuah program sebagai suatu finite-state machine supaya dapat menempuh state & transisi yang terjadi. 3.2.5 Testing from formal spesification Memberikan spesifikasi bahasa formal yang memperkenankan untuk derivasi otomatis dari test case secara fungsional dan menyediakan sebuah output yang direkomendasikan. 3.2.6 Random Testing

Berdasarkan Kode 3.3.1 Control flow-based criteria Kriteria meliputi seluruh statement atau block of statements dari program atau menetapkan kombinasi dari keduanya. Mengeksekusi seluruh masukan hingga akhir sesuai jalur control flow pada flowgraph. 3.3.2 Data flow-based criteria Flowgraph control dilengkapi keterangan dengan informasi tentang bagaimana variabel dalam program didefinisikan, digunakan, dan dihilangkan. 3.3.3 Reference models for code-based Struktur kontrol dari sebuah program digambarkan secara grafik dengan menggunakan sebuah Flowgraph