TEKNIK PENGUJIAN PERANGKAT LUNAK Ign.F.Bayu Andoro.S, M.Kom
Latar Belakang Pengujian Perangkat Lunak adalah elemen kritis dari jaminan kualitas P/L dan merupakan review puncak terhadap spesifikasi, desain dan pembuatan program. Pengujian Perangkat Lunak menghabiskan upaya 30-40% dari total pekerjaan proyek. Untuk proyek yang membahayakan nyawa manusia, biaya pengujian bisa 3-5 X proyek biasa.
bayuandoro.com
2
Tujuan Pengujian 1. 2.
3.
Menjalankan program untuk menemukan error. Test case yang bagus adalah yang memiliki kemungkinan terbesar untuk menemukan error yang tersembunyi. Pengujian yang sukses adalah yang berhasil menemukan error yang tersembunyi. bayuandoro.com
3
Prinsip Pengujian Harus bisa dilacak hingga sampai ke kebutuhan customer. Harus direncanakan sejak model dibuat. Prinsip Pareto: 80% error uncovered. Dari lingkup kecil menuju yang besar. Tidak bisa semua kemungkinan diuji. Dilakukan oleh pihak ketiga yang independen.
bayuandoro.com
4
DESAIN TEST CASE
Desain test case merupakan metode pengujian untuk perangkat lunak guna memastikan kelengkapan pengujian dan memberikan kemungkinan tertinggi untuk mengungkap kesalahan pada perangkat lunak.
bayuandoro.com
5
Semua produk yang direkayasa dapat diuji dengan satu atau dua cara :
Dengan mengetahui fungsi yang ditentukan dimana produk yang dirancang untuk melakukanya, pengujian dapat dilakukan untuk memperlihatkan bahwa masing-masing fungsi beroperasi sepenuhnya, pada waktu yang sama mencari kesalahan pada setiap fungsi.
bayuandoro.com
6
Semua produk yang direkayasa dapat diuji dengan satu atau dua cara :
Dengan mengetahui kinerja internal suatu produk, maka pengujian dapat dilakukan untuk memastikan bahwa semua roda gigi berhubungan, yaitu operasi internal bekerja sesuai dengan spesifikasi dan semua komponen internal telah diamati dengan baik.
bayuandoro.com
7
PENGUJIAN WHITE BOX
adalah metode desain test case yang menggunakan struktur control desain procedural untuk memperoleh test case.
bayuandoro.com
8
Dengan pengujian whitebox, developer dapat melakukan: Memberikan jaminan bahwa semua jalur independen pada suatu modul telah digunakan paling tidak satu kali. Menggunakan semua keputusan logis pada sisi true and false.
bayuandoro.com
9
Dengan pengujian whitebox, developer dapat melakukan: Mengeksekusi semua loop pada batasan serta pada batas operasional mereka. Menggunakan struktur data internal untuk menjamin validitasnya.
bayuandoro.com
10
PENGUJIAN WHITE BOX
bayuandoro.com
11
PENGUJIAN BASIS PATH
Pengujian basis path memungkinkan desain test case mengukur kompleksitas logis dari desain procedural dan menggunakannya sebagai pedoman untuk menetapkan basis set dari jalur eksekusi.
bayuandoro.com
12
PENGUJIAN BASIS PATH
Test case yang dilakukan untuk menggunakan basis set tersebut dijamin untuk menggunakan setiap statemen di dalam program paling tidak sekali selama pengujian.
bayuandoro.com
13
PENGUJIAN BASIS PATH Notasi Diagram Alir Diagram Alir atau grafik program menggambarkan aliran control logika.
bayuandoro.com
14
PENGUJIAN BASIS PATH
Notasi Diagram Alir
bayuandoro.com
15
PENGUJIAN BASIS PATH Notasi Diagram Alir Untuk menggambarkan pemakaian diagram alir diberikan contoh perancangan prosedural dalam bentuk flowchart
bayuandoro.com
16
PENGUJIAN BASIS PATH (Diagram Alir)
bayuandoro.com
17
Selanjutnya diagram alir di atas dipetakan ke grafik alir
bayuandoro.com
18
Selanjutnya diagram alir di atas dipetakan ke grafik alir Lingkaran/node: menggambarkan satu/lebih perintah prosedural. Urutan proses dan keputusan dapat dipetakan dalam satu node. Tanda panah/edge : menggambarkan aliran kontrol. Setiap node harus mempunyai tujuan node
bayuandoro.com
19
Selanjutnya diagram alir di atas dipetakan ke grafik alir Region: adalah daerah yg dibatasi oleh edge dan node. Termasuk daerah diluar grafik alir.
bayuandoro.com
20
PENGUJIAN BASIS PATH Contoh menterjemahkan pseudo code ke grafik alir 1: do while record masih ada (baca record) 2: if record ke 1 = 0 3: then proses record (simpan di buffer naikan kounter)
bayuandoro.com
21
PENGUJIAN BASIS PATH Contoh menterjemahkan pseudo code ke grafik alir 4: else if record ke 2 = 0 5 then reser kounter 6 proses record (simpan pada file) 7a: endif (endif) 7b: enddo 8 : end
bayuandoro.com
22
PENGUJIAN BASIS PATH Contoh menterjemahkan pseudo code ke grafik alir Nomor pada pseudo code berhubungan dengan nomor node. Apabila diketemukan kondisi majemuk (compound condition) pada pseudo cade pembuatan grafik alir menjadi rumit. Kondisi majemuk mungkin terjadi pada operator Boolean (AND, OR, NAND, NOR) yg dipakai pada perintah if.
bayuandoro.com
23
PENGUJIAN LOOP Loop merupakan kendala yang sering muncul untuk menerapkan algoritma dengan tepat. Uji coba loop merupakan teknik pengujian white box yg fokusnya pada validitas dari loop.
bayuandoro.com
24
PENGUJIAN LOOP Loop Sederhana, pengujian loop sederhana dilakukan dgn mudah, dimana “n” jumlah maksimum yg diijinkan melewati loop tsb. 1. Lewati loop secara keseluruhan 2. Hanya satu yg dapat melewati loop 3. m dapat melewati loop dimana m< n
bayuandoro.com
25
PENGUJIAN LOOP
Loop Sederhana,
bayuandoro.com
26
PENGUJIAN LOOP Loop Tersarang, pengujian loop ini menggunakan pendekatan loop sederhana.
bayuandoro.com
27
PENGUJIAN LOOP Petunjuk pengujian loop tersarang : 1. Dimulai dari loop paling dalam. Atur semua loop ke nilai minimum. 2. Kerjakan dgn prinsip loop sederhana untuk loop yg paling dalam sementara tahan loop yg di luar pada parameter terkecil (nilai kounter terkecil) 3. Kemudian lanjutkan untuk loop yg diatasnya. 4. Teruskan sampai semua loop selesai di uji.
bayuandoro.com
28
PENGUJIAN LOOP
Loop tersarang
bayuandoro.com
29
PENGUJIAN LOOP Loop Terangkai, pengujian loop ini menggunakan pendekatan loop sederhana bila masing-masing loop independen, tetapi bila dua loop dirangkai dan pencacah loop 1 digunakan sebagai harga awal loop 2 maka loop tsb jadi tidak independen, maka pendekatan yg diaplikasikan ke loop tersarang direkomendasikan.
bayuandoro.com
30
PENGUJIAN LOOP
Loop Terangkai,
bayuandoro.com
31
PENGUJIAN LOOP Loop Tidak Terstruktur, Kapan saja memungkinkan, loop ini didisain kembali agar mencerminkan penggunaan komsepsi pemrograman tertruktur.
bayuandoro.com
32
PENGUJIAN LOOP
Loop Tidak Terstruktur,
bayuandoro.com
33
PENGUJIAN BASIS PATH Kompleksitas Siklomatis Kompleksitas Siklomatis adalah metric perangkat lunak yang memberikan pengukuran kuantitaif terhadap kompleksitas logis suatu program.
bayuandoro.com
34
PENGUJIAN BASIS PATH Kompleksitas Siklomatis Kompleksitas Siklomatis menentukan jumlah jalur independen dalam basis set suatu program dan memberikan batas atas bagi jumlah pengujian yang harus dilakukan untuk memastikan bahwa semua statemen telah dieksekusi sedikitnya satu kali.
bayuandoro.com
35
PENGUJIAN BASIS PATH Kompleksitas Siklomatis Jalur independen adalah jalur yang melalui program yang mengintroduksi sedikitnya satu rangkaian statemen proses baru atau suatu kondisi baru.
bayuandoro.com
36
PENGUJIAN BASIS PATH Melakukan Test Case Dengan menggunakan desain atau kode sebagai dasar, gambarkan sebuah grafik alir yang sesuai. Tentukan kompleksitas siklomatis dari grafik alir resultan.
bayuandoro.com
37
PENGUJIAN BASIS PATH Melakukan Test Case Tentukan sebuah basis set dari jalur independen secara linier. Siapkan test case yang akan memaksa adanya eksekusi setiap basis set.
bayuandoro.com
38
PENGUJIAN BASIS PATH Matrik Grafis Matrik grafis adalah matriks bujur sangkar yang ukurannya sama dengan jumlah simpul pada grafik alir. Masing-masing baris dan kolom sesuai dengan yang diidentifikasi kan, dan entri matriks sesuai dengan edge (tepi atau titik) di antara simpul.
bayuandoro.com
39
Minggu Depan STRATEGI PENGUJIAN PERANGKAT LUNAK
Testablility Kemudahan untuk diuji. Karakteristiknya:
– Operability: mudah digunakan. – Observability: mudah diamati. – Controlability: mudah dikendalikan. – Decomposability: mudah diuraikan. – Simplicity: lingkup kecil, semakin mudah diuji. – Stability: jarang berubah. – Understandability: mudah dipahami. bayuandoro.com
41
Desain Kasus Pengujian
Black box testing – Memastikan fungsional P/L berjalan. – Kesesuaian input dengan output. – Tidak memperhatikan proses logic internal.
White box testing – Pengamatan detail prosedur. – Mengamati sampai level percabangan kondisi dan perulangan. bayuandoro.com
42
White Box Testing Metode: basis path testing. Memakai notasi flow graph.
bayuandoro.com
43
Kompleksitas Cyclomatic
Menunjukkan jumlah skenario pengujian yang harus dilakukan untuk menjamin cakupan seluruh program.
bayuandoro.com
44
Contoh White Box Testing
bayuandoro.com
45
Black Box Testing – Graph Based
bayuandoro.com
46
Black Box Testing – Equivalence Partitioning
Contoh: Input NPM dalam SIAMIK – Jika dikosongi? – Jika diisi dengan format yang salah? – Jika diisi dengan NPM yang benar? bayuandoro.com
47
Black Box Testing – Analisa Nilai Batas 1.
2. 3. 4.
Menguji untuk input di sekitar batas atas maupun bawah sebuah range nilai yang valid. Menguji nilai maksimal dan minimal. Menerapkan (1 & 2) untuk output. Menguji batas struktur data yang dipakai. Misal ukuran array.
bayuandoro.com
48
Black Box Testing – Perbandingan Spesifikasi kebutuhan yang sama dimungkinkan menghasilkan aplikasi/ perangkat lunak yang berbeda. Skenario pengujian pada aplikasi yang demikian bisa digunakan untuk skenario pengujian aplikasi serupa yang lain.
bayuandoro.com
49
Skenario Pengujian Khusus Pengujian Pengujian Pengujian bantuan. Pengujian
GUI. arsitektur client/ server. dokumentasi dan fasilitas sistem waktu nyata.
bayuandoro.com
50
Alpha testing Pengujian yang di kenal dengan alpha testing sering dilakukan di bawah suatu debugger atau dengan hardware-assisted yang debugging untuk menangkap bugs dengan cepat Teknik ini juga dikenal sebagai white-box testing
bayuandoro.com
51
Alpha testing Selanjutnya diserahkan staff pengujian untuk pemeriksaan tambahan di dalam lingkungan yang serupa. Teknik ini dikenal juga dengan black-box testing dan sering di sebut langkah lanjutan dari white-box testing atau alpha testing.
bayuandoro.com
52
Betha testing Mengeluarkan pruduk betha-version kepada kelompok-kelompok tertentu untuk dilakukan pengujian sehingga dapat mengetahui bugs yang ada pada perangkat lunak. Biasanya, beta-versions dibuat terbatas dan tersedia untuk publik terbuka yang bertujuan untuk meningkatkan jumlah para pemakai di masa yang akan datang.
bayuandoro.com
53
Gamma testing
Pada kasus tertentu developer mengeluarkan produk Gamma version dimana produk yang dikeluarkan sudah memiliki fitur yang lengkap akan tetapi ada beberapa modul yang tidak berjalan sebagaimana mestinya.
bayuandoro.com
54
Terima kasih
bayuandoro.com
55