PENGUJIAN SOFTWARE
Pengujian software haruslah didefinisikan dalam proses
rekayasa perangkat lunak atau software engineering. Sejumlah strategi pengujian
software telah diusulkan dalam literatur. Semuanya menyediakan developer
software dengan template untuk pengujian dan semuanya memiliki karakteristik
umum:
- Testing
dimulai pada level modul dan bekerja keluar kearah integrasi pada sistem
berbasiskan komputer
- Teknik
testing yang berbeda sesuai dengan poin-poin yang berbeda pada waktunya
- Testing
diadakan oleh software developer dan untuk proyek yang besar oleh group
testing yang independent
- Testing
dan Debugging adalah aktivitas yang berbeda tetapi debugging harus
diakomodasikan pada setiap strategi testing
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.
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.
- Metode
software engineering menyediakan dasar dari mutu yang mana yang akan
dipakai.
- Metode
Analysis, design and Construction berupa tindakan untuk meningkatkan
kualitas dengan menyediakan teknik yang seragam dan hasil yang sesuai
dengan keinginan.
- Metode
Formal Technical Reviews menolong untuk memastikan kualitas kerja produk
merupakan hasil konsekuensi dari setiap langkah software engineering.
- Metode
Measurement diberlakukan pada setiap elemen dari konfigurasi software
- Metode
Standards and Procedures membantu untuk memastikan keseragaman dan
formalitas dari SQA untuk menguatkan dasar “filosofi kualitas total”
- MetodeTesting
menyediakan cara terakhir dari tingkat kualitas mana yang dapat dicapai
dan dengan praktis dapat mengetahui letak error.
Langkah-langkah Pengujian Software
Terdapat 4 langkah yaitu:
- Unit
testing-testing per unit yaitu mencoba alur yang spesifik pada struktur
modul kontrol untuk memastikan pelengkapan secara penuh dan pendeteksian
error secara maksimum
- Integration
testing – testing per penggabungan unit yaitu pengalamatan dari isu-isu
yang diasosiasikan dengan masalah ganda pada verifikasi dan konstruksi
program
- High-order
test yaitu terjadi ketika software telah selesai diintegrasikan atau
dibangun menjadi satu –tidak terpisah-pisah
- Validation
test yaitu menyediakan jaminan akhir bahwa software memenuhi semua
kebutuhan fungsional, kepribadian dan performa.
Kriteria dari Testing yang telah selesai
- Dengan
menggunakan model statisitik dan teori software reliability, model dari
kegagalan software-yang tidak terdeteksi selama testing-sebagai fungsi
dari waktu eksekusi dapat dikembangkan
- Sebuah
versi dari model kegagalan yang disebut logarithmic Poisson execution-time
model.
Tom Gilb menyatakan bahwa prosedur berikut harus
digunakan jika ingin mengimplementasikan software testing strategy yang sukses
- Menetapkan
seluruh kebutuhan produk software dalam perhitungan sebelum memulai
testing
- Status
obyek testing harus jelas
- Memahami
pengguna software dan mengembangkan sebuah profil untuk setiap kategori
user
- Mengembangkan
rencana testing yang menekankan pada “rapid cycle testing”
- Membangun
software yang sempurna yang didesain untuk mengetes dirinya sendiri
- Menggunakan
tinjauan ulang yang formal sebagai filter sebelum pengujian
- Melakukan
tinjauan ulang secara formal untuk menilai strategi tes dan kasus tes itu
sendiri
- Mengembangkan
pendekatan peningkatan yang berkelanjutan untuk proses testing
Test Unit (Test Level Komponen)
Pengujian unit: Komponen individual yang 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. Merupakan
teknik sistematik untuk membangun struktur program pada saat melakukan testing
untuk mencari error. Secara obyektif untuk mengambil modul unit test dan
membangun struktur program yang telah dirancang oleh desainnya. Fokusnya untuk
meng-uncover error pada:
- Desain
dan konstruksi arsitektur software
- Fungsi-fungsi
yang terintegrasi atau operasi pada level sub-system
- Interface
dan interaksi
- Integrasi
resource dan/atau integrasi lingkungan
- Penguji
integration: pengembang dan/atau test engineer.
Strategi Pengujian Integrasi
Pendekatan:
- integrasi
non-incremental
- 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:
- Top-down
- bottom-up
- Sandwich
Integrasi Top-down
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) :
- Modul
kontrol utama digunakan sebagai sebuah test driver, dan stubs disubstitusi
untuk semua modul secara langsung ke modul kontrol utama.
- Stub
subordinate digantikan sekali satu waktu dengan modul actual.
- Test
terkonduksi sebagai tiap modul diintegrasi.
- Pada
pelengkapan tiap kumpulan test, stub lainnya diganti dengan modul real.
- Pengujian
regresi dapat dikonduksi.
Integration top-down pros dan cons :
- biaya
kostruksi stub
- fungsi
kontrol utama dapat diuji lebih cepat.
Integrasi Bottom-Up
Modul pada level terbawah diintegrasi pertama, kemudian
dengan menggerakkan keatas melalui struktur kontrol. Proses integration(lima
langkah):
- Modul
low-level dikombinasikan ke cluster yang menunjukkan sebuah sub-function
software spesifik.
- Sebuah
driver ditulis untuk meng-coordinate input dan output test case.
- Test
cluster diuji.
- 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
Regression Testing
Merupakan aktivitas yang membantu untuk memastikan
sebuah perubahan (yang berkaitan dengan testing atau penjelasan lain) tidak
menghasilkan perilaku yang tidak diharapkan atau error tambahan. Regression tes
terdiri dari 3 kelas, yaitu:
- Sebuah
Contoh yang mewakili tes yang akan menguji semua fungsi software
- Tes
tambahan yang berfokus pada fungsi software yang tampak yang akan berubah
akibat perubahan lain
- Tes
yang berfokus pada komponen software yang telah berubah
Validation testing. 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
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. Terbagi menjadi 5
bagian yaitu :
- Recovery
Testing : sistem tes yang menekan software untuk gagal dengan cara yang
bervariasi dan memverifikasi perbaikan sendiri dengan baik
- Security
Testing : usaha untuk memverifikasi mekanisme perlindungan yang dibuat
dalam sistem apakah akan melindunginya dengan semestinya.
- Stress
Testing : didesain untuk menghadapi program dengan situasi abnormal.
- Performance
Testing : didesain untuk menguji performa software ketika bekerja dalam
konteks pengintegraian sistem.
- 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.
Debugging
- Gejalanya
mungkin sebagai hasil dari masalah pemilihan waktu dibanding masalah
proses
- Kemungkinan
sulit secara akurat mereproduksi kondisi input
- Gejalanya
mungkin terjadi dalam waktu yang dekat berkelanjutan
- Gejalanya
mungkin berkaitan dengan penyebab yang didistribusikan melewati sejumlah
task yang berjalan pada prosesor yang berbeda. Terdapat 3 kategori
pendekatan Debugging
- Brute
force : metode yang paling umum dan lebih efisien untuk mengisolasi
penyebab dari error software
- Backtracking
: metode yang dapat berhasil pada program kecil
- Cause
elimination : perwujudan dari induksi atau deduksi dan pengenalan dari
konsep binary partitioning
Test Issues pada Dunia Nyata
- Pengujian
software sangat mahal.
- Bagaimana
mendapat pengujian secara otomatis?
Pengujian software lainnya:
- Pengujian
GUI
- Pengujian
Software Berorientasi Object
- Pengujian
Komponen dan Pengujian Berbasis Komponen Software
- Pengujian
Fitur spesifik Domain
- Pengujian
Sistem Berbasis Web




0 komentar:
Posting Komentar