Look inside the box

Associated mindmap for automation guild 2020 look inside the box

Get Started. It's Free
or sign up with your email address
Look inside the box by Mind Map: Look inside the box

1. Network manipulation

1.1. Web

1.1.1. Cypress for network manipulation

1.1.1.1. Network Requests

1.2. Android

1.2.1. square/okhttp

2. Techniques

2.1. Test data

2.1.1. Setup

2.1.2. Cleanup

2.2. Web

2.2.1. Cookie manipulation

2.2.1.1. Login tokens

2.2.1.2. Feature flags hard coding

2.3. Network

2.3.1. Mocking

2.3.2. Waiting

2.3.3. Record and replay just the network

2.4. Level-1 verifications

2.4.1. API verifications instead of UI

2.5. Navigation

2.5.1. URLs (web)

2.5.2. mobile

2.5.2.1. Deeplinks

2.5.2.2. Activities

2.5.2.3. Intents

2.6. Database manipulation

2.6.1. Android: shared preferences or sql lite manipulation

2.6.2. iOS: plist file manipuation

2.6.3. Client DB

3. Outro

3.1. Cons/critcism

3.1.1. Test hooks can become out of date

3.1.1.1. Requires maintainence just like prod code

3.1.2. Not testing end user flows

3.1.2.1. Show the pyramid slide

3.1.2.2. Don't use them exclusively, have some pure E2E tests as well

3.2. Benefits

3.2.1. KISS

3.2.1.1. Keep test code simple

3.2.1.1.1. Exercise only part of the app that is relevant to the test. Mock other pieces

3.2.1.1.2. Idempotent tests

3.2.1.2. Creating tests is easy, maintaining them over hundreds of runs over a period of years is hard

3.2.2. DRY

3.2.2.1. Don't repeat same actions in all tests

3.2.3. Makes parallel runs of tests more manageable

3.3. Achieve

3.3.1. Control

3.3.2. Predictability

4. Intro

4.1. What is the box

4.1.1. Automation treating SUT as opaque box

4.2. why do people start believing the box

4.2.1. Hard/unknown/not owned by this team automation at other layers API or backend

4.2.2. Manual tests and testers transferred to automation

4.2.3. contractors creating automation

4.2.4. automation code not co-located

4.2.5. To maintain fidelity with end user

4.3. beneath the box

4.3.1. You might already be using them without realization

4.3.2. Applicable to all kinds of automation- Web, mobile, API

5. Additional resources

5.1. Data manipulation

5.1.1. web

5.1.1.1. Cookies manipulation

5.1.1.1.1. setCookies · WebdriverIO

5.1.1.2. webstorage

5.1.1.2.1. Java Code Examples org.openqa.selenium.html5.WebStorage

5.1.2. Android

5.1.2.1. shared preferences manipulation

5.1.2.1.1. How to Set Shared Preferences in Espresso Test for Kotlin and Java

5.1.3. ios

5.1.3.1. plist file

5.1.3.1.1. Reading plist resource from your iOS Framework library