User Acceptance Testing (UAT)

User testing atau customer testing merupakan tahapan dalam proses pengujian dimana pengguna atau pelanggan memberikan masukan dan saran atas pengujian sistem. Pengguna bereksperimen dengan produk perangkat lunak baru untuk melihat apakah mereka menyukainya dan untuk memeriksa apakah produk tersebut memenuhi kebutuhan atau persyaratan atau kebutuhan fungsi yang mereka mereka inginkan. User tesing sangat penting, bahkan ketika pengujian sistem dan rilis yang komprehensif telah dilakukan. Pengaruh dari lingkungan kerja pengguna dapat berdampak besar pada keandalan, kinerja, kegunaan, dan ketahanan sistem.

Secara praktis tidak mungkin bagi pengembang perangkat lunak untuk mereplikasi lingkungan kerja sistem, karena pengujian di lingkungan pengembang pasti hanya buatan. Misalnya, sistem yang dimaksudkan untuk digunakan di rumah sakit digunakan dalam lingkungan klinis rumah sakit di mana hal-hal lain terjadi, seperti keadaan darurat pasien dan percakapan dengan kerabat pasien. Ini semua memengaruhi penggunaan sistem, tetapi pengembang tidak dapat memasukkannya ke dalam lingkungan pengujian yang pengebang lakukan. Intinya User Testing ini pengujian sebenarnya untuk melihat apakah sistem tersebut sesuai dengan kebutuhan fungsional pengguna.

Gambar 1. User Acceptance Testing

Acceptance testing adalah bagian inheren dari pengembangan sistem kustom. Customer menguji sistem, menggunakan data mereka sendiri, dan memutuskan apakah itu harus diterima dari pengembang sistem. Penerimaan menyiratkan bahwa pembayaran akhir harus dilakukan untuk perangkat lunak.

  1. Define acceptance criteria
    Tahap ini idealnya dilakukan di awal proses sebelum kontrak sistem ditandatangani. Kriteria penerimaan harus menjadi bagian dari kontrak sistem dan disetujui oleh Customer dan Pengembang perangkat lunak. Tapi dalam praktiknya, sulit untuk menentukan kriteria di awal proses. Persyaratan terperinci mungkin tidak tersedia, dan persyaratan tersebut hampir pasti akan berubah selama proses pengembangan.
  2. Plan acceptance testing
    Tahap ini melibatkan penentuan sumber daya, waktu, dan anggaran untuk pengujian penerimaan dan penetapan jadwal pengujian. Rencana acceptance testing juga harus membahas cakupan persyaratan yang diperlukan dan urutan fitur sistem yang diuji. Hal ini harus menentukan risiko pada proses pengujian seperti sistem crash dan kinerja sistem yang tidak memadai, dan membahas bagaimana risiko ini dapat dikurangi.
  3. Derive acceptance tests
    Setelah kriteria penerimaan ditetapkan, tes harus dirancang untuk memeriksa apakah suatu sistem dapat diterima atau tidak. Acceptance tests harus bertujuan untuk menguji karakteristik fungsional dan non-fungsional (misalnya, kinerja) dari sistem. Idealnya pengebang sistem harus menyediakan perlindungan lengkap dari persyaratan sistem. Tapi dalam praktiknya, sulit untuk menetapkan kriteria penerimaan yang sepenuhnya obyektif. Seringkali ada ruang untuk argumen tentang apakah suatu tes menunjukkan bahwa suatu kriteria telah terpenuhi atau tidak.
  4. Run acceptance tests
    Acceptance tests yang disepakati dijalankan pada sistem. Idealnya, langkah ini harus dilakukan di lingkungan aktual di mana sistem akan digunakan, tetapi ini mungkin mengganggu dan tidak praktis. Oleh karena itu, lingkungan pengujian pengguna mungkin harus disiapkan untuk menjalankan pengujian ini. Sulit untuk mengotomatiskan proses ini karena bagian dari acceptance tests mungkin melibatkan pengujian interaksi antara pengguna akhir dan sistem. Beberapa pelatihan pengguna akhir mungkin diperlukan.
  5. Negotiate test results
    Sangat kecil kemungkinannya bahwa semua acceptance tests yang ditentukan akan lulus dan tidak akan ada masalah dengan sistem. Jika ini masalahnya, maka acceptance testsselesai dan sistem dapat diserahkan. Lebih umum, beberapa masalah akan ditemukan. Dalam kasus seperti itu, pengembang dan customer harus bernegosiasi untuk memutuskan apakah sistem tersebut cukup baik untuk digunakan. Mereka juga harus menyetujui bagaimana pengembang akan memperbaiki masalah yang teridentifikasi.
  6. Reject/accept the system
    Tahap ini melibatkan pertemuan antara pengembang dan pelanggan untuk memutuskan apakah sistem harus diterima atau tidak. Jika sistem tidak cukup baik untuk digunakan, maka pengembangan lebih lanjut diperlukan untuk memperbaiki masalah yang teridentifikasi. Setelah selesai, tahap pengujian penerimaan diulangi.

Penerapan User Acceptance Testing (UAT)

User Acceptance Test merupakan pengujian yang tidak melihat source code tapi hanya melihat persyaratan yang sudah ditentukan. Prinsipnya sama seperti Black Box Testing, tapi model pengujiannya menguji fungsional yang sudah dipersyaratkan. Pengujian UAT ini mengambil pengujiannya adalah dari Use Case Diagram. Jika use case diagram tersebut memiliki Generalisasi yang diujian adalah pada use case child nya.

Gambar 2. Use Case Diagram Sistem Inventory Sederhana

Maka dokumen pengujiannya seperti dibawah ini.

Sumber:
Sommerville, I. (2016). Software Engineering (10th ed.). Harlow: Pearson Education Limited.