4 pola desain terbaik untuk pengujian otomatis (dan 86 lainnya)

Halo semuanya. Untuk mengantisipasi dimulainya kursus, "Python QA Engineer" menyiapkan terjemahan materi menarik lainnya.




Sebagian besar keberhasilan proyek otomasi Anda terletak pada penggunaan kembali pola pengujian terkenal, yang, sebagaimana telah terbukti, membantu meningkatkan keandalan skenario otomatisasi.

Pola desain pengujian otomatis adalah solusi sederhana yang membuktikan efektivitasnya dari hari ke hari. Template ini juga dianggap praktik terbaik untuk setiap proyek yang dibangun dengan pemrograman berorientasi objek.

Mengapa pola desain begitu penting untuk pengujian otomatis?

Anggaplah begitu saja bahwa aplikasi Anda akan berubah seiring waktu.
Dan karena Anda tahu bahwa perubahan akan terjadi dengan satu atau lain cara, Anda harus menggunakan praktik terbaik dan pola desain sejak awal. Mereka akan membuat tes Anda dapat digunakan kembali dan lebih mudah untuk dipertahankan.

Berikut adalah beberapa pola desain pengujian otomatis umum yang digunakan banyak tim untuk membuat otomatisasi pengujian yang kuat dan meningkatkan logika pengujian keseluruhan.

Objek Halaman



Contoh Objek Halaman oleh Nikolay Advolodkin dari Automation Guild 2017

Salah satu strategi populer yang digunakan dalam pengujian otomasi adalah memodelkan perilaku aplikasi Anda.
Untuk melakukan ini, Anda dapat menggunakan objek halaman sederhana yang mensimulasikan potongan-potongan perangkat lunak yang Anda uji.
Misalnya, Anda dapat menulis objek halaman untuk halaman login atau halaman rumah. Pendekatan ini dengan tepat mencerminkan prinsip tanggung jawab bersama.

Jika ada perubahan, misalnya ID elemen, maka Anda hanya perlu mengubah satu tempat dalam kode, dan semua tes menggunakan objek halaman ini akan secara otomatis menerima perubahan ini tanpa tindakan yang tidak perlu. Kode uji hanya boleh diperbarui di satu tempat. Pendekatan ini juga membantu mengurangi duplikasi kode.

Objek halaman juga menyembunyikan detail teknis HTML dan CSS di balik metode dengan nama sederhana dan jelas.
Perhatian pada penamaan metode Anda memiliki keuntungan tambahan untuk membantu menciptakan antarmuka pemrograman aplikasi (API) yang menyenangkan dan dapat dibaca yang dapat dengan cepat mulai digunakan oleh programmer yang kurang cerdas secara teknis.

Pola ini juga mengikuti praktik pengembangan perangkat lunak KERING yang populer (Don't Repeat Yourself, Don't Repeat It).
Pada dasarnya, prinsip KERING berarti bahwa untuk setiap bagian dari logika, satu potong kode dan tidak lagi harus bertanggung jawab. Duplikasi dalam kode membuatnya sulit untuk dipertahankan; semakin sedikit kode yang Anda tulis, semakin baik, karena semakin banyak kode yang didukung berarti semakin besar kemungkinan kesalahan akan masuk ke dalam kerangka pengujian Anda.

Template desain perangkat lunak ini saja dapat dengan mudah menyelesaikan sebagian besar masalah pengujian Anda, tetapi juga bukan obat mujarab. Namun, ini akan memungkinkan Anda untuk mengambil langkah besar ke depan, menjadikan tes fungsional otomatis Anda lebih stabil.
Beberapa penguji berpendapat bahwa pola Obyek Halaman sering melanggar prinsip bahwa kelas harus hanya memiliki satu alasan untuk berubah.

Untuk menghindari hal ini, banyak yang beralih ke naskah, yang pertama kali dijelaskan oleh Anthony Marcano ( @AntonyMarcano) dengan partisipasi Andy Palmer ( @AndyPalmer), Jan Molak ( @JanMolak) dan lainnya.

Pola Skenario


Objek halaman adalah cara yang baik untuk mulai membuat tes Anda dapat dipertahankan, tetapi jika Anda tidak berhati-hati, mereka masih bisa lepas kendali dari waktu ke waktu.
Pola Skenario (dulu dikenal sebagai pola Journey) adalah aplikasi prinsip desain SOLID untuk pengujian penerimaan otomatis dan membantu tim memecahkan masalah ini. Pada kenyataannya, inilah yang merupakan hasil dari refactoring yang kejam terhadap Objek Halaman menggunakan prinsip-prinsip desain SOLID.

Pola Skenario mengambil objek halaman dan memecahnya menjadi sangat kecil. Beberapa penguji mengatakan ini telah membuat tes mereka lebih dapat dipertahankan dan dapat diandalkan.
Keuntungan signifikan lainnya adalah membuat skrip pengujian lebih mudah dibaca.

Pertama kali saya mendengar tentang pola Skenario dalam Automation Guild Session pada 2017 berasal dari John Smart ( @Wakeleo)pencipta salah satu kerangka kerja otomatisasi pengujian favorit saya, Serenity .
Skenario menggunakan gagasan aktor, tugas, dan tujuan untuk menggambarkan tes secara formal, menolak syarat interaksi dengan sistem. Skenario, Anda menggambarkan tes dalam hal aktor yang memiliki tujuan ..

Berikut ini contohnya:


Contoh penerapan pola Skenario dari Sesi Otomasi Sesi 2017 oleh John Smart

Pada pandangan pertama, mungkin terlihat bahwa menggunakan pola ini jauh lebih sulit daripada Halaman Objects yang sama, tetapi John menyebutkan bahwa menggunakan pendekatan ini menghemat tim yang bekerja dengan banyak waktu dengan mengurangi biaya pemeliharaan dan dukungan.

Port dan Adaptor


Arsitektur port dan adapter ditujukan untuk memastikan bahwa Anda menggunakan prinsip tanggung jawab tunggal , yaitu, objek tertentu harus melakukan satu hal dan hanya memiliki satu alasan untuk perubahan tersebut.
Ketika Anda menggunakannya dalam otomatisasi, pastikan Anda memisahkan kode kasus uji dari yang lain agar dapat menukar komponen yang lambat dan simulator cepat, sehingga memungkinkan Anda untuk menjalankan tes dan aplikasi yang sedang diuji dalam satu proses.

Singkirkan jaringan dan I / O sehingga tidak ada yang memperlambat test suite. Tentu saja, ini tidak mudah dilakukan, tetapi semakin Anda berusaha untuk ini ketika membuat otomatisasi antarmuka pengguna, semakin baik untuk Anda.

Saya belajar tentang pola ini selama wawancara dengan pembuat Mentimun Aslak Hellesoy ( @aslak_hellesoy)ia menggambarkannya sebagai strategi untuk mendapatkan umpan balik cepat dari pengujian ujung-ujung Mentimun.

Aslak juga merekomendasikan sumber daya yang disebut Todo-subsecond , yang saya tambahkan ke posting saya Top Resource for Teknisi Otomasi Uji : Aplikasi kecil ini dengan uji penerimaan tumpukan penuh yang dapat diselesaikan dalam milidetik dirancang untuk menggambarkan metode dasar untuk mencapai ini pada sistem apa pun. Setelah menyelesaikan serangkaian latihan, Anda akan mempelajari cara khusus untuk menerapkan uji-didorong dan pengembangan yang didorong oleh perilaku.

Presenter dulu


Presenter First adalah modifikasi dari model-view-controller (MVC) untuk mengatur kode dan pengembangan untuk membuat perangkat lunak yang diuji sepenuhnya menggunakan pendekatan pengembangan yang digerakkan uji (TDD).
Saya pertama kali mengetahui tentang pola ini dari wawancara dengan Sab Rose (@SebRose), salah satu kontributor untuk proyek Mentimun dan penulis Mentimun untuk Jawa.
Dia mengatakan bahwa jika Anda menggambar pola MVC dalam bentuk blok dan panah, Anda akan melihat bahwa tampilan, yang merupakan antarmuka pengguna Anda, memiliki koneksi yang jelas dengan model dan pengontrol. Jika dalam runtime Anda dapat menggantinya dengan model dan pengontrol yang dibuat dan dikendalikan oleh pengujian Anda, maka tidak akan ada alasan mengapa Anda tidak dapat memverifikasi bahwa antarmuka pengguna tidak berperilaku seperti yang Anda inginkan.

Anda juga dapat menyesuaikan model dan pengontrol Anda sehingga mereka mensimulasikan semua jenis perilaku aneh, misalnya, kegagalan jaringan.

86 pola pengujian otomatis lainnya


Saya menulis artikel ini beberapa bulan yang lalu, tetapi tidak pernah menerbitkannya.
Saya yakin pada daftar saya sampai saya berbicara dengan Seretta Gamba , penulis buku baru A Journey through Test Automation Patterns , di mana dia dan rekan penulisnya Dorothy Graham berbicara tentang 86 pola!

Mereka memecah pola menjadi empat kategori berbeda: pola proses, pola kontrol, pola desain, dan pola eksekusi.
Yang saya jelaskan mengacu pada pola desain, tetapi ada banyak pola lain yang memecahkan masalah tidak hanya dengan kode.

Misalnya, ada pola yang terkait dengan budaya perusahaan yang buruk dan model tata kelola yang, menurut pengalaman saya, cenderung membatalkan semua upaya untuk mengotomatisasi pengujian.
Untuk daftar lengkap, lihat wiki pola desain atau pesan buku dari Amazon.

Pelajari lebih lanjut tentang kursus.

All Articles