2.  Adaptasi  Adaptation,  yaitu  merupakan  tahap  untuk  memodifikasi perangkat  lunak  guna  mengakomodasi  perubahan  lingkungan  luar
dimana perangkat lunak dijalankan. 3.  Perbaikan  Enchancement,  pemeliharaan  perfektif  atau  penyempurnaan
melakukan  eksekusi  atau  penambahan  pada  kebutuhan  fungsional sebelumnya.
4.  Pencegahan  prevention,  pencegahan  atau  sering  disebut  juga  dengan rekayasa ulang sistem software reengineering harus dikondisikan untuk
mempu melayani kebutuhan yang diinginkan pemakainya.
d. Pengujian
Pengujian  adalah  tahapan  yang  direncanakan  dan  sistematis  untuk  menguji atau mengevaluasi kebenaran yang diinginkan dengan cara menemukan sebanyak-
banyaknya kesalahan dalam selang waktu yang realistis. Pengujian  perangkat  lunak  sering  dikaitkan  dengan  verifikasi  verification
dan  validasi  validation.  Verifikasi  mengacu  pada  sekumpulan  aktifitas  yang berbeda  yang  menjamin  bahwa  perangkat  lunak  mengimplementasikan  sebuah
fungsi sfesifik dengan benar. Sedangkan mengacu pada sekumpulan aktifitas yang berbeda  yang  menjamin  bahwa  perangkat  lunak  yang  dibangun  dapat  ditelusuri
sesuai dengan kebutuhan pengguna.
1. Pengujian Verifikasi Verification
Pengujian verifikasi dilakukan mulai dari lingkup yang kecil naik ke lingkup yang besar seperti pada gambar berikut ini:
Uji Unit Uji Integrasi
Uji Sistem Kebutuhan
Desain
Kode Arah
penguji an
Gambar 2.5 Hirarki Pengujian Sistem
Pengujian diawali dari pengujian unit. Unit disini bisa berupa kumpulan kelas dan  package.  Setelah  unit-unit  selesai  diuji  maka  dilakukan  pengujian  integrasi.
Pengujian  integrasi  sebaiknya  dilakukan  secara  bertahap,  tidak  dilakukan  secara satu tahap langsung di akhir untuk menghindari kesulitan penelusuran jika terjadi
kesalahan.  Pengujian  integrasi  lebih  kepada  pengujian  penggabungan  dari  dua atau  lebih  unit  yang  terdapat  pada  perangkat  lunak.  Setelah  pengujian  integrasi
selanjutnya  dilakukan  pengujian  sistem  dimana  unit-unit  proses  yang  sudah diintegrasikan  diuji  dengan  antarmuka  yang  sudah  dibuat  sehingga  pengujian  ini
dimaksudkan untuk menguji sistem perangkat lunak secara keseluruhan.
2. Pengujian Validasi Validation
Pengujian  validasi  memiliki  beberapa  pendekatan,  diantaranya  sebagai berikut:
1.  Black-Box Testing Pengujian Kotak Hitam Pengujian kotak hitam adalah pengujian perangkat lunak dari segi spesifikasi
fungsional  tanpa  menguji  desain  dan  kode  program.  Pengujian  dimaksudkan