Kamis, 14 Februari 2019

Tugas Testing & Implementasi

TESTING & IMPLEMENTASI

Hay Gaes,!!! Pada kesempatan saya akan berbagi sedikit pengetahuan tentang matakuliah testing dan implementasi,saya akan mencoba merangkum kembali apa yang menjadi hasil dari pertemuan saya dan Dosen di dalam kelas pada semester. Namun sebelum saya Berbagi tentang ilmu tersebut saya terlebih dahulu memohon maaf apa bila ada kekeliruan di dalam materi tersebut karena jujur saya juga belum terlalu paham tentang materi ini. Namun semua ini Kulakukan hanya Demi Tugas.😂😃😃 

Pertemuan 1

Proses Testing
1. Unit testing => Pengujian masing-masing unit komponen program untuk meyakinkan bahwa program sudah beroperasi secara benar.
2. Module Testing => Pengujian terhadap koleksi unit-unit komponen yang saling berhubungan.
3. Sub-sistem Testing => Pengujian terhadap koleksi modul-modul yang membentuk suatu sub-sistem.
4. Sistem Testing => Pengujian terhadap keterhubungan antar sub-sistem.
  1. Penerimaan Testing
  2. Pengujian terakhir sebelum sistem dipakai oleh user.
  3. Melibatkan pengujian dengan data dari pengguna sistem.
  4. Biasa dikenal sebagai “alpha test”.
Proses Testing
  1. Component testing
  2. Pengujian komponen-komponen program
  3. Biasanya dilakukan oleh component developer
    1. Integration testing
Pengujian kelompok komponen-komponen yang terintegrasi untuk membentuk sub-sistem ataupun system dan dilakukan oleh tim penguji yang independent.
  1. Proses testing
Deskripsi fase-fase utama dalam pengujian.
  1. Pelacakan kebutuhan
Semua kebutuhan user diuji secara individu.
  1. Item yang diuji
Menspesifikasi komponen sistem yang diuji.
  1. Jadual testing
  2. Prosedur pencatatan hasil dan prosedur
  3. Kebutuhan akan hardware dan software
  4. Kendala-kendala
Failures, Faults
  1. Failure: output yang tidak benar/tidak sesuai ketika sistem dijalankan.
  2. Fault: kesalahan dalam source code yang mungkin menimbulkan failure ketika code yang fault tersebut dijalankan.
Prioritas Testing
1.  Hanya test yang lengkap yang dapat meyakinkan sistem terbebas dari kesalahan, tetapi hal ini sangat sulit dilakukan.
2.  Prioritas dilakukan terhadap pengujian kemampuan sistem, bukan masing-masing komponennya.
3.  Pengujian untuk situasi yang tipikal lebih penting dibandingkan pengujian terhadap nilai batas.
Test Data dan Kasus Test
Test data:  Input yang direncankan digunakan oleh sistem.
Test cases: Input yang digunakan untuk menguji sistem dan memprediksi output dari input jika sistem beroperasi sesuai dengan spesifikasi.

Pertemuan 2
Integration Testing
Adalah pengujian keseluruhan sistem atau sub-sistem yang terdiri dari komponen yang terintegrasi. Beberapa pendekatan yang dilakukan yaitu :
  1. Top-down testing
Berawal dari level atas sistem dan terintegrasi dengan mengganti masing-masing komponen secara top-down dengan suatu stub (program pendek yang mengenerate input ke sub-sistem yang diuji).
  1. Bottom-up testing
Integrasi komponen dari level bawah hingga sistem lengkap sudah teruji.
Pada prakteknya, kebanyakan test integrasi menggunakan kombinasi kedua strategi pengujian tersebut.
Interface Testing
Dilakukan jika modul-modul dan sub-sistem terintegrasi dan membentuk sistem yang lebih besar. Tujuannya untuk medeteksi fault terhadap kesalahan interface atau asumsi yang tidak valid. Interface testing terdiri dari beberapa tipe, yaitu :
w Parameter interfaces
w Shared memory interfaces
w Procedural interfaces
w Message passing interfaces
Interface Errors
w Interface misuse
Komponen pemanggil memanggil komponen lainnya dan membuat suatu kesalahan dalam penggunaan interfacenya.
w Interface misunderstanding
Komponen pemanggil salah dalam mengasumsikan behaviour komponen yang dipanggil.
w Timing errors
Komponen yang memanggil dan yang dipanggil beroperasi pada kecepatan yang berbeda.
Petunjuk Melakukan Interface Testing
–      Merancang test dimana parameter ke prosedur yang dipanggil berada pada nilai batas extrim
–      Test menggunakan null pointer
–      Perancangan test sehingga komponen yang di test akan fail.
–      Menggunakan stress testing pada message passing
–      Pada shared memory systems, variasikan urutan dimana komponen diaktifkan.
Stress testing => Menguji sistem dengan nilai yang melebihi maksimum load. Stressing suatu sistem menyebabkan tidak mudah kerusakan dengan mencek kehilangan service yang tidak diduga ataupun data yang hilang.

Pertemuan 3
  • Black Box

    • Pengertian Black Box Testing
Black box testing adalah pengujian yang dilakukan hanya mengamati hasil eksekusi melalui data uji dan memeriksa fungsional dari perangkat lunak. Jadi dianalogikan seperti kita melihat suatu koatak hitam, kit hanya bisa melihat penampilan luarnya saja, tanpa tau ada apa dibalik bungkus hitam nya. Sama seperti pengujian black box, mengevaluasi hanya dari tampilan luarnya(interface nya) , fungsionalitasnya.tanpa mengetahui apa sesungguhnya yang terjadi dalam proses detilnya (hanya mengetahui input dan output).
    • Kelebihan Black Box
                     - Dapat memilih subset test secara efektif dan efisien

                     - Dapat menemukan cacat

                      - Memaksimalkan testing investmen
    • Kelemahan  Black Box
                       - Tester tidak pernah yakin apakah PL tersebut benar – benar lulus uji.


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        : kosong atau 3 digit
-        Prefix               : 3 digit atau tidak diawali 0 atau 1
-        Suffix              : 4 digit
-        Password         : 6 digit alfanumerik
-        Perintah           : check, deposit, dll


Selanjutnya kondisi input digabungkan dengan masing-masing data elemen  dapat ditentukan sebagai berikut:
  • 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.

Pertemuan 4
  • White Box
    • Pengertian 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%.
Pengujian white box: 
  • Untuk mengetahui cara kerja suatu perangkat lunak secara internal.
  • Untuk menjamin operasi-operasi internal sesuai dengan spesifikasi yang telah ditetapkan dengan menggunakan struktur kendali dari prosedur yang dirancang.
Pelaksanaan pengujian white box:
  • Menjamim seluruh independent path dieksekusi paling sedikit satu kali. Independent path adalah jalur dalam program yang menunjukkan paling sedikit satu kumpulan proses ataupun kondisi baru.
  • Menjalani logical decision pada sisi dan false.
  • Mengeksekusi pengulangan (looping) dalam batas-batas yang ditentukan.
  • Menguji struktur data internal.
Berdasarkan konsep pengujian; White box (structural) testing / glass box testing : memeriksa
kalkulasi internal path untuk mengidentifikasi kesalahan.


Langkah-langkah white box:

- Mendefinisikan semua alur logika

- Membangun kasus untuk digunakan dalam pengujian

- Melakukan pengujian.


    • Kelebihan White Box Testing
                      - Kesalahan logika. Digunakan pada sintaks ‘if’ dan pengulangan. Dimana White Box Testing akan mendeteksi kondisi-kondisi yang tidak sesuai dan mendeteksi kapan proses pengulangan akan berhenti.
                      - Ketidaksesuaian asumsi. Menampilkan asumsi yang tidak sesuai dengan kenyataan, untuk di analisa dan diperbaiki.
                      - Kesalahan ketik. Mendeteksi bahasa pemrograman yang bersifat case sensitive.
    • Kelemahan White Box Testing
                      - Untuk perangkat lunak yang tergolong besar, White Box Testing dianggap sebagai strategi yang tergolong boros, karena akan melibatkan sumber daya yang besar untuk melakukannya

 Pertemuan 5
Prinsip Pemilihan Bahasa Pemrograman
Memiliki sintaks yang jelas
Memiliki semantik yang jelas
Precedence operator dalam expresi mudah dimengerti
Modular dan Information hiding
  • § Model Integrasi sub-modul yang dapat di-link oleh beberapa sub-modul lain secara independent.
  • § Setiap sub-modul yang di-link tersebut menjadikan suatu model abstraksi untuk information hiding.
  • Ø Abstraksi
Tersedia fasilitas untuk mendefinisikan tipe data baru sbg abstraksi data, maupun abstraksi algoritma.
  • Ø Orthogonal
Hanya ada satu cara dalam mengekspresikan suatu action, tidak bergantung tehadap komponen lain (tipe data composite dan return function sesuai tipe data yang diinginkan).
  • Ø Portability
Dapat diinstal proses kompilasi pada beberapa jenis mesin dan OS.
  • Ø Structure
  • Control flow
  • Name scope (bagaimana menggunakan referensi variable) -> pointer
  • Typing (static, dynamic)
    • Ø Compiler dapat mendeteksi error melalui check yang konsisten.
    • Ø Efisiensi
    • Ø Seragam dalam penggunaan statement
    • Ø Dapat mengantisipasi kondisi exception
    • Ø Mampu menangani proses yang concurrent (bersamaan) -> multithread, parallel processing
Kategori Aplikasi
w Paradigma pemrosesan data
w Paradigma komputasi numerik
w Paradigma berorientasi proses
w Paradigma system-programming
w Paradigma proses auto-adaptive


 Pertemuan 6
Pengujian Aplikasi Server
Volume Testing
  • Ø Menemukan kelemahan sistem selama melakukan pemrosesan data dalam jumlah yang besar dalam periode waktu yang singkat.
  • Ø Tujuan: meyakinkan bahwa sistem tetap melakukan pemrosesan data antar batasan fisik dan batasan logik.
Stress Testing
  • Ø Tujuan:mengetahui kemampuan sistem dalam melakukan transaksi selama periode waktu puncak proses.
Performance Testing
  • Ø Dilakukan secara paralel dengan Volume dan Stress testing untuk mengetahui unjuk kerja sistem (waktu respon, throughput rate) pada beberapa kondisi proses dan konfigurasi.
Data Recovery Testing
  • Ø Investigasi akan dampak kehilangan data melalui proses recovery ketika terjadi kegagalan proses.
Data Backup and Restore Testing
  • Ø Dilakukan untuk melihat prosedur back-up dan recovery.
  • Ø Dilakukan dengan mensimulasikan beberapa kesalahan untuk menguji proses backup dan recovery.
Data Security Testing
  • Ø Privilege access terhadap database diujikan pada beberapa user yang tidak memiliki privilege access ke database.
  • Ø Shutdown database engine melalui operating system (dengan beberapa perintah OS) yang dapat mematikan aplikasi database.
Test Case
w Untuk White-box testing
n  Pengujian struktur logik internal
n  Perintah spesifik yang diujikan:
w  SELECT
w  OPEN/CLOSE
w  COPY-REPLACE
w  IF statement
w  REPEAT UNTIL – DO-WHILE LOOP
w  CALL
w Untuk Black-box testing
n  Pengujian fungsional sistem berdasarkan input – output
n  Membagi input – output ke dalam beberapa kelas (kelas ekuivalensi pada boundary input).
n  Menggunakan input yang tidak sesuai spesifikasi (negatif, di luar range)
Kegiatan Implementasi System
w Menyiapkan Rencana Implementasi
Rencana Functional Test
Rencana Data Conversion
Rencana System Cutover
Rencana Training User
w Membuat dan Test Networks
w Install Hardware
w Membuat Database Structures Production dan Test Databases


Pertemuan 7
Sistem Acceptance Test
l Bertujuan untuk menguji apakah sistem sudah sesuai dengan apa yang tertuang dalam spesifikasi fungisonal sistem (validation),
l Terdiri dari dua tahapan: Sebelum pengiriman dan setelah instalasi,
l Melibatkan semua aspek sistem: hardware, software aplikasi, environment software, tempat, dan operators.
Test dokumentasi terdiri dari tujuh bagian, diantaranya :
  1. 1.  Test Filosofi
Untuk meyakinkan bahwa sistem sudah memiliki:
–     Keamanan dan keselamatan dalam operasional,
–     Kehandalan,
–     Dapat dirawat secara cost-effective,
–     Dapat dimodifikasi untuk menyesuaikan dengan perubahan kebutuhan operasional.
  1. 2.    Test Plan
Merupakan dokumentasi yang menjelaskan jadwal untuk pre-delivery dan site acceptance test.
Jadwal test: urutan Test yang menyatakan kaitan antara test satu dengan yang lainnya dan masing-masing test tersebut sesuai dengan salah satu kebutuhan user.
  1. 3.    Spesifikasi Test
Setiap test yang akan dilakukan harus dispesifikasikan secara detail oleh pengembang dan disetujui oleh user. Spesfikasi tersebut terdiri dari:
–      Judul dan referensi tunggal
–      Tujuan yang secara spesifik sesuai dengan Functional Requirement
–      Lokasi pengujian
–      Syarat Pengujian: mis.: nilai marginal input, supplies, dan lingkungan yang digunakan
–      Konfiguasi Test: versi dan isu hardware, software, test dan bantuan simulasi
–     Spesifikasi input dan output
–     Detail prosedur operasional pengujian
–     Hasil yang dinginkan dan batasan untuk penerimaan
–     Format untuk merekam hasil, details kesalahan dan instruksi untuk melakukan test ulang, perekaman terhadap retensi dan analisis
  1. 4.    Pre-Delivery Test
Dilakukan melalui simulasi terhadap tempat yang implementasi sistem. Syarat utk memulai pengujian: konfiramsi terhadap kebenaran data, dokumen, software aplikasi dan test khusus atau software simulasi, dan ketersediaan lingkungan yang sesuai, pelayanan dan personal yang cocok,
  1. 5.    Test Log
Log semua operasi dan kejadian selama test (yang terencana maupun tidak) termasuk full detail insiden, error, failure, retest, restart.
  1. 6.    Test Summary
lsiting semua kegagalan test (termasuk pengulangan), kejadian yang tidak dapat dijelaskan dan non-conformances terhadap Functional test.
  1. 7.    Site Acceptance Test
Semua pengujian pada pre-delivery sudah dilakukan dan diterima. Hal tambahan yang dilakukan :
–      Delivery check: pengecekan terhadap kerusakan HW, SW dan dokumnetasi selama pengiriman,
–      Test Hardware: tidak terdapat kerusakan selama pengimpanan dan pengiriman, sudah install dengan baik, beroperasi dengan baik di lingkungan tempat yang akan diinstal (listrik, ruangan, dll).
–      Modifikasi pre-delivery test: semua modifikasi sebagai konsekuensi dari masalah yang akan muncul selama pre-delivery test harus dijadikan sebagai test tambahan.
–     Pengujian terhadap semua peralatan.


Pertemuan 8
Automated test execution: meminimalkan jumlah kerja manual pada saat pengujiaan sehingga memperoleh nilai coverage yang lebih tinggi. Code coverage adalah metrik yang numerik yang mengukur elemen code (brach, statement, path dan data) yang sudah diujikan. Penggunaan tool pengujian code coverage dapat membantu mempercepat proses pengujian
Use case adalah visualisasi keinginan user yang dibuat dalam bentuk UML(Unified Modeling Language). Dalam pembentukan sebuah test case didasarkan oleh dua hal, yaitu basic flow (sistem berjalan dengan normal) dan alternate flow (alternatif jalannya sistem).
Contoh :
  • Flow Normal : Logon -> Select “Create Schedule” -> Obtain Course Information -> Select Course -> Submit Schedule -> Display Completed Course.
  • Alternate Flow: Unidentified Student; Quit at anytime; Unfulfilled Prerequisite, Course Full,  Schedule Conflict; Course Catalog Unavailable; Course Registration is Closed.
Proses yang dilakukan dalam pembuatan test case sebagai berikut :
  1. Generate Scenarios
  2. Identify Test Cases
  3. Identify Data Values to Test


Pertemuan 9
Penyebab error dalam software berbeda dengan hardware.
–      Hardware (manufacture, rusak/terlalu lama dipergunakan)
–      Software : tidak mendapatkan requirement yang benar; tidak mendapatkan requirement dengan benar, tidak menerjemahkan requirement dalam suatu cara yang jelas sehingga tidak dapat dipahami oleh programmer.
Maintainable Design
  • Kunci untuk mengurangi kebutuhan maintenance adalah:
  • Menetapkan user requirement lebih akurat selama sistem development
  • Menyusun dokumentasi sistem yang lebih baik
  • Menggunakan metoda yang lebih efektif untuk mendesign pemrosesan logic dan mengkomunikasikannya ke anggota project team
  • Penggunaan tool dan teknik secara lebih baik
  • Mengelola proses engineering system dengan efektif
Program Structure Charts
–      Design yang di strukturkan dengan baik akan meningkatkan maintainability system.
–      Struktur chart dikembangkan secara top down dan modular.
–      Hubungan antar modul bersifat terbatas dan interaksi datanya minimal, sehingga meningkatkan kualitas sistem dan mempermudah maintenance.
–      Tujuan struktur charts untuk identifikasi data yang dilewatkan antar masing-masing module yang saling berinteraksi.
Tingkat Testing
1. Unit testing:
–      Unit program adalah modules atau rutin yang digabung untuk melaksanakan fungsi tertentu.
–      Unit testing fokus pada masing-masing modul dan dilakukan secara independen untuk menemukan error.
  • Bottom Up testing: dimulai dari modul yang paling rendah dan paling kecil dan menuju ke modul yang lebih besar
  • Top Down testing: dimulai dari modul yang lebih tinggi dan turun ke modul yang lebih rendah
2.  System Testing
–      Pengujian atas integrasi setiap modul dalam sistem



–      Tujuan: menemukan kelemahan sistem dari sisi objektif, spesifikasi dan dokumentasi, termasuk kompatibilitas masing-masing modul.