Wednesday, February 13, 2019

Rangkuman Materi Testing dan Implementasi

Rangkuman Materi Testing & Implementasi 

Rangkuman 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
  4. Integration testing
Pengujian kelompok komponen-komponen yang terintegrasi untuk membentuk sub-sistem ataupun system dan dilakukan oleh tim penguji yang independent.

  • Proses testing

Deskripsi fase-fase utama dalam pengujian.

  • Pelacakan kebutuhan

Semua kebutuhan user diuji secara individu.

  • Item yang diuji
Menspesifikasi komponen sistem yang diuji.
  1. Jadwal 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.

    Rangkuman Pertemuan 2

    Integration Testing

    Adalah pengujian keseluruhan sistem atau sub-sistem yang terdiri dari komponen yang terintegrasi. Beberapa pendekatan yang dilakukan yaitu :

    • 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).

    • 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 :

    • Parameter interfaces
    • Shared memory interfaces
    • Procedural interfaces
    • Message passing interfaces
    Interface Errors

    • Interface misuse
    Komponen pemanggil memanggil komponen lainnya dan membuat suatu kesalahan dalam penggunaan interfacenya.

    • Interface misunderstanding
    Komponen pemanggil salah dalam mengasumsikan behaviour komponen yang dipanggil.

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

    Rangkuman Pertemuan 3

    Object-oriented testing => Lebih besar dibandingkan pengujian sebuah function sehingga pendekatan  white-box testing perlu diperluas. Komponen yang diuji adalah class object yang di instantiate ke object.

    Testing Levels


    • Testing operations pada objects
    • Testing object classes
    • Testing clusters cooperating objects
    • Testing OO system secara lengkap
    Pengujian Class => Menguji terhadap semua operation yang ada dan perubahan atribut-atributnya.

    Object Class Testing

    Complete test yang menguji class melibatkan

    • Testing semua operations suatu object
    • Setting dan interrogating semua attribute object
    • Menguji object untuk semua keadaan yang mungkin
    Inheritance akan mengakibatkan sulitnya perancangan object class tests seperti information yang diuji sulit dilokalisasi.

    Cluster Testing

    • Cluster testing digunakan untuk test integrasi and testing clusters terhadap cooperating objects.
    • Identifikasi clusters menggunakan knowledge operation objects dan system features yang diimplementasikan oleh cluster tersebut


    Rangkuman Pertemuan 4

    Scenario-based Testing
    • Identifikasi skenario dari use-cases dan menambahkannya dengan diagram interaksi yang menunjukkan object-object yang terlibat  dalam scenario.
    • Lihat contoh scenario berikut ini pada sistem weather station ketika suatu report dibuat.

    Testing Workbenches
    • Testing merupakan suatu proses yang cukup mahal. Testing workbenches menyediakan tool-tool untuk mereduksi waktu yang dibutuhkan dan total cost pengujian.
    • Kebanyakan testing workbenches merupakan open systems karena kebutuhan testing tergantung dari spesifikasi organisasi.

    Testing Workbench Adaptation
    • Scripts dibuat untuk user interface simulator dan model test data generator.
    • Test outputs harus disiapkan secara manual sebagai pembanding.
    • Special-purpose file comparators harus dibuat.


    Rangkuman Pertemuan 5

    Prinsip Pemilihan Bahasa Pemrograman
    Memiliki sintaks yang jelas
    Memiliki semantik yang jelas
    Precedence operator dalam expresi mudah dimengerti
    Modular dan Information hiding
    1. Model Integrasi sub-modul yang dapat di-link oleh beberapa sub-modul lain secara independent.
    2. 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

    1. Control flow
    2. Name scope (bagaimana menggunakan referensi variable) -> pointer
    3. 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
    • Paradigma pemrosesan data
    • Paradigma komputasi numerik
    • Paradigma berorientasi proses
    • Paradigma system-programming
    • Paradigma proses auto-adaptive


    Rangkuman 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
    • Untuk White-box testing


    Pengujian struktur logik internal
    Perintah spesifik yang diujikan:
      1. SELECT
      2. OPEN/CLOSE
      3. COPY-REPLACE
      4. IF statement
      5. REPEAT UNTIL – DO-WHILE LOOP
      6. CALL
    • Untuk Black-box testing

      1. Pengujian fungsional sistem berdasarkan input – output
      2. Membagi input – output ke dalam beberapa kelas (kelas ekuivalensi pada boundary input).
      3. Menggunakan input yang tidak sesuai spesifikasi (negatif, di luar range)

    Kegiatan Implementasi System
    • Menyiapkan Rencana Implementasi

      1. Rencana Functional Test
      2. Rencana Data Conversion
      3. Rencana System Cutover
      4. Rencana Training User

    • Membuat dan Test Networks
    • Install Hardware
    • Membuat Database Structures Production dan Test Databases


    Rangkuman Pertemuan 7

    Sistem Acceptance Test
    Bertujuan untuk menguji apakah sistem sudah sesuai dengan apa yang tertuang dalam spesifikasi fungisonal sistem (validation),
    Terdiri dari dua tahapan: Sebelum pengiriman dan setelah instalasi,
    Melibatkan semua aspek sistem: hardware, software aplikasi, environment software, tempat, dan operators.
    Test dokumentasi terdiri dari tujuh bagian, diantaranya :
    • Test Filosofi

    Untuk meyakinkan bahwa sistem sudah memiliki:
      1. Keamanan dan keselamatan dalam operasional,
      2. Kehandalan,
      3. Dapat dirawat secara cost-effective,
      4. Dapat dimodifikasi untuk menyesuaikan dengan perubahan kebutuhan operasional.

    • 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.
    • Spesifikasi Test

    Setiap test yang akan dilakukan harus dispesifikasikan secara detail oleh pengembang dan disetujui oleh user. Spesfikasi tersebut terdiri dari:
      1. Judul dan referensi tunggal
      2. Tujuan yang secara spesifik sesuai dengan Functional Requirement
      3. Lokasi pengujian
      4. Syarat Pengujian: mis.: nilai marginal input, supplies, dan lingkungan yang digunakan
      5. Konfiguasi Test: versi dan isu hardware, software, test dan bantuan simulasi
      6. Spesifikasi input dan output
      7. Detail prosedur operasional pengujian
      8. Hasil yang dinginkan dan batasan untuk penerimaan
      9. Format untuk merekam hasil, details kesalahan dan instruksi untuk melakukan test ulang, perekaman terhadap retensi dan analisis

    • 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,

    • Test Log

    Log semua operasi dan kejadian selama test (yang terencana maupun tidak) termasuk full detail insiden, error, failure, retest, restart.
    • Test Summary

    lsiting semua kegagalan test (termasuk pengulangan), kejadian yang tidak dapat dijelaskan dan non-conformances terhadap Functional test.

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


    Rangkuman 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


    Rangkuman Pertemuan 9

    System Construction/Implementation
    1. Memverifikasi bahwa pondasi telah diletakkan sehingga konstruksi dapat berjalan dengan sukses
    2. Merancang dan menulis rutinitas dan modul
    3. Membuat tipe data dan variabel penamaan
    4. Memilih struktur kontrol dan mengatur blok pernyataan
    5. Menemukan dan memperbaiki kesalahan
    6. Meninjau desain dan kode tingkat rendah anggota tim lainnya dan meminta mereka untuk meninjau Anda
    7. Memoles kode dengan memformat dan berkomentar dengan hati-hati
    8. Mengintegrasikan komponen perangkat lunak yang telah dibangun secara terpisah
    9. Kode tuning untuk membuatnya lebih kecil dan lebih cepat
    Software Metaphors/Style of Programming
      1. Tulisan tangan Perangkat Lunak: Kode Penulisan
      2. Pertanian Perangkat Lunak: Menumbuhkan Sistem
      3. Perangkat Lunak Pertanian Tiram: Akresi Sistem
      4. Konstruksi Perangkat Lunak: Perangkat Lunak Bangunan
      PDL (Program Design Language)
      • Gunakan pernyataan seperti bahasa Inggris yang secara tepat menggambarkan operasi tertentu
      • Hindari elemen sintaksis dari bahasa pemrograman target
      • Tulis PDL pada tingkat niat
      • Tulis PDL pada level yang cukup rendah sehingga menghasilkan kode hampir otomatis
      Benefits of using PDL
      • PDL membuat ulasan lebih mudah
      • PDL mendukung gagasan perbaikan berulang
      • PDL membuat perubahan lebih mudah
      • PDL meminimalkan upaya komentar
      • PDL lebih mudah dirawat daripada bentuk lain dari dokumentasi desain


      Rangkuman Pertemuan 10

      Sistem Implementasi
      1. Training Personal
      2. Konversi Sistem
      3. Review post-implementation
      4. Dokumentasi
      5. Dukungan lain :
        • Teknisi & Administrator yang akan bertugas merawat sistem
        • Application user (user pd umumnya)
      • General Manager

        1. Konversi sistem secara langsung
        2. Konversi paralel
        3. Konversi Phase- In
        4. Konversi Pilot
      • Dokumentasi Proses
      • Dokumentasi Produk

      Training
      Tipe Training disesuaikan dengan keadaan lingkungan implementasi system.
      1. Eksternal Training: kursus dari vendor pelatihan
      2. Internal Training: On the Job Training
      3. Belajar Sendiri

      Memilih Staf yang akan dilatih terdiri dari tiga kelompok user, yaitu :
      Pelatihan untuk Administrator:
      • Set-up sistem awal
      • Rutinitas harian
      • Diagnosis kesalahan
      • Menulis sistem log
      • Trouble shooting
      • Penanganan Keamanan
      • Melakukan perubahan, penghapusan
      • Melakukan Backup
      Aplikasi Training
      • Set up files
      • Proses transaksi
      • Validasi data
      • Update batch
      • Prosedur akhir-hari
      • Mencetak laporan
      • Pemahaman pesan kesalahan
      Konversi Sistem Baru
      Disebut juga sbg Cold Turkey yaitu langsung menghentikan sistem lama dan  menjalankan sistem baru.
      Sistem lama dan sistem baru beroperasi bersamaan untuk periode waktu tertentu.
      Sistem baru diimplementasikan secara gradual, sedikit demi sedikit -> memeberikan waktu lebih utk asimilasi prubahan.
      Sistem diinstal hanya pada sebagian organisasi (mis. Kantor cabang atau pabrik).
      Evaluasi Sistem Baru
      Bertujuan untuk mendapatkan cara meningkatkan efisiensi dan efektifitas sistem baru, serta memberikan informasi untuk pengembangan sistem mendatang.
      Dokumentasi
      Merekam proses pengembangan dan perawatan. Isi dokumentasi proses adalah: perencanaan, jadwal, kualitas proses, standard proses.
      Menggambarkan produk yang sedang dikembangkan dari sudut pandang engineer pengembang/perawatan. Yang termasuk dokumentasi produk adalah: user manual, help.

      Rangkuman Pertemuan 11

      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
      • 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

      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
      • Unit testing:

        1. Unit program adalah modules atau rutin yang digabung untuk melaksanakan fungsi tertentu.
        2. Unit testing fokus pada masing-masing modul dan dilakukan secara independen untuk menemukan error.

      • System Testing
        1. Pengujian atas integrasi setiap modul dalam sistem
        2. Tujuan: menemukan kelemahan sistem dari sisi objektif, spesifikasi dan dokumentasi, termasuk kompatibilitas masing-masing modul.

      TUGAS
      Tugas 1 Aplikasi Sistem Informasi Laundry (Download)
      Tugas 2 Alpha Hasil Black-Box Testing (Download)
      Tugas 2 Beta Hasil Black-Box Testing (Download)
      Tugas 3 (Download)

      SUMBER :

      https://ceriamarcelina.wordpress.com/2012/12/25/rangkuman-mata-kuliah-testing-implementasi/