Showing posts from 2017

AWS in Plain English!

Run an App Services No matter what you do with AWS you'll probably end up using these services as everything else interacts with them. EC2Should have been called
Amazon Virtual ServersUse this to
Host the bits of things you think of as a computer.It's like","It's handwavy, but EC2 instances are similar to the virtual private servers you'd get at Linode, DigitalOcean or Rackspace. IAMShould have been called
Users, Keys and CertsUse this to
Set up additional users, set up new AWS Keys and policies. S3Should have been called
Amazon Unlimited FTP ServerUse this to
Store images and other assets for websites. Keep backups and share files between services. Host static websites. Also, many of the other AWS services write and read from S3.
S3 in Plain English S3 Buckets of Objects  VPCShould have been called
Amazon Virtual Colocated RackUse this to
Overcome objections that "all our stuff is on the internet!" by adding an additional laye…

My first Machine Learning experiment with real time data

Solving the most common problem predicting house prices in any suburb using supervised learning.

What's amazing is we shall build a Machine Learning model using MLJAR

MLJAR is a human-first platform for machine learning.
It provides a service for prototyping, development and deploying pattern recognition algorithms.
It makes algorithm search and tuning painless!
The basics of ML can be read anywhere on github/google. What we need to know is regression/classification and when to use what. 

First things first test data:
train sample - (data_train.csv file) for model learning  test samples (data_test.csv) for predictions

Create a new projectSelect Regression as a taskAdd train and test data
Note - When we add test dataset check the option: This dataset will be used only for predictions because we want to predict the sale priceSpecify columns that we use , target as "Saleprice column" in trai…

Intelligent Automation - Machine Learning

John Bates the CEO of Testplant has exactly my views on what smart and intelligent test automation would be:
Quick snippets:

1. Intelligent automation - The only way to realistically test a digital app is through an intelligent automation engine accessing the application as a user would - taking control of a machine, actually using the app to exercise workflows and collecting intelligent analytics along the way. This involves technology to understand on-screen images and text, such as smart image search and dynamic neural networks (so called “deep learning”).
2. Intelligent test coverage generation and ‘bug-hunting’ - There are a potentially infinite number of paths through a complex app so which ones should we follow in our automation? We can use AI classification algorithms such as Bayesian networks, to select paths and 'bug hunt'. As these paths are explored, the bug-hunting AI algorithm continues to learn from correlations in data to refine the coverage and help developers …

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 …