Rudi Susanto - Materi Kuliah, Cerita dan Apapun Yang ... · PDF file•Pengujian dimulai...

Preview:

Citation preview

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