strategi pengujian perangkat lunak

45

Upload: ardha-herdianto

Post on 16-Jul-2015

788 views

Category:

Engineering


7 download

TRANSCRIPT

Page 1: Strategi pengujian perangkat lunak
Page 2: Strategi pengujian perangkat lunak

Pentingnya pengujian sistemPengujian 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

Page 3: Strategi pengujian perangkat lunak

Konsep kecocokan aplikasiKeefektifan 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 "

Page 4: Strategi pengujian perangkat lunak

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.

Page 5: Strategi pengujian perangkat lunak

Aspek Kecocokan1. 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.

Page 6: Strategi pengujian perangkat lunak

Tools vs Tekniko 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.

Page 7: Strategi pengujian perangkat lunak

Tools vs Tekniko 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.

Page 8: Strategi pengujian perangkat lunak

S/W Testing tools

Tools pengujian perangkat lunak dikelompokkan menjadi :a)Test Management toolsb)Functional Testing Toolsc)Load Testing Tools

Page 9: Strategi pengujian perangkat lunak

Opensource S/W Testing tools

Page 10: Strategi pengujian perangkat lunak
Page 11: Strategi pengujian perangkat lunak

Proprietary S/W Testing tools

Page 12: Strategi pengujian perangkat lunak
Page 13: Strategi pengujian perangkat lunak

Testing Strategies

Tools pengujian perangkat lunak dikelompokkan menjadi :a)Top-Downb)Bottom-Upc)Big Bangd)Sandwich

Page 14: Strategi pengujian perangkat lunak

14

UnitTesting

ModuleTesting

Sub-systemTesting

SystemTesting

AcceptanceTesting

Component Testing Integration TestingUserTesting

Page 15: Strategi pengujian perangkat lunak

Proses TestingUnit testing

Pengujian masing-masing unit komponen program untuk meyakinkan bhw sudah beroperasi secara benar

Module TestingPengujian terhadap koleksi unit-unit komponen yang

saling berhubungan. Sub-system Testing

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

15

Page 16: Strategi pengujian perangkat lunak

Proses TestingSystem Testing

Pengujian terhadap integrasi sub-system, yaitu keterhubungan antar sub-system

Acceptance TestingPengujian 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)

16

Page 17: Strategi pengujian perangkat lunak

Proses TestingComponent testing

Pengujian komponen-komponen programBiasanya 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 independentPengujian berdasarkan spesifikasi sistem

17

Page 18: Strategi pengujian perangkat lunak

Hirarki pengujian P/L

18

Page 19: Strategi pengujian perangkat lunak

19

SpesifikasiKebutuhan

SpesifikasiSistem

PerancanganSistem

DetailPerancangan

AcceptanceTest plan

System IntegrationTest plan

Sub-System IntegrationTest plan

Module andUnit code and

test

Acceptancetest

System Integration

test

Sub-System Integration

testService

Page 20: Strategi pengujian perangkat lunak

Pendekatan Strategis ke pengujian perangkat lunakPengujian UnitPengujian IntegrasiPengujian ValidasiPengujian Sistem

Page 21: Strategi pengujian perangkat lunak

Pengujian UnitBerfokus pada inti terkecil dari desain perangkat

lunak yaitu modulBiasanya berorientasi pada white box

MODULMODUL InterfaceStruktur data lokalKondisi BatasJalur independenJalur penanganan kesalahan

Test Case

Page 22: Strategi pengujian perangkat lunak

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?

Page 23: Strategi pengujian perangkat lunak

Pengujian UnitApakah 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?

Page 24: Strategi pengujian perangkat lunak

Pengujian UnitApakah 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

Page 25: Strategi pengujian perangkat lunak

� 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

Seberapa baik sistem yang sudah dibangun ?

Page 26: Strategi pengujian perangkat lunak

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/melokasikanPenggunaan Incremental integration testing dapat mengurangi masalah tersebut.

Page 27: Strategi pengujian perangkat lunak

Incremental integration testing

T3

T2

T1

T4

T5

A

B

C

D

T2

T1

T3

T4

A

B

C

T1

T2

T3

A

B

Test sequence1

Test sequence2

Test sequence3

Page 28: Strategi pengujian perangkat lunak

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.

Page 29: Strategi pengujian perangkat lunak

Top-down testing

Level 2Level 2Level 2Level 2

Level 1 Level 1Testing

sequence

Level 2stubs

Level 3stubs

. . .

Page 30: Strategi pengujian perangkat lunak

Bottom-up testing

Level NLevel NLevel NLevel NLevel N

Level N–1 Level N–1Level N–1

Testingsequence

Testdrivers

Testdrivers

Page 31: Strategi pengujian perangkat lunak

Pendekatan TestingArchitectural 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

Page 32: Strategi pengujian perangkat lunak

Dilakukan kalau module-module dan sub-system terintegrasi dan membentuk sistem yang lebih besarTujuannya 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

Interface testing

Page 33: Strategi pengujian perangkat lunak

Pengujian Validasi Kajian Konfigurasi (audit)

Elemen dari proses validasiMemastikan apakah semua elemen konfigurasi

perangkat lunak telah dikembangkan dengan tepat

Page 34: Strategi pengujian perangkat lunak

Pengujian ValidasiPengujian Alpha dan Beta

Pengujian Alpha Usability labs Usability factors checklist

Pengujian Beta

Page 35: Strategi pengujian perangkat lunak

Pengujian SistemPengujian PerbaikanPengujian KeamananPengujian StressPengujian Kinerja

Page 36: Strategi pengujian perangkat lunak

Pengujian Aplikasi Server

Volume TestingStress TestingPerformance TestingData Recovery TestingData Backup and Restore TestingData Security Testing

Page 37: Strategi pengujian perangkat lunak

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.

Page 38: Strategi pengujian perangkat lunak

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.

Page 39: Strategi pengujian perangkat lunak

Performance TestingDilakukan 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 MonitorNetwork Monitor

Page 40: Strategi pengujian perangkat lunak

Performance testing toolsBelow 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.

40

Page 41: Strategi pengujian perangkat lunak

Top 15 Performance Testing Tools

Apache JMeterNeoLoadLoadRunnerLoadUIWebLOADWAPTLoadster

41

LoadImpactRational Performance

TesterTesting AnywhereOpenSTAQEngine

(ManageEngine)LoadstormCloudTestHttperf

Page 42: Strategi pengujian perangkat lunak

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.

Page 43: Strategi pengujian perangkat lunak

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

Page 44: Strategi pengujian perangkat lunak

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.

Page 45: Strategi pengujian perangkat lunak

Debugging

Test Case

Eksekusi case of case

Pengujian Tambahan

Penyebab yang dicurigai

DebuggingPenyebab yang diidentifikasi

Koreksi

Pengujian regresi

Hasil