CLICK HERE FOR BLOGGER TEMPLATES AND MYSPACE LAYOUTS »

Rabu, 22 April 2009

UTS 'Testing Dan Implementasi'

^ Evolutionary development, specifikasi dan pengembangan saling berselakan/bergantian
^ Reuse-based development, sistem dibangun dengan menggunakan komponen-komponen yang sudah ada

Aplikasi-aplikasi software
^ System Software, merupakan kumpulan program-program yang dibuat untuk menjalankan program lainnya.
^ Real time software, adalah software yang mengawasi/menganalisa/ mengatur kejadian nyata.
^ Business software, pemrosesan informasi bisnis merupakan area aplikasi software terbesar.
^ Engineering and scientific software, lingkup aplikasinya mulai dari astronomi hingga vulkanologi, dari biologi molekuler hingga pabrikan otomatis.
^ Embedded software, produk-produk pintar mulai menguasai konsumen, embedded software digunakan untuk mengatur produk dan sistem untuk konsumen dan pasar industri.
^ Personal Computer software, meliputi word processing, spreadsheet, computer graphic, entertainment, database management, aplikasi bisnis keuangan dsb.
^ Artificial intelligence software, menggunakan algoritma nonnumerik untuk mengatasi masalah yang rumit, contohnya adalah expert system. Juga dikenal dengan istilah knowledge based system.

^ Contoh dari sudut pandang proses diantaranya :
1. Workflow perspective - sequence of activities
2. Data-flow perspective - information flow
3. Role/action perspective - who does what


^ Evolutionary development, Terdapat 2 macam pendekatan :
1. Exploratory development (Pengembangan dengan penyelidikan)
Bertujuan untuk bekerja sama dengan klien untuk membangun sebuah sistem dari spesifikasi awal.
2. Throw-away prototyping
Bertujuan untuk mengerti akan kebutuhan sistem.

^ Software Specification
Proses perencanaan kebutuhan-kebutuhan (requirements engineering) dibagi menjadi empat tahap utama.

1. Feasibility study (Studi kelayakan), sebuah perkiraan/talsiran ditetapkan untuk menetapkan apakah kebutuhan user yang diidentifikasikan telah terpenuhi oleh teknologi software dan hardware saat ini.
2. Requirements elicitation and analysis (Pembentukan kebutuhan dan analisis), merupakan proses untuk mendapatkan kebutuhan-kebutuhan sistem melalui observasi dari sistem yang ada.
3. Requirements specification (Spesifikasi kebutuhan), merupakan aktifitas penerjemahan informasi yang didapat selama aktifitas analisis kedalam dokumen yang mendefinisikan kumpulan kebutuhan.
4. Requirements validation (Validasi kebutuhan), merupakan aktifitas yang memeriksa kebutuhan untuk direalisasikan, konsisten dan lengkap.

^ Metode-metode desain :
1. Data-flow model
2. Entity-relation-attribute model
3. Structural model
4. Object models

^ Debugging yaitu proses yang merubah desain kedalam program dan menghilangkan errors yang ditimbulkan dari program.
^ Programming merupakan aktivitas personal dan tidak terdapat proses generic programming.

^ Beberapa pendekatan untuk membantu identifikasi dan menempatkan kesalahan, termasuk :
a. Memory dumps, tampilan sederhana yang menampilkan status dari memory pada saat itu, biasanya pada saat kesalahan(error) terdeteksi.
b. Execution trace, menyebabkan komputer mencetak catatan dari urutan eksekusi program.
c. Program desk checking, dilakukan melalui pemeriksaan detail dari source code yang mengakibatkan pengeksekusian logika dalam pikiran pemeriksa.
d. Hypothesis testing, melihat program melalui metode analisis. Berlaku ketika programer mengaplikasikan teknik penanganan dan perbaikan masalah.

^ Terdapat 3 kategori pendekatan dalam debugging
 Brute force
o Merupakan metode yang paling umum dan efisien untuk mengisolasi kesalahan software.
 Backtracking
o Merupakan metode debugging yang umum dan dapat digunakan pada program skala kecil.
 Cause elimination
o Data yang terkait dengan kesalahan diorganisasikan untuk mengisolasi penyebab potensial.


^ Software validation
Validasi software atau sering disebut verification and Validation, bertujuan untuk menunjukkan bahwa sistem telah sesuai dengan spesifikasinya dan memenuhi ekspektasi/harapan pengguna sistem.

^ Tahapan-Tahapan Ujicoba
1. Unit Testing
Unit testing dilaksanakan untuk mengetahui kesalahan dalam logika atau fungsi setiap komponen (individual component).
2. Module Testing
Module Testing diujikan pada komponen-komponen yang saling terhubung dan saling bergantung satu dengan yang lainnya. Tipe-tipe kesalahan yang mungkin terjadi, diantaranya :
a. Kesalahan Tampilan (Interface errors)
b. Kesalahan Masukan/Keluaran(Input/output errors)
c. Kesalahan Struktur Data (Data structure errors)
d. Kesalahan Aritmatika (Arithmetic errors)
e. Kesalahan Perbandingan (Comparison errors)
f. Kesalahan Logika Kendali proses (Control Logic errors)
3. Sub System Testing (Integration Testing)
Integrasi program meliputi prosedur-prosedur yang disertakan untuk menghubungkan modul-modul menjadi subsistem maupun sistem lengkap.

^ Terdapat dua pendekatan yang dapat dilaksanakan :
a. Incremental testing, modul dapat ditambahkan pada modul lainnya untuk ujicoba individual, biasanya berupa penulisan modul baru.
b. Nonincremental testing, seluruh modul dalam program dapat dibangun terlebih dahulu, kemudian digabungkan dan diujicobakan sebagai satu entitas.

^ Terdapat dua metode untuk mengaplikasikan Incremental testing, yaitu :
a. Top-down testing
b. Bottom-Up

^ Terdapat 4 hal utama yang membedakan top-down dengan bottom up :
1. Architecture validation, ujicoba top-down mencari kesalahan pada arsitektur sistem dan level teratas didesain pada tahap awal proses pembentukan.
2. System demonstration, dengan ujicoba top-down demonstrasi sistem yang sudah dapat berjalan dapat dilakukan pada awal proses.
3. Test implementation, ujicoba topdown sulit untuk diimplementasikan karena simulasi stubs program lower level dari sistem harus dibuat.
4. Test observation, baik ujicoba top-down maupun bottom-up mempunyai masalah dengan ujicoba observasi.


Hewlett-Packard telah membuat sejumlah faktor-faktor kualitas yang disingkat ”FURPS”, yaitu Functionality, Usability, Reliability, Performance, Supportability.
1. Functionality, diperkirakan dengan mengevaluasi sejumlah feature dan kemampuan program, fungsi-fungsi umum yang disediakan, dan keamanan terhadap keseluruhan system
2. Usability, diperkirakan dengan mempertimbangkan faktor manusia, keseluruhan estetika, konsistensi, dan dokumentasi.
3. Reliability, dievaluasi dengan mengukur frekuensi dan penanganan kesalahan, keakuratan hasil output, jangka waktu antar kesalahan (Mean Time Between Failure), kemampuan untuk recover dari kesalahan dan kemampuan prediksi program.
4. Performance, diukur dengan mengevaluasi kecepatan pemrosesan, waktu respon, konsumsi sumberdaya, keluaran dan efisiensi.
5. Supportablity, kombinasi kemampuan untuk memperpanjang program, kemampuan adaptasi dan kemampuan layanan (ketiga atribut ini merepresentasikan –maintainability) sebagai tambahan untuk kemampuan ujicoba, kesesuaian, kemampuan penyusunan (kemampuan untuk mengorganisir dan mengatur elemen-elemen penyusunan software).

0 komentar: