Testability
- Operability: dapat dioperasikan dengan rapih
- Observebility: setiap hasil dari test case langsung dapat diamati
- Controllability: sejauh mana pengujian dapat dioptimalkan
- Decomposability: pengujian dapat ditargetkan
- Simplicity: mengurangi arsitektur kompleks dan logika untuk menyederhanakan tes
- Stability: beberapa perubahan yang diminta selama pengujian
- Understandability: design dapat dipahami
What is a "Good Test"?
- Sebuah tes yang baik memiliki probabilitas tinggi untuk menemukan kesalahan
- Sebuah tes yang baik adalah tidak berlebihan.
- Sebuah tes yang baik harus "dapat terus dikembangkan"
- Sebuah tes yang baik harus tidak terlalu sederhana atau terlalu rumit
Internal dan External Testing
Test Case Design adalah test yang dilakukan untuk mencari bug yang ada pada program. Biasanya bug terdapat pada sudut - sudut program, jadi kita harus melakukan pengetesan hingga bagian - bagian kecil program juga. Contoh simple saat bermain game terdapat bug hingga player dapat menembus tembok itu terjadi karena ada bug di sudut program.
Contoh Bug pada sudut program
Exhaustive Testing adalah tehnik pengetesan yang cukup melakukan pengetesan sekali jalan saja untuk menghemat waktu testing dan cepatnya penyelsaian produk. Pada contoh dibawah ada looping sebanyak 20 kali nah kita tidak perlu melakukan 20x cukup 3x saja juga sudah bagus tujuannya untuk menghemat waktu
Contoh Exhausting Loop
Selective Testing adalah testing yang dilakukan untuk setiap jalur selection yang ada pada program
Contoh Selective Testing
Software Testing terbagi menjadi 2 yaitu
- Blackbox testing: test yang biasa dilakukan dengan memanggil end user atau seorang tester, dalam blackbox testing pengguna tidak mengetahui apa isi code program yang ada di dalamnya pengguna hanya perlu tahu fungsi - fungsi dari program. Contoh: ada program melakukan sorting, pengguna tidak perlu tahu tehnik sorting apa yang digunakan dia hanya perlu tahu hasil dari sorting tersebut benar atau salah.
- Whitebox testing: test yang biasa dilakukan oleh sang developer, perbedaannya dengan blackbox adalah orang yang melakukan test mengetahui apa saja code yang digunakan untuk melakukan fungsi - fungsi tersebut. Contoh: ada program melakukan sorting, ketika menguji dia perlu mengetahui tehnik apa yang digunakan dan apa hasilnya akan lebih cepat.
Basis Path Testing
Sebenernya gua bingung jelasinnya gimana yang pasti pertama kita cari path tertutup buat cari V(G) gatau apa itu artinya
Path tertutup biasanya selection atau looping jadi tinggal liat aja dari gambar ada berapa jumlah while atau if nya kira - kira gitu. Digambar ada 3 symbol condition maka P=3
V(G) = P + 1 = 3+1=4
P = jumlah path tertutup
terus tentuin jalur yang dilalui karena V(G) ada 4 maka jalurnya ada 4
Path 1: 1,2,4,7,8
Path 2: 1,2,3,5,7,8
Path 3: 1,2,3,6,7,8
Path 4: 1,2,4,7,1,2,3,5,7,8
yang terpenting setiap path pernah dilalui minimal sekali
Control Structure Testing
- Condition Testing: kasus uji yang menguji semua logic condition yang ada pada modul program
- Data Flow Testing: menguji semua data yang ada apakah fungsi - fungsinya sudah sesuai dengan yang ada pada data flow diagram dan juga variabelnya
Loop Testing
- Simple Loop: loopingnya simple kaya for sekali aja
- Nested Loop: ada looping didalam looping. Contoh: ada "do while" dalam "do while"
- Concatenated Loops: setelah looping yang satu selesai baru masuk ke kondisi looping lainnya
- Unstructured Loops: Don't try this at home. yang ini mungki dia kebanyakan pake jump to pas looping jadi loncat - loncat loopnya
Contoh Loop Testing
Object Oriented Testing
- definisi pengujian harus diperluas untuk mencakup teknik penemuan error diterapkan berorientasi obyek analisis dan desain model
- strategi untuk unit dan pengujian integrasi harus berubah secara signifikan
- desain kasus uji harus memperhitungkan karakteristik unik dari perangkat lunak OO
Menentukan Kebenaran OO model
- Selama analisis dan desain, kebenaran semantik dapat dinilai berdasarkan kesesuaian model untuk masalah dunia nyata.
- Jika model akurat mencerminkan seperti di dunia nyata maka itu adalah semantik benar.
- Untuk menentukan apakah model tersebut sesuai pada kenyataannya, mencerminkan persyaratan dunia nyata, itu harus disampaikan kepada ahli yang akan memeriksa definisi kelas dan hirarki untuk kelalaian dan ambiguitas.
- hubungan antar kelas dievaluasi untuk menentukan apakah mereka secara akurat mencerminkan koneksi objek dunia nyata.
Testing Methode
- Fault Based Testing: tester mencari kesalahan masuk akal (yaitu, aspek pelaksanaan sistem yang dapat mengakibatkan cacat). Untuk menentukan apakah kesalahan ini ada, test case dirancang untuk menguji desain atau kode.
- Class Testing dan Class Hirarki: Melakukan pengujian dengan melihat kecocokan hubungan antara class dan apakah attribute dalam class sudah benar. Lalu baru melakukan integration testing.
- Scenario Based Test Design: pengujian berbasis skenario berkonsentrasi pada apa yang pengguna lakukan, bukan apa produk lakukan. Ini berarti menangkap tugas (melalui use-case) bahwa apa yang pengguna harus lakukan, kemudian menerapkan mereka dan varian mereka sebagai tes.
Tidak ada komentar:
Posting Komentar