Showing posts from August, 2017

Test Impact Analysis - My story so far

It's been three months now that I have started my journey in a new working environment to implement a flavor of the Test Impact Analysis.

Being a fan of ThoughtWorks and following Martin Fowler's blog I was impressed about reading an article that spoke about the rise of TIA(Test Impact Analysis)

The definition of TIA from martin fowler "Test Impact Analysis (TIA) is a modern way of speeding up the test automation phase of a build. It works by analyzing the call-graph of the source code to work out which tests should be run after a change to production code. Microsoft has done some extensive work on this approach, but it's also possible for development teams to implement something useful quite cheaply."

Problems to solve:

Let's run all tests every time a change is pushedTests that run late in the integration cycle - Implicitly Shifting right Number of tests that run in the pipeline The number of tests in the regression suiteWhat shape is the testing pyramid?Wh…

How does Facebook find bugs that crash their software?

Facebook uses both static and dynamic analysis tools to perform testing. What impresses me more is the dynamic analysis, but lets look at the static analysis first

 Static analysis, as the name implies, is only interested in the source code of the program

Facebook's static analyser is called Infer. The company open-sourced the tool in 2013, and a lot of big names (Uber, Spotify, Mozilla) use it.
It is on github for you to play around with
Facebook's dynamic analyser is called Sapienz.
"There are a lot of dynamic analysers out there, but none like Sapienz" - Facebook

Why is Sapienz so different?
The challenge with dynamic testing is finding the reight inputs that cause an app to crash.

Facebook says that most dynamic analysers use random sequences of inputs at apps, with up to 15,000 input events to force a crash.

Sapienz, on the other hand, only needs about 100-150 events to find a crashing bug. In practice, that means Facebook finds…

Has Machine Learning arrived in the test automation space ?

Testim -

Testim is a new test automation tool that claims to use machine learning to speed the authoring, execution, and maintenance of automated tests. "A developer can author a test case in minutes and execute them on multiple web and mobile platforms. We learn from every execution, self-improving the stability of test cases, resulting in a test suite that doesn't break on every code change. We analyze hundreds of attributes in realtime to identify each element vs. static locators. Little effort, if any, is then required to maintain these test cases yet they are stable and trustworthy." Being a huge enthusiast about Machine Learning in the test automation space , I am super excited and hope this is the beginning of a new way of testing.
The CEO Oren Rubin and COO Shani Shoham  - "We use dynamic locators and learn with every execution. The outcome is super fast authoring and stable tests that learn, thus eliminating the need to continually ma…

Agile (Values, Principles and Practices) never really fails, the people involved might fail

Love @Bruce Carlyon's work: The Momentum Interviews - Bruce Carlyon on Agile delivery. | Momentum Search and Selection Our new series of blogs titled The Momentum Interviews has received excellent feedback. The fourth blog in this series is with a seasoned Agile practitioner named Bruce Carlyon. He is a certified Agile Framework Consultant, Scaled Agile Framework Agilist and Scrum Master. Our Q and A is b

Canopy - F# is the new C# in the F#rictionless web/mobile testing world

Canopy is a new web testing framework for F#, for UI testing. (C# friendly ) There is also a Canopy testing framework for mobile apps -

The website: Nuget Package:
GitHub for Mobile -
Features: Solid stabilization layer built on top of Selenium. Death to "brittle, quirky, UI tests".Quick to learn. Even if you've never done UI Automation, and don't know F#.Clean, concise API.
Canopy's APIActions: documentation of everything you can do on a pageAssertions: all the ways you can verify what's on the page is correctConfiguration: configure and fine tune canopyTesting: different ways to orchestrate tests and troubleshoot issues with a pageReporting: different ways to output the results of your test suite Canopy Examples -…

Defect Driven Development - is not TDD with a twist

Defect Driven Development (3D) Deliver enhanced quality product with less testing effort By Wasim Haque We are living in that time of the world where there are so many product

Machine Learning - Tensor-flow used for detecting bats! Wow

Roland Meertens an AI developer detected bats and ended up using Tensor flow :

jupyter notebookLabeling sound data - librosa libraryLoading sound data with Python Visualizing sounds with LibrosaMachine learning model - TensorFlow Github -
Detecting bats by recognising their sound with Tensorflow Last week I discovered that there are bats behind my appartment. I immediately grabbed my "bat detector": a device that converts the ultrasound signals bats use to echolocate from an inaudible frequency range to an audible one. The name "bat detector" thus is a lie: you can use it to detect bats, but it does not detect bats itself.

GraphQL represents a giant leap forward in the world of APIs - From REST to GraphQL

"As a significant departure from the REST API, GraphQL requires some not-so-subtle shifts in the way we think about consuming and altering data."  - Mark,Matt Platform engineers GitHub

Issues with REST: REST APIs are designed to interact with one specific end point at a time. For example, you can get a list of all your issues on GitHub, but you can’t get a list of issues and the comments on those issues at the same time. This means you often need to make more than one “request” to the API to get the exact information you need.
REST API results are determined by the API developer, and they want to make sure you have everything you could possibly want. This often means you are getting way more information than you intend to use. GraphQL is a more flexible query structure, which allows you to request information based on connections across traditional data points. Running Your First GraphQL QueryNavigate to the GraphQL explorer. Once the page has loaded, click the “Sign in with …

Cheatsheet - REST Architecture


Machine Learning being used in Oz

Sydney to test driverless shuttle AUSTRALIA: A two-year trial of a driverless shuttle is due to begin later this month at Sydney Olympic Park, the New South Wales government announced on August 2. Testing of a driverless shuttle supplied by Navya will shortly begin on an enclosed pre-programmed route at Newington Armory.

Awesome Teams @ Google

re:Work - The five keys to a successful Google team Pod. Work group. Committee. Autonomous collective. Whatever you call it, you're part of one at Google and probably wherever you work: a team. So if we know what makes managers great, why don't we know what makes a team great?

Turn the Ship Around - Testing Insights

El control, según descubrimos, solo funciona con una mano de obra competente y que entiende el objetivo de la organización 
Control, we find, only works with a competent workforce and understands the purpose of the organization
If you have not read this book I would highly recommend you to do so. It's a real life story about the U.S. Navy Submarine Commander "David Marquet" and his leadership ideologies in the Los Angeles-class fast attack submarine USS Santa Fe (SSN 763).
Before you dwell further here is a good read : Turn The Ship Around – A View Into Agile Leadership
Here is a quick video from the man himself:

and a very interesting white boarding on similar principles:

Some quick snippets:
My favorite: “One of the things that limits our learning is our belief that we already know something.” 
“Don’t move information to authority, move authority to the information.” 
“Empowerment programs appeared to be a reaction to the fact that we had actively disempowered people.” 

Cheatsheet from Java to C# to Swift to VS2017