Mencari penguji pekerjaan? Bersiaplah untuk menunjukkan keterampilan pengembang

Halo lagi. Menjelang dimulainya kursus Java QA Engineer, kami menyiapkan sedikit materi yang akan berguna bagi mereka yang hanya akan membangun karier ke arah ini.




Penguji - siapa itu?


Insinyur Perangkat Lunak Jaminan Kualitas (QA) mengadvokasi untuk kepentingan pengguna akhir. Dia sedang mengembangkan proses pengujian perangkat lunak yang menjamin kualitas - sehingga produk tidak hanya memuaskan, tetapi juga melebihi harapan pelanggan.

Jenis pengujian berikut dibedakan:

  1. Manual Ini melibatkan pengenalan produk menggunakan alat yang akan digunakan konsumen: keyboard, mouse, jari pada layar sentuh.
  2. Regresi. Setelah menambahkan fungsi baru, tester harus memeriksa apakah aplikasi telah mempertahankan sifat operasionalnya, dari sudut pandang pengguna akhir.
  3. Otomatis. Menyediakan penulisan kode untuk memverifikasi bahwa perilaku yang diharapkan dan aktual dari aplikasi sesuai.

Pengujian otomatis bukanlah konsep baru untuk industri perangkat lunak. Ketentuan gratis alat pengujian otomatis untuk membuat perangkat lunak yang lebih baik juga bukan konsep baru. Yang baru adalah bahwa berkat Selenium WebDriver, yang dikembangkan oleh ThoughtWorks dan didukung oleh Google, solusi open source telah dapat diterima bahkan bagi perusahaan yang terbiasa bekerja hanya dengan perangkat lunak bersertifikat standar.

Selenium WebDriver dalam kombinasi dengan CI / CD menciptakan lonjakan permintaan untuk penyandi sehingga ungkapan “pengujian manual” sebagian besar hilang dari daftar persyaratan untuk pelamar. Apa yang terjadi padanya? Pengembangan alat otomatisasi.

Penguji menulis, pada kenyataannya, tes ini dan menciptakan lingkungan otomatis untuk mendukung pelaksanaan tes dan analisisnya. Dengan melakukannya, ia mencoba menjawab pertanyaan-pertanyaan berikut:

  • Jenis tes apa yang kami lakukan? Apakah kita akan fokus pada otomatisasi suite uji regresi browser melalui Selenium WebDriver? Atau akankah kita mengotomatiskan fungsi baru juga?
  • Jika kita menggunakan Selenium WebDriver untuk mengotomatisasi tes browser, apakah kita akan mengikatnya ke Java, Python, C #, JavaScript, atau Ruby, misalnya?
  • Bisakah kita bergerak satu tingkat lebih jauh di sepanjang piramida pengujian Mike Cohen dan menguji layanan-layanan web yang menyediakan aplikasi dasar dengan fungsi dasar browser?
  • Solusi pengujian apa yang paling cocok dengan bahasa pemrograman aplikasi?

Bagaimana wawancara pekerjaan tester dilakukan hari ini?


Ketika saya datang ke wawancara pertama setelah istirahat dua tahun, semuanya berjalan dengan baik ... sampai saat ketika saya diminta untuk datang ke dewan.

"Menggunakan bahasa pemrograman favoritmu, tulis metode untuk menguji apakah kata yang diberikan adalah palindrom."

Jika mereka memberi saya pekerjaan rumah ini, saya akan bisa mengatasinya. Tetapi ketika saya menemukan diri saya di depan papan, dan dua pengembang dengan wajah batu mengevaluasi saya, pikiran saya berubah menjadi kanvas kosong.

Setelah menangani setengah dari tugas, saya mulai bercanda:

  • Kalau saja saya punya laptop dengan IntelliJ!
  • Jika saya menulis kode untuk tes otomatis, saya akan melakukan jauh lebih baik.

Jawabannya adalah: "Semua karyawan diharapkan memiliki pemrograman pada tingkat minimum tertentu - bahkan untuk pos kontrol kualitas."

Setelah itu, saya harus mempersiapkan wawancara untuk pekerjaan lain ...



Wawancara Penulisan Kode: Tidak Hanya Untuk Insinyur Perangkat Lunak


Ketika saya diwawancarai tiga tahun lalu, saya hanya sekali menemukan kode penulisan. Dan kali ini termasuk 5 dari 7 lowongan yang cocok untuk saya. Mengapa kandidat untuk posisi penguji dikenakan verifikasi yang sama dengan pengembang itu sendiri? Jawabannya terasa aneh bagi saya:

Karena penguji hari ini adalah pengembang.

Dalam beberapa tahun terakhir, fungsi otomatisasi telah berubah dari penguji yang dapat menulis kode ke pengembang yang dapat menguji.

Para pengembang tidak menemukan pertanyaan yang diajukan oleh penguji di wawancara sulit. Mereka tidak meminta kandidat untuk menyelesaikan Menara Hanoi atau menyelesaikan persamaan matematika tingkat kedua dari universitas teknik yang baik.

Sebagian besar contoh kode yang mereka minta tulis terkait dengan loop, matematika dasar, string, dan manipulasi simbolik.

Mengapa wawancara penulisan kode begitu rumit?


Topik kegiatan mungkin berada di luar bidang keahlian Anda.

  • Saya biasanya bekerja dengan bahasa pemrograman Java. Saya hanya sesekali harus menggunakan struktur data yang lebih kompleks daripada tabel hash.
  • Kode yang saya tulis berputar di sekitar Selenium WebDriver. Saya membuka browser, pergi ke halaman, masukkan data di bidang teks, pilih tombol radio dan berfungsi!
  • Saya terus-menerus membandingkan string dan memeriksa apakah teks peringatan di layar cocok dengan yang diharapkan. Namun, dalam pekerjaan sehari-hari saya, saya hanya sedikit menggunakan metode helper untuk metode objek string.

Tidak ada IntelliSense untuk wawancara

  • Jika saya perlu menggunakan metode helper dalam string, karakter atau objek integer, saya hanya perlu meletakkan titik setelah kata, dan metode akan ditampilkan.

Tes semacam itu tidak memungkinkan menggunakan sumber informasi eksternal.

  • Anda tidak dapat menggunakan forum khusus atau StackOverflow.com .

Selama wawancara, perasaan terisolasi dapat terjadi.

  • Ketika saya mulai menulis tes untuk fungsional yang saya tidak kenal, saya biasanya bertukar ide dengan kolega. Tetapi selama wawancara saya tidak bisa bertukar ide dengan pewawancara. Atau bisakah aku diam? Sepertinya saya tidak bisa - kadang-kadang mereka tidak terlalu ramah.



Bagaimana seseorang dapat bersiap untuk tugas-tugas seperti itu?


Segarkan kembali pengetahuan Anda

Pilihan yang baik adalah mengikuti kursus pemrograman online gratis.

RTFM


Gunakan Java Learning Resources Oracle: “Panduan Java adalah instruksi praktis untuk programmer yang ingin menggunakan Java untuk membangun aplikasi. Manual ini mencakup lusinan pelajaran dan ratusan contoh.

Lihat dokumentasi API


Untuk bekerja dengan bahasa pemrograman, Anda harus memahami istilah dasar yang tercantum dalam dokumentasi API.

Jika bahasa pemrograman utama Anda adalah Java, lihat https://docs.oracle.com/javase/8/docs/api/java , dengan fokus pada topik Integer , String, dan Character , terutama:

Fungsi string

Perlu menemukan karakter pertama dalam sebuah string? Gunakan karakter charAt(0) . Cari tahu apakah karakter atau kata dalam string? Gunakan contains . Perlu akhiran? Coba endsWith . Anda dapat memeriksa apakah dua baris tersebut cocok dengan equals dan equalsIgnoreCase .

Fungsi karakter

Fungsi Boolean isLetter , isLetterOrDigit , isLowerCase , isUpperCase , isLowerCase , isWhitespace membantu untuk berkenalan dengan sifat karakter. Sebagai contoh: Character.isLetter('A') akan benar. Saat memasukkan karakter baru, lampirkan dalam tanda kutip tunggal, misalnya: char newCharacter = 'a' .

Fungsi integer

Ingin mengonversi bilangan bulat? Masukkan integer di Integer.toBinaryString(int i) , Integer.toHexString(int i) atau Integer.toOctalString(int i) untuk mengonversinya ke format yang diinginkan.

Berlatih di atas kertas

Misalnya, tanyakan pada diri sendiri bagaimana menggunakan loop loop untuk mengungkapkan:

  • semua bilangan bulat dari 1 hingga 100;
  • semua angka genap (i% 2 == 0) dalam rentang dari 1 hingga 100 {1 ... 100}
  • semua angka habis dibagi 3 (i% 3 == 0).

Atau di sini adalah latihan string:

  • tulis metode yang mengambil string s dan mengembalikan panjangnya sebagai integer s.length ;
  • tulis metode yang mengambil string s dan mengembalikan karakter pertama s.charAt(0) .

Penting:

  • Cobalah untuk menulis semuanya dengan tulisan tangan yang dapat dibaca.
  • Jangan lupa untuk membuka dan menutup braket dengan benar.
  • Munculkan tes validasi untuk kode Anda. Apakah akan berfungsi jika string hanya terdiri dari satu karakter? Dan jika dari 100? Dan jika 0?

Perhatikan kesalahan unit yang tidak terhitung dalam siklus:

  • Saat menghitung karakter dalam string atau indeks pertama dalam array, angka n dianggap dalam kisaran dari 0 hingga n-1 . Artinya, karakter pertama adalah (0), dan yang terakhir adalah (panjang - 1).
  • Loop for (for i = 0; i < 5; i++) akan berakhir di nomor 5. Jika Anda menampilkan ini di layar, maka 0, 1, 2, 3, 4 akan ditampilkan di sana. Untuk menampilkan 5 lainnya, masukkan i <= 5 .

Di bagian kedua artikel, kita akan berbicara tentang mengapa wawancara penulisan kode begitu rumit. Dan itu saja untuk hari ini. Informasi lebih menarik dapat diperoleh di webinar gratis , yang akan diadakan pada 19 Desember.

Source: https://habr.com/ru/post/id480800/


All Articles