Anda di halaman 1dari 23

Materi Ringkas Rekayasa Perangkat Lunak

Rekayasa Perangkat Lunak


Rekayasa perangkat lunak adalah pengubahan perangkat lunak itu sendiri guna
mengembangkan, memelihara, dan membangun kembali dengan menggunakan prinsip
rekayasa untuk menghasilkan perangkat lunak yang dapat bekerja lebih efisien dan efektif
untuk pengguna.

Kriteria yang dapat digunakan sebagai acuan dalam merekayasa perangkat lunak:

 Dapat terus dirawat dan dipelihara (Maintainability)


 Dapat mengikuti perkembangan teknologi (Dependability)
 Dapat mengikuti keinginan pengguna (Robust)
 Efektif dan efisien dalam menggunakan energi dan penggunaannya
 Dapat memenuhi kebutuhan yang diinginkan (Usability)
Ruang Lingkup Rekayasa Perangkat Lunak

Sesuai pengertian yang telah disampaikan sebelumnya, maka ruang lingkup dari RPL dapat
digambarkan sebagai berikut :

 Software requirements berhubungan dengan spesifikasi kebutuhan dan persyaratan


perangkat lunak.
 Software design mencakup proses penentuan arsitektur, komponen, antarmuka, dan
karakteristik lain dari perangkat lunak.
 Software construction berhubungan dengan detil pengembangan perangkat lunak,
termasuk algoritma, pengkodean, pengujian, dan pencarian kesalahan.
 Software testing meliputi pengujian pada keseluruhan perilaku perangkat lunak.
 Software maintenance mencakup upaya-upaya perawatan ketika perangkat lunak telah
dioperasikan.
 Software configuration management berhubungan dengan usaha perubahan konfigurasi
perangkat lunak untuk memenuhi kebutuhan tertentu.
 Software engineering management berkaitan dengan pengelolaan dan pengukuran RPL,
termasuk perencanaan proyek perangkat lunak.
 Software engineering tools and methods mencakup kajian teoritis tentang alat bantu
dan metode RPL.
 Software engineering process berhubungan dengan definisi, implementasi, pengukuran,
pengelolaan, perubahan dan perbaikan proses RPL.
 Software quality menitikberatkan pada kualitas dan daur hidup perangkat lunak.

Metode Rekayasa Perangkat Lunak

Ketika kita bekerja dengan komputer, kita membutuhkan serangkaian langkah dan cara-cara
tertentu untuk menghasilkan sesuatu yang merupakan harapan kita. Ini juga membutuhkan
langkah-langkah kerja dalam pengembangan perangkat lunak yang harus dilalui.

Rekayasa perangkat lunak yang berhasil tidak hanya membutuhkan keterampilan komputasi
seperti algoritma, pemrograman, dan database yang kuat, tetapi juga harus menetapkan tujuan
yang baik, mengidentifikasi cara untuk menyelesaikan metode pengembangan, urutan kegiatan,
identifikasi kebutuhan sumber daya, dan faktor lainnya.

1. System Development Life Cycle (SDLC)

Pada rekayasa perangkat lunak, banyak model yang telah dikembangkan untuk membantu
proses pengembangan perangkat lunak. Model-model ini pada umumnya mengacu pada model
proses pengembangan sistem yang disebut System Development Life Cycle (SDLC) seperti
terlihat pada Gambar :
Setiap model yang dikembangkan mempunyai karakteristik sendiri-sendiri. Namun secara
umum ada persamaan dari model-model ini, yaitu:

Kebutuhan terhadap definisi masalah yang jelas. Input utama dari setiap model pengembangan
perangkat lunak adalah pendefinisian masalah yang jelas. Semakin jelas akan semakin baik
karena akan memudahkan dalam penyelesaian masalah. Oleh karena itu pemahaman masalah
seperti dijelaskan pada Bab 1, merupakan bagian penting dari model pengembangan perangkat
lunak.

Tahapan-tahapan pengembangan yang teratur. Meskipun model-model pengembangan


perangkat lunak memiliki pola yang berbeda-beda, biasanya model-model tersebut mengikuti
pola umum analysis – design – coding – testing – maintenance.

Stakeholder berperan sangat penting dalam keseluruhan tahapan pengembangan. Stakeholder


dalam rekayasa perangkat lunak dapat berupa pengguna, pemilik, pengembang, pemrogram
dan orang-orang yang terlibat dalam rekayasa perangkat lunak tersebut.

Dokumentasi merupakan bagian penting dari pengembangan perangkat lunak. Masing-masing


tahapan dalam model biasanya menghasilkan sejumlah tulisan, diagram, gambar atau bentuk-
bentuk lain yang harus didokumentasi dan merupakan bagian tak terpisahkan dari perangkat
lunak yang dihasilkan.

Keluaran dari proses pengembangan perangkat lunak harus bernilai ekonomis. Nilai dari sebuah
perangkat lunak sebenarnya agak susah di- rupiah-kan. Namun efek dari penggunaan perangkat
lunak yang telah dikembangkan haruslah memberi nilai tambah bagi organisasi. Hal ini dapat
berupa penurunan biaya operasi, efisiensi penggunaan sumberdaya, peningkatan keuntungan
organisasi, peningkatan “image” organisasi dan lain-lain.

Ada banyak model pengembangan perangkat lunak, antara lain The Waterfall Model, Joint
Application Development (JAD), Information Engineering (IE), Rapid Application Development
(RAD) termasuk di dalamnya Prototyping, Unified Process (UP), Structural Analysis and Design
(SAD) dan Framework for the Application of System thinking (FAST).

2. The Waterfall Model

Model siklus hidup (life cycle model) adalah model utama dan dasar dari banyak model. Salah
satu model yang cukup dikenal dalam dunia rekayasa perangkat lunak adalah The Waterfall
Model. Ada 5 tahapan utama dalam The Waterfall Model seperti terlihat pada Gambar. Disebut
waterfall (berarti air terjun) karena memang diagram tahapan prosesnya mirip dengan air
terjun yang bertingkat.

Tahapan-tahapan dalam The Waterfall Model secara ringkas adalah sebagai berikut :

 Tahap investigasi dilakukan untuk menentukan apakah terjadi suatu masalah atau
adakah peluang suatu sistem informasi dikembangkan. Pada tahapan ini studi kelayakan
perlu dilakukan untuk menentukan apakah sistem informasi yang akan dikembangkan
merupakan solusi yang layak
 Tahap analisis bertujuan untuk mencari kebutuhan pengguna dan organisasi serta
menganalisa kondisi yang ada (sebelum diterapkan sistem informasi yang baru).
 Tahap desain bertujuan menentukan spesifikasi detil dari komponen- komponen sistem
informasi (manusia, hardware, software, network dan data) dan produk-produk
informasi yang sesuai dengan hasil tahap analisis.
 Tahap implementasi merupakan tahapan untuk mendapatkan atau mengembangkan
hardware dan software (pengkodean program), melakukan pengujian, pelatihan dan
perpindahan ke sistem baru.
 Tahapan perawatan (maintenance) dilakukan ketika sistem informasi sudah
dioperasikan. Pada tahapan ini dilakukan monitoring proses, evaluasi dan perubahan
(perbaikan) bila diperlukan.

3. Prototyping Model

Prototyping adalah salah satu pendekatan dalam rekayasa perangkat lunak yang secara
langsung mendemonstrasikan bagaimana sebuah perangkat lunak atau komponen-komponen
perangkat lunak akan bekerja dalam lingkungannya sebelum tahapan konstruksi aktual
dilakukan.

Prototyping model dapat diklasifikasikan menjadi beberapa tipe seperti terlihat pada gambar :
 Reusable prototype :
Prototype yang akan ditransformasikan menjadi produk final.
 Throwaway prototype :
Prototype yang akan dibuang begitu selesai menjalankan maksudnya.
 Input/output prototype :
Prototype yang terbatas pada antar muka pengguna (user interface).
 Processing prototype :
Prototype yang meliputi perawatan file dasar dan proses-proses transaksi.
 System prototype :
Prototype yang berupa model lengkap dari perangkat lunak.

Tahap-tahap dalam prototyping boleh dikata merupakan tahap-tahap yang dipercepat. Strategi
utama dalam prototyping adalah kerjakan yang mudah terlebih dahulu dan sampaikan hasil
kepada pengguna sesegera mungkin. Harris (2003) membagi prototyping dalam enam tahapan
seperti terlihat pada gambar.
Tahapan-tahapan secara ringkas dapat dijelaskan sebagai berikut:

Identifikasi kandidat prototyping. Kandidat dalam kasus ini meliputi user interface (menu,
dialog, input dan output), file-file transaksi utama, dan fungsi-fungsi pemrosesan sederhana.

Rancang bangun prototype dengan bantuan software seperti word processor, spreadsheet,
database, pengolah grafik, dan software

CASE (Computer-Aided System Engineering).

Uji prototype untuk memastikan prototype dapat dengan mudah dijalankan untuk tujuan
demonstrasi.

Siapkan prototype USD (User’s System Diagram) untuk mengidentifikasi bagian-bagian dari
perangkat lunak yang di-prototype-kan.

Evaluasi dengan pengguna untuk mengevaluasi prototype dan melakukan perubahan jika
diperlukan.

Transformasikan prototype menjadi perangkat lunak yang beroperasi penuh dengan melakukan
penghilangan kode-kode yang tidak dibutuhkan, penambahan program-program yang memang
dibutuhkan dan perbaikan dan pengujian perangkat lunak secara berulang.
4. Model Teknik Generasi ke-4/4GT

Istilah Fourth Generation Techniques (4GT) yaitu seperangkat peralatan software yang
fungsinya sebagai perangkat pembantu untuk memudahkan seorang pengembang software
mengaplikasikan karakteristik software tersebut, dari situ akan menghasilkan source code dan
object code yang secara otomatis sesuai dengan persyaratan khusus yang dibuat oleh
pengembang software tersebut.

Tool 4GT adalah bahasa non prosedur antara lain :

 DataBase Query
 Pembentukan laporan ( Report Generation )
 Manipulasi data
 Definisi dan interaksi layar (screen)
 Pembentukan object dan source ( Object and source generation )
 Kemampuan grafik yang tinggi, dan
 Kemampuan spreadsheet

Tahapan-tahapan model 4GT antara lain sebagai berikut :

 Tahap pengumpulan kebutuhan

       Tahap ini merupakan tahap pengumpulan serangkaian kebutuhan. Customer


menjelaskan kebutuhan-kebutuhan kemudian           akan diterjemahkan ke dalam prototype.
Tetapi jika customer merasa tidak yakin dengan apa yang diperlukan, maka               prototype
tidak akan dikerjakan oleh 4GT.

 Tahap Merancang Strategi

         Tahap ini dibutuhkan untuk proyek besar yakni dengan menterjemahkan
kebutuhan menjadi prototype operasional agar            tidak timbul masalah yang sama jika
dibuat dengan model konvensional.

 Tahap Implementasi

        Tahap ini memungkinkan pengembang software menjelaskan hasil yang diinginkan,


kemudian selanjutnya diterjemahkan            dalam bentuk source code dan object code secara
otomatis.
 Tahap produksi

         Tahap terakhir ini adalah mengubah implementasi 4GT ke dalam hasil akhir
berupa produk.

a. Kelebihan :  Pengurangan waktu dan peningkatan produktivitas yang


besar.    
b. Kekurangan : kemungkinan akan sulit memanfaatkan tools 4GT
dibandingkan dengan menggunakan bahasa pemrograman yang               
konvensional, selain itu terdapat juga masalah dalam hal kode sumber
yang tidak efisien.

Unified Process & Unified Modeling Language

Unified Process (UP) atau kadang disebut sebagai Unified Software Development Process
(USDP) adalah kerangka proses pengembangan yang bersifat use-case-driven, berpusat pada
arsitektur perangkat lunak, interatif dan tumbuh-kembang. Kerangka pengembangan ini
termasuk baru dalam metodologi pengembangan perangkat lunak. UP dapat diaplikasikan pada
berbagai skala proyek, mulai dari skala kecil sampai dengan skala besar.

Daur hidup UP secara umum akan tampak seperti pada bagan di Gambar Bagan ini biasa
disebut sebagai “hump chart”. Pada bagan ini terlihat ada empat tahap pengembangan yaitu
inception, elaboration, construction dan transition. Selain itu tampak pula sejumlah aktivitas
(disciplines) yang harus dilakukan sepanjang pengembangan perangkat lunak, yaitu, business
modeling, requirements, analysis and design, implementation, test. Tahap dan aktivitas
tersebut akan dilakukan secara iteratif.
Penjelasan singkat untuk empat tahapan dalam UP adalah sebagai berikut:

Inception. Tahapan ini merupakan tahapan paling awal dimana aktivitas penilaian terhadap
sebuah proyek perangkat lunak dilakukan. Tujuannya adalah untuk mendapatkan kesepakatan
dari stakeholder sehubungan dengan tujuan dan dana proyek.

Elaboration. Tujuan dari tahap ini adalah untuk mendapatkan gambaran umum kebutuhan,
persyaratan dan fungsi-fungsi utama perangkat lunak. Hal ini penting untuk mengetahui secara
lebih baik resiko-resiko proyek, baik meliputi resiko arsitektur perangkat lunak, perencanaan,
maupun implementasi. Pada tahap ini telah dimulai rancang bangun perangkat lunak secara
iterative melalui aktivitas-aktivitas seperti business modeling, requirements, analysis dan design
meskipun baru pada tahap awal.

Construction. Tujuan dari tahapan ini adalah membangun perangkat lunak sampai dengan saat
perangkat lunak tersebut siap digunakan. Titik berat tahapan ini adalah pada penentuan tingkat
prioritas kebutuhan / persyaratan, melengkapi spesifikasinya, analisis lebih dalam, desain solusi
yang memenuhi kebutuhan dan persyaratan, pengkodean dan pengujian perangkat lunak. Jika
dimungkinkan versi awal dari perangkat lunak diuji cobakan untuk mendapatkan masukan dari
pengguna.

Transition. Tahap ini difokuskan pada bagaimana menyampaikan perangkat lunak yang sudah
jadi pada pengguna. Perangkat lunak akan secara resmi diuji oleh baik oleh penguji (tester)
yang kompeten maupun oleh pengguna. Beberapa aktivitas seperti pemindahan pusat data dan
pelatihan pengguna dan staf pendukung harus dilakukan pada tahap ini.

Dalam pengembangan perangkat lunak dengan menggunakan UP, maka tidak lepas dari
penggunaan notasi-notasi yang biasa disebut sebagai UML (Unified Modeling Language).
Meskipun UP mensyaratkan penggunaan UML, namun UML sendiri dapat digunakan pada
berbagai metodologi yang lain bahkan dapat digunakan pada bidang selain sistem informasi.

UML adalah bahasa pemodelan standar atau kumpulan teknik-teknik pemodelan untuk men-
spesifikasi, mem-visualisasi, meng-konstruksi dan mendokumentasi hasil kerja dalam
pengembangan perangkat lunak. UML lahir dari penggabungan banyak bahasa pemodelan
grafis berorientasi obyek yang berkembang pesat pada akhir tahun 1980an dan awal 1990an.

Secara sederhana UML digunakan untuk menggambar sketsa sistem. Pengembang


menggunakan UML untuk menyampaikan beberapa aspek dari sebuah perangkat lunak melalui
notasi grafis. UML mendefinisikan notasi dan semantik. Notasi merupakan sekumpulan bentuk
khusus yang memiliki makna tertentu untuk menggambarkan berbagai diagram piranti lunak
dan semantik mendefinisikan bagaimana bentuk-bentuk tersebut dapat dikombinasikan. Ada
beberapa jenis diagram yang disediakan dalam UML, antara lain adalah:

 Use-case diagram. Diagram ini berguna untuk menggambarkan interaksi antara


pengguna dengan sebuah perangkat lunak
 Activity diagram. Diagram ini berguna untuk menggambarkan prosedur- prosedur
perilaku perangkat lunak.
 Class diagram. Diagram ini berguna untuk menggambarkan class, fitur, dan hubungan-
hubungan yang terjadi. Pada diagram ini pendekatan berorientasi obyek memegang
peranan yang sangat penting.
 Sequence diagram. Diagram ini berguna untuk menggambarkan interaksi antar obyek
dengan penekanan pada urutan proses atau kejadian.
 State machine diagram. Diagram ini digunakan untuk menggambarkan bagaimana suatu
kejadian mengubah obyek selama masa hidup obyek tersebut.
 Component diagram. Diagram ini berguna untuk menggambarkan struktur dan koneksi
komponen.

Tahapan Rekayasa Perangkat Lunak

Seperti telah disebutkan, meskipun dalam pendekatan berbeda-beda, namun model-model di


atas memiliki kesamaan, yaitu menggunakan pola tahapan analysis => design =>
coding(construction) => testing => maintenance.

A. Analisis

Analisis sistem adalah teknik pemecahan masalah di mana sistem dipecah menjadi komponen-
komponennya untuk memeriksa seberapa baik komponen bekerja dan berinteraksi untuk
mencapai tujuan mereka.

Model proses juga menunjukkan aliran data yang masuk dan keluar pada suatu proses.
Biasanya model ini digambarkan dalam bentu Diagram Arus Data (Data Flow Diagram / DFD).
DFD meyajikan gambaran apa yang manusia, proses dan prosedur lakukan untuk
mentransformasi data menjadi informasi.

B. Desain

Desain perangkat lunak adalah tugas, fase atau aktivitas yang berfokus pada spesifikasi
terperinci dari solusi terkomputerisasi. Desain perangkat lunak sering disebut sebagai desain
fisik. Ketika masalah bisnis (business rule) disorot dalam fase analisis sistem, desain perangkat
lunak terbalik berfokus pada sisi teknis dan implementasi perangkat lunak.
C. Konstruksi

Konstruksi adalah fase menerjemahkan hasil desain logis dan fisik ke dalam kode program
komputer.

D. Pengujian

Tes sistem mencakup semua kelompok pengguna yang direncanakan pada fase sebelumnya.
Pengujian tingkat penerimaan perangkat lunak berakhir ketika kesan muncul bahwa semua
kelompok pengguna mengklaim dapat menerima perangkat lunak berdasarkan kriteria yang
ditentukan.

E. Perawatan dan Konfigurasi

Ketika eksekusi perangkat lunak dianggap layak, fase baru muncul, yaitu pemeliharaan
perangkat lunak. Berbagai jenis perawatan sudah dikenal di dunia perangkat lunak.
Jenis Software Testing

1. System Testing 

System testing merupakan testing yang dilakukan pada satu keseluruhan sistem. Yang dilakukan
tidak lain adalah end to end testing untuk memverifikasi semua skenario telah berjalan dengan
baik. Cakupan system testing akan mengetes aspek-aspek fungsional dan non-fungsional dari
sebuah software. Apakah software ini telah memenuhi persyaratan untuk digunakan oleh
pengguna merupakan sebuah pertanyaan yang harus bisa dijawab oleh jenis testing ini.

2. Unit Testing

Unit testing merupakan testing yang dilakukan pada komponen atau modul terkecil dari sebuah
software. Unit testing biasanya dilakukan oleh para programmer/software engineer, bukan
Quality Assurance tester. Hal ini dikarenakan untuk melakukan unit testing diperlukan
pengetahuan tentang internal program design atau coding. Selain itu, kemampuan yang
diperlukan untuk melakukan testing jenis ini adalah developing test driver module atau test
harness.

3. Integration Testing

Integration testing merupakan testing yang dilakukan dengan cara mengintegrasi atau
mengkombinasikan satu modul/unit testing dengan modul/unit testing yang lain. Fungsi utama
dari integration testing adalah menguji interface di antara unit atau modul yang sudah di
testing. Biasanya integration testing dilakukan setelah melakukan unit testing. Setelah unit atau
komponen terkecil dibuat dan di testing, kita mulai untuk mengkombinasikan 'unit-unit yang
sudah ditest' tersebut dan melakukan integrated testing.

4. Usability Testing

Usability testing merupakan pengujian untuk menjamin bahwa sebuah software sudah user-
friendly atau ramah digunakan oleh user. Beberapa pengujian yang dilakukan antara lain
memastikan interface yang dibangun sudah sesuai dengan ekspektasi yang diinginkan oleh
user. Beberapa hal yang dinilai dari pengujian ini antara lain efektivitas, efisien, kemudahan,
dan menyenangkan.

5. Performance Testing

Performance testing merupakan terminologi atau istilah yang digunakan untuk menguji 'stress'
dan 'load' software secara bergantian. Performance testing digunakan untuk mengecek apakah
sistem sudah memenuhi performance requirements. Berbeda tingkatan performance sebuah
software maka alat yang digunakan untuk testing 'stress' dan 'load'-nya akan berbeda.

6. Smoke Testing

Smoke testing merupakan pengujian yang dilakukan untuk mengecek satu bangunan software
baru yang dibuat oleh development team. Proses pengujian ini biasanya dilakukan sebelum
para Quality Assurance tester memulai rangkaian pengujian.

Smoke testing akan memeriksa bahwa tidak ada cacat pada software yang akan mencegah tim
Quality Assurance tester melakukan pengujian secara mendetail. Setelah fase pengujian ini
dilakukan, para Quality Assurance tester  akan mengambil perannya untuk memastikan bahwa
bangunan software telah stabil. 

7. Stress Testing

Stress testing merupakan pengujian yang dilakukan pada sistem atau software yang dilakukan
oleh Quality Assurance tester untuk memeriksa bagaimana dan kapan software ini berhenti
atau gagal. Pengujian ini akan menempatkan software di kondisi-kondisi, contohnya
menempatkan jumlah besar di luar kapasitas penyimpanan, permintaan basis data yang
kompleks, atau input data terus menerus ke dalam sistem.

8. Sanity Testing

Sanity testing  merupakan pengujian yang dilakukan untuk menentukan apakah versi baru dari
software yang dibangun dapat bekerja dengan baik. Jika software macet atau berhenti ketika
penggunaan awal, maka sistem yang tertanam dalam software tidak cukup stabil untuk
pengujian lebih lanjut. Maka dari itu, perlu untuk membangun lagi atau membetulkan aspek-
aspek yang masih belum berfungsi sempurna.

9. Regression Testing

Regression testing merupakan jenis pengujian yang dilakukan untuk memverifikasi bahwa
perubahan kode pada software tidak memengaruhi fungsionalitasnya sebagai produk.
Regression testing akan memastikan produk berfungsi dengan baik sesuai dengan
fungsionalitas baru yang dipasang, perbaikan bug, atau perubahan-perubahan fitur yang ada.
PENGUJIAN PERANGKAT LUNAK

Pengujian PL adalah elemen kritis dari jaminan kualitas PL dan merepresentasikan spesifikasi, desain dan
pengkodean. Meningkatnya visibilitas PL sbg suatu elemen sistem dan "biaya” yg muncul akibat
kegagalan PL, memotivasi dilakukan perencanaan yg baik melalui pengujian yg teliti. Dalam melakukan
uji coba ada 2 masalah penting yang akan dibahas, yaitu :

A. Teknik uji coba PL

B. Strategi uji coba PL

TEKNIK UJI COBA PL

Pada dasarnya, pengujian merupakan suatu proses rekayasa PL yg dapat dianggap (secara psikologis)
sebagai hal yg destruktif daripada konstruktif.

SASARAN PENGUJIAN (Glen Myers) :

 Pengujian adalah proses eksekusi suatu program dengan maksud menemukan kesalahan.
 Test case yg baik adalah test case yg memiliki probabilitas tinggi untuk menemukan kesalahan yg
belum pernah ditemukan sebalumnya.
 Pengujian yg sukses adalah pengujian yg mengungkap semua kesalahan yg belum pernah
ditemukan sebelumnya.

PRINSIP PENGUJIAN (diusulkan Davis) :

 Semua pengujian harus dapat ditelusuri sampai ke persyaratan pelanggan.


 ·Pengujian harus direncanakan lama sebelum pengujian itu dimulai.
 ·Prinsip Pareto berlaku untuk pengujian PL. Prinsip Pareto mengimplikasikan 80% dari semua
kesalahan yg ditemukan selama pengujian sepertinya akan dapat ditelusuri sampai 20% dari
semua modul program.
 ·Pengujian harus mulai "dari yg kecil" dan berkembang ke pengujian "yang besar".
 ·Pengujian yg mendalam tidak mungkin.
 Paling efektif, pengujian dilakukan oleh pihak ketiga yg independen.
TESTABILITAS

Testabilitas PL adalah seberapa mudah sebuah program komputer dapat diuji. Karena
pengujian sangat sulit, perlu diketahui apa yg dapat dilakukan untuk membuatnya menjadi mudah.
Karakteristik PL yg diuji :

a. OPERABILITAS, semakin baik dia bekerja semakin efisien dia dapat diuji.
b. OBSERVABILITAS, apa yg anda lihat adalah apa yg anda uji.
c. KONTROLABILITAS, semakin baik kita dapat mengontrol PL semakin banyak pengujian yg adapat
diotomatisasi dan dioptimalkan.
d. DEKOMPOSABILITAS, dengan mengontrol ruang lingkup pengujian kita dapat lebih cepat
mengisolasi masalah dan melakukan pengujian kembali.
e. KESEDERHANAAN, semakin sedikit yg diuji semakin cepat pengujian.
f. STABILITAS, semakin sedikit perubahan semakin sedikit gangguan pengujian.
g. KEMAMPUAN DIPAHAMI, semakin banyak informasi yg dimiliki semakin detail pengujiannya.

ATRIBUT PENGUJIAN YG BAIK :


 Memiliki probabilitas yg tinggi menemukan kesalahan.
 Tidak redundan. · Harusnya ‘jenis terbaik’.
 Tidak boleh terlalu sederhana atau terlalu kompleks.

DESAIN TEST CASE

Terdapat bermacam-macam rancangan metode test case yg dapat digunakan, semua


menyediakan pendekatan sistematis untuk uji coba, yg terpenting metode menyediakan
kemungkinan yg cukup tinggi menemukan kesalahan. Terdapat 2 macam test case:

 Pengetahuan fungsi yg spesifik dari produk yg telah dirancang untuk diperlihatkan, test
dapat dilakukan untuk menilai masing-masing fungsi apakah telah berjalan sebagaimana
yg diharapkan.
 Pengetahuan tentang cara kerja dari produk, test dapat dilakukan untuk
memperlihatkan cara kerja dari produk secara rinci sesuai dengan spesifikasinya.
Dua macam pendekatan test yaitu :

 Black Box Testing Test case ini bertujuan untuk menunjukkan fungsi PL tentang cara
beroperasinya, apakah pemasukan data keluaran telah berjalan sebagaimana yang
diharapkan dan apakah informasi yang disimpan secara eksternal selalu dijaga
kemutakhirannya.
 White Box Testing Adalah meramalkan cara kerja perangkat lunak secara rinci,
karenanya logikal path (jalur logika) perangkat lunak akan ditest dengan menyediakan
test case yang akan mengerjakan kumpulan kondisi dan atau pengulangan secara
spesifik. Secara sekilas dapat diambil kesimpulan white box testing merupakan petunjuk
untuk mendapatkan program yang benar secara 100%. UJI COBA WHITE BOX Uji coba
white box adalah metode perancangan test case yang menggunakan struktur kontrol
dari perancangan prosedural untuk mendapatkan test case. Dengan rnenggunakan
metode white box, analis sistem akan dapat memperoleh test case yang: · menjamin
seluruh independent path di dalam modul yang dikerjakan sekurang-kurangnya sekali ·
mengerjakan seluruh keputusan logikal · mengerjakan seluruh loop yang sesuai dengan
batasannya · mengerjakan seluruh struktur data internal yang menjamin validitas
Pengujian terintegrasi adl teknik yg sistematis untuk penyusunan struktur program, pada saat
bersamaan dikerjakan uji coba untuk memeriksa kesalahan yg nantinya digabungkan dengan interface.

Metode pengujian

 top down integration


 buttom up integration

1. TOP DOWN INTEGRATION


Merupakan pendekatan inkrmental untuk penyusunan struktur program. Modul dipadukan dgn
bergerak ke bawah melalui kontrol hirarki dimulai dari modul utama. Modul subordinat ke
modul kontrol utama digabungkan ke dalam struktur baik menurut depth first atau breadth first.
Proses integrasi: · modul utama digunakan sebagai test driver dan stub yg menggantikan seluruh
modul yg secara langsung berada di bawah modul kontrol utama. ·
 Tergantung pada pendekatan perpaduan yg dipilih (depth / breadth) ·
Uji coba dilakukan selama masing-masing modul dipadukan
 Pada penyelesaian masing-masing uji coba stub yg lain dipindahkan dgn
modul sebenarnya.
 Uji coba regression yaitu pengulangan pengujian untuk mencari
kesalahan lain yg mungkin muncul.
2. BOTTOM UP INTEGRATION
Pengujian buttom up dinyatakan dgn penyusunan yg dimulai dan diujicobakan dgn atomic
modul (yi modul tingkat paling bawah pd struktur program). Karena modul dipadukan dari
bawah ke atas, proses yg diperlukan untuk modul subordinat yg selalu diberikan harus ada dan
diperlukan untuk stub yg akan dihilangkan.
Strategi pengujian :
 Modul tingkat bawah digabungkan ke dalam cluster yg memperlihatkan
subfungsi PL ·
 Driver (program kontrol pengujian) ditulis untuk mengatur input test
case dan output ·
 Cluster diuji ·
 Driver diganti dan cluster yg dikombinasikan dipindahkan ke atas pada
struktur program

Anda mungkin juga menyukai