Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

TESTING & IMPLEMENTASI SISTEM

Presentasi serupa


Presentasi berjudul: "TESTING & IMPLEMENTASI SISTEM"— Transcript presentasi:

1 TESTING & IMPLEMENTASI SISTEM
Pengkodean Perangkat Lunak, Dasar & Strategi pengujian perangkat lunak Diema HS, M.Kom

2 PENGKODEAN PERANGKAT LUNAK

3 Perbedaan bahasa generasi ke-4 dengan bahasa generasi ke3
4GL Jalur kode yang lebih sedikit Memberikan potensi dilakukannya pemrograman oleh end user untuk aplikasi mereka sendiri Metodologi pengembangan Produktivitas yang meningkat Layanan yang meningkat Partisipasi pemakai

4 Perbedaan bahasa generasi ke-4 dengan bahasa generasi ke3
3GL Kepadatan Efisiensi mesin Fungsionalitas Kompatibilitas Produktivitas pengkodean Pengujian dan pemeliharaan

5 Bahasa pemrograman berorientasi objek
Jenis bahasa OOP Murni Smalltalk Hybrid w C++ C Cobol

6 Perangkat bahasa penggunaan khusus
Alat bahasa berorientasi pemakai interaktif DBMS Alat bahasa hypertext dan multimedia

7 Memilih bahasa yang tepat
Mencocokan bahasa dengan aplikasi rancangan perangkat lunak Tingkat penggunaan dalam dunia bisnis Keekspresifan Kemudahan Maintainability

8 DASAR –DASAR PENGUJIAN PERANGKAT LUNAK

9 Menurut standar ANSI/IEEE 1059
(IEEE – Institute of Electrical and Electronics Engineering, ANSI – American National Standards Institute) Menurut standar ANSI/IEEE 1059 Testing adalah proses menganalisa suatu entitas software untuk mendeteksi perbedaan antara kondisi yang ada dengan kondisi yang diinginkan (defect/errors/bugs) dan mengevaluasi fitur-fitur dari entitas software

10 Definisi Sederhana Kualitas
Menurut CROSBY: Kualitas adalah pemenuhan terhadap kebutuhan. Menurut ISO-8402: Kualitas adalah keseluruhan dari fitur yang menjadikan produk dapat memuaskan atau dipakai sesuai kebutuhan dengan harga yang terjangkau. Menurut W.E. Perry: Kualitas adalah pemenuhan terhadap standar. Menurut R. Glass: Kualitas adalah tingkat kesempurnaan. Menurut J. Juran: Kualitas adalah tepat guna.

11 Hubungan testing dan kualitas
Software yang berkualitas adalah software yang bebas error dan bug secara objektif, tepat waktu dan dana, sesuai dengan kebutuhan atau keinginan dan dapat dirawat (maintainable) Definisi objektif : Suatu proses pembuktian yang terstruktur, terencana dan terdokumentasi dengan baik

12 Hubungan Testing Dan Kualitas
Testing tidak dapat memastikan kualitas software, namun dapat memberikan jaminan terhadap software pada suatu tingkat tertentu Jaminan kualitas (Quality Assurance – QA) mengukur kualitas proses yang digunakan untuk membuat produk berkualitas Testing merupakan bagian dari aktifitas QA

13 Hubungan Testing Dengan Kualitas
Proyek pengembangan software memiliki kecenderungan untuk mengalami kegagalan Proyek yang gagal ??? Salah satu usaha menurunkan tingkat resiko terjadinya kegagalan adalah dengan berorientasi pada kualitas

14 Tujuan testing Adalah menemukan sebanyak mungkin masalah (error)
Tujuan dari menemukan masalah adalah memperbaikinya Tangani masalah yang bersifat penting, karena tidak semua permasalahan dapat.

15 Misi tim testing Tidak hanya untuk melakukan testing, tetapi juga membantu meminimalkan resiko kegagalan proyek Mencari masalah dari produk Mencari masalah potensial Mencari kehadiran masalah Intinya adalah mencari dan melaporkan sehingga tim lain dapat membuat keputusan terhadap pengembangan produk

16 Cont'd Perlu diingat, tester hanya menginformasikan
Tidak melakukan pembenahan kode Tester adalah individu yang memberikan hasil pengukuran dari kualitas produk

17 Psikologi testing Jika pengembangan dilakukan secara konstruktif, maka testing dilakukan secara destruktif Tester harus mempunyai keinginan yang mendasar untuk membuktikan kode gagal dan akan melakukan apa saja untuk membuatnya gagal Bila seorang tester hanya ingin membuktikan bahwa kode beraksi sesuai dengan fungsi bisnisnya, maka tester tersebut telah gagal dalam menjalankan tugasnya sebagai tester

18 Prinsip-prinsip testing prinsip pertama
Testing yang komplit (dilakukan secara menyeluruh) tidak memungkinkan dilakukan. Kemungkinan jumlah kombinasi testcase yang amat besar Pertimbangan domain masukan yang mungkin sangat besar jumlahnya (masukan yang valid, tdk valid, masukan yg diedit dll) Kompleksitas user interface dan desain.

19 Cont'd Jalur program yang mungkin dapat dilewati sangat banyak
Harus dilakukan test ulang, setiap ada perbaikan pada masing-masing bug

20 Prinsip kedua Testing merupakan pekerjaan yang kreatif dan sulit
mitos-mitos yang salah tentang testing : Testing itu mudah Tiap orang akan dapat melakukan testing dengan sendirinya padahal

21 Cont'd Testing bukanlah hal yang sederhana, karena
Untuk dapat melakukan testing yang efektif harus mengetahui keseluruhan sistem Sistem sendiri tidak sederhana (mudah dipahami)

22 Prinsip ketiga Testing berbasis pada resiko
walaupun testing secara keseluruhan tidak dapat dilakukan, tidak berarti bahwa testing yang efektif tidak dapat dilakukan testing merupakan hasil pertimbangan dari resiko dan ekonomi

23 Cont'd Secara ringkas, testing dipengaruhi oleh pertimbangan :
Sumber daya dan biaya yang dibutuhkan untuk melakukan testing menurut skala prioritas, kompleksitas dan kesulitan testing Biaya dari keterlambatan pengiriman produk (kemungkinan besar disebabkan testing) Kemungkinan adanya suatu defect Biaya yang disebabkan oleh defect, bilamana defect tsb menyebabkan error yang membawa kerugian langsung maupun tak langsung bagi customer

24 Prinsip keempat Testing harus direncanakan
butuh pemikiran dgn pendekatan secara keseluruhan, desain tes dan penetapan hasil yg diinginkan utk setiap kasus tes (test case) yg dipilih test plan : dokumen yg mencakup keseluruh tujuan testing dan pendekatan testing test design : dokumen yg mendefinisikan apa yg telah dipilih utk dites dan hasil yg diharapkan “test direncanakan dan didesain sebelum kode dibuat”

25 Cont'd Perencanaan tes sangat penting, yaitu :
Utk dpt menjaga arah pelaksanaan tes agar tidak menyimpang dari tujuan tes itu sendiri (mengukur kualitas SW) Menjaga kesesuaian penggunaan sumber daya dan jadual proyek dengan menetapkan apa yang akan dites dan kapan berhenti Membantu tester fokus terhadap apa yang akan dites (membuat test case)

26 Prinsip kelima Testing butuh independensi
testing yang paling efektif adalah yang dilakukan oleh pihak ketiga (tidak bias)

27 Dasar-dasar testing Kemungkinan mendapatkan error tinggi
Testing dikatakan baik, jika : Kemungkinan mendapatkan error tinggi Tidak redundan --> resource terbatas, tiap tes yang dilakukan HARUS memiliki tujuan yang berbeda Tidak terlalu simpel atau kompleks

28 Cont'd Kode untuk kondisi khusus mendapatkan porsi tes yang sama dengan kode yang umum Kode untuk kondisi khusus --> peluang memp. bug tinggi Testing untuk kode yang dijalankan dalam kondisi normal tidak mengeksekusi error handling code Testing yang sukses adalah testing yang berhasil menemukan error yang tidak diketahui

29 “ STRATEGI PENGUJIAN/TESTING PERANGKAT LUNAK ”

30 Strategi uji coba mempunyai karakteristik sbb :
Strategi uji coba PL memudahkan para perancang untuk menentukan keberhasilan system yg telah dikerjakan. Hal yg harus diperhatikan adalah langkah-langkah perencanaan dan pelaksanaan harus direncanakan dengan baik dan berapa lama waktu, upaya dan sumber daya yg diperlukan. Strategi uji coba mempunyai karakteristik sbb : Pengujian mulai pada tingkat modul yg paling bawah, dilanjutkan dgn modul di atasnya kemudian hasilnya dipadukan. Teknik pengujian yang berbeda mungkin menghasilakn sedikit perbedaan (dalam hal waktu)

31 Pengujian PL adalah satu elemen dari topik yang lebih luas yang sering
Pengujian dilakukan oleh pengembang perangkat lunak dan (untuk proyek yang besar) suatu kelompok pengujian yang independen. Pengujian dan debugging merupakan aktivitas yang berbeda, tetapi debugging termasuk dalam strategi pengujian. Pengujian PL adalah satu elemen dari topik yang lebih luas yang sering diacu sebagai verifikasi dan validasi (V& V). Verifikasi : Kumpulan aktifitas yg menjamin penerapan PL benar- benar sesuai dgn fungsinya. Validasi : Kumpulan aktivitas yang berbeda yang memastikan bahwa PL yang dibangun dapat memenuhi keperluan pelanggan. Dgn kata lain : Verifikasi : “ Apakah kita membuat produk dgn benar?” Validasi : “ Apakah kita membuat benar-benar suatu produk?”

32 Pendekatan Strategis ke pengujian perangkat lunak
Pengujian Unit Pengujian Integrasi Pengujian Validasi Pengujian Sistem

33 1. Pengujian Unit Berfokus pada inti terkecil dari desain perangkat lunak yaitu modul Biasanya berorientasi pada white box

34 Pengujian Unit Checklist untuk pengujian interface (Myers)
Apakah jumlah parameter input sama dengan jumlah argumen? Apakah antara atribut dan parameter argumen sudah cocok? Apakah antara sistem satuan parameter dan argumen sudah cocok? Apakah jumlah argumen yang ditransmisikan ke modul yang dipanggil sama dengan atribut parameter?

35 Pengujian Unit Apakah atribut dari argumen yang ditransmisikan ke modul yang dipanggil sama dengan atribut parameter? Apakah sistem unit dari argumen yang ditransmisikan ke modul yang dipanggil sama dengan sistem satuan parameter? Apakah jumlah atribut dan urutan argumen ke fungsi-fungsi built-in sudah benar? Adakah referensi ke parameter yang tidak sesuai dengan poin entri yang ada? Apakah argumen input only diubah? Apakah definisi variabel global konsisten dengan modul ? Apakah batasan yang dilalui merupakan argumen?

36 Pengujian Unit Test case harus didesain untuk mengungkap kesalahan dalam kategori pengetikan yang tidak teratur dan tidak konsisten inisialisasi yang salah atau nilai-nilai default Nama variabel yang tidak benar Tipe data yang tidak konsisten

37 Seberapa baik sistem yang sudah dibangun ?
Dua Aspek yang dipertimbangkan: Apakah implementasi sudah sesuai dengan spesifikasi ? Apakah spesifikasi sesuai dengan kebutuhan user ? Validasi “Apakah sistem yang dikembangkan sudah benar?” Pengujian dimana sistem ketika diimplementasikan sesuai dengan yang diharapkan Verifikasi “Apakah sistem dikembangkan dengan cara yang benar ?” Pengujian apakah sistem sudah sesuai dengan spesifikasi

38 2. Integration testing Menjelaskan kecacatan dalam antarmuka dan interaksi antar komponen terpadu (modul). Semakin besar kelompok komponen perangkat lunak yang diuji terkait dengan elemen-elemen dari desain arsitekturnya akan dipadukan dan diuji sampai perangkat lunak bekerja sebagai sistem.

39 3. Pengujian Validasi Setelah semua kesalahan diperbaiki maka langkah selanjutnya adalah validasi testing. Pengujian validasi dikatakan berhasil bila fungsi yg ada pada PL sesuai dgn yg diharapkan pemakai. Validasi PL merupakan kumpulan seri uji coba black box yg menunjukkan sesuai dgn yg diperlukan. Kemungkinan kondisi setelah pengujian: 1. Karakteristik performansi fungsi sesuai dgn spesifikasi dan dapat diterima. 2. Penyimpangan dari spesifikasi ditemukan dan dibuatkan daftar penyimpangan.

40 Pengujian Alpha dan Beta
Apabila PL dibuat untuk pelanggan maka dapat dilakukan aceeptance test sehingga memungkinkan pelanggan untuk memvalidasi seluruh keperluan. Test ini dilakukan karena memungkinkan pelanggan menemukan kesalahan yg lebih rinci dan membiasakan pelanggan memahami PL yg telah dibuat.

41 Pengujian Alpha Dilakukan pada sisi pengembang oleh seorang pelanggan. PL digunakan pada setting yg natural dgn pengembang “yg memandang” melalui bahu pemakai dan merekam semua kesalahan dan masalah pemakaian. Pengujian Beta Dilakukan pada satu atau lebih pelanggan oleh pemakai akhir PL dalam lingkungan yg sebenarnya, pengembang biasanya tidak ada pada pengujian ini. Pelanggan merekan semua masalah (real atau imajiner) yg ditemui selama pengujian dan melaporkan pada pengembang pada interval waktu tertentu.

42 4. Pengujian Sistem Pada akhirnya PL digabungkan dgn elemen system lainnya dan rentetan perpaduan system dan validasi tes dilakukan. Jika uji coba gagal atau diluar skope dari proses daur siklus pengembangan system, langkah yg diambil selama perancangan dan pengujian dapat diperbaiki. Keberhasilan perpaduan PL dan system yg besar merupakan kuncinya. Sistem testing merupakan rentetan pengujian yg berbeda- beda dgn tujuan utama mengerjakan keseluruhan elemen system yg dikembangkan.

43 Pengujian Sistem (lanjutan)
Recovery/perbaikan Testing Adalah system testing yg memaksa PL mengalami kegagalan dalam bermacam-macam cara dan memeriksa apakah perbaikan dilakukan dgn tepat. Security Testing Adalah pengujian yg akan melalukan verifikasi dari mekanisme perlindungan yg akan dibuat oleh system, melindungi dari hal-hal yg mungkin terjadi. Strees Testing Dirancang untuk menghadapi situasi yg tidak normal pada saat program diuji. Testing ini dilakukan oleh system untuk kondisi seperti volume data yg tidak normal (melebihi atau kurang dari batasan) atau frkkuensi.

44 Menjalankan test Testing aplikasi desktop Testing aplikasi server
Testing aplikasi web

45 1.Testing aplikasi desktop
Jenis : Functionality : Aplikasi harus terlihat dan berfungsi sebagaimana mestinya terhadap end-user atau pengguna akhir. Testing dilakukan dengan menggunakan data yang menggambarkan data yang digunakan oleh pengguna sesungguhnya. Data yang dimasukkan tersimpan dengan benar pada database. Pengujian dilakukan sekelompok pengguna dengan kemampuan yang berbeda. Configuration Jika aplikasi Anda di-develop untuk lingkungan yang besar, testing harus dilakukan pada komputer khusus. Komputer yang digunakan sebagai komputer testing harus terlebih dahulu dikonfigurasi hanya dengan: a. Operating system yang dibutuhkan. b. Software pendukung/add on untuk aplikasi Driver yang diperlukan oleh aplikasi, jika ada. c. Aplikasi yang dites.

46 Compatibility Hardware OS
Diimplementasikan pada konfigurasi yang berbeda diuji compatibilitasnya. Misalnya jika membuat di IE, coba di Firefox, Opera, Safari HTML validation

47 2. Pengujian Aplikasi Server
Volume Testing Stress Testing Performance Testing Data Recovery Testing Data Backup and Restore Testing Data Security Testing

48 Volume Testing Menemukan kelemahan sistem selama melakukan pemrosesan data dalam jumlah yang besar dalam periode waktu yang singkat. Tujuan: meyakinkan bahwa sistem tetap melakukan pemrosesan data antara batasan fisik dan batasan logik. Contoh: Mengujikan proses antar server dan antar partisi hardisik pd satu server.

49 Stress Testing Tujuan: mengetahui kemampuan sistem dalam melakukan transaksi selama periode waktu puncak proses. Contoh periode puncak: ketika penolakan proses login on- line setelah sistem down atau pada kasus batch, pengiriman batch proses dalam jumlah yg besar dilakukan setelah sistem down. Contoh: Melakukan login ke server ketika sejumlah besar workstation melakukan proses menjalankan perintah sql database.

50 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. Mis.: pd aplikasi Client-Server diujikan pd kondisi korporate ataupun lingkungan sendiri (LAN vs. WAN, Laptop vs. Desktop) Menguji sistem dengan hubungannya sistem ke lain pada server yg sama. Load Balancing Monitor Network Monitor

51 Data Recovery Testing Investigasi dampak kehilangan data melalui proses recovery ketika terjadi kegagalan proses. Penting dilakukan karena data yg disimpan di server dapat dikonfigurasi dengan berbagai cara. Kehilangan Data terjadi akibat kegagalan sistem, hardisk rusak, peghapusan yg tidak sengaja, kecelakaan, virus dan pencuri.

52 Data Backup and Restore Testing
Dilakukan untuk melihat prosedur back-up dan recovery. Diakukan dengan mensimulasikan beberapa kesalahan untuk menguji proses backup dan recovery. Pengujian dilakukan terhadap strategi backup: frekuensi, medium, waktu, mekanisme backup (manual/ otomatis), personal, ? Berapa lama backup akan disimpan. Switching antara live dan backup server ketika terjadi kerusakan (load log transaction pada back-up kemudian melaku recovery).

53 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) yg dapat mematikan aplikasi database.

54 Testing aplikasi web Testing untuk aplikasi web memiliki banyak kesamaan dengan testing untuk aplikasi client server, tetapi aplikasi web lebih sulit karena tingkat kompleksitasnya lebih tinggi  interaksi komponen (teknologi) yang dipergunakan tidak terbatas Browser OS Aplikasi plugin, dll

55 Idealnya semua komponen dan fungsi yg ada pada sisi client dan server harus dites (tapi sgt jarang bisa dilakukan)  pendekatan terbaik agar tetap sesuai dengan batasan waktu dan budget : Mengecek requirement project/kebutuhan proyek Mensetting prioritas sesuai hasil risk analysis Tentukan fokus testing yg dilakukan

56 Risk analysis Risk analysis yang dilakukan harus mempertimbangkan : seberapa mirip lingkungan test dengan lingkungan produksi (idealnya akan mirip) fungsionalitas mana yang sangat kritikal terhadap tujuan pembuatan website area mana yang memerlukan interaksi DB yang lebih banyak

57 tipe permasalahan seperti apa yang akan lebih sering dikomplain
area mana dari suatu situs yang akan lebih sering dibuka aspek mana yang memiliki resiko keamanan lebih tinggi

58 faktor faktor seperti project requirement, risk analysis, budget dan schedule menentukan kategori testing yang mana yang sesuai dengan project web yang dilaksanakan

59 Kategori testing web Load testing Security testing Link testing
HTML validation dll

60 Penjelasan Load testing
Testing dengan load yang sudah diatur rangenya untuk menentukan pada poin mana respons time sistem turun atau bahkan gagal sama skali. Server yang dipakai, seting konfigurasi yang dipergunakan, script CGI, desain database dan faktor-faktor lain bisa juga memberikan pengaruh Testing bisa dilakukan dengan 2 cara Testing keseluruhan komponen dibawah kondisi yang bermacam-macam Testing masing-masing komponen

61 Security testing Untuk aplikasi web base mengharuskan tingkat keamanan yang tinggi, testing aplikasi harus mempertimbangkan pengujian keamanan aplikasi tersebut. Menguji semua fungsi yg berhubungan dengan firewall, enkripsi, autentikasi, transaksi, akses database. Selain permasalahan kontrol akses di sisi client (password dan enkripsi) juga ada permasalahan di sisi server spt siapa yg berhak mempublish dan memodifikasi file html, siapa yang memiliki wewenang untuk melakukan publikasi final, yang meng-approve suatu file graphics, file sound dan halaman layout Sebagai contoh adalah sebuah aplikasi e-commerce yang mengizinkan transaksi melalui kartu kredit. Cukup banyak terjadi kasus pencurian PIN/Password credit card dengan memanfaatkan kelemahan aplikasi e-commerce.

62 Link testing HTML validation
Untuk menentukan apakah link dari suatu situs baik itu ke internal dan external web pages bekerja Web yg memiliki banyak link ke situs luar perlu link testing yg dijadwal secara teratur HTML validation Ditentukan oleh audience yg dituju, jenis browser yang kemungkinan akan dipakai dan seberapa sesuai dengan standar html, microsoft atau ekstensi lainnya

63 Tool yang dipergunakan
Load testing Curl-Loader, StressTester, Proxy Sniffer, Funkload, Loadea, LoadManager, webStress, WAPT, FORECAST, dll Security testing Hailstorm, OWASP Security testing tools, GamaSec, Wikto, add-ons di firefox  SQL Inject Me 0.4.0

64 Cont’d Link testing HTML validation
WebLight, HTML PowerTools, Broken Link Preventer, W3C Link Checker HTML validation WebLight, HTML PowerTools, W3C CSS Validation Service, W3C HTML Validation Service

65 TERIMA KASIH ATAS PERHATIAN ANDA !!!


Download ppt "TESTING & IMPLEMENTASI SISTEM"

Presentasi serupa


Iklan oleh Google