Selasa, Juni 21, 2011

Testing

Testing adalah proses menjalankan sebuah program dengan tujuan untuk menemukan kesalahan sebelum pengiriman ke end user

STRATEGI PENGUJIAN PL

Big Bang

Pengujian PL secara keseluruhan, setelah seluruh komponen PL selesai dibuat

Incremental

Pengujian Secara bertahap

METODA PENGUJIAN PL

Functional (Black Box)

Fokus pada output yang dihasilkan dengan memberikan input dan kondisi eksekusi

Membandingkan kesesuaian output dengan spesifikasi kebutuhan fungsional

STRUCTURAL (WHITE BOX)

Menguji dengan memperhatikan mekanisme internal sistem

Menguji untuk memastikan operasi internal berjalan sesuai spesifikasi

Semua komponen diuji

UNIT TESTING

Pengujian unit (komponen) secara terisolir à menguji di luar program yang menggunakan unit ini.

Memeriksa apakah suatu individual program unit (subprogram, object class, package, module) memiliki perilaku yang benar.

TIPE PENGUJIAN

Pengujian Statis (Static Testing)

Pengujian terhadap satu unit tanpa melakukan eksekusi terhadap unit tersebut

Pengujian Dinamis (Dynamic Testing)

Pengujian dengan mengeksekusi unit dengan menggunakan data uji.

White Box dan Black Box

STATIC TESTING

Code Walktrough

Kode program dan dokumentasi di-review oleh tim

Fokus ada pada kode program

Informal

Dipimpin oleh programmer

Code Inspection

Kode program dan dokumentasi di-review oleh tim dengan suatu daftar rujukan

Definisi dan struktur data

Algoritma

Interface antar komponen

Prakiraan unjuk kerja program à penggunaan memori, kecepatan pengolahan

Fokus ada pada kode program

formal

Dipimpin oleh moderator BUKAN programmer

BASIS PATH TESTING

Seluruh independent path diuji

Menguji semua pernyataan untuk nilai ‘true’ dan ‘false’

Mengesekusi semua kalang (loop) untuk kondisi-kondisi batas.

Memeriksa struktur data internal

Menganalisa rancangan prosedural

Mendefinisikan basis set dari execution paths

Test cases untuk basis set mengeksekusi setiap statemen program minimal satu kali.

IMPLEMENTASI PENGUJIAN

Langkah-langkah Pengujian

  1. Setlah rancangan unit selesai lakukan pengujian statis unit.
  2. Membuat test plan untuk unit.
  3. Apabila unit yang diuji merujuk unit lain, dan belum selesai, buat stubs untuk unit ini.
  4. Buat test driver untuk unit:

test case data (from the test plan)

Eksekusi unit, menggunakan test case data

Hasil ekseksui test case

INTEGRATED TESTING

Fokus deteksi fault pada sekelompok komponen/unit, seperti fungsi, kelas, packages.

Dua atau lebih komponen diintegrasikan dan diuji.

Jika tidak ada, maka komponen lain ditambahkan dan diuji.

Pendekatan

Bottom-up testing

Top-down testing

Sandwich Testing

LANGKAH INTEGRATION TESTING

  1. Berdasarkan strategi yang dipilih, pilih komponen yang akan diuji. Lakukan pengujian unit untuk semua komponen.
  2. Lakukan persiapan untuk pengujian (pembuatan drivers, stubs)
  3. Lakukan functional testing: Definisikan test cases yang menguji semua komponen yang di uji.
  4. Lakukan structural testing: Definisikan test cases yang menguji semua komponen yang di uji.
  5. Lakukan performance tests
  6. Simpan record test cases dan activitas pengujian.
  7. Ulangi langkah 1 to 6 sampai keseluruhan sistem diuji.

Tujuan integration testing adalah mengidentifikasi errors dalam konfigurasi komponen yang ada.

SYSTEM TESTING

Dilakukan setelah komponen-komponen diintegrasikan.

Menjamin bahwa sistem yang lengkap sesuai dengan kebutuhan fungsional dan non fungsional sistem.

Pada tahap ini fault yang terjadi pada komponen telah teridentifikasi dan dikoreksi.

Functional Testing

Performance Testing

Acceptance Testing

Installation Testing

FUNCTIONAL TESTING

requirements testing à menguji fungsionalitas sistem.

Pada esensinya sama dengan pengujian Blackbox

Test cases dirancang dari dokumen analisis kebutuhan (mis. user manual) dan berfokus pada kebutuhan dan fungsi utama (mis. use cases)

Pengujian dilakukan dengan memiliki test yang relevan pada pengguna dan memiliki peluang yang besar untuk menemukan failure.

PERFORMANCE TESTING

Jenis test:

Menemukan perbedaan antara goal (kebutuhan non fungsional) yang ditentukan pada saat pengembangan sistem dengaan yang diimplementasikan dalam sistem.

Stress testing – menguji apakah sistem dapat merespons banyak request yang datang secara bersamaan.

Volume testing – menguji sistem dengan memberi data uji yang sangat besar/banyak.

Security testing – menguji keamanan sistem (menemukan security faults). Menggunakan hacker untuk menguji sistem.

Timing testing – mengevaluasi waktu tanggap (response times) dan waktu untuk melakukan sebuah fungsi

Environmental test – menguji toleransi terhadap lingkungan seperti panas, kelembaban, gerak

Quality testing – pengujian keandalan, maintain- ability dan availabilitas sistem

Recovery testing – pengujian terhadap tanggapan sistem terhadap adanya kesalahan atau ketiadaan data.

ACCEPTANCE TESTING

Tujuan : menunjukkan bahwa sistem sudah siap untuk pemakaian operasional.

Pilihan test dibuat oleh client/sponsor

Banyak test dapat diambil dari integration testing

Dilakukan oleh client, bukan developer.

Kebanyakan bug dalam perangkat lunak biasanya ditemukan oleh client setelah sistem digunakan, bukan oleh developer atau testers à test tambahan (Pilot Test atau Field Test)

PILOT TESTING

Alpha test:

Client menggunakan perangkat lunak di tempat pengembang (development environment).

Perangkat lunak digunakan dalam setting terkendali, pengembang selalu siap untuk memperbaiki kesalahan yang terjadi.

Beta test:

Dilakukan tempat pengguna (lingkungan yang sebenarnya).

Pengembang tidak ada

Perangkat lunak digunakan dalam lingkungan yang sebenarnya (target environment).

INSTALLATION TESTING

Sistem di install pada target environment dan dievalusi.

Mengulangi test cases yang dieksekusi selama functional dan performance testing dalam target environment.

Beberapa kebutuhan mungkin tidak bisa diuji dalam development environment sehingga perlu dibuat test cases yang baru.

Tidak ada komentar:

Posting Komentar