際際滷

際際滷Share a Scribd company logo
UI Testing pada Asynchronous dengan
IdlingResource
Khrisna Indrawan Eka Putra
Google Associate Android Developer, Code Reviewer Dicoding
Testing
Memeriksa apakah software sudah sesuai dengan
persyaratan/kebutuhan yang diharapkan dan untuk memastikan
bahwa software bebas dari bug.
Dicoding Developer Coaching #25: Android | UI Testing pada Asynchronous dengan IdlingResource
Unit Test
Unit Testing merupakan sebuah
pengujian yang memvalidasi unit kode
secara individual. Tujuan dari unit
testing adalah untuk memastikan bahwa
setiap unit perangkat lunak dapat
berjalan sesuai fungsi yang sudah
ditentukan.
Instrumentation Test
Instrumentation Testing merupakan sebuah
pengujian yang berjalan pada perangkat atau
emulator dengan memanfaatkan Android
framework APIs dan API pendukung lainnya,
seperti Android Testing Support Library.
Karakteristik UI Test
 User interface merupakan media visual untuk berinteraksi dengan pengguna yang terdiri dari beragam komponen
pembangun user interface seperti Label, Button, RadioButton, dan lain sebagainya.
 Selama proses pengujian, elemen properti yang menempel pada sebuah komponen user interface akan memberi
pengaruh terhadap kondisi atau state dari komponen tersebut.
 Pengujian user interface secara otomatis mampu melakukan pemberian input dan event pada komponen seperti
click(), pressKey() dan lain sebagainya.
 Pengujian ini lebih menekankan ke perbandingan antara proses yang dilakukan dengan hasil yang diharapkan dalam
sebuah skenario penggunaan.
 Pengujian user interface secara otomatis bergantung penuh pada teknologi yang digunakan. Dalam hal ini
framework atau tools yang digunakan akan mempengaruhi hasil dari proses pengujian yang dilakukan.
Espresso
Espresso
Espresso
Komponen utama Espresso:
 ViewMatchers (onView(ViewMatcher)), untuk menemukan elemen
atau komponen antar muka yang diuji.
 ViewActions (perform(ViewAction)), untuk memberikan event untuk
melakukan sebuah aksi pada komponen antar muka yang diuji.
 ViewAssertions(check(ViewAssertion)), untuk mengecek sebuah
kondisi atau state dari komponen yang diuji.
Espresso
Espresso IdlingResources
Penggunaan IdlingResources
 Memuat data dari internet atau sumber data lokal.
 Membangun koneksi dengan database dan panggilan balik atau callback.
 Mengelola service, baik menggunakan service sistem atau instance dari
IntentService.
 Melakukan business logic yang kompleks, seperti transformasi bitmap.
Implementasi
Tambahkan library Espresso idling resource ke dalam build.gradle:
Kemudian Anda bisa membuat kelas Helper untuk menangani IdlingResource:
Implementasi
Kemudian Anda tinggal memanggil metode increment() untuk memberitahu
Espresso bahwa proses berjalan secara asynchronous, dan beritahu Espresso
dengan decrement() untuk menyatakan sebuah proses telah selesai.
Implementasi
Selanjutnya daftarkan EspressoIdlingResource pada bagian Instrumental Testing:
Implementasi
Contact:
khrisna@dicoding.com
THANKS!
Follow us: @dicoding

More Related Content

What's hot (10)

Android Workshop beginner
Android Workshop beginnerAndroid Workshop beginner
Android Workshop beginner
Muhammad Iskandar Dzulqornain
Software Engineering 1 (Software Development Process Model)
Software Engineering 1 (Software Development Process Model)Software Engineering 1 (Software Development Process Model)
Software Engineering 1 (Software Development Process Model)
Adam Mukharil Bachtiar
Panduan Instalasi Android Studio
Panduan Instalasi Android StudioPanduan Instalasi Android Studio
Panduan Instalasi Android Studio
Agus Haryanto
1.suryo_atmojo-materi react-native 1 (mengenal react-native)
1.suryo_atmojo-materi react-native 1 (mengenal react-native)1.suryo_atmojo-materi react-native 1 (mengenal react-native)
1.suryo_atmojo-materi react-native 1 (mengenal react-native)
Suryo Atmojo
Codeigniter by faiz
Codeigniter by faizCodeigniter by faiz
Codeigniter by faiz
NyoNyo Chii
Sharring session : Understanding QA Collaboration within Project Development
Sharring session : Understanding QA Collaboration within Project DevelopmentSharring session : Understanding QA Collaboration within Project Development
Sharring session : Understanding QA Collaboration within Project Development
ID CORE INDONESIA
10. paket installer
10. paket installer10. paket installer
10. paket installer
Aris Saputro
ActiveX - Plugin My Project
ActiveX - Plugin My ProjectActiveX - Plugin My Project
ActiveX - Plugin My Project
padisoft
Presensi SM Findout Project ABC
Presensi SM Findout Project ABCPresensi SM Findout Project ABC
Presensi SM Findout Project ABC
BintangRamadhan25
Introduction on Android programming Tutorial
Introduction on Android programming TutorialIntroduction on Android programming Tutorial
Introduction on Android programming Tutorial
Dimas Prawira
Software Engineering 1 (Software Development Process Model)
Software Engineering 1 (Software Development Process Model)Software Engineering 1 (Software Development Process Model)
Software Engineering 1 (Software Development Process Model)
Adam Mukharil Bachtiar
Panduan Instalasi Android Studio
Panduan Instalasi Android StudioPanduan Instalasi Android Studio
Panduan Instalasi Android Studio
Agus Haryanto
1.suryo_atmojo-materi react-native 1 (mengenal react-native)
1.suryo_atmojo-materi react-native 1 (mengenal react-native)1.suryo_atmojo-materi react-native 1 (mengenal react-native)
1.suryo_atmojo-materi react-native 1 (mengenal react-native)
Suryo Atmojo
Codeigniter by faiz
Codeigniter by faizCodeigniter by faiz
Codeigniter by faiz
NyoNyo Chii
Sharring session : Understanding QA Collaboration within Project Development
Sharring session : Understanding QA Collaboration within Project DevelopmentSharring session : Understanding QA Collaboration within Project Development
Sharring session : Understanding QA Collaboration within Project Development
ID CORE INDONESIA
10. paket installer
10. paket installer10. paket installer
10. paket installer
Aris Saputro
ActiveX - Plugin My Project
ActiveX - Plugin My ProjectActiveX - Plugin My Project
ActiveX - Plugin My Project
padisoft
Presensi SM Findout Project ABC
Presensi SM Findout Project ABCPresensi SM Findout Project ABC
Presensi SM Findout Project ABC
BintangRamadhan25
Introduction on Android programming Tutorial
Introduction on Android programming TutorialIntroduction on Android programming Tutorial
Introduction on Android programming Tutorial
Dimas Prawira

Similar to Dicoding Developer Coaching #25: Android | UI Testing pada Asynchronous dengan IdlingResource (20)

Strategi pengujian perangkat lunak
Strategi pengujian perangkat lunakStrategi pengujian perangkat lunak
Strategi pengujian perangkat lunak
Ardha Herdianto
Instrumentation Testing in Android by Muhammad Fauzi Maulana.pptx
Instrumentation Testing in Android by Muhammad Fauzi Maulana.pptxInstrumentation Testing in Android by Muhammad Fauzi Maulana.pptx
Instrumentation Testing in Android by Muhammad Fauzi Maulana.pptx
MuhammadFauziMaulana1
Pertemuan 4 Strategi Testing
Pertemuan 4  Strategi TestingPertemuan 4  Strategi Testing
Pertemuan 4 Strategi Testing
Endang Retnoningsih
software testing (black box testing) -- irma darmayanti
software testing (black box testing) -- irma darmayantisoftware testing (black box testing) -- irma darmayanti
software testing (black box testing) -- irma darmayanti
Irma Darmayanti
Unit Testing
Unit TestingUnit Testing
Unit Testing
Umul Sidikoh
4. Materi ajar System Development Tools.pptx
4. Materi ajar System Development Tools.pptx4. Materi ajar System Development Tools.pptx
4. Materi ajar System Development Tools.pptx
castakaagussugianto
Resume pengembangan software
Resume pengembangan softwareResume pengembangan software
Resume pengembangan software
spongechie
Strategi Pengujian Perangkat Lunak.ppt
Strategi Pengujian Perangkat Lunak.pptStrategi Pengujian Perangkat Lunak.ppt
Strategi Pengujian Perangkat Lunak.ppt
smk methodist-8
Fit 08 wawan_testing aplikasi
Fit 08 wawan_testing aplikasiFit 08 wawan_testing aplikasi
Fit 08 wawan_testing aplikasi
chephz DJ
Testing aplikasi2
Testing aplikasi2Testing aplikasi2
Testing aplikasi2
chephz DJ
Software testing management
Software testing managementSoftware testing management
Software testing management
Fahri Firdausillah
Test plan Document Example
Test plan Document ExampleTest plan Document Example
Test plan Document Example
Miftakhul Akhyar
Siti maryam alizza_6701140222_pis1405_apsi
Siti maryam alizza_6701140222_pis1405_apsiSiti maryam alizza_6701140222_pis1405_apsi
Siti maryam alizza_6701140222_pis1405_apsi
smaryamalz
Software quality website UMKM
Software quality website UMKMSoftware quality website UMKM
Software quality website UMKM
Andre Tjio Tjio
Bab ii
Bab iiBab ii
Bab ii
Najiebud Dien
Mkpl Pertemuan5
Mkpl Pertemuan5Mkpl Pertemuan5
Mkpl Pertemuan5
Mrirfan
M K P L Pertemuan5
M K P L  Pertemuan5M K P L  Pertemuan5
M K P L Pertemuan5
Mrirfan
PPT-UEU-Manajemen-Proyek-SI-Pertemuan-14.pptx
PPT-UEU-Manajemen-Proyek-SI-Pertemuan-14.pptxPPT-UEU-Manajemen-Proyek-SI-Pertemuan-14.pptx
PPT-UEU-Manajemen-Proyek-SI-Pertemuan-14.pptx
KairiAbasa
MOBILE CONFIGURATION
MOBILE CONFIGURATIONMOBILE CONFIGURATION
MOBILE CONFIGURATION
Shahril Majid
Testing throughout the software life cycle
Testing throughout the software life cycleTesting throughout the software life cycle
Testing throughout the software life cycle
Vellyca Werdining Putri
Strategi pengujian perangkat lunak
Strategi pengujian perangkat lunakStrategi pengujian perangkat lunak
Strategi pengujian perangkat lunak
Ardha Herdianto
Instrumentation Testing in Android by Muhammad Fauzi Maulana.pptx
Instrumentation Testing in Android by Muhammad Fauzi Maulana.pptxInstrumentation Testing in Android by Muhammad Fauzi Maulana.pptx
Instrumentation Testing in Android by Muhammad Fauzi Maulana.pptx
MuhammadFauziMaulana1
software testing (black box testing) -- irma darmayanti
software testing (black box testing) -- irma darmayantisoftware testing (black box testing) -- irma darmayanti
software testing (black box testing) -- irma darmayanti
Irma Darmayanti
4. Materi ajar System Development Tools.pptx
4. Materi ajar System Development Tools.pptx4. Materi ajar System Development Tools.pptx
4. Materi ajar System Development Tools.pptx
castakaagussugianto
Resume pengembangan software
Resume pengembangan softwareResume pengembangan software
Resume pengembangan software
spongechie
Strategi Pengujian Perangkat Lunak.ppt
Strategi Pengujian Perangkat Lunak.pptStrategi Pengujian Perangkat Lunak.ppt
Strategi Pengujian Perangkat Lunak.ppt
smk methodist-8
Fit 08 wawan_testing aplikasi
Fit 08 wawan_testing aplikasiFit 08 wawan_testing aplikasi
Fit 08 wawan_testing aplikasi
chephz DJ
Testing aplikasi2
Testing aplikasi2Testing aplikasi2
Testing aplikasi2
chephz DJ
Software testing management
Software testing managementSoftware testing management
Software testing management
Fahri Firdausillah
Test plan Document Example
Test plan Document ExampleTest plan Document Example
Test plan Document Example
Miftakhul Akhyar
Siti maryam alizza_6701140222_pis1405_apsi
Siti maryam alizza_6701140222_pis1405_apsiSiti maryam alizza_6701140222_pis1405_apsi
Siti maryam alizza_6701140222_pis1405_apsi
smaryamalz
Software quality website UMKM
Software quality website UMKMSoftware quality website UMKM
Software quality website UMKM
Andre Tjio Tjio
Mkpl Pertemuan5
Mkpl Pertemuan5Mkpl Pertemuan5
Mkpl Pertemuan5
Mrirfan
M K P L Pertemuan5
M K P L  Pertemuan5M K P L  Pertemuan5
M K P L Pertemuan5
Mrirfan
PPT-UEU-Manajemen-Proyek-SI-Pertemuan-14.pptx
PPT-UEU-Manajemen-Proyek-SI-Pertemuan-14.pptxPPT-UEU-Manajemen-Proyek-SI-Pertemuan-14.pptx
PPT-UEU-Manajemen-Proyek-SI-Pertemuan-14.pptx
KairiAbasa
MOBILE CONFIGURATION
MOBILE CONFIGURATIONMOBILE CONFIGURATION
MOBILE CONFIGURATION
Shahril Majid
Testing throughout the software life cycle
Testing throughout the software life cycleTesting throughout the software life cycle
Testing throughout the software life cycle
Vellyca Werdining Putri

More from DicodingEvent (20)

Developer Coaching #114.pdf
Developer Coaching #114.pdfDeveloper Coaching #114.pdf
Developer Coaching #114.pdf
DicodingEvent
Ask Us Anything about Studi Independen Bersertifikat Kampus Merdeka X Dicodin...
Ask Us Anything about Studi Independen Bersertifikat Kampus Merdeka X Dicodin...Ask Us Anything about Studi Independen Bersertifikat Kampus Merdeka X Dicodin...
Ask Us Anything about Studi Independen Bersertifikat Kampus Merdeka X Dicodin...
DicodingEvent
tantangan menjadi developer di abad 21
tantangan menjadi developer di abad 21tantangan menjadi developer di abad 21
tantangan menjadi developer di abad 21
DicodingEvent
Mengenalkan augmented reality (ar) pada snapchat
Mengenalkan augmented reality (ar) pada snapchatMengenalkan augmented reality (ar) pada snapchat
Mengenalkan augmented reality (ar) pada snapchat
DicodingEvent
Membangun Aplikasi Serverless di Platfrom AWS
Membangun Aplikasi Serverless di Platfrom AWSMembangun Aplikasi Serverless di Platfrom AWS
Membangun Aplikasi Serverless di Platfrom AWS
DicodingEvent
IDCamp X Madrasah: Pengenalan Computational Thinking
IDCamp X Madrasah: Pengenalan Computational ThinkingIDCamp X Madrasah: Pengenalan Computational Thinking
IDCamp X Madrasah: Pengenalan Computational Thinking
DicodingEvent
Membuat Produk Digital Terbaik ala Startup Unicorn
Membuat Produk Digital Terbaik ala Startup UnicornMembuat Produk Digital Terbaik ala Startup Unicorn
Membuat Produk Digital Terbaik ala Startup Unicorn
DicodingEvent
TechTalk 2021: Peran IT Security dalam Penerapan DevOps
TechTalk 2021: Peran IT Security dalam Penerapan DevOpsTechTalk 2021: Peran IT Security dalam Penerapan DevOps
TechTalk 2021: Peran IT Security dalam Penerapan DevOps
DicodingEvent
TechTalk 2021: Peningkatan Performa Software Delivery dengan CI/CD
TechTalk 2021: Peningkatan Performa Software Delivery dengan CI/CDTechTalk 2021: Peningkatan Performa Software Delivery dengan CI/CD
TechTalk 2021: Peningkatan Performa Software Delivery dengan CI/CD
DicodingEvent
Membuat Solusi Bermanfaat dengan Programming - Nur Rohman
Membuat Solusi Bermanfaat dengan Programming - Nur RohmanMembuat Solusi Bermanfaat dengan Programming - Nur Rohman
Membuat Solusi Bermanfaat dengan Programming - Nur Rohman
DicodingEvent
Potensi karier menjadi ios developer di masa depan
Potensi karier menjadi ios developer di masa depanPotensi karier menjadi ios developer di masa depan
Potensi karier menjadi ios developer di masa depan
DicodingEvent
Id camp x dicoding live : persiapan jadi software engineer hebat 101
Id camp x dicoding live : persiapan jadi software engineer hebat 101Id camp x dicoding live : persiapan jadi software engineer hebat 101
Id camp x dicoding live : persiapan jadi software engineer hebat 101
DicodingEvent
Tips sukses berkarir sebagai developer dan programmer 2021
Tips sukses berkarir sebagai developer dan programmer 2021Tips sukses berkarir sebagai developer dan programmer 2021
Tips sukses berkarir sebagai developer dan programmer 2021
DicodingEvent
Teknologi Baru Android di Google I/O 2021 - Andrew Kurniadi
Teknologi Baru Android di Google I/O 2021 - Andrew KurniadiTeknologi Baru Android di Google I/O 2021 - Andrew Kurniadi
Teknologi Baru Android di Google I/O 2021 - Andrew Kurniadi
DicodingEvent
Dicoding Developer Coaching #38: Android | 5 Library Android yang Patut Kamu ...
Dicoding Developer Coaching #38: Android | 5 Library Android yang Patut Kamu ...Dicoding Developer Coaching #38: Android | 5 Library Android yang Patut Kamu ...
Dicoding Developer Coaching #38: Android | 5 Library Android yang Patut Kamu ...
DicodingEvent
Dicoding Developer Coaching #37: Android | Kesalahan yang Sering Terjadi pada...
Dicoding Developer Coaching #37: Android | Kesalahan yang Sering Terjadi pada...Dicoding Developer Coaching #37: Android | Kesalahan yang Sering Terjadi pada...
Dicoding Developer Coaching #37: Android | Kesalahan yang Sering Terjadi pada...
DicodingEvent
Pengantar Cloud Computing dengan AWS - Petra Novandi Barus
Pengantar Cloud Computing dengan AWS - Petra Novandi BarusPengantar Cloud Computing dengan AWS - Petra Novandi Barus
Pengantar Cloud Computing dengan AWS - Petra Novandi Barus
DicodingEvent
Dicoding Developer Coaching #36: Android | Pentingnya Performa pada Aplikasi ...
Dicoding Developer Coaching #36: Android | Pentingnya Performa pada Aplikasi ...Dicoding Developer Coaching #36: Android | Pentingnya Performa pada Aplikasi ...
Dicoding Developer Coaching #36: Android | Pentingnya Performa pada Aplikasi ...
DicodingEvent
Dicoding Developer Coaching #34: Android | Modular Android App dengan Dynamic...
Dicoding Developer Coaching #34: Android | Modular Android App dengan Dynamic...Dicoding Developer Coaching #34: Android | Modular Android App dengan Dynamic...
Dicoding Developer Coaching #34: Android | Modular Android App dengan Dynamic...
DicodingEvent
Dicoding Developer Coaching #32: Android | Reactive Programming dengan RxJava...
Dicoding Developer Coaching #32: Android | Reactive Programming dengan RxJava...Dicoding Developer Coaching #32: Android | Reactive Programming dengan RxJava...
Dicoding Developer Coaching #32: Android | Reactive Programming dengan RxJava...
DicodingEvent
Developer Coaching #114.pdf
Developer Coaching #114.pdfDeveloper Coaching #114.pdf
Developer Coaching #114.pdf
DicodingEvent
Ask Us Anything about Studi Independen Bersertifikat Kampus Merdeka X Dicodin...
Ask Us Anything about Studi Independen Bersertifikat Kampus Merdeka X Dicodin...Ask Us Anything about Studi Independen Bersertifikat Kampus Merdeka X Dicodin...
Ask Us Anything about Studi Independen Bersertifikat Kampus Merdeka X Dicodin...
DicodingEvent
tantangan menjadi developer di abad 21
tantangan menjadi developer di abad 21tantangan menjadi developer di abad 21
tantangan menjadi developer di abad 21
DicodingEvent
Mengenalkan augmented reality (ar) pada snapchat
Mengenalkan augmented reality (ar) pada snapchatMengenalkan augmented reality (ar) pada snapchat
Mengenalkan augmented reality (ar) pada snapchat
DicodingEvent
Membangun Aplikasi Serverless di Platfrom AWS
Membangun Aplikasi Serverless di Platfrom AWSMembangun Aplikasi Serverless di Platfrom AWS
Membangun Aplikasi Serverless di Platfrom AWS
DicodingEvent
IDCamp X Madrasah: Pengenalan Computational Thinking
IDCamp X Madrasah: Pengenalan Computational ThinkingIDCamp X Madrasah: Pengenalan Computational Thinking
IDCamp X Madrasah: Pengenalan Computational Thinking
DicodingEvent
Membuat Produk Digital Terbaik ala Startup Unicorn
Membuat Produk Digital Terbaik ala Startup UnicornMembuat Produk Digital Terbaik ala Startup Unicorn
Membuat Produk Digital Terbaik ala Startup Unicorn
DicodingEvent
TechTalk 2021: Peran IT Security dalam Penerapan DevOps
TechTalk 2021: Peran IT Security dalam Penerapan DevOpsTechTalk 2021: Peran IT Security dalam Penerapan DevOps
TechTalk 2021: Peran IT Security dalam Penerapan DevOps
DicodingEvent
TechTalk 2021: Peningkatan Performa Software Delivery dengan CI/CD
TechTalk 2021: Peningkatan Performa Software Delivery dengan CI/CDTechTalk 2021: Peningkatan Performa Software Delivery dengan CI/CD
TechTalk 2021: Peningkatan Performa Software Delivery dengan CI/CD
DicodingEvent
Membuat Solusi Bermanfaat dengan Programming - Nur Rohman
Membuat Solusi Bermanfaat dengan Programming - Nur RohmanMembuat Solusi Bermanfaat dengan Programming - Nur Rohman
Membuat Solusi Bermanfaat dengan Programming - Nur Rohman
DicodingEvent
Potensi karier menjadi ios developer di masa depan
Potensi karier menjadi ios developer di masa depanPotensi karier menjadi ios developer di masa depan
Potensi karier menjadi ios developer di masa depan
DicodingEvent
Id camp x dicoding live : persiapan jadi software engineer hebat 101
Id camp x dicoding live : persiapan jadi software engineer hebat 101Id camp x dicoding live : persiapan jadi software engineer hebat 101
Id camp x dicoding live : persiapan jadi software engineer hebat 101
DicodingEvent
Tips sukses berkarir sebagai developer dan programmer 2021
Tips sukses berkarir sebagai developer dan programmer 2021Tips sukses berkarir sebagai developer dan programmer 2021
Tips sukses berkarir sebagai developer dan programmer 2021
DicodingEvent
Teknologi Baru Android di Google I/O 2021 - Andrew Kurniadi
Teknologi Baru Android di Google I/O 2021 - Andrew KurniadiTeknologi Baru Android di Google I/O 2021 - Andrew Kurniadi
Teknologi Baru Android di Google I/O 2021 - Andrew Kurniadi
DicodingEvent
Dicoding Developer Coaching #38: Android | 5 Library Android yang Patut Kamu ...
Dicoding Developer Coaching #38: Android | 5 Library Android yang Patut Kamu ...Dicoding Developer Coaching #38: Android | 5 Library Android yang Patut Kamu ...
Dicoding Developer Coaching #38: Android | 5 Library Android yang Patut Kamu ...
DicodingEvent
Dicoding Developer Coaching #37: Android | Kesalahan yang Sering Terjadi pada...
Dicoding Developer Coaching #37: Android | Kesalahan yang Sering Terjadi pada...Dicoding Developer Coaching #37: Android | Kesalahan yang Sering Terjadi pada...
Dicoding Developer Coaching #37: Android | Kesalahan yang Sering Terjadi pada...
DicodingEvent
Pengantar Cloud Computing dengan AWS - Petra Novandi Barus
Pengantar Cloud Computing dengan AWS - Petra Novandi BarusPengantar Cloud Computing dengan AWS - Petra Novandi Barus
Pengantar Cloud Computing dengan AWS - Petra Novandi Barus
DicodingEvent
Dicoding Developer Coaching #36: Android | Pentingnya Performa pada Aplikasi ...
Dicoding Developer Coaching #36: Android | Pentingnya Performa pada Aplikasi ...Dicoding Developer Coaching #36: Android | Pentingnya Performa pada Aplikasi ...
Dicoding Developer Coaching #36: Android | Pentingnya Performa pada Aplikasi ...
DicodingEvent
Dicoding Developer Coaching #34: Android | Modular Android App dengan Dynamic...
Dicoding Developer Coaching #34: Android | Modular Android App dengan Dynamic...Dicoding Developer Coaching #34: Android | Modular Android App dengan Dynamic...
Dicoding Developer Coaching #34: Android | Modular Android App dengan Dynamic...
DicodingEvent
Dicoding Developer Coaching #32: Android | Reactive Programming dengan RxJava...
Dicoding Developer Coaching #32: Android | Reactive Programming dengan RxJava...Dicoding Developer Coaching #32: Android | Reactive Programming dengan RxJava...
Dicoding Developer Coaching #32: Android | Reactive Programming dengan RxJava...
DicodingEvent

Dicoding Developer Coaching #25: Android | UI Testing pada Asynchronous dengan IdlingResource

  • 1. UI Testing pada Asynchronous dengan IdlingResource Khrisna Indrawan Eka Putra Google Associate Android Developer, Code Reviewer Dicoding
  • 2. Testing Memeriksa apakah software sudah sesuai dengan persyaratan/kebutuhan yang diharapkan dan untuk memastikan bahwa software bebas dari bug.
  • 4. Unit Test Unit Testing merupakan sebuah pengujian yang memvalidasi unit kode secara individual. Tujuan dari unit testing adalah untuk memastikan bahwa setiap unit perangkat lunak dapat berjalan sesuai fungsi yang sudah ditentukan.
  • 5. Instrumentation Test Instrumentation Testing merupakan sebuah pengujian yang berjalan pada perangkat atau emulator dengan memanfaatkan Android framework APIs dan API pendukung lainnya, seperti Android Testing Support Library.
  • 6. Karakteristik UI Test User interface merupakan media visual untuk berinteraksi dengan pengguna yang terdiri dari beragam komponen pembangun user interface seperti Label, Button, RadioButton, dan lain sebagainya. Selama proses pengujian, elemen properti yang menempel pada sebuah komponen user interface akan memberi pengaruh terhadap kondisi atau state dari komponen tersebut. Pengujian user interface secara otomatis mampu melakukan pemberian input dan event pada komponen seperti click(), pressKey() dan lain sebagainya. Pengujian ini lebih menekankan ke perbandingan antara proses yang dilakukan dengan hasil yang diharapkan dalam sebuah skenario penggunaan. Pengujian user interface secara otomatis bergantung penuh pada teknologi yang digunakan. Dalam hal ini framework atau tools yang digunakan akan mempengaruhi hasil dari proses pengujian yang dilakukan.
  • 9. Espresso Komponen utama Espresso: ViewMatchers (onView(ViewMatcher)), untuk menemukan elemen atau komponen antar muka yang diuji. ViewActions (perform(ViewAction)), untuk memberikan event untuk melakukan sebuah aksi pada komponen antar muka yang diuji. ViewAssertions(check(ViewAssertion)), untuk mengecek sebuah kondisi atau state dari komponen yang diuji.
  • 12. Penggunaan IdlingResources Memuat data dari internet atau sumber data lokal. Membangun koneksi dengan database dan panggilan balik atau callback. Mengelola service, baik menggunakan service sistem atau instance dari IntentService. Melakukan business logic yang kompleks, seperti transformasi bitmap.
  • 13. Implementasi Tambahkan library Espresso idling resource ke dalam build.gradle:
  • 14. Kemudian Anda bisa membuat kelas Helper untuk menangani IdlingResource: Implementasi
  • 15. Kemudian Anda tinggal memanggil metode increment() untuk memberitahu Espresso bahwa proses berjalan secara asynchronous, dan beritahu Espresso dengan decrement() untuk menyatakan sebuah proses telah selesai. Implementasi
  • 16. Selanjutnya daftarkan EspressoIdlingResource pada bagian Instrumental Testing: Implementasi