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