Rudi Susanto - Materi Kuliah, Cerita dan Apapun Yang ... · PDF file•Pengujian dimulai...
Transcript of Rudi Susanto - Materi Kuliah, Cerita dan Apapun Yang ... · PDF file•Pengujian dimulai...
Strategi Testing
Rudi Susanto
moduleto be
tested
test cases
results
softwareengineer
Testing Strategy
• Strategi testing software mengintegrasikan metode metode
disain test cases software ke dalam suatu rangkaian tahapan
yang terencana dengan baik, sehingga pengembangan software
dapat berhasil.
• Strategi menyediakan peta yang menjelaskan tahap-tahap yang
harus dilakukan sebagai bagian dari testing, dan membutuhkan
usaha, waktu, dan sumber daya bilamana tahap-tahap ini
direncanakan dan dilaksanakan.
• Strategi testing harus menjadi satu kesatuan dengan
perencanaan tes, disain test case, ekesekusi tes, dan
pengumpulan serta evaluasi data hasil testing.
Karakteristik Umum StrategiPengujian software
• Pengujian dimulai pada level modul dan dilanjutkanterus hingga integrasi dari keseluruhan sistem.
• Setiap saat pengujian mengimplementasikan teknikpengujian yang berbeda.
• Pengujian dikelola oleh pengembang Software danuntuk yang berukuran besar dikelola oleh group pengujiyang tidak terikat.
• Pengujian and debugging merupakan aktifitas yang berbeda, tetapi debugging selalu digunakan di setiapstrategi pengujian.
3
Testing dari low-level ke high level (Tahapan Testing)
• Sistem tidak diujikan sebagai suatu unit tunggal, kecuali untuk program yang kecil.
• Systems yang Besar terdiri dari sub-systems, dimana masing2 sub-system terdiri darimodules yang dibentuk oleh procedures and functions.
• Proses testing dilakukan dalam beberapalangkah sehingga diproses secaraincrementally dalam proses implementasisistem.
4
Testing Technique
Component
testing
Unit Testing Verification
(Process
Oriented)
White Box
Testing
Techniques
(Tests that are derived
from knowledge of the
program’s structure
and implementation)
Module
Testing
Integrated
testing
Sub-System
Testing
System
Testing
User testing Acceptance
Testing
Validation
(Product
Oriented)
Black Box Testing
Techniques
(Tests are derived
from the program
specification)5
Pendekatan Strategis ke pengujianperangkat lunak
• Pengujian Unit
• Pengujian Integrasi
• Pengujian Validasi
• Pengujian Sistem
unit testintegration
test
validationtest
systemtest
Pengujian Unit
Pengujian Unit
• Berfokus pada inti terkecil daridesain perangkat lunak yaitu modul
• Biasanya berorientasi pada white box
• Interface modul diuji untukmemastikan bahwa informasi secaratepat mengalir masuk dan keluardari modul yg diuji.
Bagaimana mengujinya?
MODUL Interface
Struktur data lokal
Kondisi Batas
Jalur independen
Jalur penanganan kesalahan
Test Case
Test case harus didesain untukmengungkap 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
Pengujian Integrasi
Integration Test
• “Jika semua modul-modul software telah bekerja dengan baiksecara individual, mengapa harus ada keraguan apakahmodul-modul tersebut dapat bekerja sama sebagai satukesatuan?”
• Integration testing adalah suatu teknik yang sistematis untukpembangunan struktur program, dimana pada saat yang bersamaan melakukan testing untuk mendapatkan errors yang diasosiasikan dengan antar-muka.
• Obyektifitasnya adalah untuk menindaklanjuti komponen-komponen yang telah melalui unit testing dan membangunsuatu struktur program sesuai dengan disain yang telahdituliskan sebelumnya.
Integration Test
Pengujian keseluruhan system atau sub-system yang terdiri dr komponen yg terintegrasi.
Test integrasi menggunakan black-box dengantest case ditentukan dari spesifikasi.
Kesulitannya adalah menemukan/melokasikan
Penggunaan Incremental integration testing dapat mengurangi masalah tersebut.
Integration Test
Integrasi test ada 2 cara :
1)Integrasi non-inkremental/ big bang
Integrasi ini dilakukan dg cara semua modul digabungseluruhnya. Setelah itu barulah dilakukan pengujian.
2) Integrasi inkremental
Integrasi ini dilakukan untuk membangun dan mengujiinterface program dlm segmen-segmen kecil, sehinggakesalahan lebih mudah diisolasi dan dibetulkan. Interface lebih mungkin untuk diuji dg lengkap.
14
Incremental integration test
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 test
Top-down testing Berawal dari level-atas system dan terintegrasi dengan
mengganti masing-masing komponen secara top-down dengan suatu stub (program pendek yg mengenerateinput ke sub-system yg diuji).
Bottom-up testing Integrasi components ini dimulai dari modul terkecil.
hingga sistem lengkap.
Pada prakteknya, kebanyakan test integrasi menggunakan kombinasi keduastrategi 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
Catatan
Pemilihan strategi integrasi (top-down atau bottom-up) tergantung pada karakteristik program dan juga jadwalproyek.
Secara umum pendekatan gabungan (disebut Sandwitchtesting) dapat dilakukan.
Strategi gabungan yg terbaik adalah : strategi top-down untuk level-level atas dari struktur program, dan strategibottom-up untuk level-level bawah.
19
Pengujian Validasi
Pengujian Validasi
Bertujuan untuk memastikan apakahsemua elemen konfigurasi software telahdikembangkan dengan tepat.
Validasi berhasil bila software berfungsisesuai harapan pengguna.
Validasi dicapai melalui sederetanpengujian Black-Box yang memperlihatkankesesuaian dengan persyaratan pelanggan
Bentuk Validasi Test
1. Tes Penerimaan ( Acceptance Test )
2. Tes Alpha
3. Tes Beta
Validation Test
1. Acceptance Test Apabila software dibangun untuk satu pelanggan maka
sederetan pengujian penerimaan dapat dilakukan untukmemungkinkan pelanggan me-validasi semua persyaratan(pengujian dilakukan oleh pelanggan)
Pengujian terakhir sebelum sistem dipakai oleh user. Melibatkan pengujian dengan data dari pengguna sistem.
2. Test Alpha & Beta Apabila software dibangun sebagai sebuah produk untuk
digunakan oleh banyak pelanggan, maka dilakukan test Alpha dan Beta.
23
Acceptance Test | Penilaian TerhadapFaktor Usabilitas
A Mudah digunakan 1 2 3 4 5
B User Friendly 1 2 3 4 5
C Mudah dimengerti 1 2 3 4 5
D Tingkat Kepercayaan 1 2 3 4 5
E Tingkat kesesuaian dengan ygdibutuhkan
1 2 3 4 5
F Waktu Respons 1 2 3 4 5
G Tingkat komfortabel 1 2 3 4 5
Alpha Test
Dilakukan pada sisi pengembang oleh user yang potensial.
Software digunakan pada setting yang natural (sebenarnya), sehingga bila terjadi error, user dapat merekam masalah yang ada.
Dilakukan pada sebuah lingkungan yang terkontrol oleh pengembang.
25
Beta Test
Dilakukan oleh satu atau lebih user. Biasanya dilakukan oleh selain pengembang / pihak
ketiga. Pengujian dilakukan diluar kontrol pengembang
sistem. User merekam semua masalah yang mereka temukan
dan melaporkan ke pengembang. Kemudianpengembang melakukan modifikasi dan akhirnyamempersiapkan pelepasan produk ke seluruhpelanggan.
26
Pengujian Sistem
Sistem Test
Bertujuan untuk memastikan bahwa semuaelemen/komponen sistem saling berhubungandengan tepat dan keseluruhan fungsi/kinerja sistemdapat tercapai.
Bentuk tes sistem :
1.Tes / pengujian Perbaikan
2.Tes / pengujian Keamanan
3.Tes / pengujian Stress
4.Tes / pengujian Kinerja28
Sistem Test
1. Tes Perbaikan
Pengujian yang memaksa sistem untuk gagal(dirusakkan) dengan berbagai cara danmemeriksa apakah perbaikan dapat dilakukandengan tepat.
2. Tes Keamanan
Pengujian yang dilakukan untuk membuktikanapakah perlindungan (keamanan) yang adapada sistem benar-benar dapat melindungisistem dari gangguan.
29
Sistem Test
3. Tes Stress
Pengujian yang dilakukan untuk melihat bagaimana sistemdalam keadaan abnormal.
Menguji sistem dengan nilai yg melebihi maksimum load. Stressing suatu system menyebabkan tidak mudahkerusakan.
Contoh : melakukan login ke server ketika sejumlah besarworkstation melakukan proses menjalankan perintah sqldatabase
30
Sistem Test
4. Tes Kinerja
Pengujian untuk menguji kinerja run-time (saatberjalan) dari software didalam konteks sistem yang terintegrasi
Catatan :
Tes kinerja sering digunakan bersamaan dengan tesstress, dimana kita bisa melihat bagaimana kinerjasistem dalam keadaan abnormal.
31
Menjalankan Pengujian
Testing aplikasi web
• Testing untuk aplikasi web memiliki banyakkesamaan dengan testing untuk aplikasi client server, tetapi aplikasi web lebih sulit karenatingkat kompleksitasnya lebih tinggiinteraksi komponen (teknologi) yang dipergunakan tidak terbatas– Browser
– OS
– Aplikasi plugin, dll
Cont’d
• Idealnya semua komponen dan fungsi yg adapada sisi client dan server harus dites (tapi sgtjarang bisa dilakukan) pendekatan terbaikagar tetap sesuai dengan batasan waktu danbudget :
– Mengecek requirement project
– Mensetting prioritas sesuai hasil risk analysis
– Tentukan fokus testing yg dilakukan
Risk analysis
• Risk analysis yang dilakukan harusmempertimbangkan :
– seberapa mirip lingkungan test denganlingkungan produksi (idealnya akan mirip)
– fungsionalitas mana yang sangat kritikalterhadap tujuan pembuatan website
– area mana yang memerlukan interaksi Data Base yang lebih banyak
Cont’d
– tipe permasalahan seperti apa yang akanlebih sering dikomplain
– area mana dari suatu situs yang akan lebihsering dibuka
– aspek mana yang memiliki resiko keamananlebih tinggi
faktor faktor seperti project requirement, risk analysis, budget dan schedule menentukan
kategori testing yang mana yang sesuaidengan project web yang dilaksanakan
Kategori testing web
• Load testing
• Security testing
• Link testing
• HTML validation
• dll
Load testing– Testing dengan load yang sudah diatur rangenya untuk
menentukan pada poin mana respons time sistem turun ataubahkan gagal sama skali.
– Server yang dipakai, seting konfigurasi yang dipergunakan, script
CGI ( Common Gateway Interface) , desain database dan faktor-faktor lain bisa juga memberikan pengaruh
– Testing bisa dilakukan dengan 2 cara
• Testing keseluruhan komponen dibawah kondisi yang bermacam-macam
• Testing masing-masing komponen
Security testing
– Menguji semua fungsi yg berhubungan dengan firewall, enkripsi, autentikasi, transaksi, akses database
– Menguji perlindungan yang diberikan
– Selain permasalahan kontrol akses di sisi client (password dan enkripsi) juga ada permasalahan di sisi server spt siapa ygberhak mempublish dan memodifikasi file html, siapa yang memiliki wewenang untuk melakukan publikasi final, yang meng-approve suatu file graphics, file sound dan halamanlayout
Link testing
– Untuk menentukan apakah link dari suatusitus baik itu ke internal dan external web pages bekerja
– Web yg memiliki banyak link ke situs luarperlu link testing yg dijadwal secara teratur
HTML validation
– Ditentukan oleh audience yg dituju, jenisbrowser yang kemungkinan akan dipakaidan seberapa sesuai dengan standar html atau ekstensi lainnya
Contoh Laporan Hasil TestNomor Kesalahan :
Nama Program:Tipe Laporan: (1. Usulan, 2.Salah Perancangan, 3. Salah program, 4. Salah dokumentasi, 5. Query)
Severity: 1. Minor, 2. Serius, 3. FatalAttachment (Y/N)
Adakah kesalahan (Y/T)Bagaimana bentuk kesalahan:Bagaimana kesalahan dapat terjadi:Usulan Perbaikan:Nama Penguji:Tanggal Uji:---------------------------------Diisi oleh programmer:
Ditujukan kepada: Tanggal:Resolusi: 1. Dapat diperbaiki2. Tidak dapat diperbaiki3. Pengujian ditarik kembali4. Bekerja sesuai spesifikasi5. Kesalah tidak dapat dihasilkan lagi6. Tidak setuju dengan usulan-----------Sertifikasi ResolusiDibuat oleh:
Programmer, Tester: Tanggal:Project Manager:
Study Kasus!
• Pada awal tahun 2014 ini Bank XYZ baru saja selesaimembangun sistem I-banking versi terbarunya. Maka dariitu sebelum digunakan oleh nasabah dan juga untukmengetahui kapasitas maksimum operasi I-banking Bank XYZ serta adanya kemacetan (bottlenecks) yang menyebabkan degradasi, diperlukannya untuk melakukanpengujian beban pada sistem I-banking. Pengujiandilakukan dalam perangkat lunak maupun perangkat keras(server) dengan cara melakukan stress test pada sistem I-banking. Proses pengujian harus melalui Cloud ataumelalui jaringan Internet karena untuk dapatmensimulasikan seolah-olah user asli saat membuka web I-banking tersebut.
Tugas!
• Carilah Tools yang bisa digunakan untukpengujian website secara otomatis, kemudianlakukan pengujian dengan tools tersebut!
Terima Kasih