Testing Levels
Activities of Test Engineer Test engineer is an information technology professional who is in charge of ane or more technical test activities, including : - Designing test inputs - producing test case values - running test scripts - analyzing results - reporting results
Test Manager Test manager is in charge of one or more test engineers Test managers : - set test policies and process - interact with other managers on the project - help the engineers do their work
Testing Levels on Software Activity Sumber yang dapat dijadikan untuk pengujian meliputi: - requirement dan spesifikasi - design artifacts - kode sumber
Acceptance Testing menguji software yg berkaitan dgn requirements System Testing menguji software yg berkaitan dgn architectural design Integration Testing menguji software yg berkaitan dgn architectural design Module Testing menguji software yg berkaitan dgn detail design Unit Testing menguji software yg berkaitan dgn implementation
SIAPA SAJA YANG BERHUBUNGAN DENGAN PENGUJIAN Customer, tim yang mengontrak pengembang untuk mengembangkan perangkat lunak. Pengguna, kelompok yang akan menggunakan perangkat lunak Pengembang perangkat lunak, tim yang membangun perangkat lunak Tim Pengujian perangkat lunak, tim khusus yang bertugas untuk menguji fungsi-fungsi pada perangkat lunak.
METODA PENGUJIAN PL Functional (Black Box) Structural (White Box)
Functional (Black Box) Fokus pada output yang dihasilkan dengan memberikan input dan kondisi eksekusi Membandingkan kesesuaian output dengan spesifikasi kebutuhan fungsional
STRUCTURAL (WHITE BOX) Menguji dengan memperhatikan mekanisme internal sistem Menguji untuk memastikan operasi internal berjalan sesuai spesifikasi Semua komponen diuji
UNIT TESTING Pengujian unit (komponen) secara terisolir menguji di luar program yang menggunakan unit ini. Memeriksa apakah suatu individual program unit (subprogram, object class, package, module) memiliki perilaku yang benar.
TIPE PENGUJIAN Pengujian Statis (Static Testing) Pengujian terhadap satu unit tanpa melakukan eksekusi terhadap unit tersebut Pengujian Dinamis (Dynamic Testing) Pengujian dengan mengeksekusi unit dengan menggunakan data uji.
STATIC TESTING TIPE PENGUJIAN Code Walktrough Code Inspection
Code Walktrough Kode program dan dokumentasi di- review oleh tim Fokus ada pada kode program Dipimpin oleh programmer
Code Inspection Kode program dan dokumentasi di-review oleh tim dengan suatu daftar rujukan - Definisi dan struktur data - Algoritma - Interface antar komponen - Prakiraan unjuk kerja program (penggunaan memori, kecepatan pengolahan) Fokus ada pada kode program Dipimpin oleh BUKAN programmer
Langkah-langkah Code Inspection 1.Tim reviewer bertemu untuk melakukan review awal overview kode dan tujuan 2.Masing-masing anggota tim bekerja secara individu melakukan inspeksi program dan dokumentasi mencatat fault yang ditemukan 3.Tim reviewer bertemu untuk melakukan diskusi terhadap temuan masig-masing
EQUIVALENCE PARTITIONING Membagi domain input menjadi kelompok/kelas data di mana test case akan diambil. Contoh: Program menghitung fungsi Fungsi ini mendefinisikan kelas masukan yang valid dan tidak valid
BOUNDARY VALUE Test cases dirancang untuk menguji batas domain input. Digunakan bersama dan saling melengkapi dengan equivalence partitioning.
BASIS PATH TESTING Metode yg diusulkan oleh Tom McCabe (1976). Metode ini memungkinkan perancang test case mendapatkan ukuran kekompleksan logical dari perancangan prosedural dan menggunakan ukuran ini sbg petunjuk untuk mendefinisikan basis set dari jalur pengerjaan.
Buat Flow Graph Notation Hitung Cyclomatic Complexity Ukuran yang menunjukkan kompleksitas logic suatu program V(G) = E - N + 2 E = jumlah busur pada flow graph N = jumlah simpul pada flow graph Tentukan jalur bebas (independent path) = jalur program yang merupakan satu kumpulan perintah pengolahan atau satu kondisi pengolahan Siapkan test case untuk setiap jalur bebas
Flow Graph Notation
Nodes (titik) pernyataan (atau sub program) yang akan ditinjau saat eksekusi program. Edges (anak panah) jalur alur logika program untuk menghubungkan satu pernyataan (atau sub program) dengan yang lainnya. Paths (jalur) jalur yang mungkin untuk bergerak dari satu titik ke lainnya sejalan dengan keberadaan arah anak panah.
contoh
Hitung Cyclomatic Complexity V(G) = e – n + 2 = 11 – = 6
Independent Path Path 1: A, B, C, G. Path 2: A, B, C, B, C, G. Path 3: A, B, E, F, G. Path 4: A, D, E, F, G. Path 5: A, D, F, G. Path 6: A, D, F, G,A, D, F, G
soal Program ‘Simple Subtraction’ Input (x, y) Output (x) Output (y) If x > y then DO z x – y Else z y – x EndIf Output (z)
public static int binarySearch( int key, int[] sequence ) { int bottom = 0; int top = sequence.length - 1; int mid = 0; int keyPosition = -1; while( bottom <= top && keyPosition == -1 ) { mid = ( top + bottom ) / 2; if( sequence[ mid ] == key ) { keyPosition = mid; } else { if( sequence[ mid ] < key ) { bottom = mid + 1; } else { top = mid - 1; } return keyPosition; }
a > 1 a > 4 x←x/a x ←x+1 false true false Begin End Read(a) Write(x)