pengujian perangkat lunak - dinus.ac.iddinus.ac.id/repository/docs/ajar/10_pengujian.pdf ·...

26
Pengujian Perangkat Lunak TIM PPL TEKNIK INFORMATIKA 5/28/2019 SOFTWARE TESTING - NH @2018 1

Upload: buiminh

Post on 16-Aug-2019

245 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Pengujian Perangkat Lunak - dinus.ac.iddinus.ac.id/repository/docs/ajar/10_Pengujian.pdf · Pengujian Perangkat Lunak TIM PPL TEKNIK INFORMATIKA 5/28/2019 SOFTWARE TESTING - NH @2018

PengujianPerangkatLunak

TIM PPL

TEKNIK INFORMATIKA

5/28/2019 SOFTWARE TESTING - NH @2018 1

Page 2: Pengujian Perangkat Lunak - dinus.ac.iddinus.ac.id/repository/docs/ajar/10_Pengujian.pdf · Pengujian Perangkat Lunak TIM PPL TEKNIK INFORMATIKA 5/28/2019 SOFTWARE TESTING - NH @2018

Pengujian• Testing adalah proses menganalisa suatu entitas

software untuk mendeteksi perbedaan antarakondisi yang ada dengan kondisi yang tidakdiinginkan (defect/errors/bugs) dan mengevaluasifitur-fitur dari entitas software

(standar ANSI/IEEE 1059)

5/28/2019 SOFTWARE TESTING - NH @2018 2

Page 3: Pengujian Perangkat Lunak - dinus.ac.iddinus.ac.id/repository/docs/ajar/10_Pengujian.pdf · Pengujian Perangkat Lunak TIM PPL TEKNIK INFORMATIKA 5/28/2019 SOFTWARE TESTING - NH @2018

TujuanMenemukan sebanyak mungkin masalah (error)

Tujuan menemukan masalah adalah memperbaikinya

Sebuah pengujian yang sukses adalah menemukankesalahan yang belum ditemukan.

5/28/2019 SOFTWARE TESTING - NH @2018 3

Page 4: Pengujian Perangkat Lunak - dinus.ac.iddinus.ac.id/repository/docs/ajar/10_Pengujian.pdf · Pengujian Perangkat Lunak TIM PPL TEKNIK INFORMATIKA 5/28/2019 SOFTWARE TESTING - NH @2018

Akktivitas Pengembangan PL

5/28/2019 SOFTWARE TESTING - NH @2018 4

Page 5: Pengujian Perangkat Lunak - dinus.ac.iddinus.ac.id/repository/docs/ajar/10_Pengujian.pdf · Pengujian Perangkat Lunak TIM PPL TEKNIK INFORMATIKA 5/28/2019 SOFTWARE TESTING - NH @2018

Aktivitas Pengujian

5/28/2019 SOFTWARE TESTING - NH @2018 5

Page 6: Pengujian Perangkat Lunak - dinus.ac.iddinus.ac.id/repository/docs/ajar/10_Pengujian.pdf · Pengujian Perangkat Lunak TIM PPL TEKNIK INFORMATIKA 5/28/2019 SOFTWARE TESTING - NH @2018

Peran tiap Proses Pengujian

5/28/2019 SOFTWARE TESTING - NH @2018 6

Page 7: Pengujian Perangkat Lunak - dinus.ac.iddinus.ac.id/repository/docs/ajar/10_Pengujian.pdf · Pengujian Perangkat Lunak TIM PPL TEKNIK INFORMATIKA 5/28/2019 SOFTWARE TESTING - NH @2018

Testing vs. DebuggingPengujian berbeda dengan debugging◦ Debugging dilakukan bila sudah ditemukan suatu

kesalahan, dan tujuannya mencari sumberkesalahan (fault atau defect)

◦ Debugging tetap menjadi bagian dari strategipengujian

5/28/2019 SOFTWARE TESTING - NH @2018 7

Page 8: Pengujian Perangkat Lunak - dinus.ac.iddinus.ac.id/repository/docs/ajar/10_Pengujian.pdf · Pengujian Perangkat Lunak TIM PPL TEKNIK INFORMATIKA 5/28/2019 SOFTWARE TESTING - NH @2018

Failure, Error, Fault and Defect

Error– Error adalah status dari sistem– Status error ini bisa menyebabkan kegagalan jika tidak adaperbaikan

Fault– Fault adalah sumber dari error

Defect– Sinonim Fault, Sering disebut juga bug

Failure◦ Kegagalan (failure) terjadi kalau ada perilaku dari sistem

yang tidak sesuai dengan permintaan di spesifikasi sistem

5/28/2019 SOFTWARE TESTING - NH @2018 8

Page 9: Pengujian Perangkat Lunak - dinus.ac.iddinus.ac.id/repository/docs/ajar/10_Pengujian.pdf · Pengujian Perangkat Lunak TIM PPL TEKNIK INFORMATIKA 5/28/2019 SOFTWARE TESTING - NH @2018

V & VVerifikasiSekumpulan aktivitas untuk menjamin bahwasoftware sudah mengiimplementasikan secara benarsuatu fungsi

ValidasiSekumpulan aktivitas untuk menjamin bahwasoftware sudah dibuat dengan benar sesuaidengan kebutuhan pengguna

Boehm [Boe81]:◦ Verification: "Are we building the product right?“

◦ Validation: "Are we building the right product?"

5/28/2019 SOFTWARE TESTING - NH @2018 9

Page 10: Pengujian Perangkat Lunak - dinus.ac.iddinus.ac.id/repository/docs/ajar/10_Pengujian.pdf · Pengujian Perangkat Lunak TIM PPL TEKNIK INFORMATIKA 5/28/2019 SOFTWARE TESTING - NH @2018

Tester?Software Developer

• Mengerti sistem

• Menguji untukmembuktikan bahwaprogramnya sudah benar

5/28/2019 SOFTWARE TESTING - NH @2018 10

Independence Testing Group

Harus belajar sistem

Menguji untuk membuktikanbahwa program masih adayang salah

Page 11: Pengujian Perangkat Lunak - dinus.ac.iddinus.ac.id/repository/docs/ajar/10_Pengujian.pdf · Pengujian Perangkat Lunak TIM PPL TEKNIK INFORMATIKA 5/28/2019 SOFTWARE TESTING - NH @2018

Siklus PengujianPerencanaan Pengujian

Perancangan Pengujian

Eksekusi Pengujian

Laporan Pengujian

5/28/2019 SOFTWARE TESTING - NH @2018 11

Page 12: Pengujian Perangkat Lunak - dinus.ac.iddinus.ac.id/repository/docs/ajar/10_Pengujian.pdf · Pengujian Perangkat Lunak TIM PPL TEKNIK INFORMATIKA 5/28/2019 SOFTWARE TESTING - NH @2018

Siklus PengujianPerencanaan Pengujian

Perancangan Pengujian

Eksekusi Pengujian

Laporan Pengujian

5/28/2019 12

Perencanaan apa saja yangakan diuji

Perencanaan waktu Perencanaan sumberdaya

yang diperlukan• Orang• PL pendukung• Alat/perangkat keras• Lingkungan pengujian• dan lain-lain

Perencanaan prosedurumum pengujian

SOFTWARE TESTING - NH @2018

Page 13: Pengujian Perangkat Lunak - dinus.ac.iddinus.ac.id/repository/docs/ajar/10_Pengujian.pdf · Pengujian Perangkat Lunak TIM PPL TEKNIK INFORMATIKA 5/28/2019 SOFTWARE TESTING - NH @2018

Siklus PengujianPerencanaan Pengujian

Perancangan Pengujian

Eksekusi Pengujian

Laporan Pengujian

5/28/2019 13

• Untuk apapun yang akandiuji, maka perlu dirancangKasus Pengujian (Test Case)• Test Case berisi:

• Masukan yang diuji• Harapan Pengujian• Cara menilai hasil

eksekusi pengujian

SOFTWARE TESTING - NH @2018

Page 14: Pengujian Perangkat Lunak - dinus.ac.iddinus.ac.id/repository/docs/ajar/10_Pengujian.pdf · Pengujian Perangkat Lunak TIM PPL TEKNIK INFORMATIKA 5/28/2019 SOFTWARE TESTING - NH @2018

Siklus PengujianPerencanaan Pengujian

Perancangan Pengujian

Eksekusi Pengujian

Laporan Pengujian

5/28/2019 14

• Dilakukan sesudah kodeprogram selesai dikerjakan.

• Eksekusi program dilakukandengan menggunakanmasukan data yang sudah dirancang

SOFTWARE TESTING - NH @2018

Page 15: Pengujian Perangkat Lunak - dinus.ac.iddinus.ac.id/repository/docs/ajar/10_Pengujian.pdf · Pengujian Perangkat Lunak TIM PPL TEKNIK INFORMATIKA 5/28/2019 SOFTWARE TESTING - NH @2018

Siklus PengujianPerencanaan Pengujian

Perancangan Pengujian

Eksekusi Pengujian

Laporan Pengujian

5/28/2019 15

Laporan pengujian berisi laporanuntuk setiap hasil eksekusi TestCase:• Lulus pengujian jika hasileksekusi program memberikanhasil yang sama dengan harapan hasil• Tidak lulus pengujian jika hasileksekusi memberikan hasil yang berbeda• Kadang dapat disertai dengancatatan khusus

SOFTWARE TESTING - NH @2018

Page 16: Pengujian Perangkat Lunak - dinus.ac.iddinus.ac.id/repository/docs/ajar/10_Pengujian.pdf · Pengujian Perangkat Lunak TIM PPL TEKNIK INFORMATIKA 5/28/2019 SOFTWARE TESTING - NH @2018

Kriteria Pengujian yang BaikMemiliki kemungkinan tinggi untuk menemukanerror

Pilih teknik yang terbaik◦ Sesuai dengan karakteristik software yang diuji

◦ Tidak terlalu sederhana juga tidak terlalu kompleks

5/28/2019 SOFTWARE TESTING - NH @2018 16

Page 17: Pengujian Perangkat Lunak - dinus.ac.iddinus.ac.id/repository/docs/ajar/10_Pengujian.pdf · Pengujian Perangkat Lunak TIM PPL TEKNIK INFORMATIKA 5/28/2019 SOFTWARE TESTING - NH @2018

Strategi Pengujian PL

‘testing-in-the-small’ hingga ‘testing-in-the-large’

PL konvensional◦ Unit testing: fokus pada tiap komponen individual, memastikan

tiap fungsi berjalan

◦ Integration testing: fokus pada desain dan konstruksi arsitektur PL

◦ Validation testing: memastikan PL memenuhi semua kebutuhan

◦ System Testing: PL dan elemen sistem lain diuji secara keseluruhan

PL OO ◦ Fokus pada pengujian tiap kelas termasuk atribut dan operasi

◦ Dilanjutkan pengujian komunikasi / kolaborasi antar kelas

5/28/2019 SOFTWARE TESTING - NH @2018 17

Page 18: Pengujian Perangkat Lunak - dinus.ac.iddinus.ac.id/repository/docs/ajar/10_Pengujian.pdf · Pengujian Perangkat Lunak TIM PPL TEKNIK INFORMATIKA 5/28/2019 SOFTWARE TESTING - NH @2018

Unit / Modul / Komponen Testing

5/28/2019 SOFTWARE TESTING - NH @2018 18

Page 19: Pengujian Perangkat Lunak - dinus.ac.iddinus.ac.id/repository/docs/ajar/10_Pengujian.pdf · Pengujian Perangkat Lunak TIM PPL TEKNIK INFORMATIKA 5/28/2019 SOFTWARE TESTING - NH @2018

Metode Pengujian PL

5/28/2019 SOFTWARE TESTING - NH @2018 19

Page 20: Pengujian Perangkat Lunak - dinus.ac.iddinus.ac.id/repository/docs/ajar/10_Pengujian.pdf · Pengujian Perangkat Lunak TIM PPL TEKNIK INFORMATIKA 5/28/2019 SOFTWARE TESTING - NH @2018

Blackbox VS WhiteboxBlackbox testing

◦ Tidak perlu mengetahui struktur software

◦ Juga disebut dengan specification-based atau functional testing

Whitebox testing

◦ Harus mengetahui struktur danimplementasi dari software

5/28/2019 SOFTWARE TESTING - NH @2018 20

Page 21: Pengujian Perangkat Lunak - dinus.ac.iddinus.ac.id/repository/docs/ajar/10_Pengujian.pdf · Pengujian Perangkat Lunak TIM PPL TEKNIK INFORMATIKA 5/28/2019 SOFTWARE TESTING - NH @2018

Whitebox TestingMeyakinkan bahwa semua statement / kondisi dieksekusiminimum satu kali

Contoh White-box testing• Control Flow Testing• Data Flow Testing• Mutation Testing

Path Input Expected Result

1 (10, 3, 2) 10

2 (25, 15, 40) 40

3 (10, 15, 6) 15

4 (10, 15, 19) 19

5/28/2019 SOFTWARE TESTING - NH @2018 21

Page 22: Pengujian Perangkat Lunak - dinus.ac.iddinus.ac.id/repository/docs/ajar/10_Pengujian.pdf · Pengujian Perangkat Lunak TIM PPL TEKNIK INFORMATIKA 5/28/2019 SOFTWARE TESTING - NH @2018

Blackbox TestingPengujian Black-Box dilakukan karena isi source code tidak bisa dilihat, hanya spesifikasinya saja

Disebut juga Functional Testing, karena kita hanyamelihat fungsionalitas dari unit yang diuji

Spesifikasi mendefinisikan apa yang dilakukan, Initial State (IS), dan juga Final State(FS)◦ Apa saja input-nya◦ Apa saja output-nya◦ Apa saja requirement/event yang merubah state

5/28/2019 SOFTWARE TESTING - NH @2018 22

Page 23: Pengujian Perangkat Lunak - dinus.ac.iddinus.ac.id/repository/docs/ajar/10_Pengujian.pdf · Pengujian Perangkat Lunak TIM PPL TEKNIK INFORMATIKA 5/28/2019 SOFTWARE TESTING - NH @2018

Pengujian IntegrasiPengujian unit fokus pada komponen/unit individual

◦ Sesudah semua fault di hilangkan dari setiap komponen, & unit tidak lagimemiliki error, maka unit/komponen ini siap diintegrasikan ataudigabungkan

Pengujian integrasi akan mendeteksi fault yang belumterdeteksi saat pengujian unit

◦ Fokusnya lebih ke sekumpulan komponen/unit

Dua atau lebih komponen akan diintegrasikan dan di uji◦ Setelah tidak ditemukan kesalahaan, maka komponen baru dapat

digabungkan.

◦ Urutan integrasi dapat menentukan usaha keseluruhan untuk melakukanpengujian integrasi◦ Kesalahan urutan integrasi dapat menambah biaya, sumber daya yang diperlukan.

5/28/2019 SOFTWARE TESTING - NH @2018 23

Page 24: Pengujian Perangkat Lunak - dinus.ac.iddinus.ac.id/repository/docs/ajar/10_Pengujian.pdf · Pengujian Perangkat Lunak TIM PPL TEKNIK INFORMATIKA 5/28/2019 SOFTWARE TESTING - NH @2018

Strategi Pengujian IntegrasiPendekatan ‘BIG BANG’

Pendekatan incremental◦ Top Down testing

◦ Bottom Up testing

◦ Sandwich Testing

5/28/2019 SOFTWARE TESTING - NH @2018 24

Page 25: Pengujian Perangkat Lunak - dinus.ac.iddinus.ac.id/repository/docs/ajar/10_Pengujian.pdf · Pengujian Perangkat Lunak TIM PPL TEKNIK INFORMATIKA 5/28/2019 SOFTWARE TESTING - NH @2018

System TestingPengujian validasi: Fokus pada kebutuhan software

Pengujian alpha / Beta: Fokus pada pengguna (bagaimana mereka menggunakan)

Recovery Testing: Software dibuat 'gagal' dan dilihat apakah proses pemulihan sudah dapat dilakukan. Contoh: software yang memanfaatkan internet melihat perilaku pemulihan ketika internet tiba-tiba turun.

Pengujian keamanan: Pastikan apakah mekanisme perlindungan sudah melindungi 'penetrasi‘

Stress testing: Sistem diuji bagaimana ketika dihadapkan dengan permintaan penggunaan sumber daya yang melebihi jumlah normal, atau frekuensi atau volume yang normal

Pengujian kinerja: Menguji kinerja PL ketika dijalankan pada konteks tertentu

5/28/2019 SOFTWARE TESTING - NH @2018 25

Page 26: Pengujian Perangkat Lunak - dinus.ac.iddinus.ac.id/repository/docs/ajar/10_Pengujian.pdf · Pengujian Perangkat Lunak TIM PPL TEKNIK INFORMATIKA 5/28/2019 SOFTWARE TESTING - NH @2018

TugasBuatlah rencana dan rancangan pengujian proyek.

1. Rencana meliputi kapan, dimana, berapa dan siapa tester, dll

2. Rancangan seluruh kasus uji lengkap dengan masukan dan harapan

5/28/2019 SOFTWARE TESTING - NH @2018 26