Fitur apa yang harus diuji melalui pengujian UI otomatis?

12

Kami baru-baru ini meminta konsultan memberi tahu kami bahwa jika fitur hanya dapat diuji melalui tes UI otomatis (mis. Selenium, UI Berkode), maka ada masalah arsitektur yang mendasarinya. Meskipun pernyataan ini mungkin agak ekstrem, pernyataan ini juga sejalan dengan piramida pengujian di mana tes UI harus membuat sebagian kecil dari keseluruhan rangkaian pengujian otomatis Anda.

Jadi, fitur apa saja yang harus memiliki pengujian UI otomatis? Apakah sistem dengan arsitektur yang meyakinkan masih memiliki fitur yang hanya dapat diverifikasi melalui tes UI, atau haruskah tes ini hanya berfungsi sebagai "cadangan" untuk serangkaian uji unit dan layanan?

mragh
sumber
Terlepas dari setiap fitur UI, saya kira?

Jawaban:

11

Agaknya Anda memiliki semacam arsitektur yang menghubungkan tombol dan widget lainnya ke tindakan - klik simpan dan fungsi simpan harus dipanggil, dll.

Dengan asumsi Anda memiliki cakupan pengujian yang baik dari tindakan itu sendiri melalui unit atau tes integrasi, tujuan pengujian UI otomatis adalah untuk memastikan bahwa semua widget melakukan panggilan yang tepat ke tindakan yang mendasarinya, dan dengan benar menampilkan hasil dari tindakan tersebut.

Dengan kata lain, mereka memvalidasi bahwa UI dengan benar mencerminkan keadaan model, dan terhubung dengan benar ke controller.

Komponen lainnya adalah ketika beberapa logika bisnis ada dalam kode UI. Misalnya, mungkin Anda memerlukan karakter tertentu di bidang kata sandi. Anda perlu menguji fitur-fitur tersebut entah bagaimana, karena mungkin sulit atau tidak mungkin untuk melakukannya melalui unit test.

Bryan Oakley
sumber
3

Fitur apa yang harus diuji melalui pengujian UI otomatis?

Semua fitur ui.

Anda harus menguji:

  • Semua fungsi yang bisa dilakukan pengguna.
  • Fungsi yang dilakukan pengguna di semua browser (dan versi) yang mereka gunakan.
  • Keduanya bahagia (melakukan hal yang benar di setiap langkah) vs jalur sedih (pengguna membuat kesalahan).
  • Data yang valid dan tidak valid.
  • Angka besar dan kecil.
  • Semua peran dan fungsi khusus untuk peran.
  • Antarmuka Pengguna dan Admin.
  • Mencoba masuk.
  • Membuat vs. Memutakhirkan data berfungsi sebagaimana dimaksud.
  • Pekerjaan Delete dan menghapus data database terkait di tabel lain.
  • Pengguna gaya keyboard vs. Mouse.
  • Perangkat atau simulator berbeda - pc, telepon, iPad, dll.
Michael Durrant
sumber
0

Tidak ada yang namanya fitur yang hanya bisa diuji melalui tes UI otomatis. Alat seperti Selenium hanya meniru perilaku manusia, tanpa membuat manusia bosan sampai mati bunuh diri. Ajukan pertanyaan pada diri sendiri (atau konsultan Anda): " Bagaimana program menguji aspek UI yang tidak dapat dilakukan seseorang? " Pertanyaan berikutnya adalah: " Jika demikian, mengapa Anda peduli dengan apa yang mereka lakukan? "

Di sisi lain jika, Anda memiliki fitur seperti itu, ya, saya akan mengatakan Anda memiliki masalah arsitektur yang mendasarinya. :-)

Ross Patterson
sumber
1
Saya pikir dengan "hanya" mereka mengacu pada tes UI otomatis versus tes unit atau integrasi. Saya tidak berpikir itu mungkin untuk membuat sesuatu yang selenium dapat menguji bahwa manusia tidak dapat (modulo kecepatan manusia versus kecepatan selenium)
Bryan Oakley
Maaf, saya bisa melihat dari mana Anda mendapatkan itu dari pertanyaan. Meskipun Anda telah menantang saya untuk mengembangkan aplikasi yang hanya dapat digunakan oleh Selenium - hanya untuk menempelkannya ke tim UX kami :)
mragh