Slide 1

Slide 1 text

END-TO-END TESTING On React Native

Slide 2

Slide 2 text

WHAT IS REACT NATIVE?

Slide 3

Slide 3 text

No content

Slide 4

Slide 4 text

“I CAN DO BOTH AT ONCE. EAZY PEAZY” -KEVIN (SOFTWARE ENGINEER)

Slide 5

Slide 5 text

WHAT IS END-TO-END TESTING?

Slide 6

Slide 6 text

AGILE WATERFALL

Slide 7

Slide 7 text

A TECHNIQUE USED TO TEST WHETHER THE FLOW OF AN APPLICATION RIGHT FROM START TO FINISH IS BEHAVING AS EXPECTED SO, END-TO-END TESTING IS…

Slide 8

Slide 8 text

THE PRACTICE OF RUNNING YOUR APP ON A REAL DEVICE OR SIMULATOR AND INTERACTING WITH IT LIKE A REAL WORLD USER WOULD. WHAT TECHNIQUE?

Slide 9

Slide 9 text

WHY WE NEED END-TO-END TESTING?

Slide 10

Slide 10 text

WHY WE NEED END-TO-END TESTING? It allows developers to push code without worrying about breaking things It enables releases with extra confidence it catches errors that are missed during manual regression testing

Slide 11

Slide 11 text

BENEFITS: specify our system prevent bugs and regression perform continuous integration

Slide 12

Slide 12 text

No content

Slide 13

Slide 13 text

EXAMPLE OF FAILING IN INTEGRATION TEST

Slide 14

Slide 14 text

No content

Slide 15

Slide 15 text

No content

Slide 16

Slide 16 text

HOW TO END-TO-END TESTING ON REACT NATIVE

Slide 17

Slide 17 text

WHAT IS BLACK / GREY BOX In Grey Box = (code) is partially known In Black Box = (code) is unknown

Slide 18

Slide 18 text

EXAMPLE OF GREY BOX TESTING

Slide 19

Slide 19 text

EXAMPLE OF BLACK BOX TESTING In home screen, klik tab contacs It should navigate to contacs screen Periodically check if the condition is true fail with an error after a time if not

Slide 20

Slide 20 text

FLAKINESS

Slide 21

Slide 21 text

DETOX BY WIX Gray box end-to-end testing and automation library for mobile apps. Detox tests your mobile app while it's running in a real device/simulator, interacting with it just like a real user.

Slide 22

Slide 22 text

DETOX BENENFITS: Cross Platform: Write cross- platform tests in JavaScript. Currently supports iOS and Android. Runs on Devices (not yet supported on iOS): Gain confidence to ship by testing your app on a device/simulator just like a real user. Automatically Synchronized: Stops flakiness at the core by monitoring asynchronous operations in your app. Made For CI: Execute your E2E tests on CI platforms like Travis without grief. Test Runner Independent: Use Mocha, AVA, or any other JavaScript test runner you like. Debuggable: Modern async- await API allows breakpoints in asynchronous tests to work as expected.

Slide 23

Slide 23 text

IMPLEMENTATIION ▪ Flow 1: OnBoarding ▪ Flow 2: Login by email

Slide 24

Slide 24 text

DEMO