Anda di halaman 1dari 16

MAKALAH CLEAN ROOM TESTING

Disusun untuk Memenuhi Tugas Matakuliah Testing dan Implementasi Sistem

Disusun Oleh:

ALDO ALFREDO MOLOAN


(190810075)

PROGRAM STUDI SISTEM INFORMASI


FAKULTAS ILMU KOMPUTER
UNIVERSITAS KATOLIK SANTO THOMAS
MEDAN
2022
KATA PENGANTAR

Segala puji dan syukur penyusun panjatkan atas kehadirat Tuhan Yang
Maha Esa, yang telah mencurahkan segala nikmat, rahmat, hidayah, kepada
penyusun sehingga tugas makalah mata kuliah “ Testing dan Implementasi Sistem”
dapat kami selesaikan.
Syukur serta salam semoga tercurahkan kepada pembaca dan kita jadi
teladan atau contoh dalam pembuatan Makalah.
Tidak lupa penyusun ucapkan terima kasih kepada dosen mata kuliah
“ Testing dan Implementasi Sistem” atas bimbingannya, dan kepada semua orang
yang terlibat baik langsung maupun tidak langsung sehingga makalah ini dapat
terselesaikan.
Adapun jika isi makalah ini memiliki banyak kekurangan, oleh karena itu,
kritik serta saran yang membangun khususnya dari dosen sangat penyusun
harapkan

Medan, 25 Januari 2023

Aldo Alfredo Moloan

ii
DAFTAR ISI

KATA PENGANTAR ........................................................................................... ii


DAFTAR ISI ......................................................................................................... iii
BAB I ...................................................................................................................... 1
PENDAHULUAN .................................................................................................. 1
I.1 Latar Belakang .................................................................................................. 1
I.2 Rumusan Masalah ............................................................................................. 2
I.3 Tujuan ................................................................................................................ 2
BAB II .................................................................................................................... 3
PEMBAHASAN .................................................................................................... 3
II.1 Cleanroom Software Engineering .................................................................... 3
II.2 Model Proses Cleanroom .................................................................................. 3
II.3 Keunikan Cleanroom ........................................................................................ 5
II.4 Spesifikasi Fungsional ....................................................................................... 5
II.5 Desain Cleanroom .................................................................................................. 8
II.6 Pengetesan Cleanroom ...................................................................................... 9
BAB III ................................................................................................................. 10
PENUTUP ............................................................................................................ 10
III.1 Kesimpulan ...................................................................................................... 10
III.2 Saran ................................................................................................................. 10
REFERENSI ........................................................................................................ 11

iii
iv
BAB I

PENDAHULUAN

I.1 Latar Belakang


Strategi dan taktik clean room testing secara mendasar berbeda dengan
pendekatan testing konvensional. Metode konvensional menarik serangkaian test
case untuk mengungkap kesalahan pengkodean dan desain. Tujuan clean room
testing adalah untuk memvalidasi persyaratan software dengan memperlihatkan
bahwa suatu sampel statistik dari kasus-kasus penggunaan telah dieksekusi dengan
baik.

Tidak seperti testing konvensional, rekayasa software dengan metode


cleanroom tidak menekankan pada unit testing atau integration testing. Tetapi
software lebih diuji dengan menentukan skenario penggunaan, dengan menentukan
probabilitas penggunaan untuk setiap skenario, dan kemudian menetapkan tes acak
yang sesuai dengan probabilitas tersebut.

Kesalahan mencatat bahwa hasil dikombinasikan dengan sampling,


komponen, dan sertifikasi untuk memungkinkan komputasi matematis dari
reliabilitas yang diproyeksikan untuk komponen software. Namun sebelum
membahas cleanroom testing lebih lanjut, perlu kiranya dijelaskan secara sekilas
tentang rekayasa software dengan metode cleanroom. Rekayasa software dengan
metode cleanroom adalah pendekatan formal ke pengembangan software yang
dapat membawa ke software yang memiliki kualitas yang sangat tinggi. Rekayasa
software dengan metode cleanroom menggunakan spesifikasi struktur kotak (atau
metode formal) untuk pemodelan analisis dan desain, serta lebih menekankan
verifikasi kebenaran daripada testing, sebagai mekanisme utama untuk menemukan
dan menghilangkan kesalahan.

Testing menggunakan statistik digunakan untuk mengembangkan informasi


tingkat kegegalan yang diperlukan untuk mensertifikasi reliabilitas software yang
disampaikan. Pendekatan cleanroom dimulai dengan model analisis dan desain

1
yang menggunakan representasi struktur kotak. “Kotak” mengenkapsulasi sistem
(atau beberapa aspek sistem) pada suatu tingkat abstraksi spesifik.

Black box digunakan untuk merepresentasikan tingkah laku sistem yang


dapat diobservasi secara eksternal. State box mengenkapsulasi data keadaan dan
operasi. Clearbox digunakan untuk memodelkan desain prosedural yang
diimplikasikan oleh data dan operasi dari suatu state box. Verifikasi kebenaran
diaplikasikan begitu desain struktur kotak dilengkapi.

Desain prosedural untuk suatu komponen software dipartisi ke dalam


sederetan subfungsi. Untuk membuktikan kebenaran masing-masing subfungsi,
kondisi exit didefinisikan untuk setiap fungsi dan serangkaian subproof
diaplikasikan. Bila masing-masing kondisi exit dipenuhi, maka desain pasti benar.
Sekali verifikasi kebenaran lengkap, maka testing menggunakan statistik pun
dimulai.

Filosofi cleanroom merupakan pendekatan yang teliti ke rekayasa software.


Cleanroom merupakan model proses software yang menekankan verifikasi
matematis dari kebenaran dan sertifikasi dari reliabilitas software. Garis di bagian
bawah merupakan tingkat kegagalan yang sangat rendah, yang sangat sulit atau
tidak mungkin dicapai dengan menggunakan model formal yang lebih sedikit.

I.2 Rumusan Masalah


Berdasarkan pada latar belakang masalah, maka dapat dirumuskan
permasalahan pada penelitian ini:

1. Apakah kepercayaan bahwa metodologi cleanroom terlalu teoritis, terlalu


matematis, dan terlalu radikal.
2. Tidak membutuhkan unit pengetesan.
3. Industri pengembangan software belum siap untuk mengaplikasikan teknik ini.

I.3 Tujuan
1. Memahami lebih dalam pencegahan terhadap cleanroom testing.
2. Mengetahui lebih dalam model proses cleanroom.
3. Memberikan cara untuk melakukan cleanroom testing.

2
BAB II

PEMBAHASAN

II.1 Cleanroom Software Engineering


Cleanroom software engineering merupakan sebuah pendekatan untuk
memenuhi kebutuhan akan software yang bebas kesalahan sejak masih dalam tahap
pengembangan. Alih-alih menggunakan siklus klasik (analisis, desain, coding,
pengetesan, dan proses debugging), pendekatan cleanroom menggunakan sudut
pandang yang berbeda. Filosofinya adalah menghilangkan proses debugging yang
memerlukan biaya cukup besar dengan meningkatan kebenaran penulisan kode
sejak awal dan memverifikasinya kebenarannya sebelum pengetesan dilakukan.
Model prosesnya ditunjang dengan sertifikasi kualitas statistikal peningkatan
jumlah baris kode saat diakumulasikan dengan sistem.
Meskipun di awal digunakannya pendekatan ini pada rekayasa perangkat
lunak menunjukkan hasil yang menjanjikan, pendekatan tersebut belum digunakan
secara luas. Henderson [HEN95] mengemukakan tiga alasan yang mungkin:
1. Kepercayaan bahwa metodologi cleanroom terlalu teoritis, terlalu
matematis, dan terlalu radikal
2. Tidak membutuhkan unit pengetesan oleh pengembang tetapi menggantinya
dengan verifikasi kebenaran dan quality control statistikal—konsep yang
sungguh asing bagi pengembangan software saat ini
4. Industri pengembangan software belum siap untuk mengaplikasikan teknik ini.
Kematangan industri pengembangan software sangat dibutuhkan karena pada
pendekatan ini, aplikasi proses terdefinisi banyak sekali digunakan dalam
semua fase siklus hidup. Suatu hal yang sangat sulit dilakukan mengingat
sebagian besar pengembang masih beroperasi pada level ad hoc.
II.2 Model Proses Cleanroom
Pendekatan cleanroom menggunakan incremental software model versi
khusus. Pipeline software increment dikembangkan oleh tim kecil perekayasaan
perangkat lunak secara independen. Setelah setiap increment tersertifikasi,

3
kemudian semua increment tersebut digabungkan. Urutan kerja cleanroom untuk
setiap increment diilustrasikan dalam gambar 1. Semua requirement sistem
dikembangkan dengan metode perekayasaan sistem (system engineering methods).
Ketika fungsionalitas telah diberikan, pipeline increment cleanroom dimulai.

Rangkaian kerja untuk setiap increment:

Increment planning. Fungsionalitas setiap increment, proyeksi ukurannya, dan


jadwal pengembangan cleanroom dibuat. Rencana kerja ini dikembangkan
sebelum increment dimulai.

Requirements gathering. Deskripsi lebih detail tentang level requirement


customer untuk setiap increment dikembangkan.

Box structure spesification. Metode spesifikasi yang menggunakan struktur


boks [HEV93] digunakan untuk mendeskripsikan spesifikasi fungsional. Secara
singkat, struktur boks mengisolasi dan memisahkan definisi tentang perilaku,
data, dan prosedur (fungsi) pada tiap level perbaikan. Akan dijelaskan lebih
lanjut di bagian lain pembahasan ini.

Formal design. Meskipun dimungkinkan untuk membedakan secara jelas


antara dua aktivitas, spesifikasi (disebut black box) berulang-ulang tetap
dilakukan.

Correctness verification. Sesuai dengan filosofi yang telah disebutkan


sebelumnya, tim cleanroom melakukan banyak sekali akktivitas verifikasi
kebenaran. Verifikasi dilakukan dimulai dari level teratas struktur boks hingga
ke detail desain dan kode.

4
Code generation, inspection, and verification. Spesifikasi struktur boks
diterjemahkan ke dalam bahasa pemrograman. Teknik inspeksi digunakan untuk
memastikan kesesuaian kode dan struktur boks dan kebenaran sintaks kode.
Kemudian verifikasi kebenaran dilakukan pada source code.

Statistical test planning. Proyeksi penggunaan software dianalisa dan


serangkaian test case direncanakan dan didesain. Aktivitas ini berjalan paralel
dengan spesifikasi, verifikasi, dan code generation.

Statistical use testing. Teknik statistical use mengeksekusi serangkaian tes


yang diturunkan dari sample statistikal dari semua kemungkinan eksekusi
program oleh semua pengguna dari populasi target.

Certification. Ketika verifikasi, inspeksi, dan tes penggunaan selesai


dilakukan, increment disertifikasi, yang berarti bahwa siap untuk diintegrasikan
dengan increment lain.

II.3 Keunikan Cleanroom


Perbedaan perekayasaan software cleanroom dengan perekayasaan software
konvensional dan berorientasi objek:

1. Penggunaan secara eksplisit quality control statistikal


2. Pemverifikasian spesifikasi desain menggunakan bukti kebenaran berbasis
matematik
3. Sangat bergantung pada testing statistikal untuk menemukan error yang
mungkin berakibat fatal
4. Meminimalkan peran unit testing dan debugging (dan secara dramatis
mengurangi aktivitas testing oleh pengembang software).

II.4 Spesifikasi Fungsional


Cleanroom software engineering sesuai dengan prinsip analisis operasional dengan
menggunakan metode yang disebut dengan box structure spesification. Boks
mengenkapsulasi sistem (atau beberapa aspek dari sistem) pada suatu level detail.
Melalui perbaikan proses bertahap, boks-boks disusun secara hirarki, di mana setiap

5
boks memiliki transparansi referensial. Dengan begitu spesifikasi dari masing-
masing boks sudah cukup untuk mendefinisikan refinement, tanpa bergantung pada
implementasi boks yang lain.

a. Black box
Black box menspesifikasikan perilaku sistem atau bagian dari sistem. Sistem
(atau bagian dari sistem) merespon stimuli (event) dengan mengaplikasikan
aturan transisi yang memetakan stimuli ke respon (seperti dalam relasi
himpunan, setiap stimuli berkorespondensi dengan respon yang sesuai). Itulah
mengapa, boks teratas ini disebut black box. Karena pada level ini untuk
sebuah even yang terjadi, kita hanya tahu sebatas respon yang akan diberikan
oleh sistem, atau bagian dari sistem, tanpa tahu proses apa sebenarnya yang
terjadi di dalam box.

Banyak konsep yang diperkenalkan untuk sistem berorientasi objek juga


bisa diaplikasikan untuk black box. Black box mengenkapsulasi abstraksi data
dan operasi yang berhubungan dengan data abstrak. Seperti pada hirarki class,

6
boks pada level bawah bisa mewarisi property dari boks yang lebih atas
menurut struktur tree.
b. State box
State box mengenkapsulasi data state dan operasinya. Di state box ini, input
pada state-box (stimuli) dan output (respon) direpresentasikan. State box juga
merepresentasikan “stimulus history” dari black box; data yang dienkapsulasi
dalam state box yang harus dijaga selama terjadi transisi diimplikasikan. State
box merespon stimuli dengan membuat transisi dari current state ke beberapa
state baru. State box menggunakan data abstraksi untuk menentukan transisi
ke state selanjutnya dan aksi (respon) yang akan terjadi sebagai konsekuensi
transisi.

c. Clear box
Clear box merupakan level terendah dalam box structure. Fungsi transisi yang
dipanggil oleh state box didefinisikan di clear box (clear box berisi desain
prosedural dari state box). Clear box berhubungan erat dengan pemrograman
terstruktur. Spesifikasi prosedural yang terdapat pada struktur hirarki clear box
dapat dibuktikan kebenarannya (akan dijelaskan pada bagian selanjutnya).

7
II.5 Desain Cleanroom
Pendekatan desain yang digunakan pada perekayasaan software cleanroom
banyak sekali menerapkan filosofi pemrograman terstruktur (terutama pada
pendefinisian fungsi). Konsep enkapsulasi data, information hiding, dan pemilihan
tipe data yang tepat digunakan untuk membuat desain data. Pada setiap level
refinement, tim cleanroom melakukan verifikasi kebenaran formal. Keuntungan
dilakukannya verifikasi desain:
1. Mengurangi verifikasi pada finite process
2. Memungkinkan tim cleanroom memverifikasi setiap baris desain dan kode
3. Menghasilkan level defek mendekati nol. Ini merupakan hal yang terpenting
karena proses debugging (penghilangan defek) merupakan aktivitas yang
sangat membuang waktu dan mahal
4. Menghasilkan kode yang lebih baik dibandingkan dengan kode yang
dihasilkan unit testing.

8
II.6 Pengetesan Cleanroom
Tujuan pengetesan cleanroom adalah untuk memvalidasi kebutuhan
software dengan mendemonstrasikan bahwa sampel statistik use-case dapat
dilakukan dengan sukses, yang akan menghasilkan sertifikasi pada komponen
software. Komponen software reusable dapat disimpan bersama dengan skenario
penggunaan, stimuli program, dan distribusi probabilitas. Pendekatan sertifikasi
meliputi lima langkah:
1. Skenario penggunaan harus dibuat
2. Profil penggunaan harus dispesifikasikan
3. Test case dibangkitkan dari profil tersebut
4. Tes dijalankan dan data kesalahan dicatat dan dianalisa
5. Reliabilitas dikomputasikan dan disertifikasikan

Sertifikasi untuk perekayasaan software cleanroom membutuhkan


dibuatnya tiga model berikut:
1. Model sampling. Software testing mengeksekusi m random test case dan
akan memperoleh sertifikasi jika tidak ada error atau tidak lebih dari batas
toleransi error
2. Model komponen. Sebuah sistem yang terdiri dari n komponen akan
disertifikasikan. Model komponen memungkinkan analis untuk
menentukan kemungkinan komponen tersebut akan gagal saat
penyelesaian
3. Model sertifikasi. Reliabilitas sistem keseluruhan diproyeksikan dan
disertifikasikan.

9
BAB III

PENUTUP

III.1 Kesimpulan
Cleanroom adalah pendekatan formal ke pengembangan software yang
dapat membawa ke software yang memiliki kualitas yang sangat tinggi. Rekayasa
software dengan metode cleanroom menggunakan spesifikasi struktur kotak (atau
metode formal) untuk pemodelan analisis dan desain, serta lebih menekankan
verifikasi kebenaran daripada testing, sebagai mekanisme utama untuk menemukan
dan menghilangkan kesalahan.

Pendekatan cleanroom dimulai dengan model analisis dan desain yang


menggunakan representasi struktur kotak. Metode cleanroom tidak menekankan
pada unit testing atau integration testing. Tetapi software lebih diuji dengan
menentukan skenario penggunaan, dengan menentukan probabilitas penggunaan
untuk setiap skenario, dan kemudian menetapkan tes acak yang sesuai dengan
probabilitas

III.2 Saran
Dalam Cleanroom testing sebaiknya bergantung pada testing statistikal
untuk menemukan error yang mungkin berakibat fatal dan dapat merusak sistem.

10
REFERENSI

Kiki L H. Cleanroom Software Engineering. BLOG tentang Matakuliah Rekayasa


Perangkat Lunak ITS https://rpl07.wordpress.com/2007/06/20/cleanroom-
software-engineering-oleh-kiki-l-h-5105-100-129/

Endang Retnoningsih. Konsep Baru Sekitar Testing. www.endangretno.com

11
12

Anda mungkin juga menyukai