Apa strategi pengujian yang tepat dalam tim Agile Scrum / Kanban?

8

Masalahnya adalah:

Tim, saya bekerja di memiliki rasio 10 pengembang untuk 2 penguji yang berarti kita akan mengeluarkan kode lebih cepat daripada "Tes" dilakukan.

Jadi, Apa yang harus menjadi pendekatan yang tepat untuk melacak aktivitas dalam skenario seperti itu menurut para pakar tangkas?

Ketakutan saya adalah bahwa sebentar lagi hari akan tiba, ketika ada banyak hal yang akan disebut sebagai "Selesai" dalam sprint sebelumnya (tanpa pengujian dilakukan) tetapi ketika benar-benar datang ke pengujian, mungkin ada beberapa cacat potensial.

Bagaimana saya bisa melacak upaya dengan mulus? Haruskah pengujian menjadi bagian dari "Definisi Selesai"? Apa jebakannya jika tidak?

Menurut saya, ini semacam 'Air Terjun' saat Anda menyebut cerita "Selesai" sebelum benar-benar diuji secara fungsional.

Manisha Awasthi
sumber
1
scrum praktis adalah air terjun - banyak dan banyak air terjun pendek :-)
gbjbaanb

Jawaban:

6

Ya, pengujian mutlak harus menjadi bagian dari definisi "Selesai". Tanpa pertanyaan.

Dari sudut pandang yang benar-benar gesit, pendekatan yang tepat adalah bagi semua orang di tim untuk berkontribusi dalam ujian menulis. Penguji akan menjadi orang yang mengoordinasikan upaya, tetapi merupakan tanggung jawab seluruh tim untuk memastikan perangkat lunak diuji dengan benar.

Bryan Oakley
sumber
1
Baru saja keluar dari pelatihan Agile dan itu memang praktik terbaik. Seperti yang melibatkan para devs dalam pengujian dari unit test hingga Test Driven Development.
Laurent S.
5

Pertama, rasio 10: 2 buruk. Dari pengalaman, rasio pengembang 3: 1 atau 4: 1 untuk penguji bekerja dengan baik. Karena itu, Anda mungkin membutuhkan setidaknya satu tester lagi, jika tidak, tumpukan pengujian akan tumbuh dan tidak akan pernah dihapus, atau Anda berada di suatu tempat.

Jika Anda menguji tugas dalam sprint berikutnya, Anda menerapkan air terjun mini atau "scrumfall" saat Anda memisahkan pengujian dari pengembangan. Anda benar dalam pengujian yang benar-benar harus menjadi bagian dari definisi yang dilakukan. Jika suatu tugas tidak diuji, bagaimana bisa dinyatakan "selesai"?

Karenanya pendekatan yang tepat adalah:

  1. Tambahkan tester ke tim jika memungkinkan, jika tidak para pengembang melakukan beberapa pengujian (meskipun mereka kemungkinan tidak akan melakukan pekerjaan sebaik tester profesional).
  2. Ubah papan scrum / kanban Anda untuk memasukkan kolom "ready for test" dan "in test" dan sepakati dengan tim bahwa bagian dari alur kerja harus membuat semua tugas melewati jalur ini.
  3. Tugas hanya sampai di kolom "Selesai" saat sudah dapat diterima dengan pengujian.
David Arno
sumber
5

Ini cukup umum, jika tidak tipikal. Untuk menjawab beberapa pertanyaan:

  • Apa yang seharusnya menjadi pendekatan yang tepat untuk melacak aktivitas dalam skenario seperti itu?
  • Akankah fitur dilakukan tanpa QA tetapi dengan cacat?
  • Bagaimana saya bisa melacak upaya dengan mulus?
  • Haruskah pengujian menjadi bagian dari "Definisi Selesai"?
  • Apa jebakannya jika tidak?

Saya akan mengambil pendekatan keseluruhan yang:

  • memungkinkan penguji untuk menambah nilai
  • memberi mereka otoritas
  • memaksimalkan nilai mereka
  • mendorong orang-orang QA untuk melatih pengembang

dan untuk melakukan itu (dan menjawab pertanyaan Anda) saya akan:

  • pastikan mereka dapat memasukkan bug dalam sistem pelacakan bug yang mudah digunakan yang juga berisi fitur-fitur seperti Jira, Trello, Pivotal Tracker, dll.
  • pastikan mereka dilatih untuk membuat laporan bug yang bagus yang menggambarkan:

    • langkah-langkah untuk mereproduksi
    • nilai awal / pengaturan
    • nilai yang dimasukkan
    • tangkapan layar saat yang tepat
    • log server bila perlu
  • pastikan mereka melihat bug ditugaskan, dikerjakan dan diselesaikan.
  • latih mereka dalam praktik terbaik dan kirim mereka ke konferensi.
  • melatih mereka dalam pemrograman dan menggunakan kerangka uji.
  • memungkinkan mereka untuk mengajar programmer tentang pendekatan dan pola pikir yang baik untuk pengujian.

Juga, ya, beberapa fitur dapat dilakukan tanpa QA tetapi dengan cacat. Saya sering menemukan QA adalah set kedua mata. Terkadang peran ini dapat diisi oleh pengembang lain. Secara pribadi saya menemukan ini menemukan beberapa kesalahan, tetapi tidak semua kesalahan yang ditemukan oleh pola pikir QA yang berbeda.

Pengujian harus menjadi bagian yang dilakukan tetapi itu tidak berarti bahwa orang QA harus melakukan pengujian. Mengingat kekurangan sumber daya dan lingkungan Agile yang menghindari spesifikasi yang dapat dilihat QA, QA perlu dilibatkan dengan mempelajari domain pengguna, rapat desain, pertemuan titik perawatan, standup, retrospektif, dll.

Adapun pertanyaan besar tentang strategi pengujian, gunakan kuadran Agile testing untuk memandu Anda:

                   |
      Integrated   |     Performance
_________________________________________
                   |     
           Unit    |     Exploratory

Pengembang mungkin sudah melakukan Tes Unit. Area utama yang dapat ditambahkan nilai QA dengan mencakup adalah dalam pengujian Terintegrasi dan dengan menggunakan otomatisasi UI. Pengujian eksplorasi yang baik juga sangat berharga - ini bukan hanya mengklik setiap tautan pada halaman, ini tentang mempelajari domain pengguna akhir dan apa artinya menggunakan aplikasi bagi mereka.

Untuk rasio QA untuk penguji juga mempertimbangkan pengujian segitiga:

    Exploratory
  Integrated Tests
Individual Unit Tests

dimana satu tes eksplorasi atau terintegrasi dapat mewakili lusinan jika tidak ratusan unit tes dengan menggunakan seluruh 'tumpukan'.

Juga pertimbangkan bahwa seperti dalam tim Agile umumnya harus ada pendekatan siapa pun dapat kode, siapa pun dapat menguji. Kuncinya tentu saja adalah memberikan orang-orang bimbingan dan struktur sehingga mereka dapat melakukan apa yang diperlukan dan memberi mereka pelatihan untuk bidang lain.

Dalam hal rasio aktual, saya tidak setuju tentang ketepatan jawaban David 3: 1 atau 4: 1 Di beberapa organisasi di mana pengembang menulis unit yang baik dan tes terintegrasi ini mungkin ok untuk menjadi 7: 1 Dalam organisasi dengan sangat sedikit pengujian yang dilakukan oleh pengembang ini mungkin perlu 1: 1 Ini benar-benar 'tergantung' pada organisasi, struktur, pengetahuan, industri, dll, dll.

Michael Durrant
sumber
0

Ketika kami mulai membangun produk kami , kami juga menerapkan Kanban, dan seiring dengan itu, kami menerapkan strategi otomatisasi pengujian lengkap. Akibatnya, hari ini kami tidak memiliki penguji di tim kami. Sebagai gantinya, pengembang harus menulis kasus uji dan mengotomatiskannya sebagai bagian dari mengerjakan cerita pengguna, penyempurnaan, atau cacat. Definisi Dev Lengkap kami mencakup pengujian unit dan otomatisasi fungsional.

Kami masih memiliki tahap "Validasi" setelah Dev selesai - di mana semua pekerjaan dev baru (fitur, perbaikan bug) digunakan pada server pementasan dan seseorang - siapa pun yang memiliki pemahaman fungsional fitur - harus memvalidasinya. Kami menggunakan orang-orang dari tim Dokumentasi kami serta Manajemen Produk - dan kadang-kadang Sr. Engg lead / arsitek - untuk memvalidasi. Setiap rilis harus tetap minimal 1 minggu pada pementasan sebelum digunakan pada produksi.

Ini adalah snapshot dari papan Kanban kami -

masukkan deskripsi gambar di sini

Proses dan Kanban telah bekerja untuk kita. Kami memiliki otomatisasi pengujian mendekati 100%, kami memiliki irama rilis produksi 3-4 minggu dan yang terbaik dari semuanya, sebagian besar anggota tim memiliki fleksibilitas untuk mengerjakan sebagian besar bagian dari produk kami!

Jadi, sementara ini mungkin tidak memenuhi tujuan jangka pendek Anda, Anda mungkin ingin melihat bagaimana Anda dapat merestrukturisasi tim Anda dalam jangka panjang dan jika belum dilakukan, maka lihatlah strategi uji-otomatisasi yang pasti akan membantu tim Anda memberikan yang lebih besar kualitas pada interval yang lebih pendek.

Mahesh Singh
sumber