Rekayasa perangkat lunak (rpl)

SEMESTER
PENDEK
2015/2016

REKAYASA
PERANGKAT LUNAK
(RPL)

Betha Nurina Sari,M.Kom

PERTEMUAN 11-12


Pengujian Software

Pentingnya pengujian
sistem
Pengujian perangkat lunak dilakukan
untuk menentukan keberadaan,
kualitas, dan kemurnian dari atributatribut 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 (ft) 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

Konsep kecocokan aplikasi






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.

2.

3.

4.

Data: data yang andal, timelines (tepat waktu),
konsisten dan banyak berguna (useful)
terkendali dalam aplikasi yang diotomatisasi
bagi pemakai.
Orang-orang: keahlian, training, kemampuan
belajar dan kesenangan untuk menggunakan
dan berinteraksi dengan aplikasi yang
diotomatisasi.

Struktur: pembangunan yang tepat dari sistem
aplikasi untuk mengoptimalkan tcknologi dan
memenuhi kebutuhan.
Aturan-aturan: prosedur-prosedur yang harus
dipatuhi dalam pemrosesan data.

Proses Testing
7

Unit
Testing

Module
Testing

Component Testing

Sub-system
Testing


System
Testing

Integration Testing

Acceptance
Testing

User
Testing

Proses Testing
8



Unit testing





Module Testing




Pengujian masing-masing unit komponen
program untuk meyakinkan bhw sudah
beroperasi secara benar
Pengujian terhadap koleksi unit-unit komponen
yang saling berhubungan.

Sub-system Testing


Pengujian terhadap koleksi module-module
yang membentuk suatu sub-system (aplikasi)

Proses Testing
9




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)



Proses Testing
10



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 subsystem ataupun system
 Dilakukan oleh tim penguji yang independent
 Pengujian berdasarkan spesifkasi sistem



Hirarki pengujian P/L
11

Hubungan antara rencana pengujian dan
proses pengembangan sistem
Spesifkasi
Kebutuhan

Spesifkasi
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
12

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
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 defnisi 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
Underfow, overfow dan pengecualian pengalamatan

Seberapa baik sistem yang
sudah dibangun ?
l

Dua Aspek yang dipertimbangkan:
• Apakah implementasi sudah sesuai dengan
spesifkasi ?
• Apakah spesifkasi sesuai dengan kebutuhan
user ?

l

Validasi
• “Apakah sistem yang dikembangkan sudah
benar?”
• Pengujian dimana sistem ketika
diimplementasikan sesuai dengan yang
iharapkan

l

Verifkasi

Integration testing
Pengujian keseluruhan system atau subsystem yang terdiri dr komponen yg
terintegrasi.
Test integrasi menggunakan black-box
dengan test case ditentukan dari
spesifkasi.
Kesulitannya adalah
menemukan/melokasikan
Penggunaan Incremental integration
testing dapat mengurangi masalah
tersebut.

Incremental integration
testing
A

T1

T1

A
T1

T2

A

T2
T2

B

B

T3
T3

B

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 N–1

Le vel N

Level N–1

Level N

Level N

Level N–1

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
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 objectoriented yg didefnisikan oleh objectobjectnya

Pengujian Validasi


Kajian Konfgurasi (audit)
 Elemen

dari proses validasi
 Memastikan apakah semua elemen
konfgurasi perangkat lunak telah
dikembangkan dengan tepat

Pengujian Validasi


Pengujian Alpha dan Beta
 Pengujian

Alpha

 Usability

labs
 Usability factors checklist
 Pengujian

Beta

Pengujian Sistem
 Pengujian

Perbaikan
 Pengujian Keamanan
 Pengujian Stress
 Pengujian 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 fsik 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
konfgurasi.
Dilakukan pada semua konfgurasi 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
33



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 trafc
and extreme stress conditions.

Top 15 Performance Testing Tools
34

Apache JMeter
 NeoLoad
 LoadRunner
 LoadUI
 WebLOAD
 WAPT
 Loadster
 LoadImpact
 Rational Performance Tester
 Testing Anywhere
 OpenSTA
 QEngine (ManageEngine)
 Loadstorm
 CloudTest
 Httperf


Data Recovery Testing
Investigasi dampak kehilangan data
melalui proses recovery ketika terjadi
kegagalan proses.
Penting dilakukan karena data yg
disimpan di server dapat dikonfgurasi
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

NEXT >>>
1 Agustus : Presentasi Perancangan
Software
3 Agustus : Presentasi Pengujian
software
8 Agustus : UAS