Pengujian
perangkat lunak (Bahasa Inggris: software testing)
merupakan suatu investigasi yang dilakukan untuk mendapatkan informasi mengenai
kualitas dari produk atau layanan yang sedang diuji (under test).
Pengujian perangkat lunak juga memberikan pandangan mengenai perangkat lunak
secara obyektif dan independen, yang bermanfaat dalam operasional bisnis untuk
memahami tingkat risiko pada implementasinya. Teknik-teknik pengujian mencakup,
namun tidak terbatas pada, proses mengeksekusi suatu bagian program atau
keseluruhan aplikasi dengan tujuan untuk menemukan bug
perangkat lunak.
Software
Testing (Pengujian Perangkat Lunak)
Adalah elemen kritis dari jaminan
kualitas perangkat lunak dan merepresentasikan kajian pokok dari spesifikasi,
desain, dan pengkodean.
Pentingnya pengujian perangkat lunak dan implikasinya yang mengacu pada kualitas perangkat lunak tidak dapat terlalu ditekan karena melibatkan sederetan aktivitas produksi di mana peluang terjadinya kesalahan manusia sangat besar dan arena ketidakmampuan manusia untuk melakukan dan berkomunikasi dengan sempurna maka pengembangan perangkat lunak diiringi dengan aktivitas jaminan kualitas.
Pentingnya pengujian perangkat lunak dan implikasinya yang mengacu pada kualitas perangkat lunak tidak dapat terlalu ditekan karena melibatkan sederetan aktivitas produksi di mana peluang terjadinya kesalahan manusia sangat besar dan arena ketidakmampuan manusia untuk melakukan dan berkomunikasi dengan sempurna maka pengembangan perangkat lunak diiringi dengan aktivitas jaminan kualitas.
Sejumlah aturan yang berfungsi sebagai sasaran pengujian pada perangkat lunak adalah:
Pengujian adalah proses eksekusi suatu program dengan maksud menemukan kesalahan
Test case yang baik adalah test case yang memiliki probabilitas tinggi untuk menemukan kesalahan yang belum pernah ditemukan sebelumnya
Pengujian yang sukses adalah pengujian yang mengungkap semua kesalahan yang belum pernah ditemukan sebelumnya
Sasaran itu berlawanan dengan pandangan yang biasanya dipegang yang menyatakan bahwa pengujian yang berhasil adalah pengujian yang tidak ada kesalahan yang ditemukan. Data yang dikumpulkan pada saat pengujian dilakukan memberikan indikasi yang baik mengenai reliabilitas perangkat lunak dan beberapa menunjukkan kualitas perangkat lunak secara keseluruhan, tetapi ada satu hal yang tidak dapat dilakukan oleh pengujian, yaitu
pengujian
tidak dapat memperlihatkan tidak adanya cacat, pengujian hanya dapat
memperlihatkan bahwa ada kesalahan perangkat lunak.
Sebelum
mengaplikasikan metode untuk mendesain test case yang efektif, perekayasa
perangkat lunak harus memahami prinsip dasar yang menuntun pengujian perangkat
lunak, yaitu:
-->semua pengujian harus dapat ditelusuri sampai ke persyaratan pelanggan, maksudnya mengungkap kesalahan dari cacat yang menyebabkan program gagal.
-->Pengujian harus direncanakan lama sebelum pengujian itu mulai,
maksudnya semua pengujian dapat direncanakan dan dirancang sebelum semua kode dijalankan
-->Prinsip Pareto berlaku untuk pengujian perangkat lunak,
maksudnya dari 80% kesalahan yang ditemukan selama pengujian dapat ditelusuri sampai 20% dari semua modul program.
-->Pengujian harus mulai “dari yang kecil” dan berkembang ke pengujian “yang besar”,
Selagi pengujian berlangsung maju, pengujian mengubah focus dalam usaha menemukan kesalahan pada cluster modul yang terintegrasi dan akhirnya pada sistem.
-->Pengujian yang mendalam tidak mungkin
karena tidak mungkin mengeksekusi setiap kombinasi jalur skema pengujian dikarenakan jumlah jalur permutasi untuk program menengah pun sangat besar.
-->Untuk menjadi paling efektif, pengujian harus dilakukan oleh pihak ketiga yang independent
Dalam lingkungan yang ideal, perekayasa perangkat lunak mendesain suatu program computer, sebuah sistem atau produk dengan testabilitas dalam pikirannya. Hal ini memungkinkan individu yang berurusan dengan pengujian mendesain test case yang efektif secara lebih mudah. Testabilitas adalah seberapa mudah sebuah program computer dapat diuji. Karena sangat sulit, perlu diketahui apa yang dapat dilakukan untuk membuatnya menjadi lebih mudah. Procedural dan menggunakannya sebagai pedoman untuk menetapkan basis set dari jalur eksekusi.
Sasaran utama desain test case adalah untuk mendapatkan serangkaian pengujian yang memiliki kemungkinan tertinggi di dalam pengungkapan kesalahan pada perangkat lunak. Untuk mencapai sasaran tersebut, digunakan 4 kategori yang berbeda dari tehnik desain test case: Pengujian white-box, pengujian black-box, Integrasi Bottom-Up dan Integrasi Top-Down.
Pengujian white-box
Berfokus pada struktur control program. Test case dilakukan untuk memastikan bahwa semua statemen pada program telah dieksekusi paling tidak satu kali selama pengujian dan bahwa semua kondisi logis telah diuji. Pengujian basic path, tehnik pengujian white-box, menggunakan grafik (matriks grafiks) untuk melakukan serangkaian pengujian yang independent secara linear yang akan memastikan cakupan.
Pengujian aliran data dan kondisi lebih lanjut menggunakan logika program dan pengujian loop menyempurnakan tehnik white-box yang lain dengan memberikan sebuah prosedur untuk menguji loop dari tingkat kompleksitas yang bervariasi. Pengujian black-box didesain untuk mengungkap kesalahan pada persyaratan fungsional tanpa mengabaikan kerja internal dari suatu program.
Tehnik pengujian black-box
Berfokus pada domain informasi dari perangkat lunak, dengan melakukan test case dengan menpartisi domain input dari suatu program dengan cara yang memberikan cakupan pengujian yang mendalam.
Metode pengujian graph-based mengeksplorasi hubungan antara dan tingkah laku objek-objek program. Partisi ekivalensi membagi domain input ke dalam kelas data yang mungkin untuk melakukan fungsi perangkat lunak tertentu. Analisis nilai batas memeriksaa kemampuan program untuk menangani data pada batas yang dapat diterima.
Metode pengujian yang terspesialisasi meliputi sejumlah luas kemampuan perangkat lunak dan area aplikasi. GUI, arsitektur client/ server, dokumentasi dan fasilitas help dan sistem real time masing-masing membutuhkan pedoman dan tehnik khusus untuk pengujian perangkat lunak.
Integrasi Top-Down
Adalah pendekatan incremental dengan menggerakkan ke bawah melalui hirarki control, dimulai dengan control utama. Strategi intergrasi top-down memeriksa control mayor atau keputusan pada saat awal di dalam proses pengujian. Pada struktur program yang difaktorkan dengan baik, penarikan keputusan terjadi pada tingkat hirarki yang lebih tinggi sehingga terjadi lebih dulu.
Strategi top-down kelihatannya tidak sangat rumit, tetapi di dalam praktenya banyak menimbulkan masalah logistic. Biasanya masalah ini terjadi jika dibutuhkan pemrosesan di dalam hirarki pada tingkat rendah untuk menguji secara memadai tingkat yang lebih tinggi.
Pengujian Integrasi Bottom-up
Memulai konstruksi dan pengujian dengan modul atomic (modul pada tingkat paling rendah pada struktur program). Karena modul diintegrasikan dari bawah ke atas, maka pemrosesan yang diperlukan untuk modul subordinate ke suatu tuingkat yang diberikan akan selalu tersedia dan kebutuhan akan stub dapat dieliminasi. Strategi integrasi bottom-up dapat diimplementasi dengan langkah-langkah:
Modul tingkat rendah digabung ke dalam cluster (build) yang melakukan subfungsi perangkat lunak spesifik.
Driver (program control untuk pengujian) ditulis untuk mengkoordinasi input dan output test case
Cluster diuji
Driver diganti dan cluster digabungkan dengan menggerakkannya ke atas di dalam struktur program.
Penanggulangan Cybercrime
Aktivitas pokok
dari cybercrime adalah penyerangan
terhadap content, computer system dan communication system milik orang lain atau umum di dalam cyberscape. Fenomena cybercrime memang harus diwaspadai
karena kejahatan ini agak berbeda dengan kejahatan lain pada umumnya.
Cybercrime dapat dilakukan tanpa mengenal batas territorial dan tidak
memerlukan interaksi langsung dengan antara pelaku dengan korban kejahatan.
Bisa dipastikan dengan sifat global internet, semua Negara yang melakukan
kegiatan internet akan terkena imbas perkembangan cybercrime ini.
Berikut akan
dibahas beberapa pokok yang dapat dilakukan dalam upaya menanggulangi
merebaknya kejahatan internet.
- Mengamankan Sistem
Seperti kata
pepatah “mencegah lebih baik daripada mengobati” langkah awal yang perlu
dilakukan oleh para pengguna teknologi internet dalam upaya penanggulangan cybercrime adalah melindungi diri dari
kejahatan tersebut dengan mengamankan sistem komputer masing-masing.
Tujuan yang
paling nyata dari sebuah sistem keamanan adalah mencegah adanya perusakan
bagian dalam sistem karena dimasuki oleh pemakai yang tidak diinginkan.
Pengamanan sistem secara terintegrasi sangat diperlukan untuk meminimalisasi
kemungkinan perusakan tersebut.
Sistem keamanan
yang terintegrasi, berarti berusaha memikirkan segala hal yang dapat
menyebabkan celah-celah unauthorized
actions bersifat merugikan. Dengan memikirkan kemungkinan celah-celah
tersebut, tentu akan dapat dipikirkan pula cara mengatasi dan meminimalisasi
kemungkinan tersebut. Pengamanan secara personal dapat dilakukan mulai dari
tahap instalasi sistem sampai akhirnya menuju ke tahap pengamanan fisik dan
pengamanan data. Pengamanan akan adanya penyerangan sistem melalui jaringan
juga dapat dilakukan dengan melakukan pengamanan FTP, SMTP, Telnet dan
pengamanan Web Server.
- Penanggulangan Global
Saat ini
berbagai upaya telah dipersiapkan untuk memerangi cybercrime. The Organization
for Economic Cooperation and Development (OECD) telah membuat guidelines bagi para pembuat kebijakan
yang berhubungan dengan computer-related crime, di mana pada tahun 1986 OECD telah memublikasikan laporannya
yang berjudul Computer-Related Crime: Analysis of Legal
Policy.
Laporan OECD
tersebut berisi hasil survei terhadap peraturan perundang-undangan
Negara-negara anggota beserta rekomendasi perubahannya dalam menaggulangi computer-related crime tersebut, yang mana diakui bahwa sistem
telekomunikasi juga memiliki peran penting dalam kejahatan tersebut. Dari
berbagai upaya yang dilakukan tersebut, jelas bahwa cybercrime membutuhkan global
action dalam penanggulangannya mengingat kejahatan tersebut seringkali
bersifat transnasional.
Menurut OECD,
beberapa langkah penting yang harus dilakukan setiap Negara dalam
penanggulangan cybercrime adalah :
1) Melakukan
modernisasi hukum pidana nasional beserta hukum acaranya, yang diselaraskan
dengan konvensi internasional yang terkait dengan kejahatan tersebut.
2) Meningkatkan
sistem pengamanam jaringan komputer nasional sesuai standar internasional.
3) Meningkatkan
pemahaman serta keahlian aparatur penegak hokum mengenai upaya pencegahan,
investasi dan penuntutan perkara-perkara yang berhubungan dengan cybercrime.
4) Meningkatkan
kesadaran warga Negara mengenai masalah cybercrime
serta pentingnya mencegah kejahatan tersebut terjadi.
5) Meningkatkan
kerjasama antarnegara, naik bilateral, regional maupun multilateral, dalam
upaya penanganan cybercrime, antara
lain melalui perjanjian ekstradisi dan mutual
assistance treaties.
- Perlunya Cyberlaw
Perkembangan
teknologi yang sangat pesat, membutuhkan pengaturan hukum yang berkaitan dengan
pemanfaatan teknologi tersebut. Sayangnya, hingga saat ini banyak Negara
(termasuk Indonesia) belum memiliki perundang-undangan khusus di bidang
teknologi informasi, baik dalam aspek pidana maupun perdatanya. Ketertinggalan
perundang-undangan dalam menyesuaikan diri dengan kemajuan teknologi informasi
tersebut menuntut adanya solusi sementara untuk mengatasi cybercrime, yakni melalui terobosan putusan pengadilan. Ini tentu
saja mensyaratkan adanya sosok hakim yang kreatif, berwawasan teknologi, dan
berani melakukan terobosan melalui putusannya.
- Perlunya Lembaga Khusus
Lembaga-lembaga
khusus, baik milik pemerintah maupun NGO (Non
Government Organization), diperlukan sebagai upaya penanggulangan kejahatan
di internet. Indonesia sendiri sebenarnya sudah memiliki IDCERT (Indonesia Computer Emergency Response Team).
Unit ini merupakan point of contact
bagi orang untuk melaporkan masalah-masalah keamanan komputer.
Sumber :
http://blogkublogku.blogspot.com/2010/05/modus-modus-kejahatan-dalam-teknologi.html
http://www.facebook.com/rezafk#!/groups/justinfoka08/328946050492375/?notif_t=group_activity
http://ahmadakbarf.com/berita-146-bab-iii-modusmodus-kejahatan-dalam-teknologi-informasi.html
http://blogkublogku.blogspot.com/2010/05/modus-modus-kejahatan-dalam-teknologi.html
http://www.facebook.com/rezafk#!/groups/justinfoka08/328946050492375/?notif_t=group_activity
http://ahmadakbarf.com/berita-146-bab-iii-modusmodus-kejahatan-dalam-teknologi-informasi.html
Wahyono,
Teguh S.Kom. ETIKA KOMPUTER dan TANGGUNG JAWAB PROFESIONAL DI BIDANG
TEKNOLOGI INFORMASI (Yogyakarta :
C. V ANDI OFFSET, 2006)
Tidak ada komentar:
Posting Komentar