DSS – Pertemuan 14 – Materi

Gede Surya Mahendra - Home

DSS – Pertemuan 14 – Materi

Stiki Logo - Short

Mata Kuliah : Decision Support System

Kode Mata Kuliah : MKB-219

Program Studi : Teknik Informatika

STIMIK STIKOM Indonesia

PERTEMUAN 14 PRESENTASI PROJECT DSS – PENGUJIAN PERANGKAT LUNAK

Untuk tampilan lebih baik, dapat mendownload file PDF pada link yang tersedia

Mg Ke- Kemampuan Akhir yang Diharapkan Bahan Kajian Metode Pembelajaran Waktu Pengalaman Belajar Penilaian dan Indikator Bobot Penilaian (%)
(1) (2) (3) (4) (5) (6) (7) (8)
14 Mahasiswa dapat mempre-sentasikan project pembangunan Decision Support System.
  • Ketepatan mampu mepresentasikan dan menjelaskan tentang project Decision Support System.
  • Pembelajaran Project Based Learning dalam mepresentasikan dan menjelaskan tentang project Decision Support System
[TM : 1 x (3×50”)]
  • Mampu merepre-sentasikan project pembangunan DSS
  • Kemampuan merepre-sentasikan project DSS
5%

Download File Materi PDF

Download File Slide Perkuliahan PDF 

TINJAUAN

  1. Pengujian Perangkat Lunak
  2. White-Box Testing
    1. Teknik White-box Testing
    2. Graph Matrix
    3. Kelemahan White Box-Testing:
  3. Black-Box Testing
    1. Keunggulan Black-Box Testing
    2. Kelemahan Black-Box Testing
    3. Teknik Black-Box Testing
  4. Quality Assurance Software Testing
    1. System Testing
    2. Unit Testing
    3. Integration Testing
    4. Usability Testing
    5. Performance Testing
    6. Smoke Testing
    7. Stress Testing
    8. Sanity Testing
    9. Regression Testing

MATERI

Pengujian Perangkat Lunak

Software testing merupakan sebuah metode untuk mengetahui apakah software yang dibuat, berfungsi dengan baik dan benar. Tanpa adanya software testing, software engineer tidak dapat mengetahui apakah sebuah software sudah memenuhi semua kriteria yang dibutuhkan untuk user. Software testing sendiri dilakukan berdasarkan SDLC (Software Development Life Cycle), dengan kata lain harus melakukan eksekusi program dan selama proses yang dilakukan, memungkinkan untuk menemukan kesalahan atau error. Pengujian software testing ini adalah tahap yang krusial dan cukup membutuhkan dana berkisar kurang lebih diatas 50% dari total cost pembuatan software tersebut. Beberapa tujuan dari software testing adalah meningkatkan kualitas software, memeriksa system agar memenuhi requirement / kebutuhan, dan mengidentifikasi kelemahan, error dan kesalahan yang terjadi dalam software tersebut. Dalam software testing, ada siklus yang harus dilewati:

  1. Analisis kebutuhan

Melakukan analisa dari fase SDLC yang dilalui oleh software

  1. Analisis Desain

Analisis ini merupakan bentuk analisis desain dimana melakukan analisa bagian desain dan parameter yang perlu dilakukan testing

  1. Test Desain

Menyempurnakan strategi testing yang akan dilakukan

  1. Run test

Menjalankan testing dan mencari error, bug dan kesalahan yang ada

  1. Report Test

Memberikan report dari hasil testing kepada developer dan memberikan konklusi apakah software tersebut layak digunakan atau tidak.

White-Box Testing

White-Box Testing adalah salah satu cara untuk menguji suatu aplikasi atau software dengan melihat modul untuk memeriksa dan menganalisis kode program ada yang salah atau tidak. Jika modul ini dan telah diproduksi dalam output yang tidak memenuhi persyaratan, kode akan dikompilasi ulang dan diperiksa lagi sampai mencapai apa yang diharapkan singkatnya White Box Testing ini menguji dengan cara melihat Pure Code dari suatu aplikai/software yang diuji tanpa memperdulikan Tampilan atau UI dari aplikasi tersebut.

Teknik White-box Testing

  1. Basis Path Testing

Basis path testing merupakan metode yang memungkinkan perancang testcase untuk membuat pengukuran kompleksitas logikal dari rancangan prosedural dan menggunakan pengukuran ini sebagai panduan untuk mendefinisikan himpunan basis dari jalur eksekusi. Test case yang dibuat untuk menguji himpunan basis dijamin akan mengeksekusi setiap statement di dalam program sekurangnya sekali pada saat pengujian

  1. Flow Graph

Flow graph merupakan notasi sederhana untuk merepresentasi control flow.

  1. Cyclomatic Complexity

Cyclomatic complexity digunakan untuk mengetahui jumlah jalur yang perlu dicari. Cyclomatic complexity adalah metric software yang menyediakan ukuran kuantitatif dari kompleksitas logikal program. Nilai yang dihitung bagi cyclomatic complexity menentukan jumlah jalur-jalur yang independen dalam kumpulan basis suatu program dan memberikan jumlah tes minimal yang harus dilakukan untuk memastikan bahwa semua pernyataan telah dieksekusi sekurangnya satu kali. Cyclomatic complexity mempunyai fondasi dalam teori graph dan dapat dihitung dengan satu dari tiga cara:

  • Jumlah region sama dengan cyclomatic complexity.
  • Cyclomatic complexity, V(G), untuk sebuah flow graph, G, didefnisikan sebagai: V(G) = E – N + 2 E adalah jumlah edge pada flow graph, dan N adalah jumlah node pada flow graph.
  • Cyclomatic complexity, V(G), untuk flow graph, G, juga didefinisikan sebagai: V(G) = P + 1 P adalah jumlah predicate nodes yang terdapat pada flow graph G.

Graph Matrix

Prosedur untuk membuat flow graph dan menentukan himpunan basis path dapat diterima berdasarkan mekanisme. Untuk mengembangkan software yang membantu pengujian basis path, sebuah struktur data yang disebut graph matrix, dapat sangat bermanfaat. Graph matrix adalah matriks kotak yang ukurannya (jumlah baris dan kolom) sama untuk jumlah node pada flow graph. Setiap baris dan kolom berhubungan dengan node yang teridentifikasi, dan data matriks berhubungan dengan koneksi (edge).

Kelemahan White Box-Testing:

  • Sangat mahal untuk dilakukan karena membutuhkan tester yang terampil untuk melakukan pengujian.
  • Pada perangkat lunak yang jenisnya besar, metode white box testing ini dianggap boros karena melibatkan banyak sumberdaya untuk melakukannya.
  • Tidak mempedulikan Tampilan UI aplikasinya.

Black-Box Testing

Pada Black-Box Testing dilakukan pengujian yang didasarkan pada detail aplikasi seperti tampilan aplikasi, fungsi-fungsi yang ada pada aplikasi, dan kesesuaian alur fungsi dengan bisnis proses yang diinginkan oleh customer. Black-box Testing ini lebih menguji ke Tampilan Luar(Interface) dari suatu aplikasi agar mudah digunakan oleh Customer. Pengujian ini tidak melihat dan menguji souce code program. Black-box Testing bekerja dengan mengabaikan struktur control sehingga perhatianya hanya terfokus pada informasi domain.

Keunggulan Black-Box Testing

  • Penguji tidak perlu memiliki pengetahuan tentang bahasa pemograman tertentu
  • Pengujian yang dilakukan berdasarkan sudut pandang user agar dapat mengungkapkan inkosistensi atau ambiguitas dalam spesifikasi.
  • Programmer dan tester memiliki ketergantungan satu sama lain

Kelemahan Black-Box Testing

  • Uji kasus sulit disain tanpa spesifikasi yang jelas
  • Kemungkinan memiliki pengulangan tes yang sudah dilakukan oleh programmer
  • Beberapa bagian back end tidak diuji sama sekali.

Teknik Black-Box Testing

  1. Equivalence Partitioning

Cara kerja teknik ini adalah dengan melakukan partition atau pembagian menjadi beberapa partisi dari input data.

  1. Boundary Value Analysis

Teknik ini lebih fokus kepada boundary, dimana adakah error dari luar atau sisi dalam software, minimum, maupun maximum nilai dari error yang didapat.

  1. Fuzzing

Fuzz merupakan teknik untuk mencari bug / gangguan dari software dengan menggunakan injeksi data yang terbilang cacat ataupun sesi semi-otomatis.

  1. Cause-Effect Graph

Ini adalah teknik testing dimana menggunakan graphic sebagai pacuannya. Dimana dalam grafik ini menggambarkan relasi diantara efek dan penyebab dari error tersebut.

  1. Orthogonal Array Testong

Dapat digunakan jika input domain yang relatif terbilang kecil ukurannya, tetapi cukup berat untuk digunakan dalam skala besar.

  1. All Pair Testing

Dalam teknik ini, semua pasangan dari test case di desain sedemikian rupa agar dapat di eksekusi semua kemungkinan kombinasi diskrit dari seluruh pasangan berdasar input parameternya. Tujuannya testing ini adalah memiliki pasangan test case yang mencakup semua pasangan tersebut.

  1. State Transition

Testing ini berguna untuk melakukan pengetesan terhadap kondisi dari mesin dan navigasi dari UI dalam bentuk grafik.

Quality Assurance Software Testing

Pengujian sistem adalah pengujian program software yang lengkap dan terintegrasi. Pengujian software dilakukan oleh seorang Quality Assurance (QA) untuk memastikan kualitas dari suatu sistem atau software. Berikut ini merupakan jenis jenis pengujian yang perlu diketahui oleh seorang QA pada software.

System Testing

System testing adalah pengujian untuk memastikan bahwa keseluruhan sistem berfungsi dan bahwa sistem telah memenuhi persyaratan pengguna (user requirement). System testing biasanya dilakukan di akhir setiap iterasi untuk mengidentifikasi isu-isu penting, seperti masalah performance dari software. Biasanya test ini harus dilakukan sesering mungkin.

Unit Testing

Unit Testing adalah pengujian software di mana QA menguji suatu unit program layak untuk tidaknya dipakai. Unit testing ini fokusnya pada pengujian unit yang terkecil pada desain perangkat lunak (komponen atau modul perangkat lunak). Karena dalam sebuah software banyak memiliki unit-unit kecil maka untuk mengujinya biasanya dibuat program kecil atau main program untuk menguji unit-unit software. Unit-unit kecil ini dapat berupa fitur atau fungsi dan pengujian unit biasanya dilakukan saat kode program dibuat.

Integration Testing

Berbeda dengan unit tesing, integration testing adalah pengujian dari hasil pengabungan unit-unit yang ada di dalam software. Biasanya QA menguji bagaimana unit-unit tersebut bekerja sebagai suatu kombinasi, bukan lagi sebagai suatu unit yang individual. Integration testing sebaiknya dilakukan secara bertahap untuk menghindari kesulitan penelusuran jika terjadi kesalahan error / bug.

Usability Testing

Usability test adalah pengujian yang dilakukan untuk memastikan apakah software sudah sesuai dengan persyaratan dari pengguna. Umumnya usability test mengevaluasi persyaratan fungsional program dan kualitas dari user interface. User berinteraksi dengan sistem untuk menentukan apakah fungsi telah seperti yang diharapkan dan apakah user interface membuat sistem dapat mudah digunakan. Pengujian ini sering dilakukan untuk mendapatkan feedback yang cepat dalam meningkatkan interface dan mengkoreksi kesalahan dalam komponen perangkat lunak.

Performance Testing

Performance test adalah integration dan usability test yang menentukan apakah system dapat memenuhi kriteria kinerja berbasis waktu seperti response time atau throughput. Response time menentukan batas waktu maksimum yang diijinkan dari respon software.

Smoke Testing

Smoke testing adalah pengujian yang akan dilakukan setelah software yang di dibuat untuk memastikan bahwa fungsi-fungsi penting dari program tersebut bekerja dengan baik. Smoke test biasanya dilakukan setiap hari atau beberapa kali per minggu.

Stress Testing

Stress Testing adalah pengujian yang biasanya dilakukan dalam membuat sebuah website, dimana stress testing dilakukan untuk mengetahui sekuat apa server website akan dapat menampung visitor dalam website tersebut, dengan cara melakukan hit dummy ke website menggunakan tools.

Sanity Testing

Sanity Testing adalah Software testing yang akan dilakukan setelah software yang dibuat sudah hampir jadi sekaligus dengan fungsi-fungsi lengkapnya yang sudah jadi, dengan catatan bug-bug yang ditemukan pada saat smoke testing sudah berhasil di perbaiki. Tujuan dari sanity testing ini tentunya untuk memastikan bahwa bug-bug yang telah di perbaiki pada saat smoke testing sudah selesai diperbaiki dan tidak ada masalah lebih lanjut serta untuk menentukan bahwa fungsi yang diinginkan bekerja seperti yang diharapkan.

Regression Testing

Regression Testing adalah jenis pengujian yang dilakukan saat mengembangkan software untuk mengetahui apakah fungsional sistem berjalan dengan baik. Singkatnya, tujuan utamanya yaitu untuk meminimalisir bug yang mungkin akan muncul setelah adanya pembaharuan fitur pada software.

Daftar Pustaka

  • Alinezhad, A., & Khalili, J. (2019). New Methods and Applications in Multiple Attribute Decision Making (MADM) (1st ed.). Switzerland: Springer.
  • Kusrini. (2007). Konsep dan Aplikasi Sistem Pendukung Keputusan (1st ed.). Yogyakarta: Penerbit ANDI.
  • Nofriansyah, D., & Defit, S. (2017). Multi Criteria Decison Making (MCDM) pada Sistem Pendukung Keputusan. Yogyakarta: DeePublish.
  • Turban, E., Aronson, J. E., & Liang, T.-P. (2007). Decision Support Systems and Intelligent Systems (7th ed.). New Delhi: Prentice-Hall, Inc.
  • Tzeng, G.-H., & Huang, J.-J. (2011). Multiple Attribute Decision Making, Method and Applications (1st ed.). Abingdon, UK: Taylor & Francis Group.

 24 total views,  2 views today

Tags: ,

Leave a Reply

Your email address will not be published. Required fields are marked *