Showing posts from 2017

Love this from Google - Code Health: To Comment or Not to Comment?

Code Health: To Comment or Not to Comment?This is another post in our Code Health series. A version of this post originally appeared in Google bathrooms worldwide as a Google Testing on the Toilet episode. You can download a printer-friendly version to display in your office. By Dori Reuveni and Kevin Bourrillion While reading code, often there is nothing more helpful than a well-placed comment.

Migrating an existing project to a new git repo

Create a new repositoryon GitHub. To avoid errors, do not initialize the new repository withREADME, license, orgitignorefiles. You can add these files after your project has been pushed to GitHub. Open Git Bash. Change the current working directory to your local project. Initialize the local directory as a Git repository. git init Add the files in your new local repository. This stages them for the first commit. git add .# Adds the files in the local repository and stages them for commit. To unstage a file, use 'git reset HEAD YOUR-FILE'. Commit the files that you've staged in your local repository. git commit -m "First commit"

Applitools raises $8 million AI powered computer vision / JIRA gets a new exploratory testing tool

Applitools raises $8 million for its quality assurance computer vision Software testing company Applitools has raised $8 million for its technology that uses computer vision to recognize changes to websites or mobile apps like typos, missing icons, or other content. Developers using Applitools can catch mistakes or spot variations between version history or web browsers.
Tricentis reveals first JIRA testing tool, enabling agile teams feedback Tricentis has released its first exploratory testing tool for Atlassian JIRA's testing industries, enabling agile teams to keep pace with accelerated release cycles and for faster feedback on quality matters. Focusing on quality, testing times and resources, the software testing company will help agile teams reliably deliver comprehensive feedback on applications under test, whilst providing a flexible pace with constant change.

Crawler-Lib Concurrency Testing

The Crawler-Lib Concurrency Testing Helper allows to write unit tests with multiple threads to test the concurrency behavior of components. It has synchronization mechanisms to control the workflow of the threads and to record the execution steps. It is also possible to use it for client/server tests like PNUnit, but in one test. It can be used in conjunction with any unit test framework or with simply handwritten tests.It is also possible to use it for client/server tests.

Automation Testing Trends that are still valid!


Coypu - magic for Selenium

Coypu is an advanced wrapper for Selenium. Coypu supports browser automation in .Net to help make tests readable, robust, fast to write and less tightly coupled to the UI.
If your tests are littered with sleeps, retries, complex XPath expressions and IDs dug out of the source with FireBug then Coypu might help.

As coypu has evolved over a period of time, the tool understood the pain points of selenium testers, hence you don’t really have to think of
Creating browser object and working with different browsersFinding controls by complex Xpaths, CSS etc Coypu isA robust wrapper for browser automation tools on .Net, such as Selenium WebDriver that eases automating ajax-heavy websites and reduces coupling to the HTML, CSS & JSA more intuitive DSL for interacting with the browser in the way a human being would, inspired by the ruby framework Capybara -
install nuget package Install-Package Coypu visit

Git Tricks - Commit message

## I am using git. I did a pull from a remote repo and got an error message: "please enter a commit message to explain why this merge is necessary,especially if it merges an updated upstream into a topic branch."
I try to type a message and press enter but nothing happens.

It's not a Git error message, it's the editor as git uses your default editor.

To solve this:

press "i"
write your merge message
press "esc"
write ":wq"
then press enter

Haven't heard this one before - How to improve your software testing skills by following Isaac Newton's strategies

Some morning inspiration for testers!

How to improve your software testing skills by following Isaac Newton's strategies How to improve your software testing skills, by following these strategies, that's how. Based on a quick book recommendation - Isaac Newton by James Gleick I want to explain how we can learn lessons from his approach to his work and career. Isaac Newton didn't just work from contemporary materials.

How to fix .NET Framework 3.5 Error 0x800f081f in Windows 10


VS 2017 + SpecFlow + Random error + Windows10 + .Net Framework 2.0 and 3.0


The "TechTalk.SpecFlow.Tools.MsBuild.GenerateAll" task could not be loaded from the assembly ~\packages\SpecFlow.Plus.Excel.1.2.0\tools\specflow.exe.
Could not load file or assembly 'Microsoft.Build.Utilities.v3.5, Version=, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies.
The system cannot find the file specified.
Confirm that the declaration is correct, that the assembly and all its dependencies are available, and that the task contains a public class that implements Microsoft.Build.Framework.ITask


So I decided to get to specflow.exe from here

and when I double click the exe

It says that my machine is missing .NET Framework 2.0 3.0 and 3.5 in Windows 10
This particular app requires the older .NET Framework 3.0. Although the newer .NET Frameworks will try to emulate backwards compatibility, and developers can code to allow different versions, specflow insisted on hav…

Serverless Testing - AWS Lambda

Let's start with what is Serverless Framework?

Build applications comprised of microservices that run in response to events, auto-scale for you, and only charge you when they run. This lowers the total cost of maintaining your apps, enabling you to build more logic, faster.
The Serverless Framework helps you develop and deploy your AWS Lambda functions, along with the AWS infrastructure resources they require. It's a CLI that offers structure, automation and best practices out-of-the-box, allowing you to focus on building sophisticated, event-driven, serverless architectures, comprised of Functions and Events.It manages your code as well as your infrastructureIt supports multiple languages (Node.js, Python, Java, and more) AWS Lambda is a compute service that lets you run code without provisioning or managing servers. You can also build serverless applications composed of functions that are triggered by events and automatically deploy them using AWS CodePipeline and AWS CodeB…

A curated list of the free Software Testing eBooks


GitHub - Embed or add images to .md files

If you are looking to insert images in your .md file on github there is no direct way.

Here is the trick to do get an embedded image

In most cases your CDN assets do not, however, need to be version controlled. And while Amazon CloudFront or Akamai offer great CDN solutions, such approaches
(a) physically separates your repository from your images, and
(b) becomes an upload and maintenance PITA when you have a simple set of static assets.

So the summary advice is:

Do not try to add your images to the repository itself and then use a reference to a raw path.Do not worry about deploying your static images and other file attachments to Amazon CloudFront or Akamai
Click on Issues tab: Create an issue with title appropriate to the context of your images Create a new issue You can drag-n-drop 1 or more images onto the Leave a Comment box and those files will be instantly uploaded to the hidden GitHub asset manager. After each upload, GitHub will update the text the markdown link to the imag…

Continuous Integration: Patterns and Anti-Patterns

Interesting short read on:
 Continuous Integration  Patterns and Anti-Patterns  Build Management  Build Practices  Build Configuration  Testing and Code Quality

General Performance - Team / Organization

I attended a meetup this week and watched Craig Brown who is speaking at the Agile Australia this weekend, His topic was very intriguing

Ten years after adopting Agile
Here is a picture I managed to steal that speaks volumes on where an org is at in terms of performance:

Really cool - Agile Digital Transformation Roadmap

When you read every box in this diagram you can relate to the bigger picture and the transformation most companies are going through right now:

Changing CX through the UI/UXThe Customer JourneyOmniChannelDigital DiversityDiversity of touchpoints Mobile AdoptionDigital MarketingIndividualizationShadow ITSelf Service through democratizationBi-modal IT Enterprise wide horizontal self organization Enterprise AppsModernizationMainframesAPIsHypermedia & RESTNextGen SOACloud ComputingContainersMicroservicesInternet of ThingsCybersecurityAutomated GovernanceDevOpsSelf-OrganizationCI/CDDigital Business Performance ManagementSoftware defined everything(automated configuration)Enterprise ArchitectureComplex systems - scaled agileCenter of Digital EnablementSecDevOpsWeb ScaleData LakesBig Data AnalyticsMachine LearningReal time/Streaming DataSemantic TechnologiesCognitive Computing

Who visited my Confluence page?

Problem: I created this confluence page that acts as a single source of truth for the community.
I wan't sure who was reading or looking at this page.
Also helps me when I roll out comms  to make sure the right number of people and the appropriate people has seen it.

You could enable the Confluence Usage Stats plugin and you would be able to see anonymous viewing stats for all pages:

You could install the viewtracker plugin:


eBook - Continuous Delivery and Automation

Here is a really good free eBook - DevOps: Continuous Delivery and Automation
DevOps has emerged to be the “new normal” in software development, helping companies react to user feedback real-time and setting higher standards for rapid development. Since becoming a permanent topic of discussion, thought leaders, developers, and businesses have pushed to adopt the necessary DevOps tools and methodologies. In the DZone Guide to DevOps: Continuous Delivery & Automation, we explore the state of DevOps in 2017 including industry challenges, best practices, and solutions. Dive into the best mental model for implementing microservices, implementing unambiguous code requirements, best practices for microservices and containers, and Continuous Delivery anti-patterns.


RPA - Blue Prism, OpenSpan, Automation Anywhere vs UIPath

If you haven't heard of these then you have been living under a rock:

Everest Group FIT matrix for Robotic Process Automation (rpa) technology

UiPath named RPA Industry Leader; scores Best RPA Technology - Forrester. UiPath, known for unrivaled Citrix automation performance with its computer vision technology, has been recognized as an RPA industry leader in the "Forrester Wave ™ Robotic Process Automation, Q1 2017". The report compared 12 RPA vendors against criteria in the areas of: current offering; strategy and market presence.

My Technical Talk @ - Testing insights: in the fast paced technology world of apps

Or you can view on youtube @ 2016 Aditya Kalra Testing insights: in the fast paced technology world of apps SDETs are the new technical testers, reshaping industries and changing how testing can be achieved. Success in this space depends on how well and how fast you respond. Testing Insights will give you answers to what you will be looking for and where you can find in the ever changing world of app test automation.

Mock the backend using Postman

Postman has developed a new mock service to enable teams to simulate a backend server. Front-end developers can simulate each endpoint in a Postman Collection (and corresponding environment) to view the potential responses, without actually spinning up a back end. Simulate a back end with Postman's mock service Throughout the development process, delays on the front end or back end can hold up dependent teams from completing their work efficiently. Some API engineers already use Postman to work on endpoints without relying on a front-end UI to simulate API requests. Now, Postman has developed a new mock service to enable teams to simulate a backend server.

Here is also agood repository that uses postman collections demonstrating a variety of use cases for all REST and Platform Extension APIs:

Design Patterns in Test Automation

Page Object Pattern

PageObject Element Map Properties of all web elements of the page and their locatorsPage ObjectActions of the pagePage Object ValidatorValidations/Assertions on the pageTests Class Group of tests referencing the page objects, it can hold only a single instance of the page object. 

Facade Design Pattern

FacadeHolds methods that combine actions executed on multiple pagesPage Objects (ItemPage)Holds the actions that can be performed on the page like Search and Navigate. Exposes an easy access to the Page Validator though the Validate() method. PageObject Element Map Properties of all web elements of the page and their locatorsPage Object ValidatorValidations/Assertions on the pageTests Class Group of tests referencing the facade, it can hold only a single instance of the facade.

Singleton Design Pattern

Page Objects (ItemPage)Holds the actions that can be performed on the page like Search and Navigate. Exposes an easy access to the Page Validator though the Validate() meth…

Google has implemented a headless option for Chrome

New Headless Chrome With Selenium WebDriver So if you hadn't heard, Google has implemented a headless option for Chrome. This will be included from version 59, however you can download it now and a play using the Canary install. So I did just that.

Happy testing!

And I thought Machine Learning was cool..

Facebook is building brain-computer interfaces for typing and skin-hearing

Facebook is building brain-computer interfaces for typing and skin-hearing Today at F8, Facebook revealed it has a team of 60 engineers working on building a brain-computer interface that will let you type with just your mind without invasive implants. The team plans to use optical imaging to scan your brain a hundred times per second to detect you speaking silently in your head, and translate it into text.

This week - Programming Turns 70

April 12th, 1947: ENIAC, the world's first general-purpose programmable electronic computer, ran the first code written in the modern paradigm, marking the birth of computer programming as a profession.

This first test code ran computations for the hydrogen bomb.
ENIAC could perform complex coded operations like loops, seen today in languages like JavaScript, Ruby and Python.

These first professional programmers were all WOMEN, a fact that took 50 years to be recognised.
Coding ENIAC to solve a single problem would take weeks. Today, you can build a website in a matter of hours!

Apple II at 40: Explore Mac History
On April 17, 1977, the Apple II computer was unveiled. 40 years later, your browser can load and run Classic Mac OS, its successor’s operating system, in seconds.

Github wiki markdown Cheatsheet

Everyone who uses a wiki page on github needs this:

If you are looking for a quick reference to markdown while creating a wiki page , including

John Gruber's original specGithub-flavored Markdown info page.Cheatsheet specific to Markdown Here You can also check out more Markdown tools.

adam-p/markdown-here markdown-here - Google Chrome, Firefox, and Thunderbird extension that lets you write email in Markdown and render it before sending.

What is test sharding?

Test sharding allows you to evenly divide up your tests into groups. The shard index is which "percentage" group you are running.

How the groups are divided is arbitrary as the point of sharding is to parallelize your tests.
Generally used in the context of android:

Here is the code that shows test sharding for android devices:
androidtestlib/src/com/android/test/runner/ - platform/frameworks/testing - Git at Google android / platform / frameworks / testing / 2fe8aed7542ee05ce504d69656475d1948e9c5b2 / . / androidtestlib / src / com / android / test / runner /
Another example of test sharding:

Test sharding manually with ADBTest sharding using an existing framework: Spoon
Another context of where you would hear this term is mongodb:

Sharding Concepts - MongoDB Manual 3.0 Operational Segregation in MongoDB Deployments

Compare two pdf files to get the delta

Problem: Find the delta/diff between two pdf files on a windows machine


 Install WinMerge Download and install xdocdiff pluginSelect [Plugins]-[Automatic Unpacking].Unzip file.Copy xdoc2txt.exe and zlib.dll to WinMerge program folder. (Where WinMerge.exe is located)Copy amb_xdocdiffPlugin.dll to sub folder "MergePlugins".In WinMerge, go to Plugins > List and tick the "Enable Plugins" checkbox Choose Plugins > Automatic Unpacking

The best way to understand what is Machine Learning

This is probably one of the best single page website that could explain what is Machine Learning using interactive visualizations:

A visual introduction to machine learning Let's revisit the 73-m elevation boundary proposed previously to see how we can improve upon our intuition. Clearly, this requires a different perspective. By transforming our visualization into a histogram, we can better see how frequently homes appear at each elevation.
More to come on ML!

Devops Patterns and Practices

Intriguing to see what we have in each of our organizations:

Everything DevOps, Agile and Test Automation


Another reason why automation is important!

Machine Learning in the Test Automation space?

For those of you who know me I have been exploring and talking about Machine Learning a lot these days. (Blame it on one of the meetups I had been to)

Let's explore the what and how of ML:
What is it?

Machine learning is the subfield of computer science that gives computers the ability to learn without being explicitly programmed - Arthur Samuel, 1959

Evolved from the study of pattern recognition and computational learning theory in artificial intelligence, machine learning explores the study and construction of algorithms that can learn from and make predictions on data

Machine learning is the study of computer algorithms that improve automatically through experience - Tom Mitchell
In 2006, the online movie company Netflix held the first "Netflix Prize" competition to find a program to better predict user preferences and improve the accuracy on its existing Cinematch movie recommendation algorithm by at least 10%. A joint team made up of researchers from AT&T Labs-Re…