SQA Days EU
22-23.03.2019
Strategical Agile Thinking
Most companies undergoing a transition to more Agile mindset
Report CEO - 52% would not opt Agile
Mistakes are being made
Agile - 79%
Agile is a mirror that will present something. not faster, not cleaner. Agile shows your problems - wrinkles, that you can try to resolve
If you don't deliver MVP after increment, then mirror is foggy, wont show shortcomings
A lot of problems with agile. Why we are not successful in transitioning to Agile?
Highlight 7 common problems in Agile
Strategical Agile Thinking
1. Start too late
not taking the right decision
Process time - work finish date - work start date (or Cost or FTE/MD)
Lead time - time between idea and making money

Strategical Agile Thinking
2. We dont know when to stop
Sunk Cost Fallacy - example of Concord
if no successful business case, then stop it
3 phases of a product

Strategical Agile Thinking
3. Dont know what we want
So many features to pick from
Survival of the fittest - element/person/smth most adapted to embrace change is the one to survive (agility)
MVP - base minimum of requirements that will make money
Viable - generate enough money for suc business case
French Fries vending machine - req:
1.Can take money
2.Fries
PRIORITIZE!
Strategical Agile Thinking
4. WE CANT PREDICT QUALITY
Requirement Quality
1. Commitment - entire team commit to a sprint/iteration. Commit as little as possible
2. Stability - embrace change, however
Stories from Backlog to Sprint (dont change them)
However change what you want in Product Backlog
Requirements:
1. Fixed inside of a Sprint/ Flexible outside of the Sprint
2. Commit as little as possible
Strategical Agile Thinking
4. We dont know how to prioritize
2 kids - which one you love the most?
what if multiple PO?
endowment effect - psychological bond between what you have and you don't have
my ideas are more worth than yours
Strategical Agile Thinking
5. We are reluctant to change
if you dont leave your comfort zones then you will never explore new things.
Dev - afraid will help and assist write source code
Tester - dont want dev to test
In any good agile team - dev tests and tester develops.
- learn from each other
- form better team
Choosing smth new is democratic process - its not! Psychological!
Create ambassadors of your idea and drive the change!
Strategical Agile Thinking
7. We start too big
Lead time = WIP/throughput(velocity)
Backlog - as simple as possible
1. Context Switching
Summary
- We start too late - start sooner/ at lead time
- We dont know when to stop - if no income -> stop the project
- We dont know what we want - choose MVP
- No idea how to predict quality - commit to minimum and with entire team. Keep req flexibility outside of your Sprint
- No idea how to prioritize - let people choose based on their beliefs and ask what is the most important thing (top 1 not more than that)
- reluctant to change - find small amount of ambassadors
- Start too big - make it smaller
Help! We have a QA Problem
Problem:
- Large stockpile of modules to test
- you shall do full regression test - 15 days
- too few testers
Help! We have a QA Problem
PDCA Cycle (Plan Do Study Act Cycle)

Help! We have a QA Problem
ACT - is what usually lacking.
Make improvements after each iteration
After few weeks we are almost perfect

Help! We have a QA Problem
ACT - is what usually lacking.
Make improvements after each iteration
After few weeks we are almost perfect

Help! We have a QA Problem
FIRST STEP - Objectifying and quantifying the problem

Help! We have a QA Problem

Who is the future killer of Selenium?
- Selenide
- Katalon
- Cypress
- ?
sooner or later Selenium will be "dethroned" due to "evolution"
- competition - is good
- fragmentation - is bad (from end user perspective) hard to choose from
- monopoly - good at one thing, not for everything
Who is the future killer of Selenium?
Selenium - is a basis on which other frameworks are built on
Selenium IDE
- new version of Selenium IDE was released lately and better than competitors (e.g. katalon recorder)
- not based on previous version of Selenium IDE. Written from scratch
- However, will be even newer version of Selenium IDE without it being a browser extension (native one)
- webdriver support
- CORS
- working with files
- working with tabs and windows

Selenium IDE will be possible to run in cloud
WebDriver Variations (e.g. Selenide, JDI)
- Much simpler API - Selenide (example with StaleElementException - now it will not happen)
- Additional functionality - Selenide
- Monster of everything - including Webdriver, recorder, etc
- Alternative implementations (however based on Selenium standard)

- Selenide, JDI and others are not easily extended!
- Unix Way - "Make each program do one thing well. To do a new job, build afresh rather than complicate old programs by adding new "features""
- Other tools based on Selenium are not competing with Selenium WebDriver.
Alternative Implementations (not based on Selenium WebDriver)
- WebDriver based on PHP
- Webdriver.io based on JS
Alternative Implementations of Selenium Grid
- Selenoid based on Go
Selenium Alternatives based not on Selenium protocol
- watir
- sahi
- TestCafe
- Cypress

What Selenium is missing
- event handler (Selenium based on HTTP protocol and it is two-way communication protocol) Not possible to get feedback from the browser
The real Killer
-
Puppeteer - tool which is based on a completely new Protocol
- still in early stages, but is the future killer
- based on CDP - Chrome Debug Protocol, which support 2 way communication
- Domination of Chrome and other alternative browsers are also based on Chrome
- Implementation for Firefox - puppeteer-firefox
Selenium Plans
- CDP or Puppeteer will be integrated to Selenium starting with version 5.
- Will possible to switch between Selenium WebDriver and CDP protocols
- Will support the same API as WebDriver uses.
Exploratory Testing and BugHunting

kill the system in beautiful ways
Exploratory Testing and BugHunting

Exploratory Testing and BugHunting
Text

Exploratory Testing and BugHunting
Text


Exploratory Testing and BugHunting
- point here - by creating dices it helped to come up with crazy scenarios that might not make sense.
Exploratory Testing and BugHunting

Exploratory Testing and BugHunting
Text

Spring Workshop
- Started to write simple Java application not following the SOLID principles
- Step by step we started improving the code by applying the single responsibility principle (e.g. removing "new" keyword) and inversion of control
- Eventually, we wrote our own dependency injection implementation by using Java Reflection API

Spring Workshop
- Talked about Spring and Spring Boot
- Eureka
-
Eureka Server, Eureka Client
-
Each micro service registers at Eureka Server with Eureka Client
-
@LoadBalanced annotation for RestTemplate - chooses correct or available instance in eureka server
-
Duty of @LoadBalanced -RestTemplate put new API everytime
-
SQA Days EU
By Ilja Pavlovs
SQA Days EU
- 245