Showing posts sorted by date for query waat. Sort by relevance Show all posts
Showing posts sorted by date for query waat. Sort by relevance Show all posts

Wednesday, September 25, 2019

Analytics - The Brain of the Software



An Analogy 



I am not a doctor, nor did I enjoy biology too much in my curriculum as a student.  However, I do know that the body has many organs and each organ plays a vital role in the well being of the individual.

Each organ has to:

  • function correctly (movement, senses, core functions, etc.)
  • has to perform as per expectations in different conditions the individual may be going through (walking, running, swimming, etc.)
  • has to be secure from external parameters (heat, cold, rain, what we eat / drink, etc.)
  • has to have a proper user experience (ex: if the human hands had webs like ducks, would we be able to hold a pen correctly to write?



  • I would like to think of the brain as the super computer which keeps track of what is going on in the body, if each piece playing its part correctly, or not. And if there is something unexpected going on, then there are mechanisms of giving that feedback internally and externally so that course correction would be possible.

How does this relate to software?

Software is similar in some ways. For any software product to work, the following needs to be done:

Functionality works as expected


  • The architecture, testability of the system will allow for various types of testing activities to be performed on the software to ensure everything works as expected
  • Test Automation practices will give you quick feedback



There is a plethora of open-source and commercial tools in this space to help in this regard - the most popular open-source tools being Selenium and Appium.


Software is performant


  • We can do performance testing at various different levels to ensure at different loads and conditions, the users will be able to use the product in a seamless fashion
  • There are many tools to assist in Performance Testing - some popular ones being JMeter and Gatling.

Software is secure


  • Building and testing for security is critical as you do not want user information to be leaked or manipulated and neither do you want to allow external forces to control / manipulate your product behaviour and control
  • The Test Automation Pyramid hence also includes NFRs





User experience is validated, and consistent


  • In the age of CD (Continuous Delivery & Continuous Deployment), you need to ensure your user experience across all your software delivery means (browsers, mobile-browsers, native apps for mobiles and tablets, etc.) is consistent and users do not face the brunt of UI / look-and-feel issues in the software at the cost of new features
  • This is a relatively new domain - but there are already many tools to help in this spaces as well - the most popular one (in terms of integration, usage and features) being the AI-powered Applitools
Visual Validation is the new tip of the Test Automation Pyramid!





What is the brain of the software?

The above is all good, and known in various ways. But what is the "brain" of the software? How does one know if everything is working fine or not? Who will receive the feedback and how do we take corrective action on this?

Analytics is that piece in the Software product that functions as the brain. It keeps collecting data about each important piece of software, and provides feedback on the same.

I have come across some extreme examples of Business / Organizations who have all their eggs in one basket - in terms of

  • understand their Consumers (engagement / usage / patterns / etc.),
  • understand usage of product features, and,
  • do all revenue-related book-keeping

This is all done purely on Analytics! Hence, to say “Business runs on Analytics, and it may be OK for some product / user features to not work correctly, but Analytics should always work” - is not a myth!

What this means is Analytics is more important now, than before.

Unfortunately, Analytics is not known much to the Software Dev + Test community. We know it very superficially - and do what is required to implement it and quickly test it out. But what is analytics? Why is it important? What is the impact of this not working well? Not many think about this.

I have been testing Analytics since 2010 ... and the kind of insights I have been able to get about the product have been huge! I have been able to contribute back to the team and help build better quality software as a result.

But I have to be honest - it is painful to test Analytics. And that is why I created an open-source framework - WAAT - to help automate some of this testing activities.

I also do workshops to help people learn more about Analytics, its importance, and how they can automate this as well.

In the workshop, I do not assume anything and approach is to discuss and learn by example and practice, the following

  • How does Analytics works (for Web and Mobile)?
  • Test Analytics manually in different ways
  • Test Analytics via the final reports
  • Why some Automation strategies will work, and some WILL NOT WORK (based on my experience)!
  • We will see a demo of the Automation running for the same.
  • Time permitting, we will setup running some Automation scripts on your machine to validate the same

Takeaways from the workshop

We will learn by practicing the following:
  • What is Analytics?
  • Techniques to test analytics manually.
  • How to automate the validation of analytics, via a demo, and if time permits, run the automation from your machine as well.
Hope this post helps you understand the importance of Analytics and why you need to know more about it. Do reach out to me if you want to learn more about it.

Next upcoming Analytics workshop is in TestBash Australia 2019. Let me know if you would be interested in attending the same


Wednesday, November 28, 2018

A blog about my blog

With the risk of this ending up becoming a recursion, I want to share interesting statistics about my blog - essenceoftesting.blogspot.com and content shared on my SlideShare account.




Here are some charts from Analytics of my SlideShare and blog:

Top content from my SlideShare:




Blog Overview:



Audience:


Popular posts:





Referrers:




Monday, April 16, 2018

Essence of Testing - A new beginning

In my career so far, I have been very fortunate to have got great mentors, and a variety of opportunities to learn, add value, and share my experiences with others around me.

Here are some of these experiences:
  • Worked in various sized organisations across the globe in the past couple of decades
  • The teams have been big and small
  • Played a variety of roles - Quality Analyst, SDET (Software Development Engineer in Test), Product Quality Engineer (PQE), Automation Engineer, Consultant, Coach, Project Manager, Director - Quality, Support Engineer, etc.
  • Worked with teams having products in different domains - Health care, eCommerce, Banking / Finance, Retail, Entertainment (OTT), Research, etc. 
  • With in organisations (B2B and B2C space): WebMD, Borland Software, Microsoft (Redmond, USA), AmberPoint (USA / India), ThoughtWorks, Vuclip 
  • Shared experiences with other via Meetups and Conferences world-wide
  • Created opensource tools like WAAT, TTA, TaaS
After working as an employee in these organisations for almost a couple of decades now, I have taken a plunge to do something different.


I am now looking forward to work with Organisations and Teams, to help co-create optimized solutions towards shipping a quality product. Leave me a message on my blog, or send me an email at abagmar@gmail.com to talk more on how we can work together!


As part of this journey, even before I was able to buy my own laptop, and warm it up, I got an interesting consulting assignment, thanks to a dear friend.
This assignment was exactly what I needed to get started - it was a Discovery Workshop, with the following objective:
  • Learn and understand the current state of the team and the product they were building
  • Understand current (perceived) challenges
  • Suggest improvements for the team in areas of:
    • Tweaks in the current processes
    • Practices to be adopted / got better at / or stopped (as anti-patterns and not adding value)
    • Identify opportunities to Test better, and early
    • Suggest a Test Automation Pyramid that is fit-for-purpose for the team
    • Suggest strategy, tools and approach for end-2-end (e2e) functional automation

As I usually do, I started off the workshop with my favorite tool for note taking - Mind Maps! As the conversations evolved and got specific, I started with a Balanced Mind-Map  to Fishbone Mind-Map.




Eventually I consolidated my thoughts and created the Discovery Workshop Report for the client in the form of a slide deck, using the following approach.


  • Learning from Discovery
    • Talk with the Team members
    • See & understand the project management tool, quality of requirements, etc.
    • See the code - understand complexity, types of tests written, quality of tests, etc.
    • See the Testing related artifacts - test cases, test execution strategy, exploratory testing, etc.
    • See the CI server - how deployments happen, what causes the builds to fail, etc.
  • Recommendations
    • For all the above areas, I created recommendations on what different aspects may help the team move ahead in a better way
Discovery and Recommendations were based on each specific activity:
    • Process
    • Architecture
    • Requirements
    • Development
    • Testing
    • Deployments

Once the learning from the Learning and Recommendation stages were well understood (by me), I then created a Suggested Plan of Execution (in phases / milestones)
  • From the recommendations, I created milestone based plans on what can be started immediately, and what decisions the team needs to take to move forward in other areas

In this 2 week time, unknowingly, in retrospect, the whole engagement was quite agile. There were periodic demos of the POCs, regular progress sharing, and changing direction of discovery and recommendations based on learning.

The Client also appreciated the quality of conversations, and the results that were shared.

All in all, a very satisfying beginning to my new journey with Essence of Testing!


Tuesday, September 13, 2016

Slides from vodQA Pune - Less Talk, Only Action! now available

vodQA-Pune - Less Talk, Only Action! was held on on Saturday, 27th Aug 2016, 8.30am - 5.30pm at ThoughtWorks, Pune.

Agenda



Abstracts with Slides

1. Automating Web Analytics - Why? How?

Do you know –

  • What is Web Analytics?How does Web Analytics work?
  • Why is it important? How to test Web Analytics?
  • How can we ensure correct data is sent to the Web Analytics server, every time, for all the actions?

Attend this workshop to learn ‘What is Web Analytics?’ and why it is an extremely important aspect of Software Development & Testing for your product / service to succeed!

We will share some techniques for testing Web Analytics - in a non-automated way - and why that is very challenging and error-prone.

We will learn, via hands-on activity, about WAAT - Web Analytics Automation Testing Framework (https://essenceoftesting.blogspot.com/search/label/waat) - an open-source solution, to automate validation of correct information / tags being sent to the Web Analytic server for different user actions as part of your regular Selenium-WebDriver Test Automation Framework.

Lastly, we will see how the impact of Analytics has changed dramatically with more adoption and spread of IoT (Internet of Things) and Big Data, and what we need to do to be part of the change, if not influencers of change!

Slides: automating-web-analytics


2. Performance testing with Gatling for Beginners

Gatling is a server side performance testing tool. This workshop aims at giving introduction to Gatling and facilitating participants to write their first performance tests using Gatling.
  • Brief intro to Gatling
  • Using Postman to check stub server(created using mountebank for workshop)
  • Write a sample test using gatling (pre set up machines are provided)

Slides: gatling-performance-workshop

3. Game of Test Automation

We are going to use a game to work out the WHY, WHAT and HOW of test automation within the context of consumers, application, skillset, mindset, etc.

4. Security Testing - Operation Vijay

It is now the days of the web. All businesses move their applications online for their customers to use.

Many of these applications contain critical data of the customers such as credit card details, their personal details and so on. These data are very valuable. If these data fall in the wrong hands, they can have disastrous consequences.

Attacks on these systems can destroy the trust that the customers have for the business, they can cause great losses to the customers as well as the business, and so on.

The motivation behind attacks could be different like earning money, earning popularity, destroying a competitor company, etc.

No matter what the intention of the attack is, we need to develop safe applications and we need to know the various vulnerabilities and the consequences of our decisions when we develop applications.

Similarly, we should be aware of the various vulnerabilities before we test the applications so that we can try and exploit it during the testing phase and ensure better quality and safer applications.

Slides: security-testing-operation-vijay

5. Automate your Mobile tests with Appium

  • Introduction to Appium.
  • Appium design for Android and iOS
  • How to locate elements on android and iOS applications(Inspector).
  • Hands-on code snippet for android and iOS(Wordpress as sample app)
  • Generating reports (ExtentReports)
  • Evolve code snippet written above into a Page Object Framework.
Slides: mobile-automation-using-appium

6. Increase Automation to REST

  • What are web services and why we use them?
  • How to test a web service in multiple ways?
  • Increased familiarity with automation

Tools used : rest client, postman (mention alternatives), unirest JAVA and requests python

Slides: increase-automation-to-rest, api-webservice-setup-instructions

7. Let's cook Cucumber

In this workshop we will be covering:
  • Advantages of BDD through cucumber example.
  • Framework setup along with JAVA and Selenium.
  • Writing one end to end test case in real world.
  • If time permits - will be covering basic Refactoring
Slides: lets-cook-cucumber
 

8. Mobile Automation using Espresso

Imagine a situation where every commit spits out a build that can be deployed to production with confidence. In today's startup era, this can be a huge boost to business as it will reduce the time to market. UI Automation for mobile apps, be it native or hybrid, has been painful since long. But with mature frameworks coming up and Google/Apple realizing the importance of such tools, UI Automation is gaining traction in the mobile space. 

This talk is basically to understand what and why of espresso along with automating a simple scenario using espresso.

Slides: getting-high-on-espresso

Friday, September 2, 2016

WAAT 2.0 (BETA) available for use

Very excited to share that I, along with a few collaborators of WAAT did a workshop in vodQA, Pune on Sat, 27th Aug about Automating Web Analytics - Why? How?
We implemented the automation using WAAT.

Also, am very excited to announce that WAAT v2.0 BETA for Java is now available from the WAAT project.

The slides from the workshop are available here



Here are some details of the workshop:

Abstract

Do you know –
What is Web Analytics?
How does Web Analytics work?
Why is it important? How to test Web Analytics?
How can we ensure correct data is sent to the Web Analytics server, every time, for all the actions?
Attend this workshop to learn ‘What is Web Analytics?’ and why it is an extremely important aspect of Software Development & Testing for your product / service to succeed!
 
We will share some techniques for testing Web Analytics - in a non-automated way - and why that is very challenging and error-prone.
 
We will learn, via hands-on activity, about WAAT - Web Analytics Automation Testing Framework (https://essenceoftesting.blogspot.com/search/label/waat) - an open-source solution, to automate validation of correct information / tags being sent to the Web Analytic server for different user actions as part of your regular Selenium-WebDriver Test Automation Framework.
 
Lastly, we will see how the impact of Analytics has changed dramatically with more adoption and spread of IoT (Internet of Things) and Big Data, and what we need to do to be part of the change, if not influencers of change!

Pre-Reqs

  • JDK 1.8
  • IDE (Eclipse / IntelliJ Idea / etc.)
  • Git (and add it to path)
  • Gradle 2.3 (and add it to path)
  • Firefox browser compatible with Selenium v2.53.1 (v46)
  • Also refer here for steps to run Appium tests using WAAT 

 

Sample Code

- Create a directory WAAT-Workshop and run
git clone git@github.com:anandbagmar/waat-sample-java.git
- If Using any existing framework: download WAAT-all-v2.0_BETA.jar
http://goo.gl/8bfyaJ
- To run sample code - from waat-sample-java directory - run the command -
gradle clean build 

Please reach out if you need help in using WAAT!

Monday, August 22, 2016

vodQA Pune - Less Talk, Only Action - Agenda, Abstract and workshop pre-requisites

vodQA-Pune - Less Talk, Only Action!

When? - Saturday, 27th Aug 2016, 8.30am - 5.30pm


Where? 

ThoughtWorks, Pune 
6th Floor, Binarius Building, 
Beside Sales Tax Office, Shastrinagar, Yerawada 
Pune, Maharashtra 411006 

Map: http://goo.gl/maps/KfuJG


What?

vodQA Pune - Less Talk, Only Action! 
- Registration - 8.30am- 9.15am
- Welcome note - 9.15am


Agenda


Abstracts


1. Automating Web Analytics - Why? How?

Do you know –
What is Web Analytics?
How does Web Analytics work?
Why is it important? How to test Web Analytics?
How can we ensure correct data is sent to the Web Analytics server, every time, for all the actions?


Attend this workshop to learn ‘What is Web Analytics?’ and why it is an extremely important aspect of Software Development & Testing for your product / service to succeed!


We will share some techniques for testing Web Analytics - in a non-automated way - and why that is very challenging and error-prone.


We will learn, via hands-on activity, about WAAT - Web Analytics Automation Testing Framework (https://essenceoftesting.blogspot.com/search/label/waat) - an open-source solution, to automate validation of correct information / tags being sent to the Web Analytic server for different user actions as part of your regular Selenium-WebDriver Test Automation Framework.


Lastly, we will see how the impact of Analytics has changed dramatically with more adoption and spread of IoT (Internet of Things) and Big Data, and what we need to do to be part of the change, if not influencers of change!

Pre-Reqs:

  • JDK 1.8
  • IDE (Eclipse / IntelliJ Idea / etc.)
  • Git
  • Firefox browser compatible with Selenium v2.53.1 (v46)
  • Also refer here for steps to run Appium tests using WAAT

2. Performance testing with Gatling for Beginners

Gatling is a server side performance testing tool. This workshop aims at giving introduction to Gatling and facilitating participants to write their first performance tests using Gatling.
> Brief intro to Gatling
> Using Postman to check stub server(created using mountebank for workshop)
> Write a sample test using gatling (pre set up machines are provided)

Pre-Reqs:
  • Participants should know at least one programming language well (Gatling tests are written in Scala. But participants need not know Scala)
  • Prior knowledge of what 'Performance testing is?' would help.

System requirements:

  • Homebrew (Package Manager for Mac)
  • Java 8
  • Gradle
  • Intellij IDE(Add Scala plug in)


3. Game of Test Automation

We are going to use a game to work out the WHY, WHAT and HOW of test automation within the context of consumers, application, skillset, mindset, etc.

Pre-Reqs: None


4. Security Testing - Operation Vijay

It is now the days of the web. All businesses move their applications online for their customers to use.
Many of these applications contain critical data of the customers such as credit card details, their personal details and so on. These data are very valuable. If these data fall in the wrong hands, they can have disastrous consequences.
Attacks on these systems can destroy the trust that the customers have for the business, they can cause great losses to the customers as well as the business, and so on.
The motivation behind attacks could be different like earning money, earning popularity, destroying a competitor company, etc.
No matter what the intention of the attack is, we need to develop safe applications and we need to know the various vulnerabilities and the consequences of our decisions when we develop applications.
Similarly, we should be aware of the various vulnerabilities before we test the applications so that we can try and exploit it during the testing phase and ensure better quality and safer applications.

Pre-Reqs:
  • Java
  • Modern Browser like Firefox/Chrome



5. Automate your Mobile tests with Appium

Introduction to Appium.
Appium design for Android and iOS
How to locate elements on android and iOS applications(Inspector).
Hands-on code snippet for android and iOS(Wordpress as sample app)
Generating reports (ExtentReports)
Evolve code snippet written above into a Page Object Framework.

Pre-Reqs:
  • IntelliJ
  • Java 1.8
  • MAVEN
  • Node
  • Adb - android debug bridge
  • Appium installed through node(npm install -g appium). Once the installation goes well. Hit command “appium” without quote and you should see Welcome message from appium.
  • Download & install Virtual Box from here
  • Download the basic version on Genymotion Android Emulator from here
    • Make sure you chose the basic version which is free for use(Go to individual tab).
    • You will be asked to create account with Genymotion before downloading the Genymotion package/installer
    • Confirm your account by pressing the link sent to your registered email id
    • Once you download, install Genymotion Android Emulator by following the instructions here
    • Once you install, open/start Genymotion and click on Add(+) link to add a new virtual device and press Signin and login
    • Select Android Version 6.0.0 and Device model Google Nexus 5 or 6. For more details follow the instruction mentioned here
    • Select from available option, Press Next and wait till download finishes.
    • Press start button & you should see emulator running.


6. Increase Automation to REST


What are web services and why we use them?
How to test a web service in multiple ways?
Increased familiarity with automation
Tools used : rest client, postman (mention alternatives), unirest JAVA and requests python

Pre-Reqs:
  • IntelliJ
  • MAVEN
  • CHROME and POSTMAN

7. Let's cook Cucumber


In this workshop we will be covering:
  • Advantages of BDD through cucumber example.
  • Framework setup along with JAVA and Selenium.
  • Writing one end to end test case in real world.
  • If time permits - will be covering basic Refactoring

Pre-Reqs:

  • IntelliJ
  • Java 1.8
  • Maven
  • Firefox 46

8. Mobile Automation using Espresso

Pre-Reqs:
  • Ensure you have Java 7 or beyond, installed on your box. If not you can download it from here 
  • Download & install Virtual Box from here
  • Download and install Android Studio from here
  • Also kindly download the android command line tools from the above link.
  • If you open android studio, it will ask you download & setup Android API and build tools which is useful for debug & compile our apps so please follow the steps. Ensure you have following things installed before you come for workshop and downloading it takes lot of time. 
    • Android SDK build-tools v23.0
    • Android API 5.0 or above
    • Install Android Support library from Extras. 
    • Please google in case of any issues while installing SDK
  • Download the basic version on Genymotion Android Emulator from here
    • Make sure you chose the basic version which is free for use(Go to individual tab).
    • You will be asked to create account with Genymotion before downloading the Genymotion package/installer
    • Confirm your account by pressing the link sent to your registered email id
    • Once you download, install Genymotion Android Emulator by following the instructions here
    • Once you install, open/start Genymotion and click on Add(+) link to add a new virtual device and press Signin and login 
    • Select Android Version 6.0.0 and Device model Google Nexus 5 or 6. For more details follow the instruction mentioned here
    • Select from available option, Press Next and wait till download finishes.
    • Press start button & you should see emulator running.
    • You’re all set for the event. ðŸ˜ƒ