Anda di halaman 1dari 24

Testing dan Implementasi

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


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 Module Sub-system System Acceptance


Testing Testing Testing Testing Testing

User
Component Testing Integration Testing 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 Spesifikasi Perancangan Detail


Kebutuhan Sistem Sistem Perancangan

Acceptance System Sub-System


Test plan Integration Integration Module and
Test plan Test plan Unit code and
test

System Sub-System
Service Acceptance
Integration Integration
test
test 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

Anda mungkin juga menyukai