• Tidak ada hasil yang ditemukan

Dasar Dasar Testing. Rudi Susanto

N/A
N/A
Protected

Academic year: 2021

Membagikan "Dasar Dasar Testing. Rudi Susanto"

Copied!
57
0
0

Teks penuh

(1)

Dasar Dasar Testing

Rudi Susanto

“Testing merupakan tugas yang tak dapat dihindari ditiap bagian dari tanggung jawab pengembangan suatu sistem software”

(2)

Obyektifitas Materi

• Memberikan landasan yang cukup dalam

memahami dasar-dasar testing (seperti

obyektifitas, prinsip-prinsip dasar testing dan

testabilitas).

• Memberikan gambaran secara umum tentang

siklus hidup testing dan integrasinya di

(3)

Materi :

• ƒObyektifitas Testing

• Misi dari Tim Testing

• Psikologi Testing

• Prinsip – prinsip Testing

• Moto Testing

(4)

2.1 Obyektifitas Testing

Bagaimana testing yang obyektif?

Secara umum obyektifitas dari testing adalah untuk

melakukan verifikasi, validasi dan deteksi

error untuk menemukan masalah dan tujuan dari

(5)

obyektifitas testing | pendapat

• ‰

Meningkatkan kepercayaan bahwa sistem dapat digunakan

dengan tingkat resiko yang dapat diterima.

• Menyediakan informasi yang dapat mencegah terulangnya

error yang pernah terjadi.

• Menyediakan informasi yang membantu untuk deteksi

error secara dini.

• Mencari error dan kelemahan atau keterbatasan sistem.

• Mencari sejauh apa kemampuan dari sistem.

(6)

2.2 Misi dari Tim Testing

• Apa Misi dari Tim testing?

• Misi dari tim testing tidak hanya untuk melakukan testing, tapi juga

untuk membantu meminimalkan resiko kegagalan proyek.

• Mengeksplorasi, mengevaluasi, melacak, dan melaporkan kualitas

produk, sehingga tim lainnya dari proyek dapat membuat

keputusan terhadap pengembangan produk.

• Penting diingat !!

Tester tidak melakukan pembenahan atau

pembedahan kode, tidak mempermalukan atau melakukan

komplain pada suatu individu atau tim, hanya menginformasikan.

• Tester adalah individu yang memberikan hasil pengukuran dari

(7)

2.3 Psikologi Testing

Apa keinginan mendasarmu sebagai seorang tester?

Pengembangan dilakukan secara konstruktif, maka testing adalah

destruktif. Seorang pengembang bertugas membangun, sedangkan

seorang tester justru berusaha untuk menghancurkan.

Programer harus berorientasi pada “zero defect minded”, maka

tester

harus mempunyai keinginan yang mendasar untuk “membuktikan

kode gagal (fail), dan

akan melakukan apa saja untuk membuatnya

gagal

.”

Jadi bila seorang tester hanya ingin membuktikan bahwa kode beraksi

sesuai dengan fungsi bisnisnya, maka tester tersebut telah

gagal

(8)

2.4 Prinsip-Prinsip Testing

• ‰

Testing yang komplit tidak mungkin.

• Testing merupakan pekerjaan yang kreatif dan

sulit.

• Alasan yang penting diadakannya testing adalah

untuk mencegah terjadinya errors.

• Testing berbasis pada resiko.

• Testing harus direncanakan.

(9)

2.4.1 Testing yang komplit tidak mungkin

• Domain masukan yang sangat banyak

• Kompleksitas: bagaimana seorang tester

dapat menyatakan suatu bug adalah bug bila

hal tersebut ada dalam spesifikasi?

• Jalur Program: terdapat sangat banyak jalur

yang mungkin dilewati pada suatu program

untuk dites secara komplit

(10)

Berapa kemungkinan jalur test?

Ada lima Jalur dari A ke X, yaitu: ABCX, ABDEGX,

ABDEHX, ABDFIX, dan ABDFJX

Berapa kemungkinan jalur pengujian?

(11)

2.4.2 Testing merupakan pekerjaan

yang kreatif dan sulit.

• Untuk melakukan testing secara efektif, harus

mengetahui keseluruhan sistem.

• Sistem tidak sederhana atau tidak mudah

untuk dipahami

• Melakukan testing dibutuhkan:

1.‰

Kreatifitas.

2.‰

Pengetahuan bisnis.

3.Pengalaman testing.

4.Metodologi Testing

(12)

2.4.3 Alasan yang penting diadakannya testing

adalah untuk mencegah terjadinya error.

• Konsep siklus dari testing:

Testing bukan untuk satu fase pengembangan

saja.

Hasil Testing diasosiasikan pada tiap fase

pengembangan.

Aksi pendisainan tes adalah salah satu

mekanisme yang paling efektif untuk mencegah

error … Proses yang direncanakan untuk dapat

dites akan dapat menemukan dan menghilangkan

masalah tiap tahap pengembangan (Beizer 1983)

(13)

2.4.4 Testing berbasis pada resiko.

• ‰

Sumber daya dan biaya yang dibutuhkan untuk melakukan

testing berdasarkan pada skala prioritas, kompleksitas dan

kesulitan testing

• Biaya dari keterlambatan pengiriman produk (dimana

salah satu kemungkinan besar penyebabnya adalah testing)

• Kemungkinan adanya suatu defect (berdasarkan

pengalaman beroperasi dan prioritas sejarah terjadinya

defect)

• Biaya yang disebabkan oleh defect, bilamana defect

tersebut menyebabkan error yang akan membawa kerugian

baik secara langsung ataupun tak langsung bagi pelanggan

(berkaitan dengan kewajiban bisnis bagi pengembang

(14)

2.4.5 Testing harus direncanakan

• Testing yang baik butuh pemikiran dengan

pendekatan secara keseluruhan, disain tes dan

penetapan hasil yang diinginkan untuk tiap

(15)

2.4.6 Testing butuh kebebasan.

• Bila menginginkan adanya pengukuran yang tak bias

maka dibutuhkan pula tester yang tak bias.

• Apa yang disebut Tester yang independen (tak

tergantung/bebas):

Pengamat yang tidak bias

Orang yang bertujuan untuk mengukur kualitas

software secara akurat

• Testing yang paling efektif harus dilakukan oleh pihak

ketiga. Sangat efektif artinya testing menemukan

(16)

Kunci yang mempengaruhi kinerja dari

testing |

6 prinsip testing

• ‰

Wawasan dan kreatifitas tiap individu yang

terlibat.

• Pengetahuan dan pemahaman terhadap

aplikasi yang dites

• Pengalaman testing

• Metodologi testing yang digunakan

• Usaha dan sumber daya yang dipakai

(17)

2.5 Moto Testing

• Testing merupakan suatu eksperimen dan

membutuhkan suatu pendekatan tertentu.

• hipotesa eksperimen> mendisain eksperimen >

eksperimen > data tes dianalisa> apakah

hipotesa terbukti? (tipe-tipe dan kuantitas

(18)

2.5 Moto Testing

• Test case yang bagus adalah yang mempunyai

kemungkinan tinggi dalam mendeteksi defect yang

sebelumnya belum ditemukan, bukan yang dapat

memperlihatkan bahwa program telah bekerja dengan

benar.

• Tidak mungkin untuk mengetes program Anda sendiri.

• Bagian yang dibutuhkan dari tiap test case adalah

deskripsi dari keluaran yang diharapkan.

• Jangan pernah mengubah program untuk membuat

testing lebih mudah (kecuali pada perubahan yang

permanen).

• Pastikan bahwa testabilitas adalah suatu obyektifitas kunci

dalam disain software Anda.

(19)

SOAL

1. Apa misi dari Tim testing?

2. Hal apa yang tidak boleh dilakukan tester

dalam menjalankan tugas?

3. Tester dinyatakan gagal dalam menjalankan

tugasnya apabila?

4. Kenapa testing yang komplit tidak mungkin

dilakukan?

(20)

Jawaban

1. Misi dari tim testing tidak hanya untuk melakukan

testing, tapi juga untuk membantu meminimalkan

resiko kegagalan proyek

2. Tester tidak melakukan pembenahan atau

pembedahan kode, tidak mempermalukan atau

melakukan komplain pada suatu individu atau tim

3. Bila seorang tester hanya ingin membuktikan bahwa

kode beraksi sesuai dengan fungsi bisnisnya

4. Karena jumlah kemungkinan kombinasi test case yang

amat besar.

(21)
(22)

2.6 Isu-Isu Seputar Testing

• Sistem itu “Buggy“ yang di akibatkan oleh :

– Sistem pengembangan tidak terencana.

– Sistem pengembangan

yang kurang

baik dan

terencana.

• Testing ditampilkan dengan gambaran yang menakutkan

• Batas waktu menjadi hambatan bagi testing

• Testing tidak ditampilkan sebagai suatu karir

yang

menjanjikan

• Manajemen pendukung untuk testing kurang dari ideal

• Teknologi baru ataupun lama menyulitkan situasi

(23)

2.7 Testabilitas

• Testabilitas software adalah seberapa mudah

(suatu program komputer) dapat dites.

• Idealnya, perekayasa software mendisain

program komputer, sistem ataupun produk

dengan menempatkan testabilitas dalam

benaknya mudah mendisain test case yang

(24)

Daftar sekumpulan karakteristik software yang

dapat di test

Operability

“Semakin baik Software berkerja, akan membuat

software dites dengan lebih efisien.”

Observability

“Apa yang Anda lihat, adalah apa yang Anda tes.”

Controllability

“Dengan semakin baik kita dapat mengendalikan software,

semakin

banyak

testing

dapat

diotomatisasi

dan

(25)

Daftar sekumpulan karakteristik software yang

dapat di test

Decomposability

“Dengan pengendalian batasan testing, kita dapat

lebih cepat dalam mengisolasi masalah dan

melakukan testing ulang yang lebih baik.”

Simplicity

“Semakin sedikit yang dites, semakin cepat kita

melakukannya.”

Stability

“Semakin sedikit perubahan, semakin sedikit

masalah / gangguan testing.”

(26)

Daftar sekumpulan karakteristik software yang

dapat di test

Understandability

“Semakin banyak informasi yang kita miliki, kita akan

dapat melakukan tes lebih baik.”

(27)

Attribut penanda testing yang baik

• Testing yang baik itu bagaimana?

• Suatu testing yang baik mempunyai kemungkinan

yang tinggi dalam menentukan error. Tester harus

mengerti software dan berusaha untuk

mengembangkan gambaran dalam benaknya tentang

bagaimana kira-kira software akan dapat gagal (fail).

• Suatu tes yang baik tidak tumpang tindih

(redundant). Tak ada satupun titik dalam

pelaksanaan testing yang mempunyai tujuan yang

sama dengan testing yang lain.

(28)

Attribut penanda testing yang baik

• Suatu tes yang baik harus memberikan hasil

yang terbaik . Tes yang mempunyai

kemungkinan tertinggi dalam memperoleh

kelas error harus digunakan.

• Suatu tes yang baik harusnya tidak terlalu

(29)

2.8 Kemampuan Tester yang Diharapkan

• Kemampuan tester yang menjadi permintaan pada umumnya: – Kemampuan secara umum

• Mempunyai kemampuan analisa yang kuat dan terfokus • Mempunyai kemampuan komunikasi yang baik

• Mempunyai latar belakang QA – Pemahaman terhadap metodologi

• Pengembangan rencana tes

• Pembuatan dan perawatan lingkungan tes • Standar tes

(30)

2.8 Kemampuan Tester yang Diharapkan

• Pengetahuan akan pendekatan testing – Integration testing

– Acceptance Testing – Stress / Volume Testing – Regression testing – Functional testing – End-To-End Testing – GUI Testing

• Pengetahuan tentang sistem

(berhubungan dengan pasar dari organisasi bersangkutan) – Perbankan/Keuangan

– Produk Komersial – Telecom

(31)

Kemampuan Tester yang Diharapkan

• Pengetahuan dan pengalaman akan penggunaan alat bantu testing – Alat bantu capture atau playback (seperti WinRunner)

– Alat bantu Load testing (seperti LoadRunner, RoboTest) • Kemampuan terhadap linkungan testing

– Mainframe (seperti MVS, JCL).

– Client – Server (seperti WinNT, UNIX) • Kemampuan terhadap aplikasi

– Dokumentasi (seperti office, excel, word, Lorus Notes) – Database (seperti oracle, access, SQL)

(32)

Kemampuan Tester yang Diharapkan

• Kemampuan tester dibedakan menjadi tiga grup besar,

yaitu :

– Kemampuan fungsional dari subyek yang menjadi acuan

– Basis teknologi

(33)

2.9 Personalitas Tester

• Atribut positif yang patut dikembangkan

– Terencana, sistematis, dan berhati-hati (tidak sembrono) – pendekatan logis terhadap testing.

– Bermental juara – seperti penerapan standar kualitas yang tinggi dalam bekerja dalam suatu proyek.

– Berpendirian teguh - tidak mudah menyerah

– Praktikal – menyadari terhadap apa yang dapat dicapai terhadap batasan waktu dan anggaran tertentu.

– Analitikal – memiliki intiusi dalam mengambil suatu pendekatan untuk menggali error.

– Bermoral baik – berjuang untuk kualitas dan sukses, mengerti dan menyadari akan biaya-biaya yang terjadi terhadap suatu kulitas yang rendah.

(34)

2.9 Personalitas Tester

• Atribut negatif yang patut dihindari

– Sedikit empati terhadap pengembang (developers) – mudah terpengaruh secara emosional yang kekanak-kanakan dalam hubungannya dengan pengembang (developers).

– Kurang berdiplomasi – menciptakan konflik dengan pengembang (developers) dengan menunjukan wajah yang tak bersahabat. Seorang tester akan tersenyum bila bertatap muka dengan pengembang (developers) saat menemukan defect, dan memberikan laporan defect yang disertai perhitungan statistik terjadinya defect dan bug.

– Skeptis – meminta informasi dari pengembang (developers) dengan penuh kecurigaan (tidak percaya).

– Keras kepala – tidak dapat fleksibel dalam mendiskusikan suatu proposal.

(35)
(36)

Defect itu?

1. Defect adalah hal-hal yang tergabung dalam

sistem software (dapat ditemukan dalam

software, dokumentasi dan tata kerja manual),

yang pada awalnya tidak mempunyai dampak

apapun, hingga akhirnya mempunyai

berpengaruh pada user/customer dan

pengoperasian sistem (yang disebut cacat)

2. Defect yang menyebabkan suatu error dalam

pengoperasian atau berdampak negative pada

user/customer disebut Failure

(37)

13 kategori utama

defect dari software*

1. User interface errors - sistem memberikan suatu tampilan yang berbeda

dari spesifikasi.

2. Error handling – pengenalan dan perlakuan terhadap error bila terjadi.

3. Boundary – related errors - perlakuan terhadap nilai batasan dari jangkauan

mereka yang mungkin tidak benar.

4. Calculation errors - perhitungan arimatika dan logika yang mungkin tidak

benar.

5. Initial and later states - fungsi gagal pada saat pertama digunakan atau

sesudah itu.

6. Control flow errors - pilihan terhadap apa yang akan dilakukan berikutnya

tidak sesuai untuk status saat ini.

7. Errors in handling or interpreting data - melewatkan dan mengkonversi

(38)

13 kategori utama

defect dari software*

8. Race conditions - bila dua event diproses akan maka salah satu akan diterima

berdasarkan prioritas sampai pekerjaan selesai dengan baik, baru pekerjaan berikutnya. Bagaimanapun juga kadang-kadang event lain akan diproses terlebih dahulu dan dapat menghasilkan sesuatu yang tidak diharapkan atau tidak benar.

9. Load conditions - saat sistem dipaksa pada batas maksimum, masalah akan mulai

muncul, seperti arrays, overflow, diskfull.

10. Hardware - antar muka dengan suatu device mungkin tidak dapat beroperasi

dengan benar pada suatu kondisi tertentu seperti device unavailable.

11. Source and Version Control - program yang telah kadaluwarsa mungkin akan

dapat digunakan lagi bila ada revisi untuk memperbaikinya.

12. Documentation - pengguna tak dapat melihat operasi yang telah dideskripsikan

dalam dokumen panduan.

13. Testing errors - tester membuat kesalahan selama testing dan berpikir bahwa

(39)

Biaya-Biaya

yang Berkaitan

dengan

Testing* dan Defects

(40)

Biaya-Biaya

yang Berkaitan

dengan

Testing dan Defects*

(41)

Biaya relatif tahap pengembangan*

(42)

Hubungan usaha testing terhadap

biaya failure.

(43)

Hubungan usaha testing terhadap

biaya failure.

(44)
(45)
(46)
(47)
(48)

Hubungan pengujian dan proses pengembangan

system

Spesifikasi Kebutuhan Spesifikasi System Perancangan System Detail Perancangan Acceptance Test plan System Integration Test plan Sub-System Integration Test plan Module and Unit code and

test Acceptance test System Integration Sub-System Integration Service

(49)
(50)

Aktifitas Testing

• ‰

Perencanaan

ƒ -Rencana pendekatan umum

ƒ -Menentukan obyektivitas testing

ƒ -Memperjelas rencana umum

• Akusisi

ƒ -Disain tes

ƒ -Menerapkan tes ‰

• Pengukuran

ƒ -Eksekusi tes

ƒ -Cek terminasi

ƒ -Evaluasi hasil

(51)

Tiga Tingkatan Testing secara Umum

• ‰

Unit testing

Testing penulisan kode-kode program dalam satuan

unit terkecil secara individual.

• System Testing

Proses testing pada sistem terintegrasi untuk

melakukan verifikasi bahwa sistem telah sesuai

spesifikasi.

• Acceptance Testing

Testing formal yang dilakukan untuk menentukan

apakah sistem telah memenuhi kriteria penerimaan

dan memberdayakan pelanggan untuk menentukan

apakah sistem dapat diterima atau tidak

(52)

Praktik

unit testing

• ‰

Tujuan

ƒ Konfirmasi bahwa modul telah dikode dengan benar.

• Pelaku

ƒ Biasanya programer.

• Apa yang dites

ƒ Fungsi (Black Box).

ƒ Kode (White Box).

Kondisi ekstrim dan batasan-batasan.

• Kapan selesai

ƒ Biasanya saat programer telah merasa puas dan tidak diketahui lagi

kesalahan.

• Alat bantu

ƒ Tidak biasa digunakan.

• Data

(53)

Praktik

system testing

Tujuan

ƒ Merakit modul menjadi suatu sistem yang bekerja. Dan menentukan kesiapan untuk melakukan Acceptance Test.

Pelaku

ƒ Pemimpin tim atau grup tes.

Apa yang dites

ƒ Kebutuhan dan fungsi sistem. ƒ Antarmuka sistem.

Kapan selesai

ƒ Biasanya bila mayoritas kebutuhan telah sesuai dan tidak ada kesalahan mayor yang ditemukan

‰ Alat bantu

ƒ Sistem pustaka dan pustaka test case.

ƒ Generator, komparator dan simulator data testing.

‰ Data

(54)

Praktik

acceptance testing

• ‰

Tujuan

ƒ Mengevaluasi kesiapan untuk digunakan.

• Pelaku

ƒ Pengguna akhir atau agen.

• Apa yang dites

ƒ Fungsi mayor.

ƒ Dokumentasi.

ƒ Prosedur.

• Kapan selesai

ƒ Biasanya bila pengguna telah merasa puas atau tes berjalan dengan

lancar / sukses.

• Alat bantu

ƒ Komparator.

• Data

(55)

SOAL!

1. Apa yang dimaksud dengan Testtabilitas?

2. Sebutkan kemampuan secara umum yang harus

dimiliki tester!

3. Apa perbedaan testing dalam siklus hidup

pengembangan software, antara pandangan

masa lalu dan sekarang?

4. Sebutkan aktifitas testing secara umum!

5. Sebutkan tiga tingkatan testing secara umum!

6. Hal apa saja yang dites pada tingkatan unit

(56)

Jawaban!

1. Testtabilitas adalah seberapa mudah (subuah program

komputer) dapat dites

2. Mempunyai kemampuan analisa yang kuat dan

terfokus, mempunyai kemampuan komunikasi yang

baik, mempunyai latar belakang QA.

3. Pada masa lalu testing dilakukan setelah tahap coding,

tetapi sudut pandang testing sekarang merupakan

suatu bagian dan menjadi satu kesatuan di dalam

siklus hidup software secara keseluruhan.

4. Perencanaan, Akusisi, Pengukuran

5. Unit testing, System testing, Acceptance testing

6. Fungsi, kode, kondisi ekstrim dan batasan-batasan.

(57)

Referensi

Dokumen terkait

Berdasarkan spesifikasi kinerja di atas, kemungkinan aplikasi konsep persamaan dan pertidaksamaan secara mendalam di dunia kerja diantaranya untuk

Analisa data menggunakan uji t ( t-test ) untuk sampel berkorelasi dan Anava 2 jalur ( two-way Anova ) dengan bantuan program SPSS Versi 17. Hasil penelitian menunjukkan

Untuk analisis data menggunakan ANOVA faktorial 2 x 2 (Anova dua jalur) dengan mempergunakan program SPSS 16. Hasil penelitian adalah: 1) terdapat perbedaan hasil belajar

Terdapat kemungkinan bahwa tiap sila secara terlepas dari yang lain bersifat universal, yang juga dimiliki oleh bangsa-bangsa lain di dunia ini, akan tetapi kelima sila yang

2 Sehingga secara teoritis, pada sebuah sistem Pemilihan Umum legislatif biasanya berisikan pola pemberian suara, yang memberikan kemungkinan bagi pemilih untuk

Sedang untuk pengujian (testing), hanya kita gunakan salah satu metode saja, yaitu black box testing, yang menekankan apakah system/ program kita sudah sesuai

Dalam artikel ini, berbagai macam program pendeteksi celah keamanan aplikasi website telah diperiksa dan dievaluasi secara terperinci untuk mengetahui program scanner

Cakupan Pernyataan, Cabang dan Jalur  Cakupan pernyataan, cabang dan jalur adalah suatu teknik white box testing yang menggunakan alur logika dari program untuk membuat test cases..