Halo semuanya! Menjelang peluncuran kursus Mobile QA Engineer, kami mendapat pelajaran terbuka tradisional. Ada begitu banyak informasi yang webinar berlangsung selama dua hari ( Hari 1 , Hari 2 ). Bahkan, itu adalah Mobile QA-intensif dua hari yang nyata, yang akan berguna bagi semua orang yang ingin menjadi profesional dalam arah pengujian otomatis aplikasi mobile di Android dan iOS.
Dosen - Dmitry Yarygin, QA Test Engineer dengan 8 tahun pengalaman, 5 di mana ia
bekerja pada kontrak dengan Google .
Di webinar dipertimbangkan:
- apa pengujian secara umum dan mengapa otomatisasi diperlukan;
- dasar-dasar Java minimal untuk otomatisasi (variabel, objek, kelas, OOP);
- Apa itu Webdriver dan Appium;
- Cara menemukan objek dalam aplikasi web menggunakan berbagai pelacak;
- Otomasi aplikasi web (masuk di Facebook) menggunakan Appium dan emulator Android, dan banyak lagi.
Omong-omong, jika Anda ingin mendapatkan interaktivitas terbanyak dari webinar ini, instal aplikasi berikut sebelum mulai menonton:
- Android Studio
- Appium Desktop .
Riwayat dan fitur pengujian seluler
Pengujian mobile sebagai sebuah kelas muncul sekitar tahun 2007 - pada saat inilah iPhone pertama diumumkan, yang benar-benar mengubah seluruh industri. Ya, pengujian seluler ada hingga 2007, tetapi aplikasi pada masa itu cukup sederhana dan primitif. Setelah 2007, pengembangan pada iOS dan Android menjadi sangat aktif, dan ini, pada gilirannya, tidak bisa tidak mempengaruhi pengujian.
Tentu saja, pengujian seluler memiliki spesifikasi dan perbedaannya sendiri dari desktop:

Terlepas dari kesederhanaan yang tampak dan ukuran kecil dari gadget yang digunakan, di Mobile QA Anda perlu membahas banyak hal dengan pengujian (kadang-kadang ada lebih banyak lagi jika dibandingkan dengan pengujian desktop). Dan siapa bilang itu mudah?
Jenis Aplikasi Seluler
Aplikasi seluler adalah:
- Asli (asli).
- Hibrida (hibrida).
- Aplikasi web (web).
Sekarang lihat aplikasi berikut:

Dan beri tahu saya, apa itu: aplikasi hybrid, asli atau web?
Jawabannya adalah:Teks tersembunyiini adalah aplikasi web
Awalnya, dipahami bahwa aplikasi web diluncurkan dan beroperasi di browser, masing-masing, semua elemen antarmuka dieksekusi, seperti yang mereka katakan, dalam gaya web.
Sedangkan untuk aplikasi hybrid, ini pada dasarnya adalah upaya untuk "menjejalkan" aplikasi web ke dalam wadah khusus dan menjalankannya dalam wadah ini, sedikit "memperindah" agar terlihat seperti yang asli.
Contoh
aplikasi hybrid :

Aplikasi hibrid tidak berbeda secara khusus: tombol-tombolnya masih berbasis web, tautan ditampilkan dalam format web, dll
Mari kita lihat fitur aplikasi hybrid:

Dan sekarang contoh aplikasi "asli" dari AppStore:

Perhatikan kualitas antarmuka aplikasi ini dan fakta bahwa semua elemen terlihat "seperti asli", karena fungsionalitas sepenuhnya terintegrasi ke dalam sistem operasi. Secara kasar, aplikasi asli adalah aplikasi yang dikembangkan dengan mempertimbangkan teknologi "asli", dalam kasus kami, itu adalah Xcode untuk iOS.
Parameter utama aplikasi seluler
Parameternya adalah sebagai berikut:
- kinerja
- kompatibilitas
- layar (belokan, mode),
- geolokasi
- mode offline
- interaksi sistem file,
- bekerja dengan kontak
- sinkronisasi
- bekerja dengan memori
- baterai.
Fitur pengujian aplikasi seluler
Sekarang mari kita berkenalan dengan fitur-fitur aplikasi pengujian untuk perangkat seluler:

Interaksi penguji dan pengembang
Pada prinsipnya, interaksi secara praktis tidak berbeda dari interaksi dalam lingkungan normal dalam hal pengujian desktop. Semua sama saja:
- pengembang menciptakan fungsionalitas baru;
- tester menguji fitur pada berbagai perangkat;
- saat bug ditemukan, tester membuat laporan bug dan menunjukkan area masalah pengembang;
- pengembang memperbaiki bug;
- pengembang mengembalikan aplikasi untuk pengujian tambahan;
- jika tidak ada masalah, aplikasi siap untuk dirilis.

OOP untuk tester
Dan sekarang OOP dalam 5 menit )). Jadi, jika Anda berencana melakukan pengujian otomatis, Anda harus tahu:
- kelas, objek, metode;
- warisan;
- string, integer;
- polimorfisme;
- Array
- redefinisi / overload;
- konstruktor;
- antarmuka.
Jika singkatnya dan tanpa istilah yang rumit, maka OOP (pemrograman berorientasi objek) adalah kombinasi data dan kode untuk memprosesnya dalam satu objek.
Warisan adalah mekanisme bahasa yang memungkinkan Anda untuk membuat kelas baru berdasarkan yang sudah ada.
Enkapsulasi adalah mekanisme bahasa yang membatasi akses ke komponen objek (variabel dan metode) dan membuatnya hanya dapat diakses di dalam objek (pribadi). Dengan kata lain, menyembunyikan implementasi kelas.
Polimorfisme adalah kemampuan kelas turunan untuk mengubah implementasi kelas induk, tetapi mempertahankan antarmuka.
Sekarang mari kita beralih dari teori ke
praktik , yang akan membantu Anda memahami dasar-dasar OOP.
Interaktif
Pertama-tama, buka
tautan berikut . Kami memiliki kode Java berikut di mana ada tiga kelas utama:
1. Utama:public class Main { public static void main (String[]args) { Cat cat = new Cat (); cat.setAge (5); cat.setName ("Alisa"); System.out.println (cat.getName ()); System.out.println (cat.getAge ()); } }
2. Hewan: public class Animal { private String name; private int age; public Animal() { } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } }
3. Kucing: public class Cat extends Animal { private String name; public String getName() { return "Cat name is: " + name; } public void setName(String name) { this.name = name; } }
Main adalah kelas utama yang diperlukan untuk menjalankan kelas lain. Kelas
Hewan mencantumkan atribut seperti usia dan nama hewan. Kelas
Cat mewarisi semua properti dari kelas
Animal (Cat extends Animal), tetapi mengganti metode yang ada untuk bekerja dengan kelas kami.

Sekarang coba selesaikan sendiri masalah berikut:
- buat kelas
Dog
, mewarisi kelas Animal
; - buat metode
getName()
di kelas Dog
yang menampilkan “Dog name is: [ ]”
; - buat metode
setName()
di kelas Dog
yang mengembalikan nama; - di kelas
Main
, buat instance dari kelas Dog
, atur nama menggunakan setName()
dan jalankan metode getName()
untuk mendapatkan nama.
Solusi untuk masalah tersebut .
Otomasi Kapan dibutuhkan, dan kapan tidak dibutuhkan?
Kami membutuhkan otomatisasi dalam kasus berikut:
- aplikasi kompleks dengan sejumlah besar layar;
- gudang besar perangkat;
- pembaruan yang sering;
- sejumlah besar pengguna;
- aplikasi bekerja di banyak negara dan pasar aplikasi;
- kecepatan pengujian itu penting;
- pengujian kinerja diperlukan.
Ketika otomatisasi tidak diperlukan:
- satu atau dua layar dalam aplikasi;
- aplikasi beroperasi di satu negara, di satu pasar;
- pembaruan langka;
- sejumlah kecil pengguna;
- biaya otomatisasi akan melebihi anggaran.
Otomasi: prinsip dan sarana
Prinsip otomasi:
- Temukan objek di layar aplikasi saat ini.
- Periksa kondisinya, pastikan tersedia.
- Lakukan tindakan dengan objek.
Klasifikasi Otomasi:
- Alat otomatisasi yang tidak memerlukan akses ke kode sumber (Webdriver, Appium).
- Alat otomatisasi yang memerlukan akses ke kode sumber (Espresso, KIF).
Otomasi tentu saja hebat, tetapi Anda harus selalu ingat bahwa tidak semuanya bisa "otomatis".
Otomasi dengan Appium
Appium adalah server berbasis pada protokol WebDriver (WebDriver adalah kerangka kerja untuk mengotomatiskan aplikasi web). Appium menerima permintaan dari sisi klien, mengonversi dan mentransfernya ke emulator atau perangkat.

Saat berjalan, Appium memungkinkan Anda untuk melihat semua permintaan yang terjadi dari klien ke server:


Seperti apa pengaturan sistem lingkungan Appium:

Teman-teman, kami hanya berbicara tentang bagian
pertama dari webinar , jadi kami sarankan Anda menonton video dalam rekaman itu agar tidak ketinggalan apa pun. Juga akan ada pembicaraan
tentang anotasi dalam tes, menginisialisasi Appium untuk aplikasi Asli, mencari elemen menggunakan Appium di Android. Selain itu, pastikan untuk memeriksa bagian
kedua dari pelajaran terbuka, yang akan memberikan pengetahuan praktis yang sudah lebih dalam di bidang otomasi secara umum dan Appium pada khususnya.
Dan, tentu saja, daftar untuk kursus
Mobile QA Engineer , yang segera dimulai!