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
1. Menetapkan seluruh kebutuhan produk
software dalam perhitungan sebelum memulai testing
2. Status obyek testing harus jelas
3. Memahami pengguna software dan
mengembangkan sebuah profil untuk setiap kategori user
4. Mengembangkan rencana testing yang
menekankan pada “rapid cycle testing”
5. Membangun software yang sempurna
yang didesain untuk mengetes dirinya sendiri
6. Menggunakan tinjauan ulang yang
formal sebagai filter sebelum pengujian
7. Melakukan tinjauan ulang secara
formal untuk menilai strategi tes dan kasus tes itu sendiri
8. 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:
1. integrasi non-incremental
2. integrasi incremental
Integrasi non-incremental :
Big Band,
menggabungkan (atau mengintegrasi) semua bagian dalam sekali.
·
Keuntungan: Sederhana
·
Kerugian:
o sulit untuk men-debug, tidak mudah
untuk mengisolasi error
o tidak mudah untuk memvalidasi hasil
test
o 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:
1. Top-down
2. bottom-up
3. 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) :
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
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
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:
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:
o Input/output sistem
o Informasi fungsi sistem dan data
o Interface sistem dengan bagian
eksternal
o User interface
o 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
1. Brute force : metode yang paling
umum dan lebih efisien untuk mengisolasi penyebab dari error software
2. Backtracking : metode yang dapat
berhasil pada program kecil
3. 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
sumber : https://enikusuma.wordpress.com/2010/09/24/pengujian-software/
Mantap, lanjutkan.....
BalasHapusPertamax 9200 gan
BalasHapusLike
BalasHapusAje kendor...
BalasHapusAje kendor...
BalasHapusMantap gan, sundul
BalasHapus