Testing dan Implementasi

Slides:



Advertisements
Presentasi serupa
Rekayasa Perangkat Lunak
Advertisements

Metode Pengujian Perangkat Lunak (White Box)
BAB 8 PENGUJIAN PERANGKAT LUNAK
Implementation & Testing Eri Prasetyo Bahan Kuliah MM Sistem Informasi Sources : -Juha Roning, Marko Laakso, Ari takanen, Oulu university,
REKAYASA PERANGKAT LUNAK
Testing.
Strategi Pengujian Perangkat Lunak
Teknik Pengujian Perangkat Lunak
PENGUJIAN / TESTING Ana Kurniawati.
TEKNIK PENGUJIAN PERANGKAT LUNAK
Proses Testing System Testing Acceptance Testing
STRATEGI PENGUJIAN PERANGKAT LUNAK
Testing dan Implementasi
Dasar-dasar Pengujian Perangkat Lunak
Testing Levels. Activities of Test Engineer Test engineer is an information technology professional who is in charge of ane or more technical test activities,
Pertimbangan Praktis Tahap Testing Sistem (Lanjutan I )
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 20 Slide 1 Pengujian Cacat (Defect Testing) l Pengujian program untuk mengungkap adanya.
Testing dan implemantasi sistem
Tahap Testing Sistem (Lanjutan I )
Systems Development Life Cycle
Integration testing Pengujian keseluruhan system atau sub-system yang terdiri dr komponen yg terintegrasi. Test integrasi menggunakan black-box dengan.
Stress testing Menguji sistem dengan nilai yg melebihi maksimum load. Stressing suatu system menyebabkan tidak mudah kerusakan. Stressing suatu system.
Proses defect testing.
VALIDASI SOFTWARE (Nelly Sofi).
Testing dan implementasi sistem
Strategi Pengujian Perangkat Lunak
TEKNIK-TEKNIK PENGUJIAN PERANGKAT LUNAK
14. PENGUJIAN PERANGKAT LUNAK
TEKNIK PENGUJIAN PERANGKAT LUNAK
REKAYASA PERANGKAT LUNAK I
REKAYASA PERANGKAT LUNAK
Strategi Pengujian Perangkat Lunak
Object-oriented testing
Rekayasa Perangkat Lunak Metode Pengujian Perangkat Lunak
REKAYASA PERANGKAT LUNAK
White Box Testing Pembuatan Flowgraph Pembuatan Testcase.
Pengujian Perangkat Lunak
WHITE BOX TESTING PENGUJIAN BASIS PATH
Strategi Pengujian Perangkat Lunak
Rekayasa perangkat lunak (rpl)
Metode Pengujian Perangkat Lunak (White Box)
Testing & Implementasi Sistem
Strategi Pengujian Perangkat Lunak & Sistem
Testing dan Implementasi
Dasar – dasar pengujian perangkat lunak
Dasar-dasar Pengujian Perangkat Lunak
TESTING DAN IMPLEMENTASI SISTEM
Testing dan Implementasi SI220A
Validasi dan Verifikasi Software
PENGUJIAN / TESTING.
TEKNIK PENGUJIAN PERANGKAT LUNAK
TEKNIK PENGUJIAN PERANGKAT LUNAK
Dasar-dasar Pengujian Perangkat Lunak
TEKNIK PENGUJIAN PERANGKAT LUNAK
Testing dan Implementasi
Pengujian Perangkat Lunak
Strategi Pengujian Perangkat Lunak
Pengujian White Box Kustanto 11/27/2018 Pengujian white box.
Teknik-teknik pengujian Perangkat Lunak
TEKNIK PENGUJIAN PERANGKAT LUNAK
Dasar-dasar Pengujian Perangkat Lunak
Strategi Pengujian Perangkat Lunak
Teknik-teknik pengujian Perangkat Lunak
Dasar-dasar Pengujian Perangkat Lunak
Dasar-dasar Pengujian Perangkat Lunak
Fathiah, S.T.,M.Eng Universitas Ubudiyah Indonesia
Metode Pengujian Perangkat Lunak (White Box)
WHITE BOX TESTING PENGUJIAN BASIS PATH
Strategi Pengujian Perangkat Lunak
Strategi Pengujian Perangkat Lunak
Transcript presentasi:

Testing dan Implementasi Six STMIK RAHARJA 2008 Delivered by : Oleh Sholeh, SKom., MMSi.

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 iharapkan Verifikasi “Apakah sistem dikembangkan dengan cara yang benar ?” Pengujian apakah sistem sudah sesuai dengan spesifikasi

Proses Testing Unit testing Module Testing Sub-system Testing Pengujian masing-masing unit komponen program untuk meyakinkan bhw sudah beroperasi secara benar Module Testing Pengujian terhadap koleksi unit-unit komponen yang saling berhubungan. Sub-system Testing Pengujian terhadap koleksi module-module yang membentuk suatu sub-system (aplikasi)

Proses Testing System Testing Acceptance Testing Pengujian terhadap integrasi sub-system, yaitu keterhubungan antar sub-system Acceptance Testing Pengujian terakhirs sebelum sistem dipakai oleh user. Melibatkan pengujian dengan data dari pengguna sistem. Biasa dikenal sebagai “alpha test” (“beta test” untuk software komersial, dimana pengujian dilakukan oleh potensial customer)

Proses Testing Unit Testing Module Testing Sub-system Testing System Acceptance Testing User Testing Component Testing Integration Testing

The testing process Component testing Integration testing Pengujian komponen-komponen program Biasanya dilakukan oleh component developer (kecuali untuk system kritis) Integration testing Pengujian kelompok komponen-komponen yang terintegrasi untuk membentuk sub-system ataupun system Dialakukan oleh tim penguji yang independent Pengujian berdasarkan spesifikasi sistem

Rencana Pengujian Proses testing Pelacakan Kebutuhan Item yg diuji Deskripsi fase-fase utama dalam pengujian Pelacakan Kebutuhan Semua kebutuhan user diuji secara individu Item yg diuji Menspesifikasi komponen sistem yang diuji Jadual Testing Prosedur Pencatatan Hasil dan Prosedur Kebutuhan akan Hardware dan Software Kendala-kendala Mis: kekuranga staff, alat, waktu dll.

Hubungan antara rencana pengujian dan proses pengembangan system Spesifikasi Kebutuhan Spesifikasi System Perancangan System Detail Perancangan Acceptance Test plan System Integration Test plan Sub-System Integration Test plan Module and Unit code and test System Integration test Sub-System Integration test Acceptance test Service

Failures, Faults Failure: output yang tidak benar/tidak sesuai ketika sistem dijalankan Fault: kesalahan dalam source code yang mungkin menimbulkan failure ketika code yg fault tsb dijalankan Failure Class Deskripsi Transient Muncul untuk input tertentu Permanent Muncul untuk semua input Recoverable Sistem dapat memperbaiki secara otomatis Unrecoverable Sistem tidak dapat memperbaiki secara otomatis Non-corrupting Failure tidak merusak data Corrupting Failure yang merusak sistem data

Contoh: Faults, Errors, and Failures Suppose node 6 should be X:= C*(A+2*B) Failure-less fault: executing path (1,2,4,5,7,8) will not reveal this fault because 6 is not executed nor will executing path (1,2,3,5,6,8) because C = 0 Need to make sure proper test cases are selected the definitions of C at nodes 3 and 4 both affect the use of C at node 6 executing path (1,2,4,5,6,8) will reveal the failure, but only if B /= 0

Prioritas Testing Hanya test yang lengkap yg dapat meyakinkan sistem terbebas dari kesalahan, tetapi hal ini sangat sulit dilakukan. Prioritas dilakukan terhadap pengujian kemampuan sistem, bukan masing-masing komponennya. Pengujian untuk situasi yg tipikal lebih penting dibandingkan pengujian terhadap nilai batas.

Test data dan kasus test Test data: Input yang yang direncankan digunakan oleh sistem. Test cases: Input yang digunakan untuk menguji sistem dan memprediksi output dari input jika sistem beroperasi sesuai dengan spesifikasi.

Proses defect testing

Black-box testing Pendekatan pengujian dimana program dianggap sebagai suatu ‘black-box’ (‘kotak hitam’) Program test case berbasiskan spesifikasi Test planning dapat dimulai sejak awal proses pengembangan sistem

Black-box testing

Equivalence partitioning Input data dan output hasil terdapat di klas yang berbeda yang sesuai dengan klas inputnya Masing-masing klas equivalensi partition diprosres dimana program akan memproses anggota klas-klas tersebut secara equivale. Test cases dipilih dari masing-masing partisi

Equivalence partitioning

Equivalence partitioning Partition system inputs and outputs into ‘equivalence sets’ If input is a 5-digit integer between 10000 and 99999, equivalence partitions are <10000, 10000-99999 and > 100000 Choose test cases at the boundary of these sets 00000, 9999, 10000, 99999, 100001

Equivalence partitions

Search routine specification procedure Search (Key : ELEM ; T: ELEM_ARRAY; Found : in out BOOLEAN; L: in out ELEM_INDEX) ; Pre-condition -- the array has at least one element T’FIRST <= T’LAST Post-condition -- the element is found and is referenced by L ( Found and T (L) = Key) or -- the element is not in the array ( not Found and not (exists i, T’FIRST >= i <= T’LAST, T (i) = Key ))

Search routine - input partitions Inputs yang sesuai dg pre-conditions Inputs yang tidak sesuai pre-condition Inputs dimana key element ada di dalam array Inputs dimana key element tidak terdapat di dalam array

Search routine - input partitions

Structural testing Disebut juga white-box testing Penentuan test case disesuaikan dengan struktur sistem. Knowledge program digunakan untuk mengidentifikasi test case tambahan. Tujuannya untuk menguji semua statement program (debug).

White-box testing

Path testing Tujuannya meyakinkan bahwa himpunan test case akan menguji setiap path pada suatu program paling sedikit satu kali. Titik awal untuk path testing adalah suatu program flow graph yang menunjukkan node-node yang menyatakan program decisions (mis.: if-then-else condition) dan busur menyatakan alur kontrol Statements dengan conditions adalah node-node dalam flow graf.

Program flow graphs Menggambarkan alur kontrol. Setiap cabang ditunjukkan oleh path yg terpisah dan loop ditunjukkan oleh arrows looping kembali ke loop kondisi node. Digunakan sebagai basis untuk menghitung cyclomatic complexity Cyclomatic complexity = Jumlah edges – Jumlah Node +2 Cyclomatic complexity menyatakan jumlah test untuk menguji control statements

Binary search flow graph

Independent paths 1, 2, 3, 8, 9 1, 2, 3, 4, 6, 7, 2 1, 2, 3, 4, 5, 7, 2 1, 2, 3, 4, 6, 7, 2, 8, 9 Test cases harus ditentukan sehingga semua path tsb tereksekusi.

Integration testing Pengujian keseluruhan system atau sub-system yang terdiri dr komponen yg terintegrasi. Test integrasi menggunakan black-box dengan test case ditentukan dari spesifikasi. Kesulitannya adalah menemukan/melokasikan Penggunaan Incremental integration testing dapat mengurangi masalah tersebut.

Incremental integration testing

Pendekatan integration testing Top-down testing Berawal dari level-atas system dan terintegrasi dengan mengganti masing-masing komponen secara top-down dengan suatu stub (program pendek yg mengenerate input ke sub-system yg diuji). Bottom-up testing Integrasi components di level hingga sistem lengkap sudah teruji. Pada prakteknya, kebanyakan test integrasi menggunakan kombinasi kedua strategi pengujian tsb.

Top-down testing

Bottom-up testing

Pendekatan Testing Architectural validation System demonstration Top-down integration testing lebih baik digunakan dalam menemukan error dalam sistem arsitektur. System demonstration Top-down integration testing hanya membatasi pengujian pada awal tahap pengembangan system. Test implementation Seringkali lebih mudah dengan menggunakan bottom-up integration testing

Interface testing Dilakukan kalau module-module dan sub-system terintegrasi dan membentuk sistem yang lebih besar Tujuannya untuk medeteksi fault terhadap kesalahan interface atau asumsi yg tidak valid terntang interface tsb. Sangat penting untuk pengujian terhadap pengembangan sistem dgn menggunakan pendekatan object-oriented yg didefinisikan oleh object-objectnya

Interface testing

Interfaces types Parameter interfaces Shared memory interfaces Data dikirim dari satu procedure ke procedure lainnya. Shared memory interfaces Block of memory dishare diantara procedure-procedure Procedural interfaces Sub-system mengencapsulasi sekumpulan procedure-procedure yang akan dipanggil oleh sub-system lainnya Message passing interfaces Sub-systems meminta services dari sub-systems lainnya

Interface errors Interface misuse Interface misunderstanding componen pemanggil memanggil component lainnya dan membuat suatu kesalahan dalam penggunaan interfacenya (mis.: parameter dg urutan yg tidak sesuai). Interface misunderstanding component pemanggil salah dalam mengasumsikan behaviour component yg dipanggil. Timing errors Component yg memanggil dan yg dipanggil beroperasi pada kecepatan yg berbeda sehingga dimungkinkan mengakses informasi yg tidak uptodate (synchronization problem).

Petunjuk melakukan Interface testing Merancang test dimana parameter ke procedure yg dipanggil berada pada nilai batas extrim Test Menggunakan null pointer Perancangan tests sehingga component yg di test akan fail. Menggunakan stress testing pada message passing Pada shared memory systems, variasikan urutan dimana komponen diaktifkan.

Stress testing Menguji sistem dengan nilai yg melebihi maksimum load. Stressing suatu system menyebabkan tidak mudah kerusakan. Stressing suatu system test failure behaviour. Systems seharusnya tidak gagal total. Stress testing mencek kehilangan service yg tidak diduga ataupun data yg hilang. Khusus untuk sistem terdistribusi dapat menyebabkan degradasi jaringan sehingga overload.