Chrome for Testing adalah varian Chrome yang secara khusus menargetkan kasus penggunaan pengujian dan otomatisasi aplikasi web. Dokumen ini menjelaskan alasan tim Chrome merasa perlu membuat varian ini, dan memberikan contoh konkret yang menunjukkan manfaat Chrome for Testing bagi Anda sebagai developer.
Latar belakang
Pengujian browser adalah komponen penting dalam menciptakan pengalaman web berkualitas tinggi, baik dilakukan secara manual maupun otomatis. Pada saat yang sama, menyiapkan lingkungan pengujian browser yang memadai sangat sulit, sehingga secara konsisten dilaporkan sebagai masalah utama bagi developer web.
Update otomatis: bagus untuk pengguna, menyulitkan developer
Salah satu fitur Chrome yang paling menonjol adalah kemampuannya untuk melakukan update otomatis. Pengguna senang mengetahui bahwa mereka menjalankan versi browser yang terbaru dan aman, termasuk fitur Platform Web modern, fitur browser, dan perbaikan bug setiap saat.
Namun, sebagai developer yang menjalankan rangkaian pengujian menyeluruh, Anda mungkin memiliki perspektif yang sama sekali berbeda:
- Anda menginginkan hasil yang konsisten dan dapat direproduksi di seluruh pengujian berulang—tetapi hal ini mungkin tidak terjadi jika executable atau biner browser memutuskan untuk mengupdate dirinya sendiri di antara dua pengujian.
- Anda ingin menyematkan versi browser tertentu dan memeriksa nomor versi tersebut ke dalam repositori kode sumber, sehingga Anda dapat memeriksa commit dan cabang lama serta menjalankan kembali pengujian terhadap program biner browser dari waktu tersebut.
Semua hal ini tidak mungkin dilakukan dengan program biner browser yang diupdate secara otomatis. Akibatnya, Anda mungkin tidak ingin menggunakan penginstalan Chrome biasa untuk pengujian otomatis. Inilah ketidakcocokan mendasar antara hal yang baik untuk pengguna browser biasa dan hal yang baik untuk developer yang melakukan pengujian otomatis.
Biner browser versi
Selain update otomatis, Anda mungkin juga kesulitan menemukan biner Chrome dengan versi tertentu. Google sengaja tidak menyediakan download Chrome versi, karena pengguna tidak perlu memikirkan nomor versi—mereka harus selalu mendapatkan update ke versi terbaru sesegera mungkin. Hal ini bagus untuk pengguna, tetapi menyulitkan developer yang perlu mereproduksi laporan bug di versi Chrome yang lebih lama.
Contoh masalah yang lebih spesifik adalah saat Anda ingin menggunakan ChromeDriver untuk otomatisasi browser. Anda tidak hanya harus mendownload biner Chrome, tetapi juga memerlukan biner ChromeDriver dengan versi yang sesuai untuk memastikan kedua biner tersebut kompatibel.
Karena tidak ada cara yang baik untuk mengatasi masalah ini, banyak developer mendownload biner Chromium (bukan Chrome), meskipun pendekatan ini memiliki beberapa kekurangan. Pertama, biner Chromium ini tidak tersedia secara andal di semua platform. Kedua, biner ini dibuat dan dipublikasikan secara terpisah dari proses rilis Chrome, sehingga tidak mungkin memetakan versinya kembali ke rilis Chrome yang dihadapi pengguna. Ketiga, Chromium berbeda dengan Chrome.
Solusinya: Chrome for Testing
Dirancang untuk mengatasi masalah ini, Chrome for Testing adalah varian Chrome khusus yang menargetkan kasus penggunaan pengujian, tanpa update otomatis, terintegrasi ke dalam proses rilis Chrome, dan tersedia untuk setiap rilis Chrome. Program biner versi yang sedekat mungkin dengan Chrome biasa tanpa memengaruhi kasus penggunaan pengujian secara negatif.
Untuk membuat Chrome for Testing, kami telah menerapkan perubahan pada codebase Chromium dan Chrome serta menyiapkan infrastruktur untuk membuat dan mengupload biner ini ke bucket yang tersedia secara publik dan sinkron dengan proses rilis Chrome di semua saluran (Stabil, Beta, Dev, dan Canary).
Infrastruktur di sekitar Chrome for Testing membuka peluang menarik di luar Chrome itu sendiri. Misalnya, kesulitan yang disebutkan sebelumnya terkait menemukan biner Chrome dan ChromeDriver yang cocok dapat dihilangkan sepenuhnya dengan mengintegrasikan proses rilis ChromeDriver ke dalam infrastruktur Chrome for Testing. Selain mengatasi masalah yang dihadapi pengguna ini, hal ini juga menyelaraskan rilis ChromeDriver dengan Chrome, dan menghilangkan proses rilis ChromeDriver manual.