Anda di halaman 1dari 44

Strategi Pengujian Perangkat

Lunak
Minggu ke 6

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

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 "

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.

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.

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.

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
Testing

Module
Testing

Component Testing

Sub-system
Testing

Integration Testing

System
Testing

Acceptance
Testing
User
Testing

13

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)
14

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)
15

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
16

Hirarki pengujian P/L

17

Hubungan antara rencana pengujian dan


proses pengembangan sistem
Spesifikasi
Kebutuhan

Spesifikasi
Sistem

Acceptance
Test plan

System
Integration
Test plan

Service

Acceptance
test

Perancangan
Sistem

Sub-System
Integration
Test plan

System
Integration
test

Detail
Perancangan

Module and
Unit code and
test

Sub-System
Integration
test
18

Pendekatan Strategis ke
pengujian perangkat lunak
Pengujian
Pengujian
Pengujian
Pengujian

Unit
Integrasi
Validasi
Sistem

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

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?

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?

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

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 subsystem 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
T1

A
T1

T2

T1
A

T2
T2

B
T3

B
T3

C
T4

T3
C

T4
T5

D
Test sequence
1

Test sequence
2

Test sequence
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
Level 1

Testing
sequence

Level 2
Le vel 2
stubs

Le vel 3
stubs

Level 1

Level 2

Le vel 2

. ..

Level 2

Bottom-up testing
Test
drivers
Level N

Test
drivers

Level N

Level N1

Le vel N

Level N1

Level N

Level N

Level N1

Testing
sequence

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 subsystem 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

Pengujian Validasi
Pengujian Alpha dan Beta

Pengujian Alpha
Usability labs
Usability factors checklist

Pengujian Beta

Pengujian Sistem

Pengujian
Pengujian
Pengujian
Pengujian

Perbaikan
Keamanan
Stress
Kinerja

Pengujian Aplikasi Server


Volume Testing
Stress Testing
Performance Testing
Data Recovery Testing
Data Backup and Restore Testing
Data Security Testing

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.

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.

39

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

40

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
Tambahan

Penyebab
yang
dicurigai

Pengujian regresi

Koreksi

Penyebab
yang
diidentifikasi

Debugging

Hasil

Anda mungkin juga menyukai