Testing dan Implementasi SI220A Darmawan Napitupulu, ST, M.Kom Teknik Pengujian Perangkat Lunak Pertemuan 2 Sekolah Tinggi Manajemen Ilmu Komputer (STMIK) Raharja Jl.

Download Report

Transcript Testing dan Implementasi SI220A Darmawan Napitupulu, ST, M.Kom Teknik Pengujian Perangkat Lunak Pertemuan 2 Sekolah Tinggi Manajemen Ilmu Komputer (STMIK) Raharja Jl.

Testing dan Implementasi
SI220A
Darmawan Napitupulu, ST, M.Kom
Teknik Pengujian Perangkat Lunak
Pertemuan 2
Sekolah Tinggi Manajemen Ilmu Komputer (STMIK) Raharja
Jl. Jenderal Sudirman No. 40 Babakan
Cikokol Tangerang 15117
(Ph : 081807809585, Email : [email protected])
Agenda Perkuliahan
Agenda Perkuliahan
Testing Process
Testing Planning
Hubungan antara Testing Planning & SDLC
Failure & Fault Class
Test Data & Test Case
Teknik Pengujian Perangkat Lunak
Teknik Pengujian Perangkat Lunak
Pertemuan 2
Teknik Pengujian Perangkat Lunak
Techniques Fundamental
Setiap kode sumber (source code) dibuat, software
harus di uji (ditest) untuk memperbaiki sebanyak
mungkin kesalahan (errors), sebelum diserahkan ke
customer
Teknik Pengujian secara umum mencakup dua hal
penting :
- Menguji “internal program logic” dari komponen
software
- Menguji input dan ouput domain dari program
(function, kebutuhan sistem)  Uji Fungsionalitas
atau Uji Kebutuhan sistem (Software Requirement
Testing)
Teknik Pengujian Perangkat Lunak
Techniques Fundamental
Siapa yang mengerjakan ??
Pada awalnya, “software engineer” mengerjakan
semua test. Namun pada perkembangan proses
testing, “testing specialist” yang terlibat.
Kenapa testing ini penting, dilihat dari sisi
implementasi??
Setiap program selesai dibuat dan siap dijalankan,
maka customer akan mengujinya terlebih dahulu
Sofware harus diuji dengan intens untuk menemukan
dan menghilangkan error, sebelum diserahkan ke
customer
Teknik Pengujian Perangkat Lunak
Techniques Fundamental
Untuk menemukan sebanyak mungkin kesalahan,
pengujian harus dilakukan secara sistematis
Test Case harus dirancang dengan menggunakan
pendekatan teknik (Techniques approach)
Jadi apa produk dari Testing??
Kumpulan kasus uji (a Set of Test Cases) yang
dirancang baik untuk “internal program logic” (White
Box Testing) dan “external requirement” (Black Box
Testing).
Test Case dirancang dan didokumentasi dengan baik
Teknik Pengujian Perangkat Lunak
Techniques Fundamental
Hasil yang diharapkan didefinisikan di awal
Hasil pengujian direkam atau dicatat (testing
documentation)
Teknik Pengujian Perangkat Lunak
Software Testability
Apa itu “software testability”??
Menurut James bach, software testability adalah
seberapa mudah sebuah program komputer dapat
diuji
Testing dianggap cukup sulit dilakukan maka perlu
diketahui apa yang harus dilakukan untuk
meluruskannya
“Testability” muncul sebagai hasil dari “good design”
Ada beberapa atribut yang dapat digunakan oleh
software engineer dalam membangun software
Teknik Pengujian Perangkat Lunak
Software Testability
Apakah software (a good software) sudah memenuhi
hal-hal berikut??
Operability
- The better it works, there more efficiently it can be
tested
Observability
- What you see is what you test
Controllability
- The better we can control the software, the more
testing can be automated and optimized
Teknik Pengujian Perangkat Lunak
Software Testability
Decomposability
- By controlling the scope of testing, we can more
quickly isolate problems and perform smarter testing
Simplicity
- The less there is to test, the more quickly we can test it
Stability
- The fewer changes, the fewer the disruptions to testing
Teknik Pengujian Perangkat Lunak
Test Case Design
“Atribut of a good testing” seperti apa??
Testing yang baik memiliki kemungkinan paling
besar untuk menemukan error
-Tester harus memahami software yang diuji
dan memikirkan bagaimana software bisa gagal
Testing yang baik tidak redundant/ganda
- Testing time & resources terbatas
- Setiap test harus mempunyai tujuan yang
berbeda
Teknik Pengujian Perangkat Lunak
Test Case Design
“Atribut of a good testing” seperti apa?? (lanjutan)
Testing yang baik tidak terlalu sederhana
namun juga tidak terlalu kompleks
- Jangan mengkombinasikan beberapa test
case kedalam sebuah test case
- Test case harus dilaksanakan secara terpisah
Teknik Pengujian Perangkat Lunak
Test Case Design
Test Case sebagai sebuah tantangan dalam
merancang sebuah produk
Ada banyak sekali metode merancang test
case, namun digunakan metode pendekatan
sistematis untuk testing
Software merupakan suatu sistem yang bisa
diduga
Teknik Pengujian Perangkat Lunak
Test Case Design
Dalam merancang test case, ada dua hal yg
diperhatikan :
- Mengetahui fungsi spesifik dari produk, test
dilakukan untuk menunjukkan setiap fungsi
secara operasional berjalan dimana pada saat
yg sama mencari error di setiap fungsi
- Mengetahui cara kerja internal dari suatu
software, internal operations yang mengacu
pada spesifikasi dan semua komponen internal
diuji
Teknik Pengujian Perangkat Lunak
Test Case Design
Black Box Testing
- Dilakukan melalui software interface (menu)
- Meyakinkan bahwa fungsi-fungsi dalam
software berjalan
- Input dengan baik diterima ; Output dihasilkan
dengan benar
- Integritas dari informasi luar (database)
dimaintain
Teknik Pengujian Perangkat Lunak
Test Case Design
White Box Testing
- Pemeriksaan terhadap setiap prosedur secara
detail
- Jalur logika (Logical Path) diuji dengan test
case
Teknik Pengujian Perangkat Lunak
Testing Process
Unit
Testing
Module
Testing
Component Testing
Sub-system
Testing
Integration Testing
System
Testing
Acceptance
Testing
User
Testing
Teknik Pengujian Perangkat Lunak
Testing Process
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 sub-system ataupun
system
– Dialakukan oleh tim penguji yang independent
– Pengujian berdasarkan spesifikasi sistem
Teknik Pengujian Perangkat Lunak
Testing Planning
Proses Pengujian
– Deskripsi fase-fase utama dalam pengujian
Pelacakan Kebutuhan
– Semua kebutuhan user diuji secara individu
Item yg diuji
– Menspesifikasi komponen sistem yang diuji
Jadwal Pengujian
Prosedur Pencatatan Hasil dan Prosedur
Kebutuhan akan Hardware dan Software
Kendala-kendala
– Mis: kekuranga staff, alat, waktu dll.
Testing Process & Planning
Hubungan antara Testing Planning & SDLC
Spesifikasi
Kebutuhan
Acceptance
Test plan
Service
Perancangan
Sistem
Spesifikasi
Sistem
System
Integration
Test plan
Acceptance
test
Sub-System
Integration
Test plan
System
Integration
test
Detail
Perancangan
Module and
Unit code and
test
Sub-System
Integration
test
Testing Process & Planning
Failure and Fault Class
Failure: Output yang tidak benar/tidak sesuai ketika
sistem dijalankan
Fault: Kesalahan dalam source code yang mungkin
menimbulkan failure ketika code yg fault tersebut
dijalankan
Testing Process & Planning
Failure and Fault Class
Failure Class
Deskripsi
Transient
Muncul untuk input tertentu
Permanent
Muncul untuk semua input
Recoverable
Sistem dapat memperbaiki secara otomatis
Unrecoverable
Sistem tidak dapat memperbaiki secara otomatis
Non-corrupting
Failure tidak merusak data
Corrupting
Failure yang merusak sistem data
Testing Process & Planning
Testing Clue
Hanya test yang lengkap yg dapat meyakinkan
sistem terbebas dari kesalahan, tetapi hal ini sangat
sulit dilakukan
Prioritas dilakukan terhadap pengujian kemampuan
sistem, bukan masing-masing komponennya
Pengujian untuk situasi yg tipikal lebih penting
dibandingkan pengujian terhadap nilai batas
Testing Process & Planning
Testing Data & Test Case
Test data: Input yang yang direncankan digunakan
oleh sistem
Test cases: Input yang digunakan untuk menguji
sistem dan memprediksi output dari input jika sistem
beroperasi sesuai dengan spesifikasi