Posts

AWS in Plain English!

Image
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
http://www.linode.com","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

Image
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: https://github.com/AdyKalra/MachineLearningHousing/tree/master/house_prices#house-prices
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

Image
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

Image
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?

Image
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 https://github.com/facebook/infer
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…