Testing a Web Application Using Selenium IDE – A Simple Approach!


This tutorial is a guide to creating a Google App Engine Web Application and testing it using Selenium IDE. Once the basics of using the Selenium commands are understood, many other test cases can be designed in a similar way. The focus is also given on how can one easily create a Google App Engine Application.

Please download the supporting files towards the end of this post.

Additionally, Let’s understand how software testing can be really important.

Every day, we use many applications that have become part of our lives may it be to track the calorie intake, the number of steps we walk, send emails etc. It is really very important that such applications should always perform accurately and as expected. Otherwise, the credibility of such application can be compromised.

The reason for which our routine applications could deliver us seamlessly without failing to perform as per our necessities is because of the level of quality they are able to maintain by effective testing of the application before releasing it in the market.

For example, Imagine that one is using a mobile app to control an electrical appliance and the mobile app is not tested well before it is handed over to the user and it turns the appliance “OFF” when the user clicks on “ON” and vice versa. This can be miserable if someone is controlling the appliance from a remote location and relying on the application, without knowing what exactly is happening. Fixing this issue after the application is in the market can be expensive in terms of all aspects.

Therefore, it is very important to verify and validate the system against its responsibilities and performance to help reduce future risks. In brief, this process is nothing but “Software Testing”.

Testing verifies that the system meets the different requirements such as functional, performance, security and so on. This verification is done to ensure that we are building the system right.

Additionally, the software validation ensures that the system that is being developed is actually what the user needs.

This eventually helps improve the quality of the product and can reduce the post-release cost of the service and support and there shall be opportunities to increase the revenue.

Supporting files mentioned in the Tutorial:
1. Booths Algorithm Java File

2. HTML File

3. Selenium IDE Add on for Mozilla Firefox (Click Here)

Understanding the Power of “Now”!

Let me begin with a great quote:

“Happiness is not something you postpone for the future; it is something you design for the present. ”

Indeed a fascinating quote!

We often read and hear “Stay in Present”. Have you ever wondered how energized one can feel if one follows this simple statement? Ironically, it is sometimes not simple to follow the simplicity. According to me, the statement “Stay in Present” can really be a broad term. We all know that it is neither possible to go into the past nor into the future which is the law of nature. That means actually we are always living in the present. Yet, we get the best pieces of advice from the best mentors in the world that one should learn to live in the “Present”. Why exactly?

Let’s Understand.

What exactly is living in the “Present”?

To be precise, one should be able to understand and differentiate between the two concepts: “Staying in Present Physically” and “Staying in Present Mentally”.

We all follow the law of nature which is “Living in Present Physically” but sometimes it is not understood that “Staying in Present Mentally” is the accurate meaning of the term “Living in Present”.

How should one assess that one is able to “Stay in Present”? According to me, when we are living in the present moment, the questions like what could have happened? or what will happen? never flash into one’s mind. Living in the moment is truly essential to be happy and get your tasks done.

It is rightly said, to fulfill one’s dreams and desires, it is important to understand the power of “Now” and accomplish the tasks in the present moment that would help you achieve your dreams. Because it is only “Now” that could build your “Next”, hence to be happy, never postpone it for the future rather design it in the present to get the foundation built for your dreams to fulfill.

AI Chatbots – Can they transform user experience?


Over a few months, the term chatbots have gained overwhelming popularity and are at the forefront.

The enthusiasts of Artificial Intelligence are very well known about the “Turing Test” which is understood to be the criterion for intelligence. In Turing Test, “if the human being conducting the test is unable to consistently determine whether an answer has been given by a computer or by another human being, then the computer is considered to have ‘passed’ the test.” This test was not passed in a satisfying manner by most of the AI systems.

But chatbots have been successful in passing the Turing Test!!!

So, how chatbots can transform the user experience?

Let me explain with an example:

Consider a scenario, where we need some information about the documents required for getting a driving license. Most of the times the information is displayed on respective websites. But still contacting an official is considered to be a better option in order to avoid multiple visits due to one or the another reason. Sometimes, many people have the same questions and even for any official to answer the routine questions can be time-consuming. This is where chatbots can help. Chatbots can address multiple people at the same time, answering their routine questions. If they are programmed well they could avoid multiple visits for the people thereby making the process less tedious and faster.


To explain in brief, chatbots are the computer programs that are designed to convincingly simulate how a human would behave as a conversational partner. These systems are generally used in dialog systems for various practical purposes such as customer service or information acquisition. Some chatbots also use Natural Language Processing Systems.


Chatbots can help improve the customer service of any business by providing immediate customer support, carrying out a specialized task, increasing sales and seamless mobile experience. Additionally, they can also find a place in education systems where they can be used as a tutoring resource for students and also would be helpful to answer routine questions while freeing up time for humans.

Chatbots can be helpful for many reasons. Many people already use messaging apps and they are pervasive. Besides, chatbot contents are easy to read as they are short and to the point. Moreover, they work perfectly in low bandwidth because they are short and text-based messages and don’t require high-speed internet.

At the top, taking into consideration different features and technical advantages of chatbots, it can be understood beyond doubt that it can be a beginning of the AI revolution and can indeed transform the user experience to the great extent!

(Image Source: www.scrapesentry.com)

Executing Long Running Tasks in Google App Engine – How to do it?

Most of the times a question flashes into the mind of the developers especially those who work on the Google Cloud Platform:

What if I am using Google App Engine Platform as a Service and will be having long running tasks that should run in the background for hours or maybe even days, is it possible?

Yes, it is possible. The answer is: use the “Task Queues”, one of the most laudable features provided by Google App Engine. But when hosted in the production, many types of unexpected problems arise with respect to long running tasks in task queues, which if not addressed, there may be a surprising behavior of the application in the production. Towards the end, we will be quickly discussing the different configurations required for respective application-specific requirements which are necessary for a long running task to run in the task queue.

Before going towards the discussion, let me quickly brief what is Google App Engine and what are Task Queues?

Google App Engine:

Google App Engine (most commonly referred as GAE) is a platform for building scalable web applications and mobile backends. It offers different features for web applications such as Automated Security Scanning for detecting web vulnerabilities, supports popular development tools such as Eclipse, IntelliJ, Maven, Git, Jenkins and PyCharm which makes developing on GAE developer friendly.

Moreover, features like User Authentication using Google Accounts, NoSQL Datastore, Memcache and Task Queues make GAE incomparable.

Therefore, it is most commonly preferred for developing web applications hosted on Google Cloud Platform.

GAE Task Queues:

Sometimes, there might be a scenario where a user takes a particular action on the web application and that task could be run outside of the user’s request which can be executed later.

For example, if a user wants to upload an “online” file to the web application, the user can provide just the link of the file to be uploaded and instead of waiting for the file to upload and prevent itself from performing other tasks on the application, user can return anytime later to check the progress of the upload. Here, the upload task is assigned to a task in task queue which runs asynchronously outside the user’s request and completes the task. Thus, the user can perform other tasks on the web application while the upload job will still be in progress in the background.

In this way, Task queues can help us to carry out important tasks that can be executed in the background.

Coming to the topic, let us proceed towards the discussion on how to run long running tasks in task queues and what configurations prevent the tasks to do so in production?

Let’s understand some very important information for achieving this:

Often times, the application behaves exactly as expected in the development server, but when on the production server there are chances that most of the features of the application does not work or does not yield as expected. This is because when we deploy the application on the cloud, we actually use the cloud resources and configurations that might be different from the development server. These resources and configurations can be configured by understanding the different cloud instances that are offered by the cloud service provider which are generally well described in their documentation along with the respective costs.

GAE offers two types of instance configurations, Frontend instances, and Backend Instances. As the names describe, the frontend instances are used to compute the operations that are carried out at the end-user level. The backend instances perform the computations in the background.

By default, when we first deploy our application to the GAE without editing the app-engine.XML (The application configuration file), the instance allocated is the most basic Frontend Instance. Beyond doubt, each instance is associated with respective prices.

As discussed above, scaling is the most promising feature of Google App Engine. Thereby, each instance can be configured with appropriate scaling. There are three types of scaling offered by the GAE, namely, Automatic Scaling, Basic Scaling and Manual Scaling. The configuration of scaling options can considerably affect the cost of running the application.

As the default instance is a Frontend instance, the default scaling is Automatic Scaling as per the documentation. This is where the concern for running long task in the task queue rises. How?

As per the official documentation, in Automatic Scaling, a task in a task queue can run maximum for 10 minutes. Thus, if there are tasks that can execute within the 10-minute deadline, this type of scaling would not create many problems. But we are talking about the long-running tasks that exceed the 10-minute deadline. So, how to make it work?

Indeed, automatic scaling would not help, we can switch to basic scaling or manual scaling. But while using Frontend instance, only automatic scaling is allowed. Therefore, it is also necessary to use Backend instance instead of Frontend instance.

Now, when used Backend instance, configure the app to use basic or manual scaling. For more information on scaling types and other information, please visit the official GAE documentation. (Link)

With the configuration of Backend instance and a Manual or Basic scaling, there are no restrictions for tasks to execute in 10 minutes deadline, instead, a task can run in the background until it completes its execution. However, using basic scaling would be preferred to control costs if there is no need to complex initializations and relying on state of instance’s memory over time.

Final Words:

While using different features of the Google App Engine, it must be noted that the behavior of the application is different on the development server and production server. Thus, before making a release, the application should be well tested for every feature on the Production Server.