Tujuan dari pengujian perangkat lunak dibagi menjadi 2 yaitu:

1. Langsung

  • Mengidentifikasi error sebanyak-banyaknya pada sebuah perangkat lunak.
  • Melakukan tindakan koreksi pada error-error yang telah teridentifikasi di dalam perangkat lunak dan melakukan pengujian ulang, sehingga kualitas perangkat lunak dapat dikategorikan sebagai acceptable.
  • Melakukan pengujian secara efektif dan efisien sesuai budget dan waktu yang disediakan.

2. Tidak Langsung

  • Sebagai sebuah dokumentasi yang dapat dijadikan acuan untuk digunakan dalam melakukan pencegahan terjadinya error serupa (error prevention).

 

Untuk menaksir kualitas produk, diperlukan beberapa jenis pengujian yang bisa dikategorikan menjadi :

  • Dimensi Kualitas : Pengujian berfokus pada suatu karakteristik mayor kualitas
  • Tingkat Pengujian :  Pengujian strategi target, kategori umum elemen perangkat lunak
  • Tipe Pengujian : Uji individual memiliki suatu tujuan yang spesifik, biasanya terbatas pada sebuah dimensi kualitas.

  

Dimensi Kualitas

Ada beberapa pola untuk menentukan masalah kualitas ; hampir sama dengan masalah-masalah yang muncul di setiap sistem. Ada berbagai cara untuk memaparkan masalah-masalah kualitas, masing-masing didesain untuk membantu kita untuk mengetahui alasan dimensi kualitas yang paling penting dalam konteks kita. Aspek-aspek berikut umumnya ditaksir untuk kebanyakan produk:

  •  Reliability : Perangkat lunak dapat ditebak dan konsisten
  •  Functionality : Perangkat lunak memenuhi use case yang dibutuhkan atau behavior yang diinginkan
  •  Performance : Fokus untuk memastikan fungsionalitas sistem dapat disediakan selama menyediakan kebutuhan non-fungsional dari sistem
  • Usability : Prangkat lunak mudah digunakan oleh end-user

 

Tingkat Pengujian

Pada segmen ini, pengujian dibagi menjadi beberapa bagian yang disebut juga dengan siklus pengujian. Tiap siklus bertugas melakukan pengujian pada target yang berbeda, dari elemen sistem yang terendah seperti unit atau komponen sampai testing pada keseluruhan sistem.

Empat tingkat pengujian yang digunakan mempunyai tujuan berikut

  • Unit Testing : Elemen uji terkecil dari sistem
  • Integration Testing : Unit yang terintegrasi diuji
  • System testing : Aplikasi dan sistem yang lengkap diuji
  • Acceptance Testing : Aplikasi dan sistem yang lengkap diuji oleh end-user untuk menentukan kesiapan pemakaian

 

Tipe Pengujian

Terdapat berbagai macam tipe pengujian, tiap tipe berfokus pada objektif yang harus dipenuhi seperti melakukan pengujian pada karakteristik dan atribut pada perangkat lunak atau melakukan deteksi fault dan failure di dalam sistem. Pengujian dilakukan pada setiap siklus hidup di dalam RUP, pengujian dilakukan pada satu unit kode, unit-unit yang terintegrasi atau keseluruhan sistem atau aplikasi. Di bawah ini merupakan beberapa tipe test yang biasa digunakan:

  • Benchmark Testing
  • ConfigurationTesting
  • Functional Test
  • Installation Test
  • Integrity Test
  • Load Test
  • Performance Test
  • Stress Test

Regression Testing

adalah sebuah strategi pengujian yang dilakukan dengan cara melakukan uji yang sebelumnya telah dilakukan pada suatu perangkat lunak  dan melakukannya lagi pada perangkat lunak yang sama tetapi dengan versi terbaru untuk memastikan agar kualitas perangkat lunak tetap terjaga dan tidak mengalami regresi atau penurunan kualitas justru karena ditambah kapabilitas baru didalamnya. Tujuan dari regression test adalah untuk memastikan 2 hal berikut:

  • Defect atau cacat yang diidentifikasi pada eksekusi awal dari pengujian dapat segera diambil tindakan lanjutan
  • Melakukan pengecekan apakah perubahan pada line kode di dalam sistem malah menjadi sebuah defect atau memunculkan defect yang lama.

 

Strategi Pengujian

Terdapat 2 strategi pengujian yang umum digunakan:

  • “Big Bang Testing” : melakukan pengujian perangkat lunak secara utuh, artinya melakukan pengujian pada pakt perangkat lunak  hanya jika paket tersebut  telah lengkap dan tersedia.
  • “Incremental Testing”: melakukan pengujian perangkat lunak perbagian, artinya pengujian dilakukan pada modul-modul yang telah tersedia (unit testing), pengujian dilanjutkan pada grup dari beberapa modul yang telah diuji yang terhubung dengan modul-modul baru (integration test). Setelah keseluruhan paket perangkat lunak selesai dilakukan maka dilakukan system test, yaitu melakukan pengujian terhadap paket perangkat lunak secara utuh.

 

Terdapat 2 strategi pengujian incremental : bottom-up dan top-down

  • Top-down testing: Pengujian dilakukan pertama pada modul dengan struktur paling kompleks dan memiliki hierarki paling tinggi di dalam perangkat lunak (main modul) dan berlanjut sampai pada modul dengan level terendah.
  • Bottom-up testing: Pengujian dilakukan dimulai dengan modul dengan hierarki paling rendah berlanjut sampai main modul.