Automated testing of emails

Testing emails is a challenging task and automated testing of emails is even more challenging. A while back I wrote about one of the way to automate email testing using GMail and IMAP. This solution works, but has a huge dependency on the network and Gmail. If there is any problem in the network or if GMail is down because of any reason - test would fail.

Also, this end-to-end flow is important to test, but as far as functional testing of application is concern - it is not application's responsibility to deliver emails to the client. Application will send emails to the SMTP server and it’s the responsibility of SMTP server to ensure that emails are delivered. As long as application can send appropriate emails / messages to the SMTP server, it’s fine and that’s all we need to test.

If application is configured to use real SMTP ...

How to start using random data in manual and automated testing using TestSpicer?

Many people asked me to explain how TestSpicer works. This post will explain how TestSpicer can be used for manual or automated testing.

Let me start with manual testing.

TestSpicer for manual testing could be extremely useful for doing experiments with data. For example, if you are testing username and run out of ideas, you can quickly use TestSpicer to generate a random username. On the same lines, If you need currency, few paragraphs of text or need a big unicode string - you can get all of them @ TestSpicer. It is free and you do not need to sign up or create an account for generating random data manually. You can follow these steps

  1. Go to
  2. Click on the appropriate GET.
  3. Specify parameters if required
  4. Get the data and off you go

This will ensure that you are not using static data, even subconsciously.

Let’s see ...

TestSpicer is live now - Embrace randomness for improved effectiveness

Some of you might know that I have been working on my pet project TestSpicer for some time. TestSpicer has a long way to go, however I am happy to announce that it is live now.

So what is TestSpicer?

TestSpicer is a collection of RESTful web services which can be used to make test automation more efficient and effective.

Please have a look at this (around 4 minute long) video to understand TestSpicer.

TestSpicer is in beta and is free to use. It would be great if you can sign up, give it a spin and let me know what you think about it.

With TestSpicer , I hope to make randomisation mainstream - as it will take the pain out of data generation, logging, reporting and will provide invaluable insight on the data used by test automation. Right now I have focussed on data generation, but reporting, logging and visualisation ...

Lets add some spices to our testing

I have been thinking about randomization and test data for quite some time. If you are interested, you can find my views on randomization here. I strongly believe that testing is a sampling exercise and randomization increases sample size. If used properly, test automation would not be a repetition and will have potential to uncover something new in every run.

Despite its numerous benefits, I haven’t seen randomization used in many automation projects. This could be because of the lack of infrastructure around it. Randomization needs reliable test data generation, logging, reporting, visualization etc and often teams do not have bandwidth, motivation or skills to do it.

I wanted to solve this problem and it got me started on my project Test Spicer -

My vision for the Test Spicer is to - Increase efficiency and effectiveness of testing & test automation projects

If you would like to ...

Testing Mobile Application - Is your app hungry?

I mentioned in my previous post that I will focus on testing mobile applications and will share tips, tricks and tools which might be useful for testing mobile applications. Today I am covering a topic which is very important for the user. This feature, However, is invisible (most of the time) and is often not covered by conventional non-functional testing types (accessibility, security, performance etc..).

In my previous article I briefly mentioned that unconventional non-functional requirements are one of the main differentiator between mobile and desktop applications. Let’s explore one such requirement - Power Consumption and answer two key questions -

  1. Why it is important to test power consumption of mobile applications?
  2. How can you get insight on power consumption by the application and improve it?

Let’s get started.

Battery - If you are not careful, I will drain

We do not need any research to prove that battery life is ...

Continuous Performance Monitoring

Continuous performance Monitoring

Performance testing is an important and integral part of most testing projects. This type of testing corresponds to Q4 of the Agile testing quadrant. You can find interesting insights on the agile testing quadrants in this post by Lisa Crispin.

Usually performance testing teams are different from functional testing teams and their reports / data etc are not easily available to to the entire team. I wanted to have more visibility, integration and feedback about the performance of application - essentially I was looking for Continuous Performance Monitoring.

In this post I will discuss what is continuous performance monitoring and how useful it is to report performance trends for every build.

In my current project, I am using TeamCity as the build server. TeamCity supports custom charts for any data. I thought, It should be possible to have performance data from all the teams in a particular format and ...

Find defects to find defects quicker

This post is a combination of two things - an advise and a request. In case you are wondering, it is not complicated advise and simple request, it's a simple advise and challenging request. If you like challenges of testing web applications, you may like this challenge as well.

So let's talk about the advise first. Find defects to find defects quicker - I am sure most of us already know this, isn't it? But sometime we do need to state and explain obvious. We do it all the time in testing - we state and explain obvious defects isn't it? Well, we need to that because obvious is obviously not obvious for everyone :-)

Software testing is a skilled profession and like all the skilled professions, you get better at it with practice. However, there is a difference between doing day-to-day testing in job for many years and practicing ...

Analytic code - is it such an interesting thing?

Web applications are everywhere and most of us test them to earn our bread and butter. Broadly speaking, there are two types of web applications or websites - One which provide service and another which provide content. Web applications such as emails, facebook, bank or blogging platform provide a specific service and BBC, Times and many such sites provide content.

Irrespective of the type of web application, all of them need to understand user behaviour on the site and gather key usage pattern. One common way of doing this is with the help of analytic code. As a tester, it is important for us to understand how it works and how it can be tested. In this entry, I will discuss this in more detail and show you how iCheckWebsite can be used to test analytic code.

So what is Analytic code? Analytic code is usually a java script snippet which ...