Strategi pengujian perangkat lunak

Post on 16-Jul-2015

788 views 7 download

Transcript of 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

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 "

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

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.

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.

S/W Testing tools

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

Opensource S/W Testing tools

Proprietary S/W Testing tools

Testing Strategies

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

14

UnitTesting

ModuleTesting

Sub-systemTesting

SystemTesting

AcceptanceTesting

Component Testing Integration TestingUserTesting

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

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

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

Hirarki pengujian P/L

18

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

Pendekatan Strategis ke pengujian perangkat lunakPengujian UnitPengujian IntegrasiPengujian ValidasiPengujian Sistem

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

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

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

� 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 ?

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.

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

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 2Level 2Level 2Level 2

Level 1 Level 1Testing

sequence

Level 2stubs

Level 3stubs

. . .

Bottom-up testing

Level NLevel NLevel NLevel NLevel N

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

Testingsequence

Testdrivers

Testdrivers

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

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

Pengujian Validasi Kajian Konfigurasi (audit)

Elemen dari proses validasiMemastikan apakah semua elemen konfigurasi

perangkat lunak telah dikembangkan dengan tepat

Pengujian ValidasiPengujian Alpha dan Beta

Pengujian Alpha Usability labs Usability factors checklist

Pengujian Beta

Pengujian SistemPengujian PerbaikanPengujian KeamananPengujian StressPengujian Kinerja

Pengujian Aplikasi Server

Volume TestingStress TestingPerformance TestingData Recovery TestingData Backup and Restore TestingData 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 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

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

Top 15 Performance Testing Tools

Apache JMeterNeoLoadLoadRunnerLoadUIWebLOADWAPTLoadster

41

LoadImpactRational Performance

TesterTesting AnywhereOpenSTAQEngine

(ManageEngine)LoadstormCloudTestHttperf

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

Test Case

Eksekusi case of case

Pengujian Tambahan

Penyebab yang dicurigai

DebuggingPenyebab yang diidentifikasi

Koreksi

Pengujian regresi

Hasil