Selasa, 04 Agustus 2009

STRATEGI PENGUJIAN SOFTWARE



Pengujian dan Strategi Software

Verifikasi dan Validasi
- Organisasi Pengujian Software
- Pengujian Software dan Process Pengujian
- Strategi Pengujian
- Rencana Uji dan Dokumentasi
- Pengujian Spesial untuk Sistem Aplikasi

Pengujian Software adalah satu elemen dari sebuah topik broader yang sering diartikan sebagai
รจ Verifikasi dan Validasi (V&V)

Verifikasi : menunjuk ke kumpulan aktifitas yang memastikan bahwa software mengimplementasi sebuah fungsi spesifik.

Validasi : menunjuk ke sebuah kumpulan berbeda dari aktivitas yang memastikan bahwa software yang telah dibangun dapat di-trace terhadap kebutuhan customer.

Boehm [BOE81]:
Verifikasi: “Apakah kita membangun produk dengan baik?”
Validasi: “Apakah kita membangun produk yang baik?”

Defenisi V&V meliputi banyak aktifitas SQA, termasuk
review teknis formal, kualitas dan audit konfigurasi
monitor performance, tipe yang berbeda dari pengujian software study feasibility dan simulasi


Organisasi Pengujian Software

Obyectif pengujian: tidak menutup error(defects) pada software, termasuk error pada:
- kebutuhan dari analisa kebutuhan
- desain terdokumentasi dalam spesifikasi desain
- coding (implementasi)
- sumber sistem dan lingkungan sistem
- masalah-masalah hardware dan interface-nya terhadap software

Pengujian Software dapat dipertimbangkan secara psikologi dihancurkan(destructive).

Siapa yang terlibat dalam pengujian software?
- developer
- tester (test engineer) in ITG
- SQA group

Organization pengujian software:
- Individual tester dalam sebuah tim pengembang
- Independent test group (ITG)



Test Unit (Test Level Komponen)

Pengujian unit: Komponen individual components diuji secara independen untuk memastikan kualitasnya. Fokusnya untuk tidak menutup error pada desain dan implementasi, meliputi:
struktur data pada sebuah komponen
logika program dan struktur program pada sebuah komponen
interface komponen
fungsi dan operasi dari sebuah component
Penguji/tester unit: pengembang dari komponen.



Test Integrasi

Test Integrasi: Sebuah group dari component dependent diuji bersama untuk memastikan kualitas dari unit integrasinya.

Fokusnya untuk meng-uncover error pada:
Desain dan konstruksi arsitektur software
Fungsi-fungsi yang terintegrasi atau operasi pada level sub-system
Interface dan interaksi diantaranya
Integrasi resource dan/atau integrasi lingkungan
Penguji integration: pengembang dan/atau test engineer.



Strategi Pengujian Integrasi

Pendekatan: a) integrasi non-incremental
b) integrasi incremental

Integrasi non-incremental :

- Big Band - menggabungkan (atau mengintegrasi) semua bagian dalam sekali.
Keuntungan: - sederhana
Kerugian: - sulit untuk men-debug, tidak mudah untuk mengisolasi error
- tidak mudah untuk memvalidasi hasil test - mustahil untuk membentuk sebuah sistem terintegrasi impossible
Integrasi incremental:
mengintegrasi sistem tahap demi tahap(atau bagian demi bagian) dalam sebuah pesanan yang didesain dengan baik.
Tiga metode penting:
a) Top-down
b) bottom-up
c) Sandwich
- menggunakan top-down untuk modul upper-level dan bottom-up untuk modul low-level



Integrasi Top-down

Ide:- Modul-modul diintegrasi dengan memindahkan downward melalui struktur kontrol.

Modul subordinate ke modul kontrol utama digabung ke sistem dalam cara depth-first atau breadth-first.

Proses integrasi(lima langkah):
1. modul kontrol utama digunakan sebagai sebuah test driver, dan stubs disubstitusi untuk semua modul secara langsung ke modul kontrol utama.
2. stub subordinate digantikan sekali satu waktu dengan modul actual.
3. test terkonduksi sebagai tiap modul diintegrasi.
4. pada pelengkapan tiap kumpulan test, stub lainnya diganti dengan modul real.
5. pengujian regresi dapat dikonduksi.

Integration top-down pros dan cons :
- biaya kostruksi stub
- fungsi kontrol utama dapat diuji lebih cepat.



Integrasi Bottom-Up

Ide:- Modul pada level terbawah diintegrasi pertama, kemudian dengan menggerakkan keatas melalui struktur kontrol.

Proses integration(lima langkah):
1. Modul low-level dikombinasikan ke cluster yang menunjukkan sebuah sub-function software spesifik.
2. sebuah driver ditulis untuk meng-coordinate input dan output test case.
3. Test cluster diuji.
4. Driver dipindah dan cluster digabungkan bergerak ke atas dalam struktur program.

Integrasi bottom-up pros dan cons:
- tidak ada biaya stub
- perlu pengujian driver
- tidak ada sistem yang dapat dikontrol hingga langkah terakhir



Uji Validasi

Uji Validasi : Software yang berintegrasi diuji berdasarkan pada kebutuhan untuk memastikan bahwa kita memiliki produk yang benar.

Fokus-nya adalah untuk meng-uncover error pada:
- Input/output sistem
- Informasi fungsi sistem dan data
- Interface sistem dengan bagian eksternal
- User interface
- Perilaku dan performance sistem

Penguji validasi : uji engineer pada orang-orang ITG atau SQA.



Uji Sistem

Uji sistem: Sistem software diuji keseluruhan. Ini memverifikasi semua elemen secara langsung untuk memastikan bahwa semua fungsi dan performance sistem diterima dalam lingkungan target.

Area fokus adalah:
- Fungsi dan performance sistem
- Reliability(ketersediaan) dan recoverability (kemampuan menutup/recovery test) sistem
- Instalasi (uji instalasi) sistem
- Perilaku pada kondisi tertentu (uji tekanan dan load) sistem
- Operasi user (acceptance test/alpha test/) sistem
- Integrasi dan kolaborasi hardware dan software
- Integrasi software eksternal dan sistem

Penguji sistem : uji engineer pada orang-orang ITG atau SQA.

Saat sebuah sistem akan dikeluarkan sebagai sebuah produk software, suatu proses pengujian yang disebut pengujian beta sering digunakan.



Pengujian Sistem

Pengujian recovery - suatu sistem uji yang memaksa software gagal dalam cara berbeda dan memverifikasi bahwa recovery ditampilkan.

Pengujian security – untuk memverifikasi bahwa mekanisme perlindungan dibangum ke sebuah sistem akan melindunginya dari improper penetration.

Pengujian stress – didesain untuk mengkonfrontasi program dengan kondisi yang tidak normal.
- kuantitas, frekuensi, atau volume.

Pengujian performance – didesain untuk menguji performance run-time software dalam konteks sebuah sistem terintegrasi.

Pengujian instalasi – didesain untuk menguji prosedur instalasi dan software pendukungnya.



Rencana Uji

Rencana uji berhubungan dengan mengeset standar untuk pengujian proses dibanding penggambaran pengujian produk.

Test plan/rencana uji terdiri atas:
- standar untuk proses pengujian
- resource yang diperlukan (hardware, software dan engineer)
- jadwal pengujian (pengujian task dan milestones)
- uji item (apa yang harus diuji)
- prosedur recording test
(hasil test harus secara sistematis direkam)
- constraint

Test planning adalah sebuah dari suatu test manager.
Sebuah test plan adalah output dari perencanaan.



Test Issues in Real World

Pengujian software sangat mahal.

Bagaimana mendapat pengujian secara otomatis??????

Kriteria pengujian, lingkup pengujian, pengujian adequate.

Pengujian software lainnya:

Pengujian GUI

Pengujian Software Berorientasi Object

Pengujian Komponen dan Pengujian Berbasis Komponen Software

Pengujian Fitur spesifik Domain

Pengujian Sistem Berbasis Web

Tidak ada komentar:

Posting Komentar