Sabtu, 03 April 2021

Functional Testing

 1. Unit Testing, yaitu pengujian yang memiliki tujuan untuk mengisolasi tiap-tiap bagian program dan mengecek setiap bagian tersebut apakah sudah sesuai dengan apa yang dibutuhkan. 

2. Integration Testing, merupakan pengujian yang bertujuan untuk membuat kombinasi dari bagian-bagian aplikasi demi menentukan apakah bagian tersebut bisa berjalan benar secara bersamaan. 

3. System Testing, adalah pengujian yang dilakukan setelah sukses pada integration testing. Pengujian ini dilakukanlah secara keseluruhan hingga ditentukan apakah sistem secara menyeluruh sudah sesuai dengan standar kualitas ataukah belum. 

4. Regresion Testing, merupakan testing yang tujuannya untuk mengatasi revisi sehingga tidak ada masalah baru yang ditimbulkan dari pengujian software sebelum-sebelumnya. 

5. Acceptance Testing, yaitu pengujian yang memiliki hubungan dengan quality assurance.

Jumat, 26 Maret 2021

Metode pengujian testing software

 

  1. White box testing

Adalah cara pengujian dengan melihat ke dalam modul untuk meneliti kode-kode program yang ada, dan menganalisis apakah ada kesalahan atau tidak. Jika ada modul yang menghasilkan output yang tidak sesuai dengan proses bisnis yang dilakukan, maka baris-baris program, variabel, dan parameter yang terlibat pada unit tersebut akan dicek satu persatu dan diperbaiki, kemudian di-compile ulang.

 

Pengujian white box

Menggunakan metode desain test case yang menggunakan struktur control desain procedural untuk memperoleh test case. Disebut juga pengujian glassbox. Dengan pengujian whitebox, perekayasa 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.
  • Mengeksekusi semua loop pada batasan mereka dan pada batas operasional mereka.
  • Menggunakan struktur data internal untuk menjamin validitasnya.

Dengan meenggunakan metode white box, analis sistem akan dapat memperoleh test case yang:

  • menjamin seluruh independent path di dalam modul yang dikerjakan sekurang-kurangnya sekali.
  • mengerjakan seluruh keputusan logikal.
  • mengerjakan seluruh loop yang sesuai dengan batasannya.
  • mengerjakan seluruh struktur data internal yang menjamin validitas.

 

Keunggulan dan Kekurangan White Box

Keunggulan

  • Kebenaran program dalam mendefinisikan algoritma dapat diketahui secara langsung dengan pengolahan path.
  • Menentukan kualitas pekerjaan coding dan pengaruhnya untuk standar coding.

Kekurangan

  • Jumlah biaya untuk white box testing lebih besar daripada biaya yang dibutuhkan untuk black box, untuk ukuran software yang sama.
  • Belum mampu melakukan tes ketersediaan, kehandalan, daya tahan beban dan testing – testing lain yang berhubungan dengan kebutuhan faktor – faktor untuk operasi, revisi dan transisi.

 

  1. Black box testing

Adalah metode pengujian perangkat lunak yang tes fungsionalitas dari aplikasi yang bertentangan dengan struktur internal atau kerja (lihat pengujian white-box).

 

Pengujian black box

Berfokus pada persyaratan fungsional perangkat lunak. Disebut juga pengujian behavioral atau pengujian partisi. Pengujian black box memungkinkan perekayasa perangkat lunak mendapatkan serangkaian input yang sepenuhnya menggunakan semua persyaratan fungsional untuk suatu program. Pengujian black box berusaha menemukan :

• Fungsi-fungsi yang tidak benar atau hilang

• Kesalahan interface

• Kesalahan dalam struktur data atau akses database eksternal.

• Kesalahan kinerja

• Inisialisasi dan kesalahan terminasi.

• Kesalahan performansi

• Kesalahan inisialisasi dan tujuan akhir

Dengan mengaplikasikan teknik black box, maka kita menarik serangkaian test case yang

memenuhi kriteria berikut :

• Test case yang mengurangi, dengan harga lebih dari satu, jumlah test case tambahan yang harus  didesain untuk mencapai pengujian yang dapat

dipertanggungjawabkan.

•Test case yang member tahu kita sesuatu mengenai kehadiran atau ketidakhadiran

kelas kesalahan, daripada member tahu kesalahan yang berhubungan hanya

dengan pengujian spesifik.

 

Keunggulan dan Kekurangan Black Box:

Keunggulan

  • Black box testing dapat menguji keseluruhan fungsionalitas perangkat lunak.
  • Black box testing dapat memilih subset test yang secara efektif dan efisien dapat menemukan cacat. Dengan cara ini black box testing dapat membantu memaksimalkan testing investment.

Kekurangan

  • Ketika tester melakukan black box testing, tester tidak akan pernah yakin apakah perangkat lunak yang diuji telah benar-benar lolos pengujian.

 

  1. Gray box testing

Adalah metode pengujian perangkat lunak yang adalah kombinasi dari Black box testing dan White box testing. Dalam Black box testing, struktur internal dari item yang sedang diuji tidak diketahui tester dan White box testing struktur internal di dikenal. Dalam pengujian Gray box testing, struktur internal sebagian dikenal. Ini melibatkan memiliki akses ke internal data struktur dan algoritma untuk tujuan merancang uji kasus, tetapi pengujian pada pengguna, atau tingkat Black box. Grey-box, berusaha menggabungkan kedua metode diatas, mengambil kelebihan keduanya, mengurangi kekurangan keduanya. Teknik verifikasi modern menerapkan combine-method ini.

Rabu, 17 Maret 2021

Pengujian Tentang Security

Pengujian Tentang Security

1. Vulnerability Scanning
Vulnerability Scanning (vuln scan) adalah pengujian keamanan yang dilakukan melalui software otomatis untuk memindah aplikasi web. Software ini akan mencari kerentanan keamanan yang ada di dalam sistem seperti pembuatan Cross site scripting, SQL Injection, Command Injection, Path Traversal, serta konfigurasi server yang tidak aman. Tool ini sering disebut sebagai bagian dari Dynamic Application Security Testing (DAST).

Perlu diketahui, Vulnerability Scanning sering menjadi praktik umum yang dipergunakan di seluruh jaringan perusahaan. Vulnerability scanning juga berada di bawah pengawasan standar industri serta peraturan pemerintah dalam meningkatkan struktur keamanan sistem pada sebuah organisasi.

Secara garis besar, Vulnerability Scanning memiliki beberapa jenis pemindaian, yaitu:

External vulnerability scans:
External vulnerability scans merupakan penilaian kerentanan yang dilakukan dengan menargetkan ekosistem IT yang tidak dibatasi untuk penggunaan internal. Pemindaian ini akan fokus pada beberapa area seperti applications, ports, websites, services, networks, dan sistem yang dapat diakses dari luar oleh customer atau user.

Internal vulnerability scans:
Internal vulnerability scans adalah pemindaian yang memiliki target utama jaringan internal perusahaan. Pemindaian ini akan mengidentifikasi kerentanan di dalam jaringan untuk menghindari kerusakan. Pemindaian internal juga memungkinkan perusahaan atau organisasi untuk bisa melindungi dan memperkuat sistem keamanan aplikasi dari dalam.

2. Security scanning
Security scanning merupakan pemindaian yang digunakan untuk menemukan kerentanan atau modifikasi file yang tidak diinginkan dalam aplikasi berbasis web, situs web, jaringan, atau sistem file. Pemindaian ini dapat dilakukan secara otomatis ataupun manual. Pemindaian ini akan memberikan Anda insight yang mendalam serta menyediakan rekomendasi solusi untuk memperbaiki masalah yang ditemukan. 

Security scanning dapat dilakukan sebagai one-time check atau pemeriksaan satu kali. Meskipun demikian, sebagian besar perusahaan pengembang perangkat lunak lebih memilih untuk melakukan pemindaian keamanan secara teratur untuk memastikan sistem yang dikembangkan benar-benar aman.

3. Penetration Testing
Penetration testing adalah proses pengujian dengan melakukan simulasi serangan cyber terhadap sistem yang akan diuji. Pengujian ini akan dilakukan secara manual oleh pentester profesional dan bersertifikat menggunakan beragam pentest tools dan teknik. 

Ketika pengujian penetration testing dilakukan, Anda akan menemukan beragam kerentanan yang dapat dieksploitasi oleh para penjahat cyber. Dengan demikian, maka proses penambalan atau perbaikan dapat segera dilakukan sebelum pihak peretas menemukannya.

Proses pengujian ini dilakukan seperti ketika Anda mempekerjakan seseorang untuk membobol sistem keamanan aplikasi atau web Anda. Jika orang tersebut berhasil masuk dan melewati sistem keamanan yang ada, maka Anda akan mengetahui dimana letak celah atau kerentanan keamanan pada sistem. Dengan informasi tersebut, Anda dapat terus meningkatkan sistem keamanan pada software, website, atau aplikasi yang Anda kembangkan.

Karena hacker akan terus mencari cara untuk membobol sistem korban, maka penetration testing ini perlu dilakukan secara rutin.

Baca Juga: Metode Pentest: Black-Box, Grey-Box, dan White-Box Testing 

4. Risk Assessment
Melalui risk assessment, risiko keamanan yang dihadapi oleh aplikasi, software, dan jaringan akan diidentifikasi dan dianalisis. Risiko keamanan tersebut kemudian akan diklasifikasikan ke dalam beberapa kategori yaitu tinggi, sedang, dan rendah. Salah satu jenis security testing ini dapat membantu Anda memastikan bahwa kontrol keamanan cyber yang Anda lakukan sebelumnya sudah sesuai dengan risiko keamanan yang dihadapi organisasi/perusahaan Anda.

Pada umumnya, risk assessment akan dilakukan oleh tim IT internal perusahaan. Oleh karena itu, tim IT yang Anda percaya untuk melakukan penilaian risiko harus benar-benar memahami bagaimana infrastruktur digital dan jaringan Anda bekerja.

5. Security Auditing
Security Auditing adalah metode terstruktur untuk mengevaluasi langkah-langkah keamanan di dalam perusahaan. Dengan melakukan audit secara rutin, Anda akan terbantu dalam mengidentifikasi titik lemah dan kerentanan dalam infrastruktur IT perusahaan, memverifikasi kontrol keamanan, memastikan kepatuhan terhadap peraturan keamanan, dan masih banyak lagi.

Selain itu, security auditing juga akan membantu perusahaan Anda untuk tetap mematuhi undang-undang keamanan. Saat ini, ada banyak peraturan nasional ataupun internasional seperti GDPR dan HIPAA yang membutuhkan audit keamanan IT untuk memastikan bahwa sistem informasi Anda tetap memenuhi standar yang mereka buat.

Meskipun secara sekilas, security auditing terlihat sama dengan risk assessment, namun kedua tipe security testing tersebut tetap berbeda. Audit merupakan proses pengujian yang lebih formal daripada Risk Assessment. Selain itu, audit harus dilakukan oleh organisasi pihak ketiga yang independen dan pihak ketiga tersebut biasanya harus memiliki semacam sertifikasi. Sebuah organisasi atau perusahaan boleh saja memiliki tim audit internal, tetapi tim tersebut harus bertindak sebagai lembaga independen. 

Jumat, 12 Maret 2021

Tipe Testing

Pada materi tipe testing saya akan jabarkan poin yang saya pahami

Menurut Standar ANSI/IEEE 1059: Testing adalah proses menganalisa suatu entitas software untuk mendeteksi perbedaan antara kondisi yang ada dengan kondisi yang diinginkan (defects /errors / bugs) dan mengevaluasi fitur-fitur dari entitas software.

Prinsip testing

Terdapat 6 kunci prinsip-prinsip testing, yaitu: 

  • Testing yang komplit tidak mungkin. 
  • Testing merupakan pekerjaan yang kreatif dan sulit. 
  • Alasan yang penting diadakannya testing adalah untuk mencegah terjadinya errors. 
  • Testing berbasis pada resiko. 
  • Testing harus direncanakan. 
  • Testing membutuhkan independensi.

Tahapan testing
  1. Testing adalah tahapan yang sangat penting didalam proses pembuatan program
  2. Testing dilakukan ketika code program sudah ditulis
  3. Testing atau aktifitas untuk menjaimin kualitas program dapat dilakukan selama proses pembuatan program
  4. Ada dua tahapan testing yang dilakukan :
    • Testing sebelum implementasi / pre implementation testing
    • Testing sesudah implementasi / post implementation testing
Tipe – tipe Testing
  • Volume : Memfokuskan untuk input yang besar
  • Usability : Mengukur reaksi user ( Skala 1 : 10 )
  • Performance : Mengukur kecepatan pada beberapa keadaan
  • Configurasi : Mengkonfigurasi untuk bermacam – macam hadware atau software
  • Compatibility : komplabiliti dengan aplikasi lain (mengukur watu adaptasi )
  • Relibiality / availability : mengukur ketahanan pada priode waku yang lama
  • Securty
  • Resource Usage : Mengukur penggunaan RAM.
  • Ruang Disk. Dan lainnya
  • Installabiltiy : di install pada bermacam – macam keadaan ( mengukur waktu install )
  • Recoverabilty : mengukur waktu untuk me-recover
  • Serviceability ; mengukur waktu service
  • Load / stress : untuk data extreame dan traffic
TAHAP TAHAP TESTING
  • UNIT TESTING
  • INTEGRATION TESTING
  • SYSTEM TESTING
SIAPA SAJA YANG MELAKUKAN TESTING
  • The programmer
  • Tim tester
  • Beta tester
  • Konsumen
  • Maintainer
  • Dan lainnya
Bagian2 yang dilakukan testing
  • Bagian Statment / Statment Coverage
  • Bagian Percabangan / Branch Coverage
  • Bagian Kondisi / Condition Coverage
TESTING TOOLS
  • Membuat dan mengatur regression test
  • Menghasilkan test report
  • Menghasilkan test data
  • Merekam penggunaan memory
  • Mengatur / mengelola test case
  • Analisa keseluruhan