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:
- Ketika sprint baru dimulai, konversikan cerita pengguna ke skrip otomatis dari sprint sebelumnya, ATAU;
- Konversi cerita pengguna dalam sprint yang sama.
Saran / s akan sangat dihargai. Terima kasih sebelumnya.
Jawaban:
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:
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.
sumber
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?
sumber
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.
sumber
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.
sumber
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.
sumber
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.
sumber