Anda di halaman 1dari 46

PENGUJIAN PERANGKAT LUNAK

Strategi Pengujian Perangkat Lunak

A Wahyu Sudrajat, M.T.I


Wahyu.sudrajat@mdp.ac.id
Standar Kompetensi
• Mahasiswa dapat menjelaskan pentingnya
sebuah perencanaan pengujian. (C2)
• Mahasiswa dapat menghitung jumlah
dokumen perencanaan pengujian yang harus
dibuat. (C3)
• Mahasiswa dapat membuat perencanaan
pengujian (test plan) suatu proyek pengujian
perangkat lunak. (C3)

A Wahyu Sudrajat, M.T.I


Wahyu.sudrajat@mdp.ac.id
Pentingnya pengujian sistem
• Pengujian perangkat lunak dilakukan untuk
menentukan keberadaan, kualitas, dan kemurnian
dari atribut-atribut sistem aplikasi.
• Pengujian dilakukan dengan memanfaatkan tool dan
teknik.
• Semakin baik struktur dari proses pengujian, semakin
baik pula hasil pengujiannya

A Wahyu Sudrajat, M.T.I


Wahyu.sudrajat@mdp.ac.id
Konsep kecocokan aplikasi
• Keefektifan dari aplikasi komputer dalam lingkungan bisnis
ditentukan dari tingkat kecocokan aplikasi tersebut dalam
lingkungan operasinya.
• Kecocokan (fit) merupakan suatu konsep yang menekankan
pada bagaimana tingkat kegunaan (usable), pembantuan
(helpful) dan manfaat dari unjuk kerja aplikasi dalam
membantu tugas-tugas pemakai.
• Semakin baik tingkat bantuan aplikasi kepada pemakai,
semakin baik tingkat "kecocokannya "

A Wahyu Sudrajat, M.T.I


Wahyu.sudrajat@mdp.ac.id
• Konsep kecocokan ini penting dalam aspek desain
maupun pengujian.
• Desain harus bertujuan untuk membangun aplikasi
yang "cocok" dengan proses bisnis pemakai dan
proses pengujian harus dapat meyakinkan tingkat
kecocokan yang dikehendaki dipenuhi.
• Pengujian yang berkonsentrasi pada struktur dan
kebutuhan (requirement) dapat gagal memenuhi
aspek kecocokan.

A Wahyu Sudrajat, M.T.I


Wahyu.sudrajat@mdp.ac.id
Aspek Kecocokan
1. Data: data yang andal, timelines (tepat waktu), konsisten dan
banyak berguna (useful) terkendali dalam aplikasi yang
diotomatisasi bagi pemakai.
2. Orang-orang: keahlian, training, kemampuan belajar dan
kesenangan untuk menggunakan dan berinteraksi dengan
aplikasi yang diotomatisasi.
3. Struktur: pembangunan yang tepat dari sistem aplikasi untuk
mengoptimalkan tcknologi dan memenuhi kebutuhan.
4. Aturan-aturan: prosedur-prosedur yang harus dipatuhi dalam
pemrosesan data.

A Wahyu Sudrajat, M.T.I


Wahyu.sudrajat@mdp.ac.id
Tools vs Teknik
o Tool merupakan 'kendaraan" untuk melakukan
proses pengujian. Tool merupakan sumber bagi
penguji, tapi tool sendiri tidak dapat melaksanakan
pengujian.
o Teknik pengujian adalah proses untuk meyakinkan
bahwa beberapa aspek dari sistem aplikasi berfungsi
dengan baik. Ada sedikit teknik, tapi ada banyak tool.
o Konsep dari tool dan teknik ini penting dalam proses
pengujian. Kombinasi keduanya memungkinkan
untuk dilakukannya proses pengujian.

A Wahyu Sudrajat, M.T.I


Wahyu.sudrajat@mdp.ac.id
Tools vs Teknik
o Tool merupakan 'kendaraan" untuk melakukan
proses pengujian. Tool merupakan sumber bagi
penguji, tapi tool sendiri tidak dapat melaksanakan
pengujian.
o Teknik pengujian adalah proses untuk meyakinkan
bahwa beberapa aspek dari sistem aplikasi berfungsi
dengan baik. Ada sedikit teknik, tapi ada banyak tool.
o Konsep dari tool dan teknik ini penting dalam proses
pengujian. Kombinasi keduanya memungkinkan
untuk dilakukannya proses pengujian.

A Wahyu Sudrajat, M.T.I


Wahyu.sudrajat@mdp.ac.id
S/W Testing tools
Tools pengujian perangkat lunak dikelompokkan menjadi :
a)Test Management tools
b)Functional Testing Tools
c)Load Testing Tools
Opensource S/W Testing tools
Proprietary S/W Testing tools
Testing Strategies

Tools pengujian perangkat lunak dikelompokkan menjadi :


a)Top-Down
b)Bottom-Up
c)Big Bang
d)Sandwich
Proses Testing

Unit Module Sub-system System Acceptance


Testing Testing Testing Testing Testing

User
Component Testing Integration Testing Testing

15
Proses Testing
• Unit testing
– Pengujian masing-masing unit komponen program untuk
meyakinkan bhw sudah beroperasi secara benar
• Module Testing
– Pengujian terhadap koleksi unit-unit komponen yang saling
berhubungan.
• Sub-system Testing
– Pengujian terhadap koleksi module-module yang
membentuk suatu sub-system (aplikasi)

A Wahyu Sudrajat, M.T.I 16


Wahyu.sudrajat@mdp.ac.id
Proses Testing
• System Testing
– Pengujian terhadap integrasi sub-system, yaitu
keterhubungan antar sub-system
• Acceptance Testing
– Pengujian terakhir sebelum sistem dipakai oleh user.
– Melibatkan pengujian dengan data dari pengguna sistem.
– Biasa dikenal sebagai “alpha test” (“beta test” untuk
software komersial, dimana pengujian dilakukan oleh
potensial customer)

A Wahyu Sudrajat, M.T.I 17


Wahyu.sudrajat@mdp.ac.id
Proses Testing
• Component testing
– Pengujian komponen-komponen program
– Biasanya dilakukan oleh component developer (kecuali
untuk system kritis)
• Integration testing
– Pengujian kelompok komponen-komponen yang
terintegrasi untuk membentuk sub-system ataupun system
– Dilakukan oleh tim penguji yang independent
– Pengujian berdasarkan spesifikasi sistem

A Wahyu Sudrajat, M.T.I 18


Wahyu.sudrajat@mdp.ac.id
Hirarki pengujian P/L

A Wahyu Sudrajat, M.T.I 19


Wahyu.sudrajat@mdp.ac.id
Hubungan antara rencana pengujian dan proses
pengembangan sistem

Spesifikasi Spesifikasi Perancangan Detail


Kebutuhan Sistem Sistem Perancangan

Acceptance System Sub-System Module and


Test plan Integration Integration Unit code and
Test plan Test plan test

Acceptance System Sub-System


Service test Integration Integration
test test
20
Pendekatan Strategis ke pengujian perangkat lunak

• Pengujian Unit
• Pengujian Integrasi
• Pengujian Validasi
• Pengujian Sistem

A Wahyu Sudrajat, M.T.I


Wahyu.sudrajat@mdp.ac.id
Pengujian Unit
• Berfokus pada inti terkecil dari desain perangkat
lunak yaitu modul
• Biasanya berorientasi pada white box

MODUL Interface
Struktur data lokal
Kondisi Batas
Jalur independen
Jalur penanganan kesalahan

Test Case

A Wahyu Sudrajat, M.T.I


Wahyu.sudrajat@mdp.ac.id
Pengujian Unit
• Checklist untuk pengujian interface
– Apakah jumlah parameter input sama dengan jumlah
argumen?
– Apakah antara atribut dan parameter argumen sudah
cocok?
– Apakah antara sistem satuan parameter dan argumen
sudah cocok?
– Apakah jumlah argumen yang ditransmisikan ke modul
yang dipanggil sama dengan atribut parameter?

A Wahyu Sudrajat, M.T.I


Wahyu.sudrajat@mdp.ac.id
Pengujian Unit
– Apakah atribut dari argumen yang ditransmisikan ke
modul yang dipanggil sama dengan atribut parameter?
– Apakah sistem unit dari argumen yang ditransmisikan ke
modul yang dipanggil sama dengan sistem satuan
parameter?
– Apakah jumlah atribut dan urutan argumen ke fungsi-
fungsi built-in sudah benar?
– Adakah referensi ke parameter yang tidak sesuai dengan
poin entri yang ada?
– Apakah argumen input only diubah?

A Wahyu Sudrajat, M.T.I


Wahyu.sudrajat@mdp.ac.id
Pengujian Unit
– Apakah definisi variabel global konsisten dengan
modul ?
– Apakah batasan yang dilalui merupakan argumen?
Test case harus didesain untuk mengungkap kesalahan dalam kategori

pengetikan yang tidak teratur dan tidak konsisten


inisialisasi yang salah atau nilai-nilai default
Nama variabel yang tidak benar
Tipe data yang tidak konsisten
Underflow, overflow dan pengecualian pengalamatan

A Wahyu Sudrajat, M.T.I


Wahyu.sudrajat@mdp.ac.id
Seberapa baik sistem yang
sudah dibangun ?
 Dua Aspek yang dipertimbangkan:
• Apakah implementasi sudah sesuai dengan spesifikasi ?
• Apakah spesifikasi sesuai dengan kebutuhan user ?
 Validasi
• “Apakah sistem yang dikembangkan sudah benar?”
• Pengujian dimana sistem ketika diimplementasikan sesuai dengan
yang iharapkan
 Verifikasi
• “Apakah sistem dikembangkan dengan cara yang benar ?”
• Pengujian apakah sistem sudah sesuai dengan spesifikasi
Integration testing
Pengujian keseluruhan system atau sub-
system yang terdiri dr komponen yg
terintegrasi.
Test integrasi menggunakan black-box
dengan test case ditentukan dari spesifikasi.
Kesulitannya adalah
menemukan/melokasikan
Penggunaan Incremental integration testing
dapat mengurangi masalah tersebut.
Incremental integration testing
A T1
T1
A
T1 T2
A B
T2
T2 B T3
T3
B C
T3 T4
C
T4
D T5

Test sequence Test sequence Test sequence


1 2 3
Pendekatan integration testing
Top-down testing
 Berawal dari level-atas system dan terintegrasi dengan mengganti
masing-masing komponen secara top-down dengan suatu stub
(program pendek yg mengenerate input ke sub-system yg diuji).
Bottom-up testing
 Integrasi components di level hingga sistem lengkap sudah teruji.
Pada prakteknya, kebanyakan test integrasi
menggunakan kombinasi kedua strategi
pengujian tsb.
Top-down testing
Testing
Level 1 Level 1 . ..
sequence

Level 2 Level 2 Le vel 2 Level 2

Le vel 2
stubs

Le vel 3
stubs
Bottom-up testing
Test
drivers

Testing
Level N Level N Le vel N Level N Level N
sequence

Test
drivers
Level N–1 Level N–1 Level N–1
Pendekatan Testing
Architectural validation
 Top-down integration testing lebih baik digunakan dalam menemukan
error dalam sistem arsitektur.

System demonstration
 Top-down integration testing hanya membatasi pengujian pada awal
tahap pengembangan system.

Test implementation
 Seringkali lebih mudah dengan menggunakan bottom-up integration
testing
Interface testing
Dilakukan kalau module-module dan sub-
system terintegrasi dan membentuk sistem
yang lebih besar
Tujuannya untuk medeteksi fault terhadap
kesalahan interface atau asumsi yg tidak
valid terntang interface tsb.
Sangat penting untuk pengujian terhadap
pengembangan sistem dgn menggunakan
pendekatan object-oriented yg didefinisikan
oleh object-objectnya
Pengujian Validasi
• Kajian Konfigurasi (audit)
– Elemen dari proses validasi
– Memastikan apakah semua elemen konfigurasi
perangkat lunak telah dikembangkan dengan tepat

A Wahyu Sudrajat, M.T.I


Wahyu.sudrajat@mdp.ac.id
Pengujian Validasi
• Pengujian Alpha dan Beta
– Pengujian Alpha
• Usability labs
• Usability factors checklist
– Pengujian Beta

A Wahyu Sudrajat, M.T.I


Wahyu.sudrajat@mdp.ac.id
Pengujian Sistem
– Pengujian Perbaikan
– Pengujian Keamanan
– Pengujian Stress
– Pengujian Kinerja

A Wahyu Sudrajat, M.T.I


Wahyu.sudrajat@mdp.ac.id
Pengujian Aplikasi Server
Volume Testing
Stress Testing
Performance Testing
Data Recovery Testing
Data Backup and Restore Testing
Data Security Testing

A Wahyu Sudrajat, M.T.I


Wahyu.sudrajat@mdp.ac.id
Volume Testing
Menemukan kelemahan sistem selama melakukan
pemrosesan data dalam jumlah yang besar dalam
periode waktu yang singkat.
Tujuan: meyakinkan bahwa sistem tetap melakukan
pemrosesan data anatar batasan fisik dan batasan
logik.
Contoh:
 Mengujikan proses antar server dan antar partisi

hardisik pd satu server.

A Wahyu Sudrajat, M.T.I


Wahyu.sudrajat@mdp.ac.id
Stress Testing
Tujuan: mengetahui kemampuan sistem
dalam melakukan transaksi selama periode
waktu puncak proses. Contoh periode
puncak: ketika penolakan proses login on-line
setelah sistem down atau pada kasus batch,
pengiriman batch proses dalam jumlah yg
besar dilakukan setelah sistem down.
Contoh: Melakukan login ke server ketika
sejumlah besar workstation melakukan
proses menjalankan perintah sql database.
Performance Testing
Dilakukan secara paralel dengan Volume dan Stress testing untuk
mengetahui unjuk kerja sistem (waktu respon, throughput rate) pada
beberapa kondisi proses dan konfigurasi.
Dilakukan pada semua konfigurasi sistem perangkat keras dan lunak.
 Mis.: pd aplikasi Client-Server diujikan pd kondisi korporate
ataupun lingkungan sendiri (LAN vs. WAN, Laptop vs.
Desktop)
 Menguji sistem dengan hubungannya sistem ke lain pada
server yg sama.
Load Balancing Monitor
Network Monitor
Performance testing tools
• Below is the comprehensive list of most widely used
performance testing tools for measuring web
application performance and load stress capacity.
These load testing tools will ensure your application
performance in peak traffic and extreme stress
conditions.

A Wahyu Sudrajat, M.T.I 41


Wahyu.sudrajat@mdp.ac.id
Top 15 Performance Testing Tools
• Apache JMeter
• NeoLoad
• LoadRunner
• LoadUI
• WebLOAD
• WAPT
• Loadster
• LoadImpact
• Rational Performance Tester
• Testing Anywhere
• OpenSTA
• QEngine (ManageEngine)
• Loadstorm
• CloudTest
• Httperf

A Wahyu Sudrajat, M.T.I 42


Wahyu.sudrajat@mdp.ac.id
Data Recovery Testing
Investigasi dampak kehilangan data melalui
proses recovery ketika terjadi kegagalan
proses.
Penting dilakukan karena data yg disimpan di
server dapat dikonfigurasi dengan berbagai
cara.
Kehilangan Data terjadi akibat kegagalan
sistem, hardisk rusak, peghapusan yg tidak
sengaja, kecelakaan, virus dan pencuri.
Data Backup and Restore
Testing
Dilakukan untuk melihat prosedur back-up dan recovery.
Diakukan dengan mensimulasikan beberapa kesalahan untuk menguji
proses backup dan recovery.
Pengujian dilakukan terhadap strategi backup: frekuensi , medium,
waktu, mekanisme backup (manual/ otomatis), personal, ? Berapa
lama backup akan disimpan.
Switching antara live dan backup server ketika terjadi kerusakan (load
log transaction pada back-up kemudian melaku recovery).
Data Security Testing
Privilege access terhadap database
diujikan pada beberapa user yang tidak
memiliki privilege access ke database.
Shutdown database engine melalui
operating system (dengan beberapa
perintah OS) yg dapat mematikan
aplikasi database.
Debugging

Eksekusi case of case

Test Case

Pengujian Penyebab
Tambahan yang
dicurigai
Hasil
Pengujian regresi

Penyebab
Koreksi yang Debugging
diidentifikasi

Anda mungkin juga menyukai