Anda di halaman 1dari 9

TESTING & QA Testing merupakan proses pengecekan atau pemantapan sebuah sistem agar sesuai dengan yang diharapkan

oleh End-user. QA (Quality Assurance) digunakan untuk pengecekan terhadap keseluruhan Proses (sifatnya Subjektif), contohnya adalah dalam schema waterfall yang merupakan QA adalah keseluruhan dari Proses tersebut.

A. WHITE BOX TESTING White box testing adalah pengujian yang didasarkan pada pengecekan terhadap detail perancangan, menggunakan struktur kontrol dari desain program secara procedural untuk membagi pengujian ke dalam beberapa kasus pengujian. Secara sekilas dapat diambil kesimpulan white box testing merupakan petunjuk untuk mendapatkan program yang benar secara 100%. Pengunaan metode white box dibutuhkan, ketika debugger (pencari debug atau kesalahan) melakukan analis sistem akan memperoleh test case yang diharapkan sesuai criteria sbb : 1. Menjamin seluruh independent path di dalam modul yang dikerjakan. 2. Sekurang-kurangnya sekali. 3. Mengerjakan seluruh keputusan logical. 4. Mengerjakan seluruh loop yang sesuai dengan batasannya. 5. Mengerjakan seluruh struktur data internal yang menjamin validitas. Pengujian dengan metode ini diharapkan memperoleh test case sbb : 1. Memberikan jaminan bahwa semua jalur independen suatu modul dihunakan minimal satu kali. 2. 3. 4. Menggunakan semua keputusan logis untuk semua kondisi true atau false Mengeksekusi semua perulangan pada batasan nilai dan operasional pada setiap kondisi. Menggunakan struktur data internal untuk menjamin validitas jalur keputusan.

Terdapat beberapa persyaratan atau prosedur yang harus dipenuhi dalam pengujian program untuk menjalankan metode white box, persyaratan prosedur tersebut sbb : 1. Mendefinisikan semua alur logika 2. Membangun kasus untuk digunakan dalam pengujian 3. Mengevaluasi semua hasil pengujian 4. Melakukan pengujian secara menyeluruh Beberapa metode/ teknik pengujian white box : 1. Pengujian Basis Path Basis Path Testing memungkinkan perancang test case mendapatkan ukuran kompleks logical dari perancangan prosedural dan menggunakan ukuran ini sebagai petunjuk untuk mendefinisikan himpunan jalur yang akan diuji. Basis Path menggunakan notasi graph atau flow graph untuk menggambarkan aliran kontrolnya. Lingkaran (node), menggambarkan satu atau lebih perintah prosedural. Urutan proses dan keputusan dapat dipetakan dalam satu node. Tanda panah (edge), menggambarkan aliran kontrol. Setiap node harus mempunyai tujuan node. Region adalah daerah yang dibatasi oleh edge dan node. Termasuk daerah diluar grafik alir. 2. Pengujian Kondisi 3. Pengujian Loop Kelebihan White Box : 1. White box memiliki sifat correctness program kebenaran dalam mendefinisikan algoritma, sehingga dapat diketahui secara langsung dengan pengolahan path. 2. White box testing dapat dilakukan dengan follow up performance line coverage, dengan memberikan pihak tester list ofline code yang belum dieksekusi. 3. Dapat menentukan kualitas pekerjaan coding dan pengaruhnya untuk standar coding. Kelemahan White Box : 1. Jumlah biaya untuk white box lebih besar daripada biaya yang dibutuhkan untuk black box, untuk ukuran software yang sama.

2.

Belum mampu melakukan tes availability, reliability, load durability, dan testing-testing lain yang berhubungan dengan requirement faktor-faktor untuk operasi, revisi dan transisi.

3.

Ketika problem muncul, maka proses berhenti, karena tidak dapat menuju ke tahapan selanjutnya. Bahkan jika kemungkinan problem tersebut muncul akibat kesalahan dari tahapan sebelumnya, mka proses harus membenahi tahapan sebelumnya agar problem ini tidak muncul.

4.

Karena pendekatannya secara sequencial, maka setiap tahap harus menunggu hasil dari tahap sebelumnya. Hal itu tentu membuang waktu yang cukup lama, artinya bagian lain tidak dapat mengerjakan hal lain selain hanya menunggu hasil dari tahap sebelumnya. Oleh karena itu, seringkali model ini berlangsung lama pekerjaannya.

5.

Pada setiap tahap proses tentunya dipekerjakan sesuai spesialisasinya masing-masing. Oleh karena itu, ketika tahap tersebut sudah tidak dikerjakan, maka sumber dayanya juga tidak terpakai lagi. Oleh karena itu, seringkali pada model proses ini dibutuhkan seorang yang multitaskilled, sehingga minimal dapat membantu pengerjaan untuk tahapan berikutnya.

B. BLACK BOX TESTING Black-Box Testing merupakan pengujian yang berfokus pada spesifikasi fungsional dari perangkat lunak, tester dapat mendefinisikan kumpulan kondisi input dan melakukan pengetesan pada spesifikasi fungsional program. Kategori error yang akan diketahui melalui black box testing : a. Fungsi-fungsi yang salah atau hilang. b. Kesalahan interface. c. Kesalahan dalam struktur data atau akses database eksternal. d. Kesalahan performa. e. Kesalahan inisialisasi dan terminasi.

Ciri-ciri BlackBox Testing 1. Black box testing berfokus pada kebutuhan fungsional pada software, berdasarkan pada spesifikasi kebutuhan dari software. 2. Black box testing bukan teknik alternatif daripada white box testing. Lebih daripada itu, ia merupakan pendekatan pelengkap dalam mencakup error dengan kelas yang berbeda dari metode white box testing. 3. Black box testing melakukan pengujian tanpa pengetahuan detil struktur internal dari sistem atau komponen yang dites. juga disebut sebagai behavioral testing, specificationbased testing, input/output testing atau functional testing. Pada black box testing terdapat jenis teknik disain tes yang dapat dipilih berdasarkan pada tipe testing yang akan digunakan, yang diantaranya : 1. Equivalence Class Partitioning Merupakan metode black box testing yang membagi domain masukan dari suatu program ke dalam kelas-kelas data, dimana test cases dapat diturunkan [BCS97a]. Equivalence

partitioning berdasarkan pada premis masukan dan keluaran dari suatu komponen yang dipartisi ke dalam kelas-kelas, menurut spesifikasi dari komponen tersebut, yang akan diperlakukan sama (ekuivalen) oleh komponen tersebut. Dapat juga diasumsikan bahwa masukan yang sama akan menghasilkan respon yang sama pula. Nilai tunggal pada suatu partisi ekuivalensi diasumsikan sebagai representasi dari semua nilai dalam partisi.

Analisa partisi pada Equivalence Partitioning Black Box : Tester menyediakan suatu model komponen yang dites yang merupakan partisi dari nilai masukan dan keluaran komponen. Masukan dan keluaran dibuat dari spesifikasi dari tingkah laku komponen. Partisi adalah sekumpulan nilai, yang dipilih dengan suatu cara dimana semua nilai di dalam partisi, diharapkan untuk diperlakukan dengan cara yang sama oleh komponen (seperti mempunyai proses yang sama). Partisi untuk nilai valid dan tidak valid harus ditentukan.

Contoh Black Box Testing dengan Equivalence Partitioning : Pemeliharaan data untuk aplikasi bank yang sudah diotomatisasikan. Pemakai dapat memutar nomor telepon bank dengan menggunakan mikro komputer yang terhubung dengan password yang telah ditentukan dan diikuti dengan perintah-perintah. Data yang diterima adalah : Kode area Prefix Suffix Password Perintah : kosong atau 3 digit : 3 digit atau tidak diawali 0 atau 1 : 4 digit : 6 digit alfanumerik : check, deposit, dll

Selanjutnya kondisi input digabungkan dengan masing-masing data elemen ditentukan sebagai berikut:

dapat

Kode area : kondisi input, Boolean kode area mungkin ada atau tidak kondisi input, range nilai ditentukan antara 200 dan 999

Prefix : kondisi input range > 200 atau tidak diawali 0 atau 1 Suffix : kondisi input nilai 4 digit Password : kondisi input boolean passwordmungkin diperlukan atau tidak kondisi input nilai dengan 6 karakter string

Perintah : kondisi input set berisi perintah-perintah yang telah didefinisikan.

2.

Boundary Value Analysis Kasus pengujian adalah nilai batas pemrosesan atau sama yaitu titik-titik batasnya atau yang mendekati. Limit testing juga melibatkan output data equivalent class. Jika range [-1.0, 1.0], maka kasus uji adalah -1.0, -1.001, 1.0, 1.001

3.

Comparison Testing Pada beberapa aplikasi reliability dari sebuah perangkat lunak sangat penting. Redundansi perangkat keras dan perangkat lunak mungkin digunakan untuk meminimalisir kesalahan (error). Untuk redundansi perangkat lunak, gunakan tim yang terpisah untuk mengembangkan setiap versi perangkat lunak yang independen. Uji setiap versi dengan data yang sama untuk memastikan semua versi menghasilkan keluaran yang sama. Jalankan semua versi dengan paralel dan perbandingan keluaran secara real-time.

Walau hanya dijalankan sebuah versi pada akhirnya, untuk beberapa aplikasi yang penting dapat mengembangkan versi independen dan menggunakan comparison testing atau back-to-back testing. Ketika output dari versi berbeda, maka setiap versi diinvestigasi jika ada kemungkinan defect. Metode ini tidak untuk menemukan kesalahan dari spesifikasi.

4.

Sample and Robustness Testing Sample Testing Melibatkan beberapa nilai yang terpilih dari sebuah kelas ekivalen Mengintegrasikan nilai pada kasus uji Nilai-nilai yang terpilih mungkin dipilih dengan urutan tertentu atau interval tertentu Robustness Testing Data input dipilih diluar spesifikasi yang telah didefinisikan Tujuan dari pengujian ini adalah membuktikan bahwa tidak ada kesalahan jika masukan tidak valid

5.

Behavior Testingn dan Performance Testing Behavior Testing Hasil uji tidak dapat dievaluasi jika hanya melakukan pengujian sekali, tapi dapat dievaluasi jika pengujian dilakukan beberapa kali, misalnya pada pengujian struktur data stack Performance Testing Mengevaluasi kemampuan program untuk beroperasi dengan benar dipandang dari sisi acuan kebutuhan misalnya: aliran data, ukuran pemakaian memori, kecepatan eksekusi, dll Untuk mencari tahu beban kerja atau kondisi konfigurasi program Spesifikasi mengenai performansi didefinisikan pada saat tahap spesifikasi atau desain Dapat digunakan untuk menguji batasan lingkungan program.

6.

Requirement Testing Spesifikasi kebutuhan yang terasosiasi dengan perangkat lunak

(input/output/fungsi/performansi) diidentifikasi pada tahap spesifikasi kebutuhan dan desain. Requirement testing melibatkan pembuatan kasus uji untuk setiap spesifikasi kebutuhan yang terkait dengan program. Untuk memfasilitasinya, setiap spesifikasi kebutuhan bisa ditelusuri dengan kasus uji dengan menggunakan traceability matrix.

7.

Endurance Testing Endurance Testing melibatkan kasus uji yang diulangulang dengan jumlah tertentu dengan tujuan untuk mengevaluasi program apakah sesuai dengan spesifikasi kebutuhan. Contoh : - Untuk menguji keakuratan operasi matematika (floating point, rounding off, dll) - Untuk menguji manajemen sumber daya sistem (resources) (pembebasan sumber daya yang tidak benar, dll). input/outputs (jika menggunakan framework untuk memvalidasi bagian input dan output) Spesifikasi kebutuhan pengujian didefinisikan pada tahap spesifikasi kebutuhan atau desain.

8.

Cause-effect Relationship Testing Teknik ini merupakan suplemen dari equivalence testing dengan menyediakan cara untuk memilih kombinasi data input Melibatkan kondisi input (cause) dan kondisi output (effect) untuk mencegah pendefinisian kasus uji yang terlalu banyak. Langkah : Bagi-bagi spesifikasi kebutuhan menjadi bagian yang memiliki kemungkinan kerja

Definisikan cause dan effect berdasarkan spesifikasi kebutuhan Analisa spesifikasi kebutuhan untuk membuat hubungan logika Tandai graf untuk jalur yang tidak mungkin berhubungan dengan kombinasu cause/effect sesuai dengan batasan spesifikasi Langkah kebutuhan Ubah graf menjadi tabel keputusan kolom --> test case baris --> cause/effect Ubah kolom dari tabel keputusan menjadi kasus uji.

Kelebihan Black Box 1. Dapat memilih subset test secara efektif dan efisien. 2. Dapat menemukan cacat. 3. Memaksimalkan testing investmen. Kelemahan Black Box 1. Tester tidak pernah yakin apakah PL tersebut benar benar lulus uji.

C. UJI VALIDASI verifikasi adalah proses mengevaluasi software untuk menentukan apakah produk telah sesuai dengan tahap pengembangan mulai dari fase awal. verifikasi berbasis proses, menjawab pertanyaan Have we built the software right? validasi adalah proses mengevaluasi software selama atau pada akhir fase pengembangan untuk membandingkan apakah software telah sesuai dengan requirement. validasi berbasis produk, menjawab pertanyaan Have we built the right software?