Rabu, 11 Januari 2017

PERTEMUAN_14

A. White Box Testing

Adalah cara pengujian dengan melihat ke dalam modul untuk meneliti kode-kode program yang ada, dan menganalisis apakah ada kesalahan atau tidak. Jika ada modul yang menghasilkan output yang tidak sesuai dengan proses bisnis yang dilakukan, maka baris-baris program, variabel, dan parameter yang terlibat pada unit tersebut akan dicek satu persatu dan diperbaiki, kemudian di-compile ulang.

Kelebihan dan Kekurangan White Box Testing

Kelebihan :

  • Kebenaran program dalam mendefinisikan algoritma dapat diketahui secara langsung dengan pengolahan path.
  • Menentukan kualitas pekerjaan coding dan pengaruhnya untuk standar coding.
Kekurangan :
  • Jumlah biaya untuk white box testing lebih besar daripada biaya yang dibutuhkan untuk black box, untuk ukuran software yang sama.
  • Belum mampu melakukan tes ketersediaan, kehandalan, daya tahan beban dan testing – testing lain yang berhubungan dengan kebutuhan faktor – faktor untuk operasi, revisi dan transisi.
 B. Black Box Testing
Adalah metode pengujian perangkat lunak yang tes fungsionalitas dari aplikasi yang bertentangan dengan struktur internal atau kerja (lihat pengujian white-box).
Pengujian Black Bo
Berfokus pada persyaratan fungsional perangkat lunak. Disebut juga pengujian behavioral atau pengujian partisi. Pengujian black box memungkinkan perekayasa perangkat lunak mendapatkan serangkaian input yang sepenuhnya menggunakan semua persyaratan fungsional untuk suatu program. Pengujian black box berusaha menemukan :
  • Fungsi-fungsi yang tidak benar atau hilang
  • Kesalahan interface
  • Kesalahan dalam struktur data atau akses database eksternal.
  • Kesalahan kinerja
  • Inisialisasi dan kesalahan terminasi.
  • Kesalahan performansi
  • Kesalahan inisialisasi dan tujuan akhir
Dengan mengaplikasikan teknik black box, maka kita menarik serangkaian test case yang
memenuhi kriteria berikut :
  • Test case yang mengurangi, dengan harga lebih dari satu, jumlah test case tambahan yang harus  didesain untuk mencapai pengujian yang dapat
  • Test case yang member tahu kita sesuatu mengenai kehadiran atau ketidakhadiran
    kelas kesalahan, daripada member tahu kesalahan yang berhubungan hanya
    dengan pengujian spesifik.
TEST ABILITAS :

Testabilitas Perangkat Lunak adalah seberapa mudah sebuah program komputer dapat diuji. Karena pengujian sangat sulit, perlu diketahui apa yang dapat dilakukan untuk membuatnya menjadi mudah. 

DESAIN TEST CASE :

Terdapat bermacam-macam rancangan metode test case yang dapat digunakan, semua menyediakan pendekatan sistematis untuk uji coba. Yang terpenting metode menyediakan kemungkinan yang cukup tinggi untuk menemukan kesalahan.

DESAIN TEST CASE 2 :

Terdapat 2 macam test case :

  1. Pengetahuan tentang fungsi yang spesifik dari produk yang telah dirancang untuk diperlihatkan, test dapat dilakukan untuk menilai masing-masing fungsi apakah telah berjalan sebagaimana yang diharapkan.
  2. Pengetahuan tentang cara kerja dari produk, test dapat dilakukan untuk memperlihatkan cara kerja dari produk secara rinci sesuai dengan spesifikasinya.
B. BLACK BOX TESTING :

Adalah metode pengujian perangkat lunak yang tes fungsionalitas dari aplikasi yang bertentangan dengan struktur internal atau kerja (lihat pengujian white-box).

Pengujian Black Box :

Berfokus pada persyaratan fungsional perangkat lunak. Disebut juga pengujian behavioral atau pengujian partisi. Pengujian black box memungkinkan perekayasa perangkat lunak mendapatkan serangkaian input yang sepenuhnya menggunakan semua persyaratan fungsional untuk suatu program. Pengujian black box berusaha menemukan :
  • Fungsi-fungsi yang tidak benar atau hilang
  • Kesalahan interface
  • Kesalahan dalam struktur data atau akses database eksternal.
  • Kesalahan kinerja
  • Inisialisasi dan kesalahan terminasi.
  • Kesalahan performansi
  • Kesalahan inisialisasi dan tujuan akhir
Dengan mengaplikasikan teknik black box, maka kita menarik serangkaian test case yang
memenuhi kriteria berikut :
  • Test case yang mengurangi, dengan harga lebih dari satu, jumlah test case tambahan yang harus  didesain untuk mencapai pengujian yang dapatdipertanggungjawabkan.
  • Test case yang member tahu kita sesuatu mengenai kehadiran atau ketidakhadiran
    kelas kesalahan, daripada member tahu kesalahan yang berhubungan hanya
    dengan pengujian spesifik.
Keunggulan dan Kekurangan Black Box:
Keunggulan :

  • Black box testing dapat menguji keseluruhan fungsionalitas perangkat lunak.
  • Black box testing dapat memilih subset test yang secara efektif dan efisien dapat menemukan cacat. Dengan cara ini black box testing dapat membantu memaksimalkan testing investment.
Kekurangan :

  • Ketika tester melakukan black box testing, tester tidak akan pernah yakin apakah perangkat lunak yang diuji telah benar-benar lolos pengujian.

PERTEMUAN_13

STRATEGI PENGUJIAN PERANGKAT LUNAK

Dalam strategi pengujianperangkat lunak dapat digambarkan dengan ilustrasi berikut: Sebuah perangkat lunak dimulai daripenentuan kebutuhan perangkat lunak, kemudian prose dilanjutkan ke dalam bentukrancangan, dan akhirnya ke pengkodean. Strategi pengujian serupa dengan haltersebut, dimulai dengan unit testing di pusat spiral di mana masing-masingmodul/unit dari perangkat lunak yang diimplementasikan dalam source codemenjadi sasaran pengujian. Kemudian dilakukan integration testing dengan focuspengujian adalah desain dan kontruksi arsitektur perangkat lunak. Selanjutnyadilakukan validation testing dengan sasaran pengujian adalah kesesuaian dengankebutuhan perangkat lunak yang telah ditentukan di awal. Terakhir padalingkaran terluar spiral sampai pada system testing, di mana perangkat lunakdan keseluruhan sistem diuji.

A. Pendekatan Strategis ke Pengujian Perangkat lunak 

Pengujianmerupakan rangkaian aktivitas yang dapat direncanakan sebelumnya dan dilakukansecara sistematis. Strategi uji coba perangkat lunak memudahkan para perancanguntuk menentukan keberhasilan system yg telah dikerjakan. Hal yg harusdiperhatikan adalah langkah-langkah perencanaan dan pelaksanaan harusdirencanakan dengan baik dan berapa lama waktu, upaya dan sumber daya ygdiperlukan Strategi uji coba mempunyai karakteristik sbb :

  1. Pengujian mulai pada tingkat modul yg paling bawah,dilanjutkan dgn modul di atasnya kemudian hasilnya dipadukan
  2. Teknik pengujianyang berbeda mungkin menghasilakn sedikit perbedaan (dalam hal waktu)
  3. Pengujian dilakukan oleh pengembang perangkat lunak dan (untuk proyek yang besar) suatukelompok pengujian yang independen.
  4. Pengujian dandebugging merupakan aktivitas yang berbeda, tetapi debugging termasuk dalamstrategi pengujian.Validasi dan validasiVerifikasi dan validasi merupakandua istilah yang sering dikaitkan dengan tahapan pengujian perangkat lunak.Verifikasi mengacu pada serangkaian aktivitas untuk memastikan bahwa perangkatlunak mengimplementasikan fungsi tertentu secara benar, sedangkan validasimengacu pada serangkaian aktivitas untuk memastikan bahwa perangkat lunak yangtelah dibuat sesuai denga kebutuhan konsumen.Definisi V&V mencakupserangkaian aktivitas dari penjaminan kualitas perangkat lunak (SQA) yangmeliputi kajian teknis formal, audit kualitas dan control, monitoring kinerja,simulasi, studi feasibilitas, kajian dokumentasi, kajian basisdata, analisisalgoritma, pengujian pengembangan, pengujian kualifikasi, dan pengujianinstalasi.
B. Masalah Masalah Strategis

Masalah-masalah berikut harus diselesaikanbila pengujian ingin berlangsung sukses :

  1. Menspesifikasikan kebutuhan produkpada kelakuan yang terukur sebelum pengujian dimulai. Strategi pengujian yangbaik tidak hanya untuk menenmukan kesalahan, namun juga unutk menilai kualitasprogram.
  2. Menspesifikasikan tujuan pengujiansecara eksperangkat lunakisit. Sasaran spesifik dari pengujian harus dinyatakandalam bentuk yang terukur
  3. Mengidentifikasikan kategori useruntuk perangkat lunak dan membuat profilnya masing-masing. Beberapa kasus yangmenggambarkan scenario interaksi bagi masing-masing kategori dapat mengurangikerja pengujian dengan memfokuskan pengujian pada penggunaan actual produk.
  4. Membangun rencana pengujian yangmenegaskan rapid cycle testing. Umpan balik yang muncul dari rapid cycletesting dapaat digunakan untuk mengontrol kualitas dan strategi pengujian yangsesuai.
  5. Membangun perangkat lunak yang tangguhyang dirancang untuk menguji dirinya sendiri. Perangkat lunak dapatmendiagnosis jenis-jenis kesalahan tertentu dan mengakomodasi pengujianotomatis dan pengujian regresi.
  6. Menggunakan tinjauan formal yang efektif sebagai filter sebekum pengujian.Kajian teknis formal dapat mengungkap kesalahan seefektif pengujian sehinggadapat mengurangi jumlah kerja pengujian.
  7. Mengadakan tinjauan formal dapatmengungkap inkonsistensi, penghapusan, dan kesalahan seketika dalam pendekatanpengujian.
  8. Membangun pendekatan yang meningkatsecara berkelanjutan untuk proses pengujian. Strategi pengujian harus terukur.Metric yang terkumpul selama pengujian harus digunakan sebagai bagian daripendekatan control proses statistical bagi pengujian perangkat lunak.
     
    C. Pengujian Unit      
Unit testing (uji coba unit) fokusnya pada usahaverifikasi pada unit terkecil dari desain perangkat lunak, yakni modul. Ujicoba unit selalu berorientasi pada white box testing dan dapat dikerjakanparalel ayau beruntun dengan modul lainnya.

Pertimbangan Pengujian Unit :

Interface modul diuji untuk memastikan bahwa informasisecara tepat mengalir masuk dan keluar dari inti program yang diuji. Strukturdata local diuji untuk memastikan bahwa data yang tersimpan secara temporaldapat tetap menjaga integritasnya selama semua langkah langkah di dalamsuatu algoritma dieksekusi. Kondisi batas diuji untuk memastikan bahwa modulberoperasi dengan tepat pada batas yang ditentukan untuk membatasipemrosesan. Semua jalur independen(jalur dasar) yang melalui struktur controldipakai sedikirnya satu kali. Dan akhirnya penanganan kesalan diuji.

Prosedur Pengujian Unit :

Sumber telah dikembangkan, ditunjang kembali dandiverifikasi untuk sintaksnya, maka perancangan test case dimulai. Peninjauankembali perancangan informasi akan menyediakan petunjuk untuk menentukan testcase. Karena modul bukan program yg berdiri sendiri maka driver (pengendali)dan atau stub perangkat lunaK harus dikembangkan untuk pengujian unit.
Driver adlprogram yg menerima data untuk test case dan menyalurkan ke modul yg diuji danmencetak hasilnya.
Stub melayanipemindahan modul yg akan dipanggil untuk diuji


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.
  • 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)
  • Menguji sistem dengan hubungannya ke sistem yang lain pada server yang sama.
  • Load Balancing Monitor
  • Network Monitor
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.

Rabu, 28 Desember 2016

PERTEMUAN_12

IMPLEMENTASI

Pokok Bahasan :
  1. Makna dan Tujuan Implementasi
  2. Perencanaan Implementasi
  3. Hal Penting Dalam Implementasi
  4. Persiapan Dokumentasi
  5. Pemasangan Atau Konversi Sistem Baru Ke Sistem Lama 
  6. Evaluasi Sistem Baru
  7. Lingkungan Pemrograman
  8. Programming Style 
  9. Prinsip Portability & Reusable (Kemudahan & Penggunaan
  10. Ulang Komponen
  11. CASE Tools 
  Makna dan Tujuan Implementasi Adalah :
  1. Merupakan tahap besar di akhir produksi Perangkat Lunak
  2. Tahap ini merupakan proses pembuatan kode program berdasarkan platform dan kesepakatan dengan customer. 
  3. Merupakan tahap transformasi dari hasil desain ke dalam program yang dpt dijalankan pada komputer yang akan digunakan di dalam sistem. 
  4. Baik buruknya implementasi sangat tergantung pada baik buruknya hasil final dari tahap desain 
  5. Melibatkan pengintegrasian semua komponen rancangan sistem termasuk PL, konversi ke sistem operasi. 
Perancangan Implementasi :

Pendekatan yang lebih metodis terhadap perancangan perangkat lunak adalah metode terstruktur yang terdiri dari serangkaian notasi dan panduan.

Proses implementasi melibatkan : 1. Perancangan 2.Pengeksekusian

Contoh Gambar Rencana Implementasi :





Hal-hal yang penting di lakukan dalam Implementasi :
  1. Persiapan Tempat, Diperlukan dokumentasi, yang perlu dipersiapkan : ( Ruang, listrik , pengujian burn in / simulasi pada vendor)
  2. Pelatihan Personil 
  3. Cakupan Pelatihan 
  4. Program Pelatihan 
  5. Teknik dan Alat Bantu Pelatihan 
  6. Software untuk pelatihan interaktif ( cth : CBT, ABT, VBT, VOD ) 
  7. Persiapan / pembuatan dokumen 
  8. Konversi File & Sistem 
KONVERSI :
  1. Konversi Langsung 
  2. Konversi Paralel
  3. Konversi Phase-in 
  4. Konversi Pilot 
Konversi Langsung  :
Konversi ini dilakukan dengan cara menghentikan sistem lama dan menggantikannya dengan sistem baru. Cara ini merupakan yang paling berisiko, tetapi murah. Konversi langsung adalah pengimplementasian sistem baru dan pemutusan jembatan sistem lama, yang kadang-kadang disebut pendekatan cold turì<ey. Apabila konversi telah dilakukan, maka tak ada cara untuk balik ke sistem lama.

Pendekatan atau cara  konversi ini akan bermanfaat apabila :
  1.  Sistem tersebut tidak mengganti sistem lain.
  2.  Sistem yang lama sepenuhnya tidak bernilai.
  3. Sistem yang barn bersifat kecil atau sederhana atau keduanya.
  4. Rancangan sistem baru sangat berbeda dari sistem lama, dan perbandingan antara sistem – sistem tersebut tidak berarti.
Kelebihan dan Kekurangan :

Kelebihan : Relatif tidak mahal
Kekurangan : Mempunyai risiko kegagalan yang tinggi.

Apabila konversi langsung akan digunakan, aktivitas-aktivitas pengujian dan pelatihan yang dibahas sebelumnya akan mengambil peran yang sangat penting.




Konversi Paralel (Parallel Conversion) 

Pada konversi ini, sistem baru dan sistem lama sama-sama dijalankan. Setelah melalui masa tertentu, jika sistem baru telah bisa diterima untuk menggantikan sistem lama, maka sistem lama segera dihentikan. Cara seperti ini merupakan pendekatan yang paling aman, tetapi merupakan cara yang paling mahal, karena pemakai harus menjalankan dua system sekaligus. Konversi Paralel adalah suatu pendekatan dimana baik sistem lama dan baru beroperasi secara serentak untuk beberapa période waktu dan kebalikan dari konversi langsung. Dalam mode konversi paralel, output dari masing-masing system tersebut dibandingkan, dan perbedaannya direkonsiliasi. 

Kelebihan dan Kekurangan :

Kelebihan : Memberikan derajad proteksi yang tinggi kepada organisasi dari kegagalan sistem baru.
Kekurangan : Besarnya biaya untuk penduplikasian fasilitas-fasilitas dan biaya personel yang memelihara sistem rangkap tersebut.

Ketika proses konversi suatu sistem baru melibatkan operasi paralel, maka orang-orang pengembangan sistem harus merencanakan untuk melakukan peninjauan berkala dengan personel operasi dan pemakai.

Konversi Bertahap (Phase-In Conversion)


Konversi ditakukan dengan menggantikan suatu bagian dari system lama dengan sistem baru. Jika terjadi sesuatu, bagian yang baru tersebut akan diganti kembali dengan yang lama. Jika tak terjadi masalah, modul-modul baru akan dipasangkan lagi untuk mengganti modul-modul lama yang lain. Dengan pendekatan seperti ini, akhirnya semua sistem lama akan tergantikan oleh sistem baru. Cara seperti ini lebih aman daripada konversi langsung. Dengan metode Konversi Phase-in, sistem baru diimplementasikan.

Beberapa kali, yang secara sedikit demi sedikit mengganti yang lama. la menghindarkan dari risiko yang ditimbulkan oleh konversi langsung dan memberikan waktu yang banyak kepada pemakai untuk mengasimilasi perubahan. Untuk menggunakan metode phase-in, sistem harus disegmentasi.

Kelebihan dan Kekurangan :

Kelebihan : Kecepatan perubahan dalam organisasi tertentu bisa diminimasi, dan sumber-sumber pemrosesan data dapat diperoleh sedikit demi sedikit selama période waktu yang luas.

Kekurangan : Keperluan biaya yang harus diadakan untuk mengembangkan interface temporer dengan sistem lama, daya terapnya terbatas, dan terjadi kemunduran semangat di organisasi, sebab orang-orang tidak pernah merasa menyelesaikan sistem.


Konversi Pilot (Pilot Conversion):

Pendekatan ini dilakukan dengan cara menerapkan sistem baru hanya pada lokasi tertentu yang diperlakukan sebagai pelopor. Jika konversi ini dianggap berhasil, maka akan diperluas ke tempat-tempat yang lain. Ini merupakan pendekatan dengan biaya dan risiko yang rendah. Dengan metode Konversi Pilot, hanya sebagian dari organisasilah yang mencoba mengembangkan sistem baru. Kalau metode phase-in mensegmentasi sistem, sedangkan metode pilot mensegmentasi organisasi.



Tahapan Implementasi :

  1. Struktur dekomposisi, struktur data, dan identitas dipilih dan di kerjakan sampai prosedur desain mudah untuk ditata ulang dalam sebuah implementasi.
  2. Level abstraksi pada desain, misal class, modul, algoritma, struktur data, dan tipe data harus diwujudkan dalam implementasi.
  3. Antarmuka antara komponen sistem perangkat lunak harus diwujudkan secara jelas pada tahap implementasi.
  4. Kode program tersebut harus dapat di cek konsistensinya pada setiap objek dan operasinya secara langsung menggunakan kompilator.