Uji Seperti Google: Praktik Terbaik dari Raksasa Industri (03.28.24)

Kita dapat belajar banyak dari raksasa industri dengan mengamati metode dan pendekatan mereka dalam alur kerja.

Bagaimana cara mereka mempertahankan proses pengujian perangkat lunak dalam jutaan baris kode?

Bagaimana mereka mengatur alur kerja dengan ribuan insinyur QA?

Bagaimana mereka mengatasi perluasan proyek?

Pengalaman perusahaan seperti Google atau Spotify dapat membantu meningkatkan proses pengujian di perusahaan kecil dan tim.

Mari kita lihat lebih dekat bagaimana raksasa menguji.

Google: pentingnya cakupan kode

Namun, banyak insinyur berdebat tentang pentingnya ukuran efisiensi pengujian perangkat lunak seperti itu. sebagai cakupan kode. Pakar dari Google bersikeras bahwa data cakupan kode dapat menjadi informasi berharga untuk mengevaluasi risiko dan hambatan dalam aktivitas pengujian. Carlos Arguelles, Marko Ivanković‎, dan Adam Bender berbagi praktik terbaik untuk cakupan kode:

  • Cakupan kode dapat membantu mengurangi bug dan kegagalan. Pengalaman QA-engineer dari Google menunjukkan bahwa peningkatan cakupan kode menyebabkan perubahan dalam pendekatan dan sikap terhadap pengujian. Tim dengan cakupan kode sebagai tujuan utama cenderung membuat produk mereka dapat diuji dengan lebih baik. Mereka menulis kode yang lebih efisien untuk pengujian guna mencapai tujuan pengujian dengan lebih mudah dan menghemat waktu.
  • Gunakan pengujian mutasi untuk memastikan cakupan pengujian yang tinggi. Cakupan kode yang lengkap dapat menjadi pemborosan dan tidak menjamin cakupan pengujian berkualitas tinggi. Persentase cakupan kode yang tinggi tidak berarti bahwa semua fungsi telah diuji dengan benar. Ini berarti bahwa kode tersebut diuji secara keseluruhan. Untuk memastikan cakupan pengujian berkualitas tinggi, pakar Google merekomendasikan penggunaan pengujian mutasi. Metode ini mencakup penerapan perubahan kode kecil dan memeriksa cara set pengujian mengidentifikasinya.
  • Persentase cakupan kode bergantung pada banyak faktor. Kita seharusnya tidak menargetkan cakupan kode yang tinggi, tetapi cakupan yang rendah juga menyebabkan sejumlah besar kegagalan. Dan pertanyaannya adalah, apa cakupan kode khusus untuk sistem tertentu? Untuk menjawab pertanyaan ini, kita harus mempertimbangkan hal-hal seperti kekritisan, kompleksitas, dan frekuensi perubahan kode. Cakupan kode adalah keputusan bisnis, dan pemilik produk harus mendefinisikannya.
  • Analisis apa yang harus dicakup. Kita tidak bisa mendapatkan cakupan kode 100%, jadi teknisi QA harus mengamati bahwa bagian kode yang paling berharga tercakup. Tim pengembang harus mendiskusikan dan memikirkan bukan tentang berapa banyak baris kode yang dicakup, tetapi apa yang sebenarnya dicakup.
Spotify: strategi yang andal

Spotify adalah perusahaan yang berkembang pesat. Didirikan pada tahun 2008 dengan 150 karyawan. Pada tahun 2019, jumlah karyawan bertambah menjadi 4.405. Saat ini Spotify melayani sekitar 300 juta pengguna di seluruh dunia, menjadikannya layanan streaming paling populer di dunia.

Kita dapat mempelajari pelajaran tentang cara Spotify menskalakan pengujian dan proses pengembangan.

  • Tetapkan sasaran produk untuk tim QA. Spotify memiliki tim lintas fungsi. Setiap tim memiliki tujuan dan seperangkat keterampilan khusus untuk mendekati tujuan tersebut. Struktur tim tergantung pada tujuan. Oleh karena itu, beberapa tim hanya terdiri dari pengembang dan beberapa memiliki pengembang dan penguji. Dengan demikian, penguji bekerja sama erat dengan tim pengembangan dan fokus pada tujuan utama produk. Pendekatan semacam itu memungkinkan Spotify untuk menskalakan proses pengembangan secara efisien.
  • Pengujian otomatisasi adalah alat, tetapi bukan obat mujarab. Manajer Pengujian dan Pengembangan di Spotify Kristian Karl mengklaim bahwa penguji perangkat lunak tidak dapat digantikan oleh otomatisasi. Pengujian membutuhkan pengalaman dan pengetahuan manusia. Pengujian otomatisasi adalah alat yang kuat untuk mempercepat proses, tetapi manusia membuat keputusan dan menganalisis laporan otomatis. Spotify menggunakan otomatisasi sebagai salah satu alat timbangan. Hal ini memungkinkan penguji untuk meninggalkan rutinitas untuk algoritme dan fokus pada sasaran produk.
SpaceX: pengujian berkelanjutan adalah suatu keharusan

SpaceX adalah perusahaan inovatif yang dikenal dengan transportasi ruang angkasa komersial, sistem peluncuran yang dapat digunakan kembali, dan efisiensi tinggi.

Nicholas Chaillan, chief software officer untuk Angkatan Udara, mengatakan bahwa sistem departemen pengembangan SpaceX lima kali lebih efisien daripada perusahaan dengan alur kerja klasik. Bagaimana SpaceX mengatasi proses pengujian dengan kinerja seperti itu?

DevOps dan pendekatan Agile memungkinkan insinyur QA SpaceX menyediakan pengujian otomatisasi massal. Melalui siklus pengembangan, penguji memberikan pengujian berkelanjutan untuk mendapatkan umpan balik instan dan menghilangkan risiko yang ada. Oleh karena itu, mereka bekerja secara proaktif, sering melakukan pengujian dan lebih awal.

Perusahaan mengembangkan strategi tentang cara menerapkan pengujian berkelanjutan dalam proses pengembangan.

  • Memprioritaskan nilai. Seperti Google, SpaceX merekomendasikan penggunaan metrik cakupan kode untuk memahami apa yang harus Anda otomatisasi dan apa yang tidak. Ini membantu mengoptimalkan pengujian berkelanjutan dan menyempurnakan aktivitas yang telah dilakukan.
  • Kuncinya adalah pengujian menyeluruh otomatis. Jadikan analisis dampak sebagai bagian dari integrasi berkelanjutan. Ini memungkinkan perusahaan untuk menganalisis bagaimana menambahkan fungsi baru atau mengubah kode dapat memengaruhi sistem secara keseluruhan atau beberapa bagian dari sistemnya.
  • Tim harus memiliki lingkungan pengujian yang stabil dan mudah direplikasi. Alat seperti Virtual Machine Snapshot dapat membantu menghemat status data, kembali ke pengujian, atau melanjutkan pekerjaan.
  • Gunakan Artificial Intelligence dan Machine learning untuk menganalisis laporan pengujian. AI -alat berbasis mempercepat penerapan dan mengoptimalkan proses pengujian.
  • Membangun arsitektur integrasi berkelanjutan yang kuat. Keuntungan utama sistem CI adalah periode yang singkat antara pembuatan dan pengujian kode . Pengujian terus-menerus harus dilibatkan dalam proses pengembangan dan melibatkan jenis pengujian yang diperlukan.
  • Ringkasan

    Setiap perusahaan memiliki strategi, proses, dan pendekatan pengujiannya sendiri. Setiap tim memilih dan menyesuaikan proses pengujian berdasarkan tujuan akhir dan kemampuan produk. Tugas utama spesialis mana pun adalah memikirkan klien dan pengguna akhir, beradaptasi dengan persyaratan baru, dan mengadopsi pengalaman yang terbaik di industri.


    Video Youtube: Uji Seperti Google: Praktik Terbaik dari Raksasa Industri

    03, 2024