Tim pengembangan kami telah menggunakan strategi percabangan GitFlow dan ini sangat luar biasa!
Baru-baru ini kami merekrut beberapa penguji untuk meningkatkan kualitas perangkat lunak kami. Idenya adalah bahwa setiap fitur harus diuji / QA oleh tester.
Di masa lalu, pengembang bekerja pada fitur pada cabang fitur yang terpisah dan menggabungkannya kembali ke developcabang setelah selesai. Pengembang akan menguji sendiri karyanya di featurecabang itu. Sekarang dengan penguji, kami mulai menanyakan pertanyaan ini
Di cabang mana tester menguji fitur baru?
Jelas, ada dua opsi:
- pada cabang fitur individu
- di
developcabang
Pengujian Di Kembangkan Cabang
Awalnya, kami percaya ini adalah cara yang pasti untuk dilakukan karena:
- Fitur ini diuji dengan semua fitur lainnya digabungkan ke
developcabang sejak pengembangannya dimulai. - Konflik apa pun dapat dideteksi lebih awal dari nanti
- Itu membuat pekerjaan penguji mudah, ia hanya berurusan dengan satu cabang (
develop) setiap saat. Dia tidak perlu bertanya kepada pengembang tentang cabang mana untuk fitur apa (cabang fitur adalah cabang pribadi yang dikelola secara eksklusif dan bebas oleh pengembang yang relevan)
Masalah terbesar dengan ini adalah:
The
developcabang tercemar dengan bug.Ketika penguji menemukan bug atau konflik, ia melaporkannya kembali ke pengembang, yang memperbaiki masalah pada pengembangan cabang (cabang fitur ditinggalkan setelah digabungkan), dan mungkin ada lebih banyak perbaikan yang diperlukan setelahnya. Multiple commitence melakukan atau menggabungkan (jika suatu cabang diciptakan kembali dari
developcabang lagi untuk memperbaiki bug) membuat memutar kembali fitur daridevelopcabang menjadi sangat sulit jika memungkinkan. Ada beberapa fitur yang digabungkan dan diperbaiki didevelopcabang pada waktu yang berbeda. Ini menciptakan masalah besar ketika kami ingin membuat rilis dengan hanya beberapa fitur didevelopcabang
Menguji Cabang Fitur
Jadi kami berpikir lagi dan memutuskan untuk menguji fitur pada cabang fitur. Sebelum kami menguji, kami menggabungkan perubahan dari developcabang ke cabang fitur (mengejar ketinggalan dengan developcabang). Ini bagus:
- Anda masih menguji fitur dengan fitur lain di arus utama
- Pengembangan lebih lanjut (misalnya perbaikan bug, penyelesaian konflik) tidak akan mencemari
developcabang; - Anda dapat dengan mudah memutuskan untuk tidak merilis fitur sampai sepenuhnya diuji dan disetujui;
Namun, ada beberapa kekurangannya
- Penguji harus melakukan penggabungan kode, dan jika ada konflik (sangat mungkin), ia harus meminta bantuan pengembang. Penguji kami berspesialisasi dalam pengujian dan tidak mampu mengkode.
- suatu fitur dapat diuji tanpa adanya fitur baru lainnya. mis. Fitur A dan B keduanya sedang diuji pada saat yang sama, kedua fitur tersebut tidak mengetahui satu sama lain karena tidak satu pun dari mereka telah digabungkan ke
developcabang. Ini berarti Anda harus menguji terhadapdevelopcabang lagi ketika kedua fitur tersebut digabungkan ke cabang berkembang. Dan Anda harus ingat untuk menguji ini di masa depan. - Jika Fitur A dan B keduanya diuji dan disetujui, tetapi ketika konflik digabungkan diidentifikasi, kedua pengembang untuk kedua fitur percaya itu bukan kesalahannya sendiri / pekerjaan karena cabang fitur-fiturnya melewati tes. Ada overhead tambahan dalam komunikasi, dan kadang-kadang siapa pun yang menyelesaikan konflik frustrasi.
Di atas adalah kisah kami. Dengan sumber daya terbatas, saya ingin menghindari menguji semuanya di mana-mana. Kami masih mencari cara yang lebih baik untuk mengatasi hal ini. Saya akan senang mendengar bagaimana tim lain menangani situasi seperti ini.
