Wednesday, November 16, 2016

SeleniumConf UK 2016 - Day 2 summary

It's over... And unfortunately next SeleniumConf would be in Austin, Texas (US) so I doubt I would be able to attend. Nevertheless, here is my personal day 2 summary!

A Programmer's Guide to Humans by Janelle Klein 

Great choice for opening keynote once again. Janelle Klein has very unique view on IT projects and she clearly considers human interactions as key for success. You can get familiar with her idea reading Idea Flow book (free sample has 2 full chapters).

My personal key points from the talk:

1. We love solving problems in IT without making sure whether they’re really relevant first. This is something Eliyahu Goldratt describes in The Goal as suboptimisation. We increase throughput between two modules which have no effect on overall system throughput ignoring real constraint.

2. Code problems eventually become human problems, because we (people) feel all the pain and have to deal with them eventually.

3. We tend to treat people with high empathy level only if we consider them similar and likeable. We should fight with that (it’s not easy) and put our prejudices aside. By realising that we may treat everyone in the same manner and stop behaving like assholes. 

4. Every human problem can be fixed in engineering way - that’s the innovative part described in Idea Flow book.

Big Data Makes the Flake Go Away by Dave Cadwallader 

Another innovative presentation. Dave Cadwallader is lead TestArmada commiter who simply hate (love?) flaky tests.

My personal key points from the talk:

1. Hope is not a strategy in dealing with flakiness. If you expect them to magically go away… stop right now :)

2. Common cause of flakiness - Long-Running Tests, Live Network Calls on Non-Deterministic Bugs

3. Flakiness not only shrinks tests reliability, but it also extends overall execution time (assuming we retry failed tests). This means that feedback we get from good tests is slower.

4. Visualisation & Big Data is great way for flakiness detection. We see which tests fail and in which environment. We can also easily track test execution time and eliminate laggards.

5. If you look for a tool to do that for you check TestArmada.

Measuring Web Performance Using Selenium by Peter Hedenskog

Very informative talk. Peter’s knowledge about the topic is outstanding, and if you’re interested in performance testing you should really catch full presentation on Youtube.

My personal key points from the talk:

1. Golden rule of web performance - 80-90% of the end-user response time is spent on the frontend.

2. Speed index is the most important value from user's perspective. The Speed Index indicates the speed at which above-the-fold content is displayed to the user (i.e. when user sees first glimpses of page loading).

3. Speed index can be obtained from Selenium test by extracting FirstMeaningfulPaint value. Unfortunately currently only Chrome browser has it built-in. 

4. Ideally we would like to get *.har file after each test run. I showed recently how to do it with BrowserMob Proxy, but using a proxy isn't ideal (communication via proxy is slightly different).

5. Chrome developers use tcproxy to simulate various network performance.

6. Tools for site performance - WebPageTest and sitespeed

Big thanks for all the speakers. I learned a lot! :)