Monday, November 21, 2016

Shared (relatively less) pain of using Protractor in SeConf London 2016

On 15th Nov 2016, I spoke in Selenium Conference London 2016 on the topic - "Sharing the 'pain' of using Protractor & WebDriver". This time, the pain was less - as I had already shared this in Selenium Conference India 2016. From that experience, and lot of interactions, I worked on some of the challenges I was facing and implemented good solutions for the same.

So this time it was easier.

The interesting challenge though was when the A/V stopped working after the 1st slide - and had to do on-the-spot improv to keep the ball rolling and prevent delays in subsequent talks. To know more about the fun I had, watch the video linked below :)

You will find the abstract, slides and video of the talk:

Abstract



There is a saying ..."Sukh baatne se badhta hai, dukh baatne se kam hota hai", translated as - "happiness increases & sadness reduces on sharing with others".

We want to take this opportunity to share with our experiences - the good and the bad, in the journey of building a Test Automation framework for an AngularJS based application.

We will learn, by a case study, what thought process we applied on the given context (product, team, skills, capabilities, long term vision) to come up with an appropriate Test Automation Strategy. This Test Automation strategy covered all aspects of Test Automation - Unit, Integration, UI - i.e. End-2-End tests (E2E).

Next, we will share how we went about narrowing-down, and eventually selecting a specific Tech Stack + Tools (Javascript / Jasmine / Protractor / Selenium-WebDriver) to accomplish the Test Automation for the product.
 

Lastly, we will share the challenges that came up in the implementation of the Test Automation, and how we overcame them. This will also include how we managed to get the tests running in Jenkins - a Continuous Integration tool.

This discussion is applicable to all team members who are working on Test Automation!

P.S. We will be attempting to make a sample protractor-based automation framework available on github for anyone to use as a starting point for setting up protractor-based Test Automation framework.

Slides

 



Thursday, October 6, 2016

Recording video of test execution via Protractor

Recently I came across a use case of recording the video of the test execution in my CI environment - where tests run in headless mode). 

My thought was - record video of the test execution in CI - save it if test failed, else discard it.

Below are some resources I came across for potentially implementing this - 



Unfortunately for me - due to some other infrastructure constraints - this got de-prioritized. But hopefully I will be getting back to this soon.

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

Monday, September 12, 2016

Agile Testing & Patterns in Test Automation Framework coming to Singapore

I will be doing a 1-day workshop on Agile Testing and also a talk on "Patterns of a Good Test Automation Framework" as part of Unicom's World Conference Next Gen Testing Summit on Oct 13-14 2016 in Singapore.

See the site for more details, or contact me for more information on the same.


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. ðŸ˜ƒ

Thursday, August 18, 2016

Agenda published for vodQA Pune - Less Talk, Only Action!

The agenda for the upcoming vodQA Pune - Less Talk, Only Action! is now published.


NOTE: For this event, we will require the participants to get their laptops (and chargers).


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


Topics covered: 

This vodQA will focus on hands-on activities. We are setting up a bunch of workshops for participants, please keep a watch for details and pre-requisites required for the workshops.

We will publish the agenda very soon in vodQA groups on 
Facebook (https://www.facebook.com/groups/vodqa/) and 
LinkedIn (https://www.linkedin.com/groups/4281359)

NOTE: For this event, we will require the participants to get their laptops (and chargers).

Tuesday, August 9, 2016

Sharing the pain in Automating with Protractor & WebDriver

As mentioned in my earlier post titled "Taking Protractor to the next level", on 25th June 2016, Nikitha Iyer and I spoke in Selenium Conference 2016, Bangalore, India on "Sharing the pain in Automating with Protractor & WebDriver".

The video is finally available and I am now able to share (see below) all the details of the talk from one post.



Abstract

There is a saying ..."Sukh baatne se badhta hai, dukh baatne se kam hota hai", translated as - "happiness increases & sadness reduces on sharing with others".

We want to take this opportunity to share with our experiences - the good and the bad, in the journey of building a Test Automation framework for an AngularJS based application. 

We will learn, by a case study, what thought process we applied on the given context (product, team, skills, capabilities, long term vision) to come up with an appropriate Test Automation Strategy. This Test Automation strategy covered all aspects of Test Automation - Unit, Integration, UI - i.e. End-2-End tests (E2E).

Next, we will share how we went about narrowing-down, and eventually selecting a specific Tech Stack + Tools (Javascript / Jasmine / Protractor / Selenium-WebDriver) to accomplish the Test Automation for the product.

Lastly, we will share the challenges that came up in the implementation of the Test Automation, and how we overcame them. This will also include how we managed to get the tests running in Jenkins - a Continuous Integration tool. 
This discussion is applicable to all team members who are working on Test Automation!

P.S. We will be attempting to make a sample protractor-based automation framework available on github for anyone to use as a starting point for setting up protractor-based Test Automation framework.


Slides




Video