SOFTWARE TESTING Pembahsan Introduction to Testing Testing Principles
SOFTWARE TESTING
Pembahsan � Introduction to Testing � Testing Principles � Testing Objectives � Test Oracles � Levels of Testing � White-Box Testing/Structural Testing � Functional/Black-Box Testing � Test Plan � Test-Case Design
Introduction to Testing �Testing adalah serangkaian kegiatan yang dapat direncanakan terlebih dahulu dan dilakukan secara sistematis.
Definisi Testing lainnya �Proses menganalisa sebuah item perangkat lunak untuk mendeteksi perbedaan antara hasil aktual dengan hasil yang diharapkan (ex bug) dan mengevaluasi fitur-fitur dari item perangkat lunak. �Proses menganlisa sebuah program dengan intensif untuk menemukan kesalahan �Proses eksekusi sebuah program dengan intensif untuk menemukan kesalahan
Prinsip Testing � Semua tes / pengujian harus bisa dilacak dengan kebutuhan pelanggan. � Pengujian harus direncanakan lama sebelum pengujian dimulai � Prinsip Pareto (80/20) berlaku untuk pengujian perangkat lunak, 20 persen dari pengujian kita menentukan 80 persen dari hasil yang peroleh. � Pengujian harus mulai “cakupan kecil" dan kemajuan ke arah pengujian “cakupan besar. “ � Pengujian mendalam tidak mungkin � Untuk menjadi paling efektif, pengujian harus dilakukan oleh pihak ketiga yang independen.
Objektif / tujuan Testing � Objektif testing adalah untuk menguji kode, dimana ada kemungkinan tinggi menemukan semua kesalahan. � Tujuan ini juga menunjukkan bahwa pada - Fungsi perangkat lunak bekerja sesuai dengan persyaratan spesifikasi perangkat lunak / software requirment specification (SRS) berkaitan dengan fungsi, fitur, fasilitas, dan kinerja. � A good test case adalah satu yang memiliki probabilitas tinggi untuk menemukan kesalahan yang belum ditemukan. � A successful test adalah satu yang mengungkap kesalahan yang belum ditemukan.
Pengujian Oracle(TEST ORACLES) � Untuk menguji setiap program, kita perlu memiliki deskripsi perilaku yang diharapkan dan metode menentukan apakah perilaku yang diamati sesuai dengan perilaku yang diharapkan. Untuk ini kita perlu oracle tes. � Tes oracle adalah mekanisme, yang dapat digunakan untuk memeriksa kebenaran dari output dari program untuk uji kasus. � Conceptually, membandingkan antara tes oracle dengan program yang belum dites dengan masukkan tes case yang sama
Software testing (tipe)
Konsep Tes Oracle
Tingkatan Pengujian (LEVELS OF TESTING)
Metode Testing �Black BOX �White BOX �Gray BOX �Agile �Ad-HOC
Tipe Testing �Smoke Testing �Functional Testing �Usability Testing �Performance Testing �Regression Testing �Compliance Testing
Tingkatan Pengujian (LEVELS OF TESTING) Black BOX, Adhoc, smoke tes, Functional test, Usability tes Black BOX, Regression Testing, smoke tes, Functional test, Usability tes White box, graybox, , Smoke Testing, Bottom up test, top-down test, Big Bang, White box
Tingkatan Pengujian (LEVELS OF TESTING) �V- Model
Tingkatan Pengujian (LEVELS OF TESTING)
Unit Testing �Sebuah unit adalah diuji bagian terkecil dari perangkat lunak. �Biasanya memiliki satu atau beberapa input dan biasanya satu output. �Pengujian unit, komponen individual diuji untuk memastikan bahwa unit beroperasi dengan benar �Berfokus pada upaya verifikasi. Pada unit terkecil dari desain perangkat lunak, masing-masing komponen diuji secara independen tanpa komponen sistem lainnya. �Dilaksanakan dengan menggunakan driver dan stub. �Driver adalah suatu program utama yang berfungsi mengirim atau menerima data kasus uji dan mencetak hasil dari modul yang diuji.
Unit Testing (Lanjt) �alasan untuk melakukan unit testing daripada pengujian seluruh produk: Ukuran unit “kecil” untuk menemukan kesalahan cukup mudah. �Pada pemrograman terstruktur, sebuah unit dapat berupa sebuah individual program, function, procedure, dll. �Pada pemrograman berorientasi Objek, unit terkecil adalah sebuah metode, yang mungkin dari base/ super class, abstract class atau derived/ child class. �METHOD : White BOX �Dilakukan pada tingkat pertama dan sebelum pengujian integrasi (integration Test)
Unit Testing (Lanjt) �Pengujian Unit biasanya dilakukan oleh pengembang perangkat lunak sendiri. Dalam kasus yang jarang terjadi juga dapat dilakukan oleh penguji perangkat lunak independen atau pihak ketiga (Third Party).
Tugas Tes Unit (TASKS UNIT TEST) � Unit Test Plan �Prepare �Review �Rework �Baseline � Unit Test Cases/Scripts �Prepare �Review �Rework �Baseline � Unit Test �Perform
Keuntungan Unit Testing �unit testing meningkatkan kepercayaan diri dalam mengubah / memelihara kode. �Kode lebih dapat digunakan kembali (reusable) �Pengembangan yang cepat (Development is faster) �Biaya memperbaiki cacat (Defect) terdeteksi selama pengujian unit adalah lebih rendah dibandingkan dengan yang cacat terdeteksi pada tingkat yang lebih tinggi �Debugging mudah �Kode yang lebih handal
Ilustrasi Unit Tes
Unit-test Procedure
Contoh
Contoh �Unit testing menggunakan Visual Studio �https: //msdn. microsoft. com/library/hh 694602%28 v= vs. 120%29. aspx �Unit testing menggunakan Android Studio (Mobile Apps) �https: //developer. android. com/studio/test/index. html #test_types_and_location �https: //developer. android. com/training/testing/start/i ndex. html
Minggu depan �White Box test & Integration Testing
- Slides: 26