Showing posts from 2017

Fan of the Ghostlab

Do you want to test your responsive website on every possible device but just worry about automating one.

Found a bug the front-end guys need to fix? The hassle of remembering how to do a screenshot on a particular mobile device, getting it off the device and firing up your image editor to do your annotations has finally ended:

Take a screenshot directly from within Ghostlab, annotate it in the integrated image editor and drag it to JIRA or whatever bug tracker you use. Easy as that. Works for any device.

Connect any number of browsers and devices, and Ghostlab will keep them in sync through navigating, scrolling, filling out forms and any other interaction.Get to the bottom of any CSS problem fast by inspecting any connected client. DOM modifications can be propagated to all clients – this is synchronized inspection.Ghostlab keeps track of changes to local files and refreshes them on all connected clients. If you are using preprocessors like Sass or TypeScript, Ghostlab compiles them…

Hive Mind - A mobile device monitoring and inventory application

One of the best open source contributions from BBC :
HiveMind  - device monitoring and inventory application
Hive CI  - Connect your physical devices to a hive and run your tests on the same platforms as your users Hive Scheduler - This is the hive web application for scheduling tests and viewing results
Hive Runner - This is the component that detects devices and runs the tests. You can install runners on multiple machines and they will all run tests from the scheduler and report results back in. Testmine - Testmine is an optional results engine for HiveCI. It is a seperate application that stores detailed reports of your test runs, and lets you investigate trends in test performance. Hive CI Device-centric CI

Three amigios | CI - CD - Test Automation

Architecting for CI/CD - DZone DevOps Learn how companies must change their software architecture to fully take advantage of continuous integration and delivery and implement effective DevOps.

Modern JS Cheatsheet - React and more

mbeaudru/modern-js-cheatsheet modern-js-cheatsheet - Cheatsheet for the JavaScript knowledge you will frequently encounter in modern projects.

The future of web development and perhaps Test Automation

Here is what in my opinion would be the next thing test automation tools would do:
Deep Learning + Building code just by using images as input!

Project pix2code: Generating Code from a Graphical User Interface Screenshot

Here is a demo of how it works:

Transforming a graphical user interface screenshot created by a designer into computer code is a typical task conducted by a developer in order to build customized software, websites, and mobile applications. In this paper, we show that deep learning methods can be leveraged to train a model end-to-end to automatically generate code from a single input image with over 77% of accuracy for three different platforms (i.e. iOS, Android and web-based technologies).

Official research page:

Here is the github Project:

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…