Anda di halaman 1dari 25

Strategi Pengujian PL

Testing Strategy
• Testing software adalah tool pertama untuk menjamin
kualitas software yang diterapkan untuk mengontrol kualitas
produk software sebelum pengiriman atau instalasi di
tempat pelanggan.
• Pada awalnya, testing terbatas pada tahap akhir
pembangunan, setelah seluruh paket telah selesai.
• Kemudian, pentingnya deteksi dini terhadap cacat pada
software menyebabkan konsep jaminan kualitas berubah.
• Para profesional SQA didorong untuk memperluas kegiatan
testing terhadap coding pada setiap bagian proses
produksi, yang menyebabkan adanya testing setiap unit dari
modul software dan testing terintegrasi seluruh modul.
Testing Strategy
• Umumnya semua kegiatan testing adalah dengan
cara menjalankan aplikasi mereka langsung dari
kodenya, tidak dengan cara meninjau dokumentasi
pembangunan.
• Beberapa referensi cenderung untuk memperluas
lingkup testing lebih jauh dan mempertimbangkan
bahwa semua siklus hidup jaminan kualitas
software difungsikan sebagai suatu jenis kegiatan
testing .
Definisi dan Tujuan Testing
Definisi (klasik) menurut Myers (1979) :
"Testing adalah proses eksekusi program dengan
maksud untuk menemukan kesalahan."

• Definisi yang agak inklusif: kegiatan mulai dari


pemeriksaan kode yang dilakukan oleh seorang
pemimpin tim, uji coba menjalankan software yang
dilakukan oleh seorang rekan, serta tes yang
dilakukan oleh unit testing , semua dapat dianggap
kegiatan testing.
Definisi dan Tujuan Testing
Dua definisi testing oleh IEEE Std 610,12 (IEEE, 1990):
1. Proses mengoperasikan suatu sistem atau
komponen dalam kondisi tertentu, mengamati
atau hasil rekaman, dan membuat evaluasi dari
beberapa aspek dari sistem atau komponen.
2. Proses menganalisa item software untuk
mendeteksi perbedaan antara kondisi yang ada
dan yang diperlukan (suatu bug) dan
mengevaluasi fitur dari setiap item software.
Definisi dan Tujuan Testing
• Menurut Galin:
Software tesing adalah proses formal yang dilakukan
oleh tim pengujian khusus di mana suatu unit
perangkat lunak, beberapa unit perangkat lunak yang
terintegrasi atau seluruh paket perangkat lunak
diperiksa dengan menjalankan program pada
komputer. Semua tes yang terkait dilakukan sesuai
dengan prosedur pengujian yang disetujui pada kasus
uji yang disetujui.

Kata-kata dan frase yang ditekankan dalam definisi tersebut


memungkinkan kita untuk membandingkan karakteristik kunci
dari testing software dengan orang-orang dalam software
testing sebagai alat-alat jaminan kualitas PL
Definisi dan Tujuan Testing
• Formal - rencana uji Software merupakan bagian
dari pengembangan proyek dan rencana kualitas,
dijadwalkan terlebih dahulu dan sering menjadi
item sentral dalam pengembangan kesepakatan
yang ditandatangani antara pelanggan dan
pengembang.
• Dengan kata lain, pemeriksaan software secara ad-
hoc oleh rekan atau pemeriksaan teratur oleh
pemimpin tim pemrograman tidak dapat dianggap
sebagai tes software.
Definisi dan Tujuan Testing
• Tim testing khusus. Sebuah tim independen atau
konsultan eksternal yang mengkhususkan diri dalam
testing ditugaskan untuk melakukan tugas-tugas ini
terutama dalam rangka untuk menghilangkan bias dan
untuk menjamin testing yang efektif oleh para
profesional terlatih.
• Selain itu, secara umum diterima bahwa testing yang
dilakukan oleh pengembang sendiri akan menghasilkan
hasil yang buruk, seperti orang-orang yang
mengembangkan produk asli akan sulit untuk
mengungkapkan kesalahan yang mereka tidak dapat
mengidentifikasi sebelumnya.
Definisi dan Tujuan Testing
• Menjalankan program - Segala bentuk kegiatan
jaminan kualitas yang tidak melibatkan kegiatan
‘menjalankan software’, misalnya pemeriksaan
kode, tidak dapat dianggap sebagai dari kegiatan
testing.
• Persetujuan prosedur testing. Proses testing
dilakukan sesuai dengan rencana dan prosedur
testing yang telah disetujui sebagai suatu prosedur
SQA yang diadopsi oleh organisasi yang sedang
mengembangkan software.
Definisi dan Tujuan Testing
• Persetujuan kasus uji. Kasus uji untuk diperiksa dan
didefinisikan secara penuh dalam perencanaan uji.
Tidak ada kelalaian atau penambahan yang
diharapkan terjadi selama testing .
• Dengan kata lain, setelah proses uji dimulai, tester
tidak diperkenankan untuk mengambil
kebijaksanaan dengan cara menghilangkan kasus uji
yang anggapnya berlebihan atau menambahkan
sebuah kasus uji baru, meskipun mungkin
menjanjikan.
Tujuan software testing
Tujuan langsung
• Untuk mengidentifikasi dan mengungkapkan
kesalahan sebanyak mungkin dalam software yang
diuji.
• Untuk membawa software yang yang diuji ke
tingkat kualitas yang dapat diterima, setelah
kesalahan yang diidentifikasi dikoreksi dan di
testing ulang.
• Untuk melakukan tes yang diperlukan secara efisien
dan efektif, dalam keterbatasan anggaran dan
penjadwalan.
Tujuan software testing
Tujuan tidak langsung
• Untuk mengkompilasi catatan kesalahan software
untuk digunakan dalam pencegahan kesalahan
(oleh tindakan koreksi dan pencegahan).

"Jika tujuan Anda adalah untuk menunjukkan tidak


adanya kesalahan Anda tidak akan menemukan
banyak. Jika tujuan Anda adalah untuk menunjukkan
adanya kesalahan, Anda akan menemukan sebagian
besar dari mereka." (Myers, 1979)
Tujuan software testing
• Fakta bahwa software yang bebas bug adalah
merupakan sesuatu yang utopis (tidak mungkin /
khayal / sulit diwujudkan)
• Oleh karena itu, lebih dipilih ungkapan "tingkat
kualitas yang dapat diterima", yang berarti bahwa
persentase tertentu dari bug, dapat ditoleransi
untuk pengguna, akan tetapi tidak teridentifikasi
setelah instalasi software.
• Persentase ini jelas bervariasi oleh paket software
dan pengguna, tetapi harus lebih rendah untuk
paket risiko kegagalan yang tinggi.
Strategi testing software
Meskipun metodologi testing dapat bervariasi, ini
diterapkan dalam kerangka dua strategi testing
dasar:
• Menguji software secara keseluruhan
• Menguji software sedikit demi sedikit
Strategi testing software
• Menguji software secara keseluruhan, setelah
paket selesai tersedia; atau dikenal sebagai "big
bang testing".
• Menguji software sedikit demi sedikit, dalam modul
yang sudah selesai (unit test), kemudian untuk
menguji kelompok modul terintegrasi dengan
modul yang baru selesai (tes integrasi). Proses ini
berlanjut sampai semua modul paket telah diuji.
Setelah fase ini selesai, seluruh paket diuji secara
keseluruhan (uji sistem). Strategi testing biasanya
disebut "incremental testing".
Strategi testing software
• Selanjutnya, incremental testing juga dilakukan
menurut dua strategi dasar: bottom-up dan top-down.
• Kedua strategi incremental testing berasumsi bahwa
paket software dibangun dari hirarki modul software.
• Dalam testing top-down, modul pertama diuji adalah
modul utama, modul tingkat tertinggi dalam struktur
software; modul terakhir yang diuji adalah modul
tingkat terendah. Di bottom-up testing , urutan testing
dibalik: modul tingkat terendah diuji pertama, dengan
modul utama diuji terakhir.
bottom-up testing
bottom-up testing
Gambar diatas menunjukkan sebuah proyek pengembangan
software yang terdiri dari 11 modul. Proses pengembangan
software dan testing selanjutnya dilakukan bottom-up, dalam
empat tahap, sebagai berikut:
• Tahap 1: unit tes modul 1 sampai 7.
• Tahap 2: Tes Integrasi A dari modul 1, dan 2 dikembangkan
dan diuji di tahap 1, dan terintegrasi dengan modul 8, yang
dikembangkan pada tahap saat ini.
• Tahap 3: Dua tes integrasi terpisah, B, pada modul 3, 4, 5
dan 8, terintegrasi dengan modul 9, dan C, untuk modul 6
dan 7, terintegrasi dengan modul 10.
• Tahap 4: Sistem testing dilakukan setelah B dan C telah
terintegrasi dengan modul 11, yang dikembangkan pada
tahap saat ini.
top-down testing
top-down testing
top-down dilakukan dalam enam tahap. Testing akan
dilakukan sebagai berikut:
• Tahap 1: testing unit modul 11.
• Tahap 2: tes integrasi sebuah modul terintegrasi dengan
modul 11 9 dan 10, yang dikembangkan pada tahap saat ini.
• Tahap 3: uji Integrasi B dari A terintegrasi dengan modul 8,
yang dikembangkan pada tahap saat ini.
• Tahap 4: uji Integrasi C B terintegrasi dengan modul 6 dan 7,
yang dikembangkan pada tahap saat ini.
• Tahap 5: tes Integrasi D C terintegrasi dengan modul 1, dan
2 dikembangkan di tahap saat ini.
• Tahap 6: uji sistem D terintegrasi dengan modul 3, 4 dan 5,
yang dikembangkan pada tahap saat ini.
Bottom-up vs top-down
• Keuntungan utama dari strategi bottom-up adalah
kinerjanya yang relatif mudah, sedangkan kerugian utama
adalah keterlambatan di mana program diamati pada tahap
testing modul terakhir.
• Keuntungan utama dari strategi top-down adalah adanya
kemungkinan untuk menunjukkan fungsi seluruh program
segera setelah selesai modul tingkat paling atas. Dalam
banyak kasus, karakteristik ini memungkinkan untuk
melakukan identifikasi lebih dari hasil analisis dan kesalahan
desain yang berhubungan dengan algoritma, persyaratan
fungsional, dan sejenisnya. Kerugian utama dari strategi ini
adalah sulitnya mempersiapkan bagian-bagian test case
yang diperlukan, yang sering membutuhkan pemrograman
yang sangat rumit. Kerugian lain adalah kesulitan yang
relatif dalam menganalisis hasil tes.
Big bang vs incremental testing
Big bang testing:
• Penerapan strategi big bang testing dapat berdampak pada
kerugian yang sangat parah, kecuali program yang di test
berukuran sangat kecil dan sederhana.
• Identifikasi kesalahan menjadi cukup rumit sehubungan dengan
jumlah software yang besar.
• Meskipun sumber daya telah diinvestasikan, efektivitas
pendekatan ini relatif sedikit.
• Selain itu, ketika dihadapkan dengan seluruh paket software,
koreksi kesalahan seringkali merupakan tugas yang berat,
membutuhkan pertimbangan yang matang atas kemungkinan
efek samping dari proses koreksi pada beberapa modul pada satu
dan waktu yang sama. Kendala ini jelas membuat estimasi
sumber daya testing yang diperlukan dan jadwal testing menjadi
tidak jelas.
Big bang vs incremental testing
Berbeda dengan testing big bang, bahwa incremental
testing menyajikan beberapa keuntungan, yang utama
adalah sebagai berikut:
• (1) Incremental testing biasanya dilakukan pada
modul-modul software yang relatif kecil, seperti unit
atau tes integrasi. Hal ini membuat lebih mudah untuk
mengidentifikasi persentase kesalahan bila
dibandingkan dengan testing pada seluruh paket
software.
• (2) Identifikasi dan koreksi kesalahan akan jauh lebih
sederhana dan membutuhkan sumber daya yang lebih
sedikit karena itu dilakukan pada volume yang terbatas
dari software.
Big bang vs incremental testing
• Singkatnya, dalam incremental testing, sebagian besar
dari kesalahan dapat diidentifikasi dan dikoreksi pada
tahap awal pengembangan dan testing, yang mencegah
lolosnya kecacatan ke tahap pengembangan yang lebih
kompleks, di mana mereka akan memerlukan sumber
daya lebih signifikan untuk mengkoreksi.
• Kerugian utama dari testing incremental adalah jumlah
sumber daya pemrograman yang diperlukan untuk
persiapan stubs (potongan) dan driver untuk unit dan
tes integrasi. Kelemahan utama lain adalah kebutuhan
untuk melaksanakan beberapa operasi testing untuk
program yang sama (big bang testing hanya
membutuhkan operasi testing tunggal).
Terima Kasih

Anda mungkin juga menyukai