Testing-Part04

Lines of Code

  • Pengukuran sederhana : menghitung jumlah garis kode dlm program & menggunakan perhitungan ini untuk mengukur kompleksitas.
  • Program kecil –> error rata-rata 1,3% – 1,8%
  • Program besar memiliki kenaikan error rata-rata sebesar 2,7% – 3,2%

Halstead’s Metrics

  • Pengukuran yang berdasarkan pada penggunaan operator-operator (seperti kata kunci) & operan-operan (seperti nama variabel, obyek database) yang ada dalam suatu program.
    • n1 = jumlah operator yg unik (distinct) dalam program
    • n2 = jumlah operan yg unik (distinct) dalam program
    • Panjang Program : H = n1 log2 n1 + n2 log2 n2
    • N1 = perhitungan jumlah keseluruhan operator program
    • N2 = perhitungan jumlah keseluruhan operan program
  • Prediksi Bug : B = (N1+N2) log2 (n1+n1)/3000

Black Box Testing

  • Tanpa pengetahuan struktur internal, tapi dgn kebiasaan.
  • Berfokus pd kebutuhan fungsional pd software, berdasarkan pd spesifikasi kebutuhan software.
  • Bukan alternatif, tetapi harus dengan black box testing dan white box testing.

Kategori testing yg dapat diketahui :

  • Fungsi yg hilang/tidak benar
  • Error dari antar-muka
  • Error dari struktur data/akses eksternal database
  • Error dari kinerja.tingkah laku
  • Error dari inisialisasi & terminasi

 

Dekomposisi Kebutuhan

  • Pendisainan test case dilakukan secara manual.
  • Disain test butuh pengalaman, penalaran, & intuisi seorang tester.

Spesifikasi sebagai tuntunan testing

  • Titik awal dalam memulai disain tes.
  • Dapat berupa spesifikasi fungsional, keamanan, skenario pengguna.

Jenis teknik disain tes

  1. Equivalence Class Partitioning
  2. Boundary Value Analysis
  3. State Transitions Testing
  4. Cause-Effect Graphing

Equivalence Partioning

  • Membagi domain input dari program menjadi beberapa kelas.
  • Kasus uji yang didesain berdasarkan pada evaluasi dan ekuivalensi class untuk kondisi input.

Kasus Uji Equivalence Pationing

  • Dalam mengisi biodata, dimana data yang diminta
    • nama : alphabeth
    • nim : 11 digit number
    • hari lahir : 2 digit number (hari > 0 dan hari <=31)
    • bulan lahir : 2 digit number (bulan > 0 dan bulan <=12)
  • Dari spesifikasi tersebut akan valid bila masukannya sesuai atau hanya diisi nama dan nim.
  • Akan tidak valid, jika :
  1. Nama tidak diisi.
  2. NIM tidak diisi.
  3. Nama diisi dengan karakter/angka.
  4. NIM diisi dengan karakter/huruf.
  5. Hari lahir diisi dengan 0 atau lebih dari angka 31.
  6. Bulan lahir diisi dengan 0 atau lebih dari angka 12.
  7. Hari atau bulan diisi dengan karakter/huruf.

Boundary Vaue Analysis

  • Menghasilkan kasus uji dari domain output.
  • Mengarahkan  pada pemilihan kasus uji yang melatih nilai-nilai batas.

Testing-Part03

Test Case

  • Suatu tes yg dilakukan berdasarkan pada suatu inisialisasi, masukan, kondisi, ataupun hasil yang ditentukan sebelumnya.

PERLU DIINGAT!!

  • TESTING TIDAK DAPAT MEMBUKTIKAN KEBENARAN, SEMUA KEMUNGKINAN EKSEKUSI DARI SUATU PROGRAM.
  • DAPAT DIDEKATI DENGAN MELAKUKAN PERENCANAAN DAN DESAIN TEST CASE.

Pendekatan test untuk Rekayasa Produk

Dapat dites dalam 2 cara :

  1. Dengan berdasarkan pada fungsi yg dispesifikasikan dari produk, akan didemontrasikan tiap fungsi, lalu pencarian error pada tiap fungsi.
  2. Dengan mengetahui operasi internal dari produk, tes dapat dilakukan untuk memastikan komponen berjalan berdasarkan spesifikasi dan telah cukup diperiksa.

White Box Testing/ Glass Box Testing / Clear Box Testing

  • Suatu metode desain test case yg menggunakan struktur kendali dari desain prosedural.
  • Diasosiasikan dgn pengukuran cakupan tes (yg mengukur prosentase jalur-jalur dari tipe yg dipilih).
  • Tujuan : menguji semua statement dan program.
  • Dilakukan bilamana black boc testing berfungsi utk pemenuhan terhadap kebutuhan
  1. Kesalahan logika dan asumsi yg tidak benar.
  2. Adanya kemungkinan terhadap eksekusi jalur yg tidak benar.
  3. Kesalahan penulisan yg acak.

Rute

Cakupan, Pernyataan, Cabang, dan Jalur

  • Suatu teknik white box testing yg menggunakan jalur logika dr program untuk membuat test case.

Flow graph terdiri dari :

  • Nodes (titik) –> mewakili pernyataan/sub.program yg akan ditinjau saat eksekusi program.
  • Edges (anak panah) –> mewakili jalur alur logika program untuk menghubungkan satu pernyataan/subprogram dgn yg lain.
  • Cakupan Pernyataan ditentukan dgn menilai proporsi dr pernyataan-peryataan yg ditinjau.
  • Cakupan pernyataan 100% –> tiap pernyataan pada prog.minimal dites sekali. (terjadi jika semua titik berada dlm test case).

Tahapan-tahapan Desain Cakupan Tes

  1. Menganalisa source code –> membuat flow graph
  2. Mengidentifikasi jalur tes –> mencapai pemenuhan test berdasarkan pada flow graph
  3. Mengevaluasi kondisi tes yg akan dicapai dlm tiap tes
  4. Memberikan nilai masukan dan keluaran berdasarka pd kondisi.

Basis Path Testing

  • dibagi menjadi 2 bentuk :
  1.  Zero Path : Jalur pintas yg ada pada sistem.
  2. One Path : Proses pada suatu sistem.

Cyclomatic Complexity

  • Pengukuran software yg memberikan pengukuran kuantitatif dari kompleksitas logika program.
  • Menentukan jumalah jalu-jalur independen dlm kumpulan basis suatu program dan memberikan jumlah tes minimal yg harus dilakukan.
  • jalur independen –> tiap jalur pada program yg memperlihatkan 1 kelompok baru dr pernyataan proses/kondisi baru.

V (G) = E (edges) – N (nodes) + 2

V (G) = P (predicate node) + 1

CATATAN!!

  • Beberapa jalur mungkin hanya dapat dieksekusi sebagai bagian dari tes yg lain.
  • Jangan sampai kompleksitas tiap unit/komponen terkait sistem melebihi dr nilai 10.

Graph Matrix

  • Matriks berbentuk segiempat sama sisi, dimana jumlah baris & kolom = jumlah node.

TUGAS!!!

SOURCE CODE

  1. Do while records remain read record;
  2. Calculate process;
  3. If record field 1 = 0
  4. Then process record;
  5. Store in buffer;             Increment counter;
  6. Else if record field 2 = 0
  7. Then reset counter;
  8. Else process record;     Store in file;
  9. End if;
  10. End if;
  11. End do;

End

Flow Chart

    Flow Graph Jalur
1 –> 1 – 11
2 –> 1 – 2 – 3 – 6 – 7 – 9 – 10 – 1 – 11
3 –> 1 – 2 – 3 – 6 – 8 – 9 – 10 – 1 – 11
4 –> 1 – 2 – 3 – 4 – 5 – 10 – 1 – 11

Perhitungan

  1. V (G) = E – N + 2    –>  V (G) = 11 – 9 + 2 = 4
  2. V (G) = P + 1     –>   V (G) = 3 + 1 = 4

Graph Matrix

Testing-Part02

TUJUAN TESTING

V2D ( Verifikasi, Validasi, Deteksi error )

  • Verifikasi >> dalam tahap verifikasi , yaitu menguji struktur program atau hasil analisis kami terhadap permasalahan dalam perusahaan apakah sudah tepat dengan kebutuhan user, dan hasil dari analisis kita (berupa struktur program) harus diklarifikasi kepada pihak perusahaan, tujuannya agar apabila ada perbedaan persepsi tidak terlalu lama berlarut, sehingga tidak banyak pula yang harus diubah apabila terjadi kesalahan.
  • Validas >> tahap kali ini adalah melakukan pemeriksaan apakah sistem atau solusi sistem  sudah sesuai dengan kebutuhan user. dimana untuk memberikan sebuah solusi sistem, kita memerlukan survey. hal ini bertujuan agar solusi sistem yang kita berikan dapat sesuai dengan kebutuhan user.
  • Deteksi error

Tujuan Testing

  1. Meningkatkan kepercayaan
  2. Menyediakan informasi yang dapat mencegah terulangnya error yang pernah terjadi.
  3. menyediakan informasi yang membantu untuk deteksi error secara dini.
  4. Mencari error, kelemahan dan keterbatasan sistem.
  5. Mencari sejauh apa kemampuan sistem.
  6. Menyediakan informasi untuk kualitas dari produk software.

Misi dari Testing

  1. Membantu meminimalkan resiko kegagalan proyek.
  2. Tidak melakukan pembenahan kode, tidak mempermalukan / melakukan komplain pada suatu individu / tim, hanya menginformasikan.
  3. Tester adalah individu yang memberikan hasil pengukuran dari kualitas produk.

PENTING!!!

>> PENGEMBANG = MEMBANGUN ,, TESTER = MENGHANCURKAN !!!

Prinsip Testing

  1. Testing yang komplit tidak mungkin
  2. Testing merupakan pekerjaan yang kreatif dan sulit
  3. Untuk mencegah terjadinya error –> konsep siklus testing
  4. Testing berbasis pada resiko
  5. Testing harus direncanakan
  6. Testing butuh kebebasan

Testing-Part01

Acc p.Kurniawan JatmikaDefinisi Testing

>> Memantapkan kepercayaan bahwa sistem yang kita buat telah sesuai dengan yang diharapkan.

Konsep Testing

- hal yang dicari dalam testing adalah APA YG TERJADI? dan APA YG SEHARUSNYA TERJADI?, maksudnya :

APA YG TERJADI, menjelaskan implementasi yang telah kita buat.

APA YG SEHARUSNYA TERJADI, menjelaskan rancang bangun solusi sistem, berupa Software Requierement

Specification ( SRS), DFD, Sisflow, dll.

- Error / kesalahan berarti ketidakcocokkan dengan spesifikasi.

- Apa yang akan dibuat dengan apa yang dibuat, akan disamakan dan perbedaannya adalah ERROR / KESALAHAN.

- Proses Testing = proses pengoperasian software yang harus dikendalikan.

Inti dari Testing (V2D)

1. Verifikasi

2. Validasi

3. Deteksi Error

 

alur testing

>> Testing sebagai pengukuran kualitas software.

>> KUALITAS  adalah pemenuhan terhadap standar.

Ciri Software yang Berkualitas

a. Bebas error dan bug secara objektif

b.Tepat waktu dan tepat dana

c. Sesuai dengan kebutuhan dan keinginan

d. Dapat dirawat.

>> Testing harus ada plan / rencana.

>> Pendekatan objektif diperlukan karena kualitas adalah suatu hal yang tidak nyata dan subjektif.

Tujuan Testing : menyamakan kualitas subjektif dengan standar objektif sehingga sistem dapat terlihat objektif.

>> Testing tidak dapat memastikan kualitas software, tetapi dapat memberikan jaminan terhadap software dalam suatu tingkat tertentu.

Faktor-faktor komponen yang sering digunakan

  1. Fungsionalitas   : kebenaran, realibilitas, kegunaan, integritas.
  2. Rekayasa  : efisiensi, testabilitas, dokumentasi, struktur.
  3. Adaptabilitas  : fleksibilitas, reusabilitas, maintainabilitas.