Halo, Habr!
Saya memutuskan untuk menulis pendapat saya tentang apakah pengujian otomasi akan menggantikan penguji sebenarnya. Pertama-tama, karena cukup sering saya mendengar pendapat serupa di antara Junior QA, yang hanya mengambil langkah pertama dalam pengujian dan sudah takut bahwa dia tidak berhasil melakukan sesuatu.
Dalam keadilan, pendapat serupa ada di antara anak yang lebih tua. Cukup sering diyakini bahwa otomatisasi adalah satu-satunya cara untuk mengembangkan alat uji manual. Tentang semua ini dan banyak lagi di bawah luka.
Sedikit klarifikasi sebelum kita mulai. Semua diskusi di bawah ini adalah tentang autotest fungsional. Ini adalah tes UI, yang tidak boleh disamakan dengan tes unit dalam konteks ini. Yang terakhir selalu ditulis dan harus ditulis oleh pengembang, dan di mana ini tidak begitu adalah subjek diskusi yang sama sekali berbeda.Secara singkat tentang sejarah otomatisasi
Saya telah bekerja dalam pengujian selama beberapa waktu dan telah melihat beberapa tahap dalam pengembangan otomatisasi pengujian. Dengan perkembangannya, sikapnya terhadap dirinya juga berubah. Mari kita lihat bagaimana ini dan mencoba untuk mengerti - apa yang terjadi?
Kembali pada tahun 2010, ketika saya baru saja mengambil langkah pertama saya di dunia IT, tidak semua orang tahu alat seperti Selenium. Pada saat itu, versi pertamanya sedang digunakan, yang disebut Remote Control Selenium.
Saya ingat bagaimana kami mengotomatiskan proyek pertama kami di Selenium. Alat ini kemudian cukup sederhana, bisa mengklik elemen yang tidak terlihat, kadang-kadang keliru dalam menemukan pencari lokasi dan bahkan ketika menerima teks dari beberapa elemen rumit.
Saya masih ingat bahwa bos kami memanggil mereka "menyodok". Melihat bagaimana kami duduk dan menulis tes-tes ini, ia berkata demikian: sekali lagi, tulislah colekan Anda? Seperti, saya tidak akan memeriksanya dan melepaskannya dengan tangan saya sejak lama.
Tetapi waktu berlalu, Selenium berkembang, ia memiliki peluang baru. Pada awalnya ada yang kedua, dan sekarang versi ketiga. Sebuah standar muncul (produsen browser mulai menulis driver sendiri), Selenium mengakuisisi beberapa protokol, mengakuisisi pesaing di pasar, dan sekarang hampir semua orang yang bekerja di IT tahu tentang itu, terlepas dari apakah itu milik QA.
Saat ini ada banyak solusi untuk pengujian otomasi aplikasi web dan seluler.
Sekarang ini tidak lagi hanya menusuk, sekarang rata-rata percakapan dari HR ke posisi QA terlihat seperti ini (tentu saja berlebihan):
- Selamat sore. Menurut resume Anda, tidak jelas, apakah Anda tahu cara menulis autotests?
"Tidak, tapi aku pandai ..."
- * sudah menutup telepon *
Dan jika ini adalah posisi utama, maka Anda mendengar bahwa mereka ingin mengatur otomatisasi terlebih dahulu, dan baru kemudian merekrut teknisi QA. Atau jangan disewa. Bagaimana jika Anda tidak melakukannya? Nah ini beberapa penghematan. Bahkan setelah Anda menulis semua tes, Anda akan dipecat. Dan para pengembang, ketika mereka akan melakukan segalanya ... Tinggalkan di situs satu tombol "Bayar di sini" dan turun ke matahari terbenam ... Ada yang salah dengan saya.
Tentu saja, dengan tren seperti itu, muncul pertanyaan: apakah pengujian manual akan menggantikan otomatisasi? Dan kapan ini akan terjadi?
Autotests melalui mata pengembang
Untuk menjawab pertanyaan ini, pertama-tama perlu dipikirkan - dan siapa yang menulis autotest? Saya melihat perusahaan di mana autotests ditulis oleh pengembang sendiri. Dan saya melihat perusahaan tempat insinyur QA menulis autotests. Menurut Anda apa perbedaan mendasar?
Saya ingin berasumsi bahwa perbedaannya ada pada kode. Seperti, karena mereka adalah pengembang, mereka menulis kode dengan lebih baik. Karena itu - tes mereka lebih baik. Tetapi ini tidak sepenuhnya benar.
Kualitas kode tidak diragukan lagi merupakan parameter penting, tetapi bagi pengembang sendiri, pengujian bukanlah pekerjaan utama. Dan karena itu mereka tidak dapat mencurahkan banyak waktu untuk itu. Tes ditulis dengan tergesa-gesa dan kode sering meninggalkan banyak yang harus diinginkan. Dan ini adalah situasi yang normal, saya ulangi - ini bukan apa yang harus mereka habiskan dalam jumlah besar waktu kerja mereka.
Terutama kode yang baik bukan hal yang paling penting dalam autotests. Yang lebih penting adalah kasus-kasus yang dicakup oleh autotest ini. Dan di sini pemikiran seorang spesialis QA sudah jauh berbeda dari cara pengembang melihat produk.
Pertimbangkan sebuah contoh. Perlu untuk menutupi pendaftaran di situs dengan tes otomatis. Jelas bahwa sejak awal kita akan membahas kasus positif. Kami masuk, mencetak bentuk lima atau enam bidang input, melewati beberapa langkah tambahan seperti konfirmasi melalui surat atau SMS - tes sudah siap, Anda hebat!
Saya berpendapat bahwa 90% pengembang yang telah jatuh tanggung jawab menulis autotes akan berhenti di situ. Mereka tidak akan menggambarkan bagian dari kasus karena mereka menganggap mereka pada dasarnya tidak berbeda dari yang sudah dibahas. Beberapa tidak akan diperhitungkan. Lagi pula, "Saya sendiri yang menulis kode produksi, semuanya dapat diandalkan di sana dan selamanya."
Kelas kesetaraan, nilai batas, kasus negatif - semua ini tetap berada di suatu tempat di sela-sela.
Pendekatan QA Engineer
Insinyur QA mengambil pendekatan yang berbeda. Dia memiliki pengalaman, pemahaman tentang prinsip-prinsip desain pengujian, waktu yang cukup dan, yang paling penting, untuk mencari bug dan memverifikasi itu adalah tanggung jawab langsungnya. Plus, paling sering, orang-orang seperti itu hanya tertarik untuk memeriksa sesuatu. Apa yang terjadi jika Anda menyodok di sini? Dan jika Anda salah memasukkan data di sini?
Ini adalah pendekatan yang membedakan insinyur QA dari pengembang. Dan itu dibentuk bukan oleh kemampuan untuk mengotomatisasi pengujian, tetapi oleh cara berpikir. Penguji yang buruk akan menulis tes yang buruk. Dalam hal ini, seorang tester yang baik akan menemukan lebih banyak masalah dengan verifikasi manual daripada yang buruk dengan sekelompok kasus tes yang dikandungnya.
Kesimpulan apa yang ingin saya tarik dari ini? Semuanya sangat sederhana. Seorang spesialis QA terutama memahami prinsip-prinsip pengujian dan pengalaman pengujian yang dimiliki seseorang. Dan bukan alat yang dia gunakan.
Tentu saja, menjadi penguji yang baik saja tidak cukup. Tanpa pengetahuan tentang alat dasar seperti bash, Git, SQL, dll., Mustahil untuk bekerja secara efektif di perusahaan mana pun. Mereka harus dipelajari.
Otomasi adalah alat yang sama, itu saja tidak baik atau buruk. Itu tidak akan membuat pekerjaan Anda lebih efektif hanya karena Anda mengambilnya. Dia masih membutuhkan keterampilan tertentu.
Nah, bagaimana dengan verifikasi manual?
Verifikasi manual tidak akan ke mana-mana. Dengan satu atau lain cara, ketika kita melihat fitur baru atau seluruh produk di depan kita, kita akan mempelajarinya dengan tangan kita. Kita masih perlu memikirkan cara kerjanya, kasus mana yang harus diprioritaskan dan secara umum, apakah mereka berfungsi sekarang. Apa gunanya terburu-buru untuk menulis tes jika produk rusak?
Dan akan selalu demikian, dengan setiap fitur baru atau perubahan diperkenalkan. Pertama akan ada langkah verifikasi manual. Dan hanya kemudian - cakupan atau pembaruan tes di sekitarnya.
Akankah lebih baik jika pengujian manual dan penulisan autotest dilakukan oleh satu spesialis atau tanggung jawab bersama? Saya tidak tahu, itu sudah tergantung pada fitur bagaimana proses dibangun di perusahaan Anda. Di suatu tempat itu akan efektif dan karenanya bermanfaat. Dan di suatu tempat - tidak.
Jadi untuk pertanyaan apakah perlu belajar otomatisasi pengujian, saya jawab ya. Insinyur QA harus terbiasa dengan otomatisasi. Biasanya, spesialis dengan keterampilan ini memiliki lebih banyak resume dan gaji, dan mereka dihargai lebih tinggi di pasar. Tetapi apakah otomatisasi akan menggantikan verifikasi manual dan pengujian manual? Tentu saja tidak.
Ringkasan
Beginilah artikel ini muncul. Saya berbagi pendapat dan visi saya tentang masalah ini. Saya akan senang mengetahui tentang Anda, pastikan untuk berbagi di komentar!
Dan juga seorang rekan dari Yandex mengembangkan kursus online untuk mereka yang ingin membenamkan diri dalam otomatisasi pengujian ponsel. Informasi dan tautan dapat ditemukan di halaman profil saya. :)
Terima kasih atas perhatian anda!