Kerangka kerja otomatisasi pengujian adalah seperangkat alat yang digunakan untuk melakukan pengujian perangkat lunak otomatis. Kerangka kerja otomatisasi pengujian memberikan keuntungan signifikan dibandingkan pengujian manual dan biasanya digunakan dalam pengembangan perangkat lunak yang cepat. Kerangka kerja ini memungkinkan pengembang perangkat lunak untuk membuat pengujian, menjalankan pengujian, dan menganalisis hasil pengujian. Kerangka kerja otomatisasi pengujian mungkin didorong oleh kode, data, antarmuka pengguna grafis (GUI) atau kombinasi dari semuanya.
Kerangka kerja otomatisasi pengujian diperlukan untuk memenuhi kebutuhan pengembangan perangkat lunak yang cepat. Dalam siklus hidup pengembangan perangkat lunak air terjun klasik, pengujian perangkat lunak adalah fase terpisah yang dilakukan setelah implementasi, atau pengkodean. Dengan demikian, tes yang dilakukan manusia adalah tipikal.
Banyak tim pengembangan telah mengganti model air terjun dengan berbagai metodologi pengembangan perangkat lunak yang tangkas, yang biasanya membutuhkan pengembangan yang cepat dan berulang. Perkembangan yang pesat telah menciptakan kebutuhan akan pengujian yang cepat. Kerangka kerja otomatisasi pengujian memungkinkan tim perangkat lunak untuk sering melakukan pengujian otomatis pada basis kode. Misalnya, daripada memerlukan fase pengujian terpisah setelah pengembangan, tim yang menggunakan kerangka kerja otomatisasi pengujian dapat memilih untuk menjalankan rangkaian pengujian lengkap dalam semalam, serta bagian pengujian otomatis yang lebih kecil sepanjang hari saat perubahan dilakukan pada sumber kode.
Jenis kerangka kerja yang paling umum digunakan adalah kerangka kerja berbasis kode, yang digunakan untuk melakukan pengujian kotak putih. Kerangka kerja berbasis kode mengharuskan pengembang untuk menulis potongan kecil kode, dalam bentuk pengujian unit, untuk menguji fungsionalitas atau kinerja perangkat lunak. Pengembang yang menggunakan kerangka kerja berbasis kode harus berhati-hati untuk menulis perangkat lunak mereka dengan cara yang dapat diuji — yaitu, kode harus dimodulasi sedemikian rupa sehingga pengujian unit dapat memanggil potongan kode dan memverifikasi hasilnya. Kerangka kerja ini biasanya mencakup implementasi xUnit, di mana “x” bervariasi berdasarkan bahasa pemrograman yang diuji.
Kerangka kerja pengujian berbasis GUI digunakan untuk melakukan pengujian kotak hitam, menggunakan alat perangkat lunak seperti yang dilakukan pengguna, melalui input mouse dan keyboard. Mereka mungkin terdiri dari skrip yang ditulis oleh pengembang untuk menjalankan serangkaian fungsionalitas, atau mereka mungkin terdiri dari skrip yang dihasilkan alat, seperti skrip rekam dan putar ulang. Salah satu kelemahan potensial dari kerangka kerja ini adalah bahwa skrip akan rusak setiap kali GUI berubah. Beberapa kerangka kerja otomatisasi GUI mungkin menghasilkan skrip yang dapat diedit oleh pengembang jika terjadi perubahan GUI, dan yang lain mungkin mengharuskan pengguna untuk membuat sesi rekaman dan putar ulang yang baru.
Kerangka kerja pengujian berbasis data melakukan pengujian perangkat lunak menggunakan data, dan pengujian ini biasanya bekerja dengan tabel data yang menentukan input dan output. Data dapat disimpan di berbagai lokasi, seperti database, spreadsheet, atau file teks. Skrip dapat ditulis untuk mengeksekusi metode perangkat lunak yang mengambil input sebagai parameter dan untuk memvalidasi nilai pengembalian metode perangkat lunak terhadap output. Hal lain yang dapat divariasikan, seperti lingkungan di mana pengujian dijalankan, juga dapat disimpan dengan data dan dipisahkan dari skrip pengujian. Keuntungan yang diberikan oleh kerangka kerja ini adalah pemisahan data dan logika, yang sering menyebabkan pemeliharaan jangka panjang yang lebih rendah.