Sistem diuji secara bertahap, sejalan dengan strategi build dan rilis yang direncanakan, dari unit kode individual melalui subsistem terintegrasi hingga rilis yang diterapkan dan sistem final. Pengujian berlangsung melalui berbagai level fisik dari siklus hidup pengembangan aplikasi. Setiap tingkat yang diselesaikan mewakili tonggak sejarah pada rencana proyek dan setiap tahap mewakili tingkat integrasi dan kualitas fisik yang diketahui. Tahapan integrasi ini dikenal sebagai level tes. Tingkat pengujian meliputi hal-hal berikut:
1. Tes Unit – Memverifikasi spesifikasi program ke logika internal program atau modul dan memvalidasi logika.
2. Uji Integrasi – Memverifikasi pelaksanaan yang tepat dari komponen aplikasi termasuk antarmuka. Komunikasi antar modul dalam sub-sistem diuji dalam lingkungan yang terkendali dan terisolasi dalam proyek. Pengujian string adalah bagian dari level/fase pengujian Integrasi.
3. Pengujian String/Integrasi – adalah deteksi sekaligus koreksi masalah pemrograman/pembuatan kode. Setelah serangkaian komponen atau unit, yang pada akhirnya harus bekerja atau berkomunikasi satu sama lain telah diberi kode dan unit diuji, kinerja pengujian “string” awal dilakukan. Ini “merangkai” bersama-sama dari komponen atau unit untuk eksekusi sebagai unit, cenderung menjadi proses yang agak informal diarahkan untuk menemukan komunikasi atau masalah lewat parameter yang mungkin belum terdeteksi. Karena pemrogram yang berbeda mungkin telah bekerja pada setiap komponen atau modul, atau analis yang berbeda mungkin telah bekerja pada diagram tindakan terpisah (untuk pembuatan kode), kemungkinan ada masalah seperti pemformatan bidang input/output, pengaturan sakelar/indikator, atau pembaruan status yang diharapkan mungkin tidak konsisten di seluruh modul. Tujuannya adalah mendeteksi kesalahan pengkodean ini sebelum pengujian sistem formal dilakukan. Data yang memadai harus dibuat untuk menunjukkan bahwa pemformatan bidang yang tepat, penerusan parameter yang akurat, dan pemicu peristiwa yang benar sedang terjadi. Sebuah “sign-off” tidak boleh diberikan sampai keseluruhan unit atau komponen yang terhubung/terintegrasi bekerja sebagai modul yang halus, mulus, dan bebas kesalahan.
4. Pengujian Sistem – Memverifikasi pelaksanaan yang benar dari seluruh komponen aplikasi termasuk antarmuka ke aplikasi lain. Jenis pengujian fungsional dan struktural dilakukan untuk memverifikasi bahwa sistem berfungsi dan beroperasi dengan baik.
5. Uji Integrasi Sistem – Memverifikasi integrasi semua aplikasi, termasuk antarmuka internal dan eksternal ke organisasi, dengan perangkat keras, perangkat lunak, dan komponen infrastruktur dalam lingkungan seperti produksi.
6. Uji Penerimaan Pengguna – Memverifikasi bahwa sistem memenuhi persyaratan pengguna sebagaimana ditentukan. Ini mensimulasikan lingkungan pengguna dan menekankan tes keamanan, dokumentasi dan regresi.
7. Uji Operabilitas – Memverifikasi bahwa aplikasi dapat beroperasi di lingkungan produksi. Tes operabilitas dilakukan setelah, atau bersamaan dengan Tes Penerimaan Pengguna.