Pengalaman aktual dari anggota tim non-teknis menulis kode Selenium: itu tidak berjalan dengan baik
Kami benar-benar mengalami situasi ini ketika kami memiliki anggota tim non-teknis (dalam hal ini, SQA tanpa latar belakang pemrograman). Sayangnya ini tidak berjalan dengan baik.
Rekam dan mainkan tes yang dibuat tidak dapat dipertahankan
Pertama-tama tim kami telah mencoba alat rekaman dan bermain, tetapi seperti yang lain katakan, tes yang dihasilkannya sangat rapuh dan sulit dipertahankan. SQA kami akhirnya jatuh ke dalam pola hanya merekam ulang tes setiap kali itu berubah, yang tidak terlalu efisien, terutama ketika satu perubahan merusak sebagian besar pengujian kami (kami memiliki satu perubahan pada halaman utama situs web kami yang rusak sekitar 60 % dari tes kami).
Tanpa bantuan dari mereka yang memiliki latar belakang pemrograman, kode yang ditulis secara manual itu menghebohkan
Kami menulis tes Selenium kami di Jawa dan SQA belum pernah menggunakan Java sebelumnya, jadi ia mempelajarinya sendiri. Kami menemukan bahwa tes akhirnya menggunakan beberapa praktik pemrograman yang sangat buruk:
- Menggunakan variabel statis publik ketika mereka benar-benar seharusnya variabel instan milik pribadi
- Memiliki blok kode yang tidak melakukan apa pun
- Banyak Thread.sleep () alih-alih menggunakan WebDriverWait karena dia tidak tahu cara menulis kondisi khusus
- Pengujian unit benar-benar canggung: Saya melihat beberapa
assertTrue(false)
baris untuk mengakhiri tes
- Nama variabel buruk
- Menekan pengecualian yang seharusnya ditangani (atau dicegah terjadi sejak awal)
- Tes yang lulus tidak peduli input apa yang Anda gunakan
- Beberapa kode tidak pernah kami temukan dan akhirnya kami menulis ulang
Ketika saya tiba di tim, SQA asli telah pergi dan menjalankan tes apapun menghasilkan banyak pengecualian konsol yang kami hanya diberitahu untuk mengabaikannya. Setelah itu, kami akhirnya melibatkan pengembang dan secara besar-besaran menulis ulang banyak kode untuk membuatnya benar-benar berfungsi dan dapat dipelihara dan mudah dipahami.
Jika Anda ingin orang non-teknis menulis kode Selenium, minta orang teknis membantu mereka
Saya pikir beberapa masalah ini mungkin dapat dihindari jika ada seseorang yang secara teknis datang dan membantu mereka. Jika mereka menjelaskan mengapa variabel statis publik seharusnya menjadi variabel instance pribadi, atau cara kerja JUnit, atau cara menggunakan WebDriverWait, atau mengapa hamburan Thread.sleep () di mana-mana buruk, kami mungkin memiliki kode yang lebih baik.
Tetapi, seperti sekarang, kita menemukan kode yang pada akhirnya tidak dapat dipelihara dan pada akhirnya, kita hanya menulis ulang sebagian besar darinya, yang mengakibatkan pemborosan waktu dan uang yang besar.