teknik pengujian perangkat lunak -...

26
Pengujian Perangkat Lunak Software Testing Rekayasa Perangkat Lunak

Upload: dodieu

Post on 07-Mar-2019

222 views

Category:

Documents


0 download

TRANSCRIPT

Pengujian Perangkat Lunak

Software Testing

Rekayasa Perangkat Lunak

2Rekayasa Perangkat Lunak

Pendahulaun

Pengujian perangkat lunak (software testing) merupakan suatuinvestigasi yang dilakukan untuk mendapatkan informasimengenai kualitas dari produk atau layanan yang sedang diuji(under test).

Pengujian perangkat lunak juga memberikan pandanganmengenai perangkat lunak secara obyektif dan independen, yang bermanfaat dalam operasional bisnis untuk memahami tingkatrisiko pada implementasinya.

Pengujian perangkat lunak adalah elemen kritis dari jaminankualitas perangkat lunak dan merupakan review puncak terhadapspesifikasi, desain dan pembuatan program.

Pengujian perangkat lunak biasanya menghabiskan upaya 30-40% dari total pekerjaan proyek.

Untuk proyek yang membahayakan nyawa manusia, biayapengujian bisa 3-5 X proyek biasa.

3Rekayasa Perangkat Lunak

Tujuan Pengujian

Pengujian perangkat lunak melibatkan eksekusi komponen

perangkat lunak atau komponen sistem untuk mengevaluasi satu

atau lebih sifat sistem yang akan diuji.

Secara umum, pengujian perangkat lunak dapat dinyatakan

sebagai proses validasi dan verifikasi bahwa sebuah

program/aplikasi/ produk:

• Memenuhi kebutuhan yang mendasari perancangan dan

pengembangan perangkat lunak,

• Berjalan sesuai dengan yang diharapkan,

• Memenuhi kebutuhan oleh semua pihak yang berkepentingan,

• Dapat berjalan dalam lingkungan yang dimaksudkan.

4Rekayasa Perangkat Lunak

Prinsip Pengujian

Semua pengujian harus dapat ditelusuri sampai ke persyaratan

pelanggan.

Harus direncanakan sebelum pengujian dilakukan.

Prinsip Pareto 80/20, yaitu 80% dari semua kesalahan yang

ditemukan selama pengujian dapat ditelusuri sampai 20% dari semua

modul program.

Pengujian dimulai dari lingkup yang kecil menuju yang besar.

Pengujian yang mendalam tidak mungkin.

Paling efektif, pengujian dilakukan oleh pihak ketiga yang

independen.

5Rekayasa Perangkat Lunak

Testabililas

Testabilitas perangkat lunak adalah seberapa mudah sebuah program komputer dapat diuji.

Karena pengujian sangat sulit, perlu diketahui apa yang dapat dilakukanuntuk membuatnya menjadi mudah.

Karakteristiknya:

Operabilitas (Operability), semakin baik dia bekerja semakin efisien dia dapat diuji.

Observabilitas (Observability), apa yang anda lihat adalah apa yang anda uji.

Kontrolabilitas (Controlability), semakin baik kita dapat mengontrol perangkat lunak

semakin banyak pengujian yang dapat diotomatisasi dan dioptimalkan.

Dekomposabilitas (Decomposability), dengan mengontrol ruang lingkup pengujian

kita dapat lebih cepat mengisolasi masalah dan melakukan pengujian kembali.

Kesederhanaan (Simplicity), semakin sedikit yang diuji semakin cepat pengujian.

Stabilitas (Stability), semakin sedikit perubahan semakin sedikit gangguan

pengujian.

Kemampuan dipahami (Understandability), semakin banyak informasi yang dimiliki

semakin detail pengujiannya.

6Rekayasa Perangkat Lunak

Teknik Pengujian

Black box testing

Memastikan fungsional P/L berjalan.

Kesesuaian input dengan output.

Tidak memperhatikan proses logic internal.

White box testing

Pengamatan detail prosedur.

Mengamati sampai level percabangan kondisi dan

perulangan.

7Rekayasa Perangkat Lunak

White Box Testing

Metode: basis path testing.

Memakai notasi flow graph.

8Rekayasa Perangkat Lunak

Kompleksitas Cyclomatic

Menunjukkan

jumlah skenario

pengujian yang

harus dilakukan

untuk menjamin

cakupan seluruh

program.

9Rekayasa Perangkat Lunak

White Box Testing

10Rekayasa Perangkat Lunak

Black Box Testing – Graph Based

11Rekayasa Perangkat Lunak

Black Box Testing – Equivalence Partitioning

Equvalence partitioning adalah metode black box testing yang membagi domain

masukan dari suatu program ke dalam kelas-kelas data, di mana test cases

dapat diturunkan.

Equivalence partitioning berdasarkan pada premis masukan dan keluaran dari

suatu komponen yang dipartisi ke dalam kelas-kelas, menurut spesifikasi dari

komponen tersebut, yang akan diperlakukan sama (ekuivalen) oleh komponen

tersebut. Dapat juga diasumsikan bahwa masukan yang sama akan

menghasilkan respon yang sama pula.

Nilai tunggal pada suatu partisi ekuivalensi diasumsikan sebagai representasi

dari semua nilai dalam partisi. Hal ini digunakan untuk mengurangi masalah yang

tidak mungkin untuk testing terhadap tiap nilai dalam partisi. Petunjuk

pelaksanaan dalam melakukan equivalence partitioning, adalah sebagai berikut:

Jika masukan mempunyai jenjang tertentu, maka definisikan kategori valid dan tak valid

terhadap jenjang masukan tersebut.

Jika masukan membutuhkan nilai tertentu, definisikan kategori valid dan tak valid.

Jika masukan membutuhkan himpunan masukan tertentu, definisikan kategori valid dan

tak valid.

Jika masukan adalah Boolean, definisikan kategori valid dan tak valid.

12Rekayasa Perangkat Lunak

Black Box Testing – Equivalence Partitioning

Sedangkan beberapa kombinasi yang mungkin dalam partisi ekuivalensi,

adalah:

Nilai masukan yang valid atau tak valid.

Nilai numerik yang negatif, positif atau nol.

String yang kosong atau kosong.

Daftar (list) yang kosong atau tidak kosong.

File data yang ada dan tidak, yang dapat dibaca/ditulis atau tidak.

Tanggal yang berada setelah tahun 2000 atau sebelum tahun 2000, tahun

kabisat atau bukan tahun kabisat.

Tanggal yang berada di bulan yang berjumlah 28, 29, 30, atau 31 hari.

Hari pada hari kerja atau liburan akhir pekan.

Waktu di dalam atau diluar jam kerja kantor

Tipe file data, seperti teks, databerformat, grafik, video, atau suara

Sumber atau tujuan file, seperti hard drive, floppy drive, CD-ROM, jaringan

13Rekayasa Perangkat Lunak

Black Box Testing – Analisa Nilai Batas

1. Menguji untuk input di sekitar batas atas maupun

bawah sebuah range nilai yang valid.

2. Menguji nilai maksimal dan minimal.

3. Menerapkan (1 & 2) untuk output.

4. Menguji batas struktur data yang dipakai. Misal

ukuran array.

14Rekayasa Perangkat Lunak

Black Box Testing – Perbandingan

Spesifikasi kebutuhan yang sama dimungkinkan

menghasilkan aplikasi/ perangkat lunak yang berbeda.

Skenario pengujian pada aplikasi yang demikian bisa

digunakan untuk skenario pengujian aplikasi serupa yang

lain.

15Rekayasa Perangkat Lunak

Skenario Pengujian Khusus

Pengujian GUI.

Pengujian arsitektur client/ server.

Pengujian dokumentasi dan fasilitas bantuan.

Pengujian sistem waktu nyata.

16Rekayasa Perangkat Lunak

Strategi Pengujian Perangkat Lunak

Membahas langkah-langkah yang harus dikerjakan

sebagai bagian dari pengujian.

Kapan dilaksanakan? Berapa usaha, waktu dan sumber

daya yang digunakan?

Meliputi: perencanaan, desain test case, pelaksanaan,

koleksi data dan evaluasi.

17Rekayasa Perangkat Lunak

Kaidah Umum Pengujian

Dimulai dari pengujian tingkat komponen menuju integrasi.

Titik yang berbeda dimungkinkan memakai teknik

pengujian yang berbeda.

Pengujian dilakukan oleh developer dan (untuk proyek

yang besar) tim independen.

Testing dan debugging adalah berbeda. Namun

debugging pasti berkaitan dengan strategi testing apapun.

18Rekayasa Perangkat Lunak

Strategi Pengujian

Dimulai dari unit testing terhadap source code hingga system

testing terhadap spesifikasi kebutuhan.

19Rekayasa Perangkat Lunak

Langkah Pengujian

20Rekayasa Perangkat Lunak

Unit Testing

21Rekayasa Perangkat Lunak

Integration Testing

Top – down integration

22Rekayasa Perangkat Lunak

Integration Testing

Bottom – up integration

23Rekayasa Perangkat Lunak

Integration Testing

Regression testing: dilakukan pengujian setiap kali ada

modul baru yang diintegrasikan atau ada modul yang

berubah.

Smoke testing: test daily, untuk proyek jenis kritis-waktu.

24Rekayasa Perangkat Lunak

Validation Testing

Disebut sukses jika fungsi perangkat lunak dapat diterimaoleh customer (berdasarkan dokumen SKPL).

Alpha test: dilakukan di tempat developer oleh customer pada lingkungan yang terkendali.

Beta test: dilakukan di tempat customer tanpa melibatkandeveloper pada lingkungan yang tak terkendali.

25Rekayasa Perangkat Lunak

System Testing

Meguji sistem berbasis komputer secara

menyeluruh, termasuk juga hubungannya dengan

sistem yang lain.

Diantaranya:

• Recovery testing, jika system failure.

• Security testing, jika terjadi serangan.

• Stress testing, terhadap jumlah, frekuensi dan volume

pekerjaan.

• Performance testing, untuk mengukur pemakaian

sumber daya.

26Rekayasa Perangkat Lunak

Debugging

Memperbaiki error yang ditemukan pada saat testing

(yang sukses).

Kaidah dasar sebelum debug:

• Apakah penyebab bug dihasilkan kembali oleh bagian

program yang lain?

• Apakah bug selanjutnya yang mungkin muncul jika

bug diperbaiki?

• Apa yang bisa dilakukan untuk mencegah bug terjadi

untuk pertama kalinya?