Anda di halaman 1dari 26

TESTING

IMPLEMENTASI SISTEM

MEI P. KURNIAWAN, M.KOM

01. Aspek Pengembangan Software


Definisi Perangkat Lunak
2

 Program komputer dan dokumentasi yang


berhubungan
 Produk perangkat lunak dapat dikembangkan untuk
pelanggan tertentu atau pasar umum
Jenis Perangkat Lunak (Ian Somerville)
3

 Perangkat Lunak Generik : Perangkat lunak standar


yang diproduksi oleh perusahaan pengembang dan
dijual pada pasar terbuka ke siapapun yang bisa
membelinya (Shrink-wrapped)
 Perangkat Lunak Pesanan : Perangkat lunak yang
dikembangkan khusus dan disesuaikan dengan
kebutuhan pelanggan
(Ian Somerville, Software Engineering, 2001)
Jenis Perangkat Lunak (Pressman)
4

 Perangkat Lunak Sistem


 Perangkat Lunak Real-Time
 Perangkat Lunak Bisnis
 Perangkat Lunak Teknik dan Ilmu Pengetahuan
 Perangkat Lunak Tertanam (Embedded Software)
 Perangkat Lunak Komputer Personal
 Perangkat Lunak Kecerdasan Buatan
(Roger S. Pressman, Software Engineering:A Practitioner’s Approach,
1997)
Peranan Perangkat Lunak
5

 Menggantikan peran manusia, dengan otomasi


terhadap suatu tugas atau proses
 Memperkuat peran manusia, dengan menyajikan
informasi yang diperlukanmanusia utk menyelesaikan
tugas atau proses
 Restrukturisasi peran manusia, dengan melakukan
perubahan-perubahan thd sekumpulan tugas atau proses
 Hiburan dan Permainan, dengan menyajikan aplikasi
interaktif yang semakin dekat dengan kenyataan
Permasalahan Software Developer
6

 Keterbatasan pengetahuan dalam software development dan


standard methodology (“hajar-bleh” methodology)
 Software belum bisa menjadi industri profesional, tapi
masih model pengrajin atau pedagang buah di pinggiran
jalan yang jualan karena ada panen atau mood
 Lemah di ide produk dan inovasi: Kurangnya sarana
penghubung dengan pihak yang membutuhkan software
 Kurangnya keterlibatan pemerintah untuk melindungi
pengembang software lokal: diperlukan proteksi cantik
terhadap industri software lokal. Contoh: Ichitaro dan
TRON di Jepang
Permasalahan Software Developer (2)
7

 Infrastruktur Informasi yang belum memadai (tidak membuat


dunia ini rata (the world is flat)– yang dinikmati India)
 Keterbatasan modal usaha, terutama karena industri software
dianggap tidak bankable
 Pasar yang masih belum kondusif:
 Kebutuhan belum banyak
 Banyak yang menganggap pengembangan software (pesanan)
seperti pengadaan barang biasa
 Piracy rate Indonesia yang mencapai 87% (nomor 3 sedunia) dan
trend SDM IT Indonesia yang ke arah cracking activities (Carding,
Defacing, Attacking)
Solusi (????)
8

 Memperbaiki kurikulum pendidikan khusus untuk jurusan


Computer Science. Mengadakan training initiative di bidang
Software Engineering termasuk untuk development, standard,
certification, management, marketing
 Keterlibatan pemerintah dalam membuat pipa antara software

developer dan client, juga proteksi ke perusahaan software lokal


 Membangun kerjasama dengan perusahaan software

(internasional) yang matang (outsourcing or transfer technology)


 Kemudahan mendapatkan financial support dari perbankan

 Be Legal:
 Beli lisensi software proprietary
 Gunakan opensource
Yang bisa dilakukan???
9

 Memperbaiki kualitas dalam develop aplication


 Modularitas sistem
 Support
 Meningkatkan pengetahuan software developer
tentang pengujian dan implementasi software
10

Bagaimana caranya menjaga dan menjamin agar


suatu software berkualitas?
Sasaran Software Testing
11

1. Pengujian merupakan proses eksekusi suatu


program dengan maksud menemukan kesalahan
2. Test case yang baik memiliki probabilitas tinggi
untuk menemukan kesalahan yang belum pernah
ditemukan
3. Pengujian yang sukses adalah yang mampu
mengungkap semua kesalahan yang belum
pernah ditemukan
Prinsip Software Testing
12

 Semua pengujian harus dapat memenuhi apa yang


diminta customer
 Pengujian harus direncanakan sejak lama sebelum
pengujian dimulai
 Prinsip pareto berlaku untuk pengujian perangkat
lunak  80 % dari kesalahan program dapat
ditelusuri sampai 20%
Prinsip Software Testing
13

 Pengujian harus mulai ‘dari yang kecil’ dan


berkembang ke pengujian ‘yang besar’
 Pengujian yang mendalam tidak mungkin
 Untuk menjadi paling efektif, pengujian harus
dilakukan oleh pihak ketiga yang independen
Karakteristik Software Testing
14

1. Operabilitas
2. Observabilitas
3. Kontrolabilitas
4. Dekomposabilitas
5. Kesederhanaan
6. Stabilitas
7. Understandability
Karakteristik Software Testing
15

1. Operabilitas. “Semakin baik dia bekerja, semakin


efisien dia dapat diuji”
 Sitem memiliki beberapa bug
 Tidak ada bug yang memblok eksekusi program
 Produk berkembang di dalam tahapan fungsional
Karakteristik Software Testing
16

2. Observabilitas. ”Apa yang anda lihat adalah apa


yang anda uji”
 Output yang berbeda dikeluarkan oleh masing-masing
input
 Tahap dan variabel sistem dapat dilihat atau diartikan
selama eksekusi
 Sistem dan variabel yang lampau dapat dilihat
Observabilitas….
17

 Semua faktor yang mempengaruhi output dapat dilihat


 Output yang salah dapat diidentifikasi dengan mudah
 Kesalahan internal dideteksi secara otomatis melalui
mekanisme self testing dan dilaporkan secara otomatis
 Source code dapat diakses
Karakteristik Software Testing
18

3. Kontrolabilitas. “Semakin baik kita dapat


mengontrol perangkat lunak, semakin banyak
pengujian yang dapat diotomatisasi dan
dioptimalkan”
 Output dapat dimunculkan melalui beberapa kombinasi
input
 Semua kode dapat dieksekusi melalui berbagai
kombinasi input
Kontrolabilitas….
19

 Keadaan dan variabel perangkat lunak dan perangkat


keras dapat dikontrol secara langsung
 Format input dan output konsisten dan terstruktur
 Pengujian dapat dispesifikasi, dioptimasi dan
direproduksi dengan baik
Karakteristik Software Testing
20

4. Dekomposabilitas.”Dengan mengontrol ruang


lingkup pengujian, kita dapat dengan lebih cepat
mengisolasi masalah dan melakukan pengujian
kembali secara lebih halus”
 Sistem dibangun dari modul yang independen dan
dapat diuji secara independen
Karakteristik Software Testing
21

5. Kesederhanaan.” Semakin sedikit yang diuji,


semakin cepat kita dapat mengujinya”
 Kesederhanaan fungsional (kumpulan fitur)
 Kesederhanaan struktural (modular)
 Kesederhanaan kode (pengkodean dibuat standar untuk
mempermudah inspeksi dan pemeliharaan)
Karakteristik Software Testing
22

6. Stabilitas.”Semakin sedikit perubahan, semakin


sedikit gangguan dalam pengujian”
 perubahan ke perangkat lunak tidak sering,, terkontrol
dan dipergunakan untuk memvalidasi pengujian yang
sudah ada
 kegagalan sistem dapat diperbaiki dengan baik
Karakteristik Software Testing
23

7. Understandability. “Semakin banyak informasi


yang diketahui, maka pengujian semakin pintar”
 Desain dipahami dengan baik
 Ketergantungan diantara komponen internal, eksternal
dan yang dipakai bersama dipahami dengan baik
Understandability….
24

 Perubahan ke desain dikomunikasikan


 Dokumentasi teknik :
 dapat diakses dengan cepat
 diorganisasikan dengan baik
 spesifik dan detail
 akurat
Atribut pengujian
25

Pengujian software dikatakan baik jika :


 Pengujian yang baik memiliki probabilitas yang
tinggi untuk menemukan kesalahan.
 Pengujian yang baik tidak redundan.
 Pengujian yang baik seharusnya “jenis terbaik”
 Pengujian yang baik tidak boleh terlalu sederhana
atau kompleks
Question???
26

Anda mungkin juga menyukai