Rabu, 01 November 2017

Strategi Pengujian Perangkat Lunak

Strategi Pengujian Perangkat Lunak dilakukan untuk memudahkan para perancang untuk menentukan keberhasilan system yang telah dikerjakan.

Proses Testing

  •  Unit testing

 Pengujian masing-masing unit komponen program untuk meyakinkan bahwa sudah beroperasi secara benar
  • Module Testing

Pengujian terhadap koleksi unit-unit komponen yang saling berhubungan.
  •   Sub-system Testing

 Pengujian terhadap koleksi module-module yang membentuk suatu sub-system (aplikasi)
  •  System Testing

           Pengujian terhadap integrasi sub-system, yaitu keterhubungan antar sub-system

Acceptance Testing

  • Pengujian terakhirs sebelum sistem dipakai oleh user. 
  • Melibatkan pengujian dengan data dari pengguna sistem.
  • Biasa dikenal sebagai “alpha test” (“beta test” untuk software komersial, dimana pengujian dilakukan oleh potensial customer)

 Rencana Pengujian
v Proses testing
     Deskripsi fase-fase utama dalam pengujian

v   Pelacakan Kebutuhan
     Semua kebutuhan user diuji secara individu  
v  Item yg diuji
      Menspesifikasi komponen sistem yang diuji
v   Jadual Testing
v   Prosedur Pencatatan Hasil dan Prosedur
v   Kebutuhan akan Hardware dan Software
v   Kendala-kendala
     Mis: kekuranga staff, alat, waktu dll.

Failure and Faults

q  Failure: output yang tidak benar/tidak sesuai ketika sistem dijalankan

q  Fault: kesalahan dalam source code yang mungkin menimbulkan failure ketika code yang fault tersebut dijalankan 

Prioritas Testing

v   Hanya test yang lengkap yang dapat meyakinkan sistem terbebas dari kesalahan, tetapi hal ini sangat sulit dilakukan.
v   Prioritas dilakukan terhadap pengujian kemampuan sistem, bukan masingmasing komponennya.
v   Pengujian untuk situasi yang tipikal lebih penting dibandingkan pengujian terhadap nilai batas. 

Test Data Dan Kasus Test
q       Test Data
            Input yang  direncanakan digunakan oleh sistem.

q      Test Cases

     Input yang digunakan untuk menguji sistem dan memprediksi output dari input jika sistem beroperasi sesuai dengan spesifikasi. 

Pendekatan Strategis Pengujian Perangkat Lunak

v   Pengujian Unit
v   Pengujian Integrasi
v   Pengujian Validasi
v   Pengujian Sistem
 Pengujian Unit

q   Berfokus pada inti terkecil dari desain perangkat lunak yaitu modul 
q   Uji coba unit selalu berorientasi pada white box testing
Dapat dikerjakan paralel atau beruntun dengan modul lainnya

Integration Testing

q   Pengujian keseluruhan system atau sub-system yang terdiri dari komponen yang terintegrasi. 
q   Test  integrasi menggunakan black-box dengan test case ditentukan dari spesifikasi. 
q   Kesulitannya adalah menemukan/melokasikan
q   Penggunaan Incremental integration testing dapat mengurangi masalah tersebut. 

Pendekatan Integration Testing

v   Top-down Testing

 Berawal dari level-atas system dan terintegrasi dengan mengganti masingmasing komponen secara top-down dengan suatu stub (program pendek yg mengenerate input ke sub-system yang diuji). 

v   Bottom-up Testing

Integrasi components di level hingga sistem lengkap sudah teruji.  
Pada prakteknya, kebanyakan test  integrasi menggunakan kombinasi kedua strategi pengujian tsb. 

Pendekatan Testing

v       Architectural Validation

 Top-down integration testing lebih baik digunakan dalam menemukan error dalam sistem arsitektur.
v      System Demonstration

 Top-down integration testing hanya membatasi pengujian pada awal tahap pengembangan system.
v      Test  Implementation
          Seringkali lebih mudah dengan menggunakan bottom-up integration testing

Interface Testing

q   Dilakukan kalau module-module dan sub-system terintegrasi dan membentuk sistem yang lebih besar
q   Tujuannya untuk medeteksi fault  terhadap kesalahan interface atau asumsi yang tidak valid tentang interface tersebut.
q   Sangat penting untuk pengujian terhadap pengembangan sistem dengan menggunakan pendekatan object-oriented yang didefinisikan oleh objectobjectnya
Pengujian Validasi

v       Kajian Konfigurasi (audit)

q   Elemen dari proses validasi
q   Memastikan apakah semua elemen konfigurasi perangkat lunak telah dikembangkan dengan tepat

v      Pengujian Alpha dan Beta

q   Pengujian Alpha 
ü   Usability labs
ü   Usability factors checklist
q   Pengujian Beta
 Pengujian Sistem :
q   Pengujian Perbaikan
q   Pengujian Keamanan
q   Pengujian Stress
q   Pengujian Kinerja

Pengujian Aplikasi Server :
q   Volume Testing
q   Stress Testing
q   Performance Testing
q   Data Recovery Testing
q   Data Backup and Restore Testing
q   Data Security Testing

 Volume Testing

q   Menemukan kelemahan sistem selama melakukan pemrosesan data dalam jumlah yang besar dalam periode waktu yang singkat. 
q   Tujuan: meyakinkan bahwa sistem tetap melakukan pemrosesan data antar batasan fisik dan batasan logik.
q   Contoh:
Mengujikan proses antar server dan antar partisi hardisk pada satu server.

 Stress Testing

q   Tujuan: mengetahui 
kemampuan sistem dalam melakukan transaksi selama periode waktu puncak proses. 
q   Contoh periode puncak: ketika penolakan proses login on-line setelah sistem down atau pada kasus batch, pengiriman batch proses dalam jumlah yang besar dilakukan setelah sistem down.
q   Contoh: Melakukan login ke server ketika sejumlah besar workstation melakukan proses menjalankan perintah sql database. 

 Performance Testing

q   Dilakukan secara paralel dengan Volume dan Stress testing untuk mengetahui unjuk kerja sistem (waktu respon, throughput  rate) pada beberapa kondisi proses dan konfigurasi.
q   Dilakukan pada semua konfigurasi sistem perangkat keras dan lunak. Misal :
pada aplikasi Client-Server diujikan pada kondisi korporate ataupun lingkungan sendiri (LAN vs. WAN, Laptop vs. Desktop)
q   Menguji sistem dengan hubungannya ke sistem yang lain pada server yang sama.
q   Load Balancing Monitor
q   Network Monitor

 Data Recovery Testing

q   Investigasi dampak kehilangan data melalui proses recovery ketika terjadi kegagalan proses.
q   Penting dilakukan karena data yg disimpan di server dapat dikonfigurasi dengan berbagai cara. 
q   Kehilangan Data terjadi akibat kegagalan sistem, hardisk rusak, peghapusan yang tidak sengaja, kecelakaan, virus dan pencuri.
 Data Backup dan Restore Testing

q   Dilakukan untuk melihat prosedur back-up dan recovery. 
q   Diakukan dengan mensimulasikan beberapa kesalahan untuk menguj i proses backup dan recovery.
q   Pengujian dilakukan terhadap strategi backup: frekuensi , medium, waktu, mekanisme backup (manual/  otomatis), personal, ? Berapa lama backup akan disimpan.
q   Switching antara live dan backup server ketika terjadi kerusakan (load log transaction pada back-up kemudian melakukan recovery).

 Data Security Testing

q   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

Faktor Pengujian Perangkat Lunak

Dalam pengujian perangkat lunak terdapat 15 faktor pengujian, akan tetapi tidak semua faktor yang mungkin digunakan, tergantung pada sistem apa yang akan diuji. Berikut faktor-faktor dalam pengujian perangkar lunak :

1.        Reability
Menekankan bahwa aplikasi akan dilaksanakan dalam fungsi sesuai yang diminta dalam periode waktu tertentu.
Faktor yang diuji :
a.     Menentukan toleransi.
b.    Desain control dan integritas data.
c.     Implementasi control dan integritas data.
d.    Pengujian regresi, pengujian manual dan pengujian fungsional.
e.     Verifikasi dan ketetapan dan kelengkapan instalasi.
f.     Update ketepatan kebutuhan.

2.        Authorization
Menjamin data di proses sesuai dengan kebutuhan manajemen. Authorisasi menyangkut proses transaksi secara umum yaitu otoritas bisnis dan secara khusus otoritas pelaksanaan tindakan khusus.
Faktor yang diuji :
a.     Identifikasi aturan otorisasi.
b.    Desain aturan otorisasi.
c.     Implementasi aturan otorisasi.
d.    Pengujian kesesuain.
e.     Mencegah perubahan data selama instalasi.
f.     Menjaga aturan otorisasi.

3.        File Integrity
Menekankan pada data yang dimasukkan melalui aplikasi agar tidak dapat diubah serta prosedur yang akan memastikan bahwa file yang digunakan benar dan data dalam file tersebut akan disimpan sequensial dan benar.
Faktor yang diuji :
a.     Identifikasi kebutuhan integritas file.
b.    Desain control dan integritas file.
c.     Implementasi control dan integritas file.
d.    Pengujian fungsional.
e.     Verifikasi integritas dari produksi file.
f.     Menjaga integritas file.

4.        Audit Trail
Menekankan pada kemampuan untuk mendukung proses yang terjadi. Pemrosesan data secara keseluruhan berdasarkan retensi/jumlah dari kejadian yang cukup mendukung keakuratan, kelengkapan, batasan waktu dan otorisasi data.
Faktor yang diuji :
a.     Identifikasi kebutuhan rekontruksi.
b.    Desain audit trail
c.     Implementasi audit trail
d.    Pengujian fungsional.
e.     Menyimpan audit trail selama instalasi.
f.     Update audit trail.
  
5.        Continuity of processing
Menekankan kemampuan untuk meneruskan proses, ketika terjadi suatu permasalahan dengan menetapkan prosedur yang diperlukan dan back-up informasi untuk melindungi operasi mungkin hilang karena masalah tersebut.
Faktor yang diuji :
a.     Identifikasi akibat dari kegagalan.
b.    Desain contingency plan.
c.     Menyusun contingency plan dan prosedurnya.
d.    Pengujian pemulihan.
e.     Memastikan integritas dari pengujian sebelumnya.
f.     Update contingency plan.

6.        Service Level
Menekankan bahwa hasil yang diinginkan didapat dalam waktu yang diinginkan oleh  user. Untuk mencapai keinginan tersebut, harus dilakukan penyesuaian antara keinginan user dengan sumber daya yang ada.
Faktor yang diuji :
a.     Identifikasi tingkat layanan yang diinginkan.
b.    Desain metode untuk mencapai tingkat layanan.
c.     Desain sistem untuk mencapai tingkat layanan.
d.    Pengujian beban lebih.
e.     Implementasi rencana pencegahan kegagalan instalasi.
f.     Menjaga tingkat layanan.

7.        Access control
Menekankan sumberdaya sistem harus dilindungi dari kemungkinan modifikasi, pengrusakan, penyalahgunaan dan prosedur keamanan harus dijalankan secara penuh untuk menjamin integritas data dan program aplikasi.
Faktor yang diuji :
a.     Identifikasi hak akses.
b.    Desain Prosedur akses.
c.     Implementasi prosedur keamanan.
d.    Pengujian kesesuaian.
e.     Kontrol akses selama instalasi.
f.     Menjaga keamanan.

8.        Metodology
Menekankan bahwa aplikasi dirancang sesuai dengan strategi organisasi, kebijaksanaan, prosedur dan standar.
Faktor yang diuji :
a.     Penyesuaian kebutuhan dengan metodology.
b.    Penyesuaian desain dengan metodology.
c.     Penyesuaian program dengan metodology.
d.    Penyesuaian pengujian dengan metodology.
e.     Penyesuaian integrasi dengan metodology.
f.     Penyesuaian perawatan dengan metodology.

9.        Correctness
Menjamin pada data dmasukkan, proses dan output yang dihasilkan dari aplikasi harus akurat dan lengkap.
Faktor yang diuji :
a.     Identifikasi spesifikasi fungsional.
b.    Penyesuaian desain dengan requitment.
c.     Penyesuain program dengan desain.
d.    Pengujian fungsional.
e.     Ketepatan penempatan program dan data pada produksi.
f.     Update kebutuhan.

10.    Ease of use
Menekankan perluasan usaha yang diminta untuk belajar, mengoperasikan dan menyiapkan inputan dan menginterprestasikan output dari sistem.
Faktor yang diuji :
a.     Identifikasi spesifikasi kegunaan.
b.    Desain penggunaan fasilitas.
c.     Penyesuaian program dengan desain.
d.    Pengujian dukungan panduan.
e.     Penyebaran kegunaan instruksi.
f.     Menjaga kemudahan penggunaan.

11.    Maintainable
Usaha yang diminta untuk mengalokasi dan memperbaiki suatu eror dalam pengoperasian sistem.
Faktor yang diuji :
a.     Identifikasi spesifikasi kegunaan.
b.    Desain dapat dirawat.
c.     Program dapat dirawat.
d.    Inspeksi.
e.     Kelengkapan dokumentasi.
f.     Menjaga kerawatan.

12.    Portable
Usaha yang diminta untuk mengirimkan program dari satu konfigurasi hardware dan atau lingkungan sistem software ke lingkungan yang lain.
Faktor yang diuji :
a.     Identifikasi kebutuhan protabilitas.
b.    Desain protabilitas.
c.     Penyesuaian program dengan esain.
d.    Disaster testing.
e.     Kelengkapan dokumentasi.
f.     Menjaga protabilitas.

13.    Coupling
Usaha yang diminta untuk menghubungkan komponen di dalam sistem aplikasi dan dengan sistem aplikasi yang lain dalam lingkungan pemrosesan.
Faktor yang diuji :
a.     Identifikasi antar muka system.
b.    Kelengkapan desain antarmuka.
c.     Penyesuaian program dengan desain.
d.    Pengujian fungsional dan regresi.
e.     Koordinasi antarmuka.
f.     Memastikan antarmuka yang benar.

14.    Performance
Jumlah perhitungan sumberdaya dan kode yang diminta sistem untuk melakukan fungsinya, termasuk ke dalamnya kerja maual dan otomatis.
Faktor yang diuji :
a.     Identifikasi kriteria performance.
b.    Kriteria pencapaian desain.
c.     Kriteria pencapaian program.
d.    Pengujian kesesuaian.
e.     Mengawasi performa instalasi.
f.     Menjaga tingkat performance.

15.    Ease of operations
Sejumlah usaha yang diminta untuk mengintegrasikan sistem ke dalam lingkungan operasi dan lingkungan sistem aplikasi, berupa prosedur manual dan otomatisasi.
Faktor yang diuji :
a.     Identifikasi kebutuhan operasional.
b.    Mengkomunikasikan kebutuhan pada operasi.
c.     Mengembangkan prosedur operasi.
       d.   Pengujian operasi.