Minggu, 14 Maret 2021

TIPE TESTING


Definisi Testing Menurut Para Ahli

·     Menurut Hetzel 1973: Testing adalah proses pemantapan kepercayaan akan kinerja program atau sistem sebagaimana yang diharapkan.

·    Menurut Myers 1979: Testing adalah proses eksekusi program atau sistem secara intens untuk menemukan error.

·       Menurut Hetzel 1983 (Revisi): Testing adalah tiap aktivitas yang digunakan untuk dapat melakukan evaluasi suatu atribut atau kemampuan dari program atau sistem dan menentukan apakah telah memenuhi kebutuhan atau hasil yang diharapkan.

·       Menurut Standar ANSI/IEEE 1059: Testing adalah proses menganalisa suatu entitas software untuk mendeteksi perbedaan antara kondisi yang ada dengan kondisi yang diinginkan (defects / errors / bugs) dan mengevaluasi fitur-fitur dari entitas software.

 

Prinsip Testing

Terdapat 6 kunci prinsip-prinsip testing, yaitu:

·         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.

·         Testing membutuhkan independensi.

 

Tahapan Testing

Ada 2 tahapan testing, yaitu:

·         Pre Implementation Testing (Testing Sebelum Implementasi)

Sebelum di implementasikan ide/konsep harus di test terlebih dahulu. Pre implementation tidak dilakukan oleh programmer atau tim testing, tetapi oleh tim reviewer, yang terdiri dari

project manager, klien atau pembangun sistem.

·         Post Implementayin Testing (Testing Setelah Implementation)

Teknik testing biasanya terdiri dari 2, yaitu:

A.    White box

Logika, kondisi, perulangan atau blok statment, testingnya sebagian atau seluruh bagian program.

B.     Black box :

1.      Testing dilakukan tanpa mengetahui dari struktur programnya.

2.   Dilakukan selain programmer atau orang yang tidak mempunyai akses langsung kedalam program.

3.   Program ditesting dengan cara di input ke dalam black box dan di cek apakah outputnya sesuai dengan perintah.

 

Tipe Testing

·         Volume : Memfokuskan untuk input yang besar

·         Usability : Mengukur reaksi user ( Skala 1 : 10 )

·         Performance : Mengukur kecepatan pada beberapa keadaan

·         Configurasi : Mengkonfigurasi untuk bermacam-macam hadware atau software

·         Compatibility : komplabiliti dengan aplikasi lain ( mengukur watu adaptasi )

·         Relibiality / availability : mengukur ketahanan pada priode waku yang lama

·         Security : Mengukur keamanan program

·         Resource Usage : Mengukur penggunaan RAM, ruang disk, dll

·         Installabiltiy : di install pada bermacam-macam keadaan ( mengukur waktu install )

·         Recoverabilty : mengukur waktu untuk me-recover

·         Serviceability ; mengukur waktu service

·         Load / stress : untuk data extreame dan traffic

·         Regression testing

·         Penerimaan user / User Acceptance Testing

·         Beta testing

·         Release testing

·         Dll

 

Pihak-Pihak yang Melakukan Testing

·         The programmer

·         Tim tester

·         Beta tester

·         Kostumer

·         Maintainer

·         Dll

 

Tahap-Tahap Testing

·         Unit Testing

Tidak ada standar untuk sesuatu yang dinamakan dengan unit :

A.  Unit testing mengecek kohesi tunggal antara prosedur atau fungsi dengan prosedur atau fungsi yang lain.

B.     Bagian terkecil dari program ditesting dan di compile.

C.     Sebuah fungsi yang dapat ditulis dalam suatu waktu tertentu

·         Integration Testing

Integration testing adalah proses mengecek masing – masing unit apakah tetap bekerja dengan baik ketika diintergrasikan.

·         System Testing

A.  Pada system testing, pengecekan terhadap apakah tetap bekerja dengan baik pada kondisi normal.

B.  Pengecek juga mengecek performance dari sistem, dengan kondisi tidak normal misalnya dengan cara memasukan jumlah data input yang besar.

C.  Pengecek juga mengecek apakah sistem akan menampilkan pesan yang benar ketika sebuah error terjadi.

D.   Pengecek juga mengecek keamanan dari sistem.

 

Bagian-Bagian yang Dilakukan Testing

·         Bagian Statment / Statment Coverage

·         Bagian Percabangan / Branch Coverage

·         Bagian Kondisi / Condition Coverage

 

Testing Tools

Testing bervolume besar biasanya membutuhkan penggunaan tool-tool otomatis, JACOBSON menyarankan bahwa 75% dari test lebih baik dilakukan secara otomatis dari pada dilakukan secara manual. Kemampuan dari tools otomasi sistem:

·      Merekam aksi mouse dan keyboard untuk memungkinkan pengulangan pemutaran kembali

·         Jalankan test script secara berulang-ulang

·         Memungkinkan untuk merekam hasil test

·         Merekam hasil test

·         Merekam run time error

·         Membuat dan mengatur regression test

·         Menghasilkan test report

·         Menghasilkan test data

·         Merekam penggunaan memory

·         Mengatur / mengelola test case

·         Analisa keseluruhan

Sabtu, 25 April 2020

Finite State Automata & Non Finite State Automata

A.    Penerapan Finite State Automata (FSA)

·         Model matematika suatu sistem yang menerima input dan output diskrit
·         Mesin automata dari bahasa Regular.
·      Tidak memiliki tempat penyimpanan sehingga kemampuan mengingat terbatas (contoh:   elevator/lift).
·         Aplikatif -berguna untuk merancang sistem nyata.
·      Aplikasi meliputi : analisis leksikal, text-editor, protokol komunikasi jaringan (kermit) dan parity checker (pengecek parity).

Finite State Machine dapat berupa suatu mesin yang tidak memiliki output. Finite State Machine yang tidak mengeluarkan output ini dikenal sebagai Finite State Automata (FSA).

Pada FSA mesin mula-mula dalam state S0 dan menerima sederatan masukan yang dapat mengubahnya ke state-state berikutnya. Dalam FSA juga dikenal himpunan state-state tertentu yang disebut sabagai FINAL STATE. Perubahan dari satu state ke state berikutnya mengikuti aturan tertentu yang dirumuskan sebagai suatu FUNGSI transisi M.

Secara formal FSA dapat didefinisikan sebagai TUPLE-5 : (K, Vt, M, S, Z)
Dimana:
K         : Himpunan hingga state,
Vt        : Himpunan hingga simbol input (alfabet)
M       : Fungsi transisi, menggambarkan transisi state AH akibat pembacaan simbol input. (Fungsi transisi ini biasanya diberikan dalam bentuk tabel.)
S Î K : State awal
Z Í K : Himpunan state penerima / himpunan state akhir

Ada dua jenis Finite State Automata :
·      Deterministic Finite Automata (DFA) : Transisi state AH akibat pembacaan sebuah simbol bersifat tertentu. “Jika pada setiap state dari FSA tersebut apabila menerima input  sebuah simbol maka HANYA ada SATU NEXT STATE yang mungkin dituju.”
M (DFA) : K ´ Vt ® K
·      Non Deterministik Finite Automata (NDFA) : transisi stata AH akibat pembacaan sebuah simbolbersifat tak tentu. “Jika FSA tersebut menerima input simbol maka minimal ada satu state yang akan berpindah ke LEBIH DARI SATU NEXT STATE yang mungkin dituju.”
M (AHN) : K ´ Vt ® 2^K

Contoh FSA :
Buatlah diagram transisi dari FSA yang didefinisikan sebagai :
M         = (K, Vt, M, S, Z) dimana :
S          = {S0, S1, S2, S3}
Vt        = { 0,1 }
K         = {S0, S3}

Dengan fungsi transisi M ada pada tabel transisi sebagai berikut :


Diagram Transisi


FSA Sebagai Pengenal String

Mesin FSA tersebut jika menerima masukan sederetan simbol dari simbol-simbol yang diijinkan maka akan menuju suatu state tertentu. Jika state akhir yang ditempuh setelah suatu FSA menerima sederetan simbol adalah state FINAL, maka deretan simbol (string) tersebut dikatakan DIKENALI oleh FSA, atau dengan kata lain FSA mengenali string tersebut. String yang dikenali oleh FSA merupakan suatu BAHASA yang dikenali oleh FSA tersebut. Jika dimiliki FSA M maka bahasa yang dikenali oleh FSA dinotasikan sebagai :
L (M) = { x | x semua string yang mengantar M dari S0 ke (Si Î Z) }

Untuk mesin FSA pada contoh :
L (M) = { 0* , 0*(10)0* , 0*(110,111)0* }

Contoh :
Tentukan bahasa L (M) yang dikenali oleh Mesin M berikut ini :


Jawab:
Dari diagram terlihat bahwa final-state adalah S3. Pergerakan state yang mengantar ke final-state adalah S0 → S1 → S2 → S3 yakni string : 011 atau string 111 yang dapat ditulis sebagai (0,1)11.

Pergerakan yang lain adalah dari S0 langsung ke S2 yaitu :
S0 → S2 → S3  yang dilakukan melalui string : 01 Setelah berada pada final state masih ada pergerakan yang bersifat rekursif pada S3 yaitu apabila diberikan masukan 0,00,000,… atau : 0*.

Dengan demikian jika seluruh string tersebut digabungkan akan menjadi : (0,1)110*U 010*, sehingga bahasa yang dikenali adalah:
L (M) = {(0,1)110*U010*} = {((0,1)11U01)0*}

B.     Deterministic Finite Automata

Berikut ini sebuah contoh DFA F (K, Vt, M, S, Z), dimana :
K         = {q0, q1, q2}
Vt        = {a, b}
S          = q0
Z          = {q0, q1}

M diberikan dalam tabel berikut :

Ilustrasi graf untuk DFA F adalahsebagai berikut :
·         Lambang state awal adalah node dengan anak panah.
·         Lambang state awal adalah node ganda.


Telusurilah, apakah kalimat-kalimat berikut diterima DFA : abababaa, aaaabab, aaabbaba.
Jawab:
M (q0,abababaa)          Þ M (q0,bababaa) Þ M (q1,ababaa) ÞM (q0,babaa)
Þ M (q1,abaa) Þ M (q0,baa) Þ M (q1,aa) Þ M(q0,a) Þ q0
Tracing berakhir di q0 (state penerima) Þ kalimat abababaa diterima
M (q0,aaaabab)            Þ M (q0,aaabab) Þ M (q0,aabab) Þ M (q0,abab)
Þ M (q0,bab) Þ M (q1,ab) Þ M (q0,b) Þ q1
Tracing berakhir di q1(state penerima) kalimat aaaababa diterima
M (q0,aaabbaba)          Þ M (q0,aabbaba) Þ M (q0,abbaba) Þ M (q0,bbaba)
Þ M (q1,bbaba) Þ M (q2,baba) Þ M (q2,aba) Þ M (q2,ba)
Þ M (q2,a) Þ q2
Tracing berakhir di q2 (bukan state penerima) Þ kalimat aaabbaba ditolak
Kesimpulan : sebuah kalimat diterima oleh DFA jika tracingnya berakhir di salah satu state penerima.

C.    Ekuivalen Antar DFA

Dua buah DFA dikatakan equivalen jika keduanya dapat menerima bahasa yang sama. Misalkan kedua DFA tersebut adalah A dan A’. Misalkan pula bahasa yang diterima adalah bahasa L yang dibangun oleh alfabet Vt = {a1, a2, a3, ..., an}. Berikut ini algoritma untuk menguji equivalensi dua buah DFA.
1.   Berikan nama kepada semua stata masing-masing DFA dengan nama berbeda. Misalkan nama-nama tersebut adalah : S, A1, A2, ... untuk DFA A, dan : S’, A1’, A2’, ... untuk DFA A’.
2.  Buat tabel (n+1) kolom, yaitu kolom-kolom : (v, v’), (va1,va1’), ..., (vna, vna’), yaitu pasangan terurut (state DFA A, state DFA A’).
3.   Isikan (S, S’) pada baris pertama kolom (v, v’), dimana S dan S’ masing-masing adalah stata awal masing-masing DFA.
4.     Jika terdapat edge dari S ke A1 dengan label a1 dan jika terdapat edge dari S’ ke A1’ juga denganlabel a1, isikan pasangan terurut (A1, A1’) sebagai pada baris pertama kolom (va1,va1’) Lakukan hal yang sama untuk kolom-kolom berikutnya.
5.   Perhatikan nilai-nilai pasangan terurut pada baris pertama. Jika terdapat nilai pasangan terurut pada kolom (va1,va1’) s/d (vna, vna’) yang tidak sama dengan nilai pasangan terurut (v, v’), tempatkan nilai tersebut pada kolom (v, v’) baris-baris berikutnya. Lakukan hal yang sama seperti yang dilakukan pada langkah (4). Lanjutkan dengan langkah (5).
6.     Jika selama proses di atas dihasilkan sebuah nilai pada kolom (v, v’), dengan komponen v merupakan stata penerima sedangkan komponen v’ bukan, atau sebaliknya, maka kedua DFA tersebut tidak ekuivalen. Proses dihentikan.
7.   Jika kondisi (6) tidak dipenuhi dan jika tidak ada lagi pasangan terurut baru yang harus ditempatkan pada kolom (v, v’) maka proses dihentikan dan kedua DFA tersebut ekuivalen.

Contoh :
Periksalah ekuivalensi kedua DFA berikut :


Jawab : Dengan menggunakan menggunakan algoritma di atasmaka dapat dibentuk tabel berikut,


Keterangan:
·         (2, 5) adalahpasangan terurut baru
·         (3, 6) adalahpasangan terurut baru
·         (2, 7) adalahpasangan terurut baru
·         Tidak ada lagipasangan terurut baru

D.    Non Deterministic Finite Automata

Berikut ini sebuah contoh DFA F (K, Vt, M, S, Z), dimana :
K         = {q0, q1, q2, q3, q4, q5}
Vt        = {a, b, c}
S          = q0
Z          = {q4}

M diberikan dalam tabel berikut :


Ilustrasi graf untuk NFA F adalah sebagai berikut:


Fungsi transisi M sebuah NFA dapat diperluas sebagai berikut :
·         M (q, ε) = {q} untuk setiap q Î K
·         M (q, t T) = È M (pi, T) dimana t ÎVt, T adalah Vt*, dan M (q, t) = {pi}
·         M ({q1, q2, ..., qn} , x) = È M (qi, x), untuk x Î Vt*

Sebuah kalimat diterima NFA jika:
salah satu tracing-nya berakhir di stata penerima, atau himpunan stata setelah membaca string tersebut mengandung state penerima.

Contoh :
Telusurilah, apakah kalimat-kalimat berikut diterima NFA : ab, aabc, aabb

Jawab :
M (q0, ab)       Þ M (q0, b) È M (q1, b) Þ {q0, q2} È {q1} = {q0, q1, q2}
Himpunan state tidak mengandung state penerima Þ kalimat ab tidak diterima
M (q0, aabc)    Þ M (q0, abc) È M (q1, abc)
Þ {M (q0, bc) È M (q1, bc)} È M (q1, bc)
Þ {{M (q0, c) È M (q2, c)} È M (q1, c)} È M (q1, c)
Þ {{{q0, q3} È {q2}} È {q1}} È {q1} = {q0, q1, q2, q3}
Himpunan state tidak mengandung state penerima Þ kalimat aabc tidak diterima
M (q0, aabb)    Þ M (q0, abb) È M (q1, abb)
Þ {M (q0, bb) È M(q1, bb)} È M (q1, bb)
Þ {{M (q0, b) È M (q2,b)} È M (q1, b)} È M (q1, b)
Þ {{{q0, q2} È {q2, q4}} È {q1}} È {q1} = {q0, q1, q2, q4}
Himpunan state tidak mengandung state penerima Þ kalimat aabb diterima

NFA dengan Transisi Hampa

Perhatikan NFA berikut :


NFA di atas mengandung ruas dengan bobot ε. NFA demikian dinamakan NFA dengan transisi ε, atau singkatnya NFA- ε. NFA- ε diatas menerima bahasa L = {1^i 0^j | i, j ≥ 0}

E.     Reduksi Jumlah State pada FSA

·     Reduksi dilakukan untuk mengurangi jumlah state tanpa mengurangi kemampuan untuk menerima suatu bahasa seperti semula (efisiensi).
·       Statepada FSA dapat direduksi apabila terdapat useless state.
·       Hasil dari FSA yang direduksi merupakan ekivalensi dari FSA semula.

Pasangan State dapat dikelompokkan berdasarkan:
·       Distinguishable State (dapat dibedakan) Dua state p dan q dari suatu DFA dikatakan indistinguishable apabila:
      δ (q, w) Î F dan  δ (p, w) Î F   atau   δ (q, w) F dan  δ (p,w) F untuk semua w Î S*
·     Indistinguishable State (tidak dapat dibedakan) Dua state p dan q dari suatu DFA dikatakan distinguishable jika ada string w Î S* hingga:
      δ (q,w) Î F dan  δ (p,w) F

Relasi

Pasangan dua buah state memiliki salah satu kemungkinan distinguishable atau indistinguishable tetapi tidak kedua-duanya. Dalam hal ini terdapat sebuah relasi :
Jika p dan q   indistinguishable,
Dan q  dan r   indistinguishable
Maka p,  r  indistinguishable dan p, q, r indistinguishable

Dalam melakukan eveluasi state, didefinisikan suatu relasi :
Untuk Q yg merupakan himpunan semua state
·         D  adalah  himpunan state-state distinguishable,  dimana D Ì Q
·         N  adalah himpunan state-state indistinguishable, dimana N Ì Q
·         maka  x Î N  jika  x Î Q  dan x  ∉  D

Step

·        Hapuslah semua state yang tidak dapat dicapai dari state awal (useless state).
·      Buatlah semua pasangan state (p, q) yang distinguishable, dimana p Î F dan q Ï F. Catat semua pasangan-pasangan state tersebut.
·      Cari state lain yang distinguishable dengan aturan : “Untuk semua (p, q)  dan semua a Î ∑, hitunglah δ (p, a) = pa dan δ (q, a) = qa. Jika pasangan (pa, qa) adalah pasangan state yang distinguishable maka pasangan (p, q) juga termasuk pasangan yang distinguishable.
·       Semua pasangan state yang tidak termasuk sebagai state yang distinguishable  merupakan state-state indistinguishable.
·       Beberapa state yang indistinguishable dapat digabungkan menjadi satu state.
·       Sesuaikan transisi dari state-state gabungan tersebut.

Contoh :


·    State q5 tidak dapat dicapai dari state awal dengan jalan apapun (useless state).  Hapus state q5
·       Catat state-state distinguishable, yaitu :
     q4 Î F sedang q0, q1, q2, q3 Ï F sehingga pasangan (q0, q4) (q1, q4) (q2, q4) dan (q3, q4) adalah distinguishable.
·     Pasangan-pasangan state lain yang distinguishable diturunkan berdasarkan pasangan dari langkah 2, yaitu :
1.      Untuk pasangan (q0, q1)
       δ (q0, 0) = q1 dan δ (q1, 0) = q2 → belum teridentifikasi 
     δ (q0, 1) = q3 dan δ (q1, 1) = q4 → (q3, q4) distinguishable maka (q0, q1) adalah distinguishable.
2.      Untuk pasangan (q0, q2)
       δ (q0, 0) = q1 dan δ (q2, 0) = q1 → belum teridentifikasi 
     δ (q0, 1) = q3 dan   δ (q2, 1) = q4 → (q3, q4) distinguishable maka (q0, q2) adalah distinguishable.
·      Setelah diperiksa semua pasangan state maka terdapat state-state yang distinguishable :
    (q0,q1), (q0,q2), (q0,q3),  (q0,q4), (q1,q4),  (q2,q4), (q3,q4) Karena berdasarkan relasi-relasi yang ada, tidak dapat dibuktikan (q1, q2), (q1, q3) dan (q2, q3) distinguishable,  sehingga disimpulkan pasangan-pasangan state tersebut indistinguishable.
·   Karena q1 indistinguishable dengan q2,  q2 indistinguishable dengan q3, maka dapat disimpulkan q1, q2, q3 saling indistinguishable dan dapat dijadikan satu state.
·       Berdasarkan hasil diatas  maka hasil dari DFA yang direduksi menjadi:


Sumber :

Nama     : Shania Risky Agustin
NPM      : 1810631170097

Kelas      : 4C