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
Rocket clouds
Look inside the box by Mind Map: Look inside the box

1. Techniques

1.1. Test data

1.1.1. Setup

1.1.2. Cleanup

1.2. Web

1.2.1. Cookie manipulation

1.2.1.1. Login tokens

1.2.1.2. Feature flags hard coding

1.3. Network

1.3.1. Mocking

1.3.2. Waiting

1.3.3. Record and replay just the network

1.4. Level-1 verifications

1.4.1. API verifications instead of UI

1.5. Navigation

1.5.1. URLs (web)

1.5.2. mobile

1.5.2.1. Deeplinks

1.5.2.2. Activities

1.5.2.3. Intents

1.6. Database manipulation

1.6.1. Android: shared preferences or sql lite manipulation

1.6.2. iOS: plist file manipuation

1.6.3. Client DB

2. Outro

2.1. Cons/critcism

2.1.1. Not testing end user flows

2.1.1.1. Show the pyramid slide

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

2.1.2. Test hooks can become out of date

2.1.2.1. Requires maintainence just like prod code

2.2. Benefits

2.2.1. KISS

2.2.1.1. Keep test code simple

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

2.2.1.1.2. Idempotent tests

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

2.2.2. DRY

2.2.2.1. Don't repeat same actions in all tests

2.2.3. Makes parallel runs of tests more manageable

2.3. Achieve

2.3.1. Control

2.3.2. Predictability

3. Intro

3.1. What is the box

3.1.1. Automation treating SUT as opaque box

3.2. why do people start believing the box

3.2.1. Manual tests and testers transferred to automation

3.2.2. contractors creating automation

3.2.3. automation code not co-located

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

3.2.5. To maintain fidelity with end user

3.3. beneath the box

3.3.1. You might already be using them without realization

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

4. Additional resources

4.1. Network manipulation

4.1.1. Web

4.1.1.1. Cypress for network manipulation

4.1.1.1.1. Network Requests

4.1.2. Android

4.1.2.1. square/okhttp

4.2. Data manipulation

4.2.1. web

4.2.1.1. Cookies manipulation

4.2.1.1.1. setCookies · WebdriverIO

4.2.1.2. webstorage

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

4.2.2. Android

4.2.2.1. shared preferences manipulation

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

4.2.3. ios

4.2.3.1. plist file

4.2.3.1.1. Reading plist resource from your iOS Framework library