Tahap Agile (SCRUM) mana yang harus kita mulai membuat tes otomatisasi?


9

Sedikit latar belakang saya - Saya seorang tester manual selama hampir 2 tahun dalam lingkungan Agile menggunakan SCRUM (1-2 minggu sprint). Jadi saya ingin memperkenalkan pengujian otomasi dalam pekerjaan saya menggunakan Selenium WebDriver (dengan Java).

Pertanyaan saya adalah kapan saya harus menguji fungsionalitas secara manual dan kapan saya harus mengonversinya untuk pengujian otomatisasi?

Saya telah membaca dan mendapatkan pendekatan yang berbeda, seperti:

  1. Ketika sprint baru dimulai, konversikan cerita pengguna ke skrip otomatis dari sprint sebelumnya, ATAU;
  2. Konversi cerita pengguna dalam sprint yang sama.

Saran / s akan sangat dihargai. Terima kasih sebelumnya.


4
Tolong jangan posting silang pertanyaan yang sama di dua situs pertukaran stack yang berbeda. Silakan hapus salah satunya.
R Sahu

Jawaban:


13

Otomatisasi uji (dan semua pengujian lainnya) harus menjadi bagian dari definisi selesai . Ini untuk membuat produk yang berpotensi dapat dikirim. Bisakah Anda mengirim jika tidak diuji?

Pengujian juga harus merupakan pendekatan tim secara keseluruhan, jadi otomatisasi pengujian bukan tanggung jawab penguji. Mulailah berpikir tentang pengujian sesegera mungkin dalam proses.

Otomatisasi uji sangat penting dalam Agile karena:

Agility Organisasi dibatasi oleh Agility Teknis

Dengan kata lain, ketika Anda lambat dalam membuat perubahan pada produk Anda, maka tidak masalah bagaimana Anda menyusun tim Anda, organisasi Anda atau kerangka kerja apa yang Anda adopsi, Anda akan lambat menanggapi perubahan.

https://less.works/less/technical-excellence/index.html

Jika Anda menunda pengujian hingga iterasi lain, Anda akan selalu tertinggal. Sehingga sulit untuk mengubah arah produk seperti itu sulit untuk refactor dan aman-menjaga perilaku eksternal dari produk. Memiliki pengujian manual berulang adalah kunci dalam memperlambat Anda, mengotomatiskannya!

Banyak penguji akan memberi tahu Anda bahwa Anda tidak boleh mulai menguji ujung-ke-ujung sampai antarmuka produk telah stabil. Jangan menunggu, alih-alih memanfaatkan PageObjects dengan baik dan pastikan pengujian Anda dapat dipertahankan dan jadikan ini tanggung jawab pengembang untuk membuat dan memperbaikinya.


Saya tidak setuju pada "seharusnya" pertama. Definisi yang dilakukan adalah sesuatu yang perlu dilakukan tim Scrum untuk dirinya sendiri. Jika tim menganggap pengujian otomatis penting, maka mereka akan memasukkannya sebagai bagian dari definisi mereka. Namun proses itu sendiri tidak mengatakan bahwa mereka harus, atau bahkan mereka harus. Itu adalah sesuatu yang sepenuhnya tergantung pada tim, dan tidak ada jawaban yang benar, salah, atau lebih disukai.
aroth

@aroth Saya setuju dengan Anda, tetapi dalam hampir semua kasus Anda membangun produk perangkat lunak yang lebih besar yang ingin Anda tambahkan pengujian ke DoD. Untuk itu saya pikir itu baik untuk memberitahu orang-orang bahwa Anda harus, paling tidak serius memikirkannya. Sebagai seorang penguji saya percaya pengujian pada akhirnya oleh tim yang terpisah adalah langkah pertama untuk Wagile. Tapi ya ada situasi dan atau kasus di mana pengujian bahkan mungkin tidak diperlukan.
Niels van Reijmersdal

2

Kuncinya adalah Anda tidak menandai cerita lengkap kecuali Anda telah menulis tes otomatis untuk cerita itu.

Jadi 1 sepertinya keluar, karena Anda menulis tes untuk tugas yang diselesaikan dalam sprint sebelumnya. bagaimana jika tes gagal?


Jadi, jika dalam satu minggu sprint baru tidak ada cerita pengguna sprint dalam keadaan itu bisa diuji regresi, Anda menyarankan OP harus pulang dan tidak melakukan apa-apa? Kedengarannya tidak efisien bagi saya ;-)
Doc Brown

Penguji harus menggunakan minggu pertama itu untuk mempertanyakan spesifikasi "hmmmm sebagai pengguna, saya harapkan musik latar di halaman web saya .." menemukan bug dalam cerita yang tidak lengkap dan umumnya membuat masalah. Pengembang diperbolehkan untuk mengatakan bahwa mereka tidak dapat memulai sampai rencana pengujian ditulis
Ewan

@DocBrown: dalam satu minggu sprint baru tester memiliki banyak pekerjaan yang harus dilakukan. Mereka perlu memahami apa yang sedang dikembangkan oleh pengembang dengan bekerja sama dengan pemilik produk dan pengembang. Mereka perlu bekerja dengan pengembang untuk memastikan mereka membuat kode dapat diuji. Mereka dapat mulai bekerja pada rencana pengujian otomatis. Mereka bahkan dapat mulai menulis beberapa tes. Jika Anda memiliki kerangka kerja pengujian yang tepat di mana tes Anda ditulis pada abstraksi tingkat tinggi, Anda dapat menulisnya sebelum kode siap.
Bryan Oakley

1

Idealnya Anda harus menulis tes otomatis dalam sprint yang sama dengan kode yang ditulis. Kode tidak boleh dianggap "selesai" sampai tes otomatis telah ditulis, dan Anda harus mendapatkan kode ke "selesai" pada akhir sprint.

Anda harus memulai proses pada hari pertama sprint dengan bekerja sama dengan pengembang untuk memahami kode, dan untuk membantu mereka memahami kebutuhan Anda sebagai tester. Misalnya, jika Anda sedang membangun halaman web, Anda dapat membantu mereka memahami perlunya menambahkan pengidentifikasi unik untuk setiap elemen halaman yang Anda perlu berinteraksi.

Ingatlah bahwa dalam scrum, tugas Anda bukanlah menulis tes. Tugas Anda adalah bekerja dengan tim untuk menyelesaikan tujuan sprint. Itu berarti komunikasi dan kolaborasi, yang seharusnya terjadi sangat awal dalam sprint. Anda dapat mulai mengerjakan desain pengujian dan rencana pengujian dengan baik sebelum kode siap untuk diuji.


0

Jika Anda akan menguji secara otomatis Anda mungkin juga membuat tes di muka. Ini akan membantu Anda menentukan perilaku apa yang Anda harapkan dan merangsang Anda untuk berpikir seperti klien, itu akan membuat perangkat lunak Anda lebih bermanfaat pada akhirnya. Dan Anda akan mendapat manfaat dari tes ini segera karena Anda menerapkan fungsionalitas.


1
Itu tidak bekerja dengan alat pengujian UI seperti Selenium. Anda memerlukan UI yang berfungsi dan stabil untuk dapat membuat tes.
Doc Brown

@DocBrown: Saya tidak berpikir itu benar. Jika Anda memberi saya spesifikasi untuk halaman web baru, saya dapat memulai (dan mungkin menyelesaikan!) Menulis tes otomatis sebelum halaman tersebut ditulis. Anda hanya perlu berkolaborasi dengan pengembang sehingga Anda berdua sepakat tentang apa struktur halaman itu, apa id elemen itu, dan sebagainya.
Bryan Oakley

0

Anda dapat melakukannya, tetapi biasanya Anda ingin menargetkan pengujian regresi dengan tes otomatisasi. Itu berarti saya akan melakukan manual sampai Anda yakin itu cukup solid untuk menjadi tes regresi. Ini mungkin di tengah sprint untuk beberapa fungsi dan mungkin di sprint di masa depan untuk fungsionalitas lainnya.


0

Seperti yang dinyatakan dalam jawaban lain , ketika pengujian terjadi harus menjadi bagian dari definisi yang dilakukan . Namun, saya tidak setuju dengan beberapa jawaban itu, jadi saya ingin memperluas dengan pengalaman yang saya temui.

Dalam lingkungan yang benar-benar tangkas, semua orang dapat melakukan segalanya. Tidak akan ada seseorang yang 100% berdedikasi untuk pengujian, Anda juga akan mengembangkan keterampilan untuk membantu dengan beberapa pekerjaan dasar UI, atau yang lainnya. Namun, kita jarang hidup di dunia yang ideal.

Apa yang saya sarankan adalah melakukan sedikit pendekatan hybrid. Untuk Definisi Anda Selesai, saya akan mengatakan pengujian manual harus menjadi bagian dari Sprint yang dikodekan. Anda tahu itu berfungsi, dan bug apa pun dapat segera dilaporkan, mungkin diperbaiki, sebelum Sprint selesai sehingga Anda dapat merencanakan selanjutnya satu. Dengan berfokus pada pengujian manual, Anda menjadi terbiasa dengan apa yang seharusnya dilakukan oleh kode. Di awal Sprint berikutnya ketika Anda mungkin tidak memiliki banyak hal untuk dilakukan, Anda dapat mengatur tes otomatis Anda yang dapat dijalankan sebagai bagian dari proses build untuk mencegah kesalahan regresi.


Saya belum pernah melihat sprint di mana tidak ada banyak yang harus dilakukan pada tujuan sprint saat ini pada hari pertama. Untuk menulis tes otomatis memerlukan kolaborasi dan perencanaan, dan itu harus dimulai pada jam pertama hari pertama sprint.
Bryan Oakley
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.