Monday 21 October 2013

Is Testing a easy job? I don't think so!!!

Welcome back Readers!

Today I am back with an interesting topic. Well, I am asked or told many times that Testing is an easy job. Which always been a good discussion with lots of arguments. Why not discuss on this today?

Many times I am asked by freshers if Software Testing is a easy job and can be used as a stepping stone to get into IT market. Lot of time I am told by Developers that Testers do an easy job and it don't need much of effort or knowledge to accomplish this job. Sometime this questions disappoint me. But all the time I feel happy to explain the questioner what it really takes to do a proper Testing.

It takes a few skills for someone to become the one good Tester. Lets discuss them one by one.

1. Tester needs great Analytical skills.

Analysis is a key for Testing. How a product works? Why we might be getting this problem? How can we fix this issue with minimum efforts? This type of questions can only be answered if a Tester have a good analytical skill and can find a solution fast.

2. A Tester needs to have Attention to Details quality.

Finding a problem from something which seems to be working fine is not an easy task. Sometime Tester needs to foresee scenarios which no one else might have thought or have might have observed. They need to keep eye on every small details and find out there impacts on business. One with a proper attention to detail can perform a good testing.

3. Tester should have great patience.

Testing or Checking or Verifying something repeatedly sometimes takes the most out of a Tester. Testing and finding defects on something that everyone  believes is working fine is also a quality. It takes a great level of patience to do that.

4. Tester should have good communication skills.

Communicating own thoughts or observations Verbally or in Written is important for a Tester. If a Tester can't explain a problem or a issue or observation to others then they can't understand its importance properly. Hence a good communication skill is important for a Tester.

5. Tester should have the guts to question anyone.

Sometime Tester needs to clarify own doubts from Developers, Managers, Clients etc. In some cases they need to ask silly questions or questions to someone who is quite senior to us or out of our team. But for a better understanding a Tester need to ask questions and clarify the required doubts.

6.  Tester should be able to stand for what is right.

Sometimes in Testing career Testers are questioned on some of their statements as they might be contradicting someone. When you know you are right you need to stand for it and need to explain the other person why you came to this conclusion and whats the base of the observation. If the Tester is not right he should also be humble enough to accept the mistake.

7. A Tester should know how to play with the application through Automation (when required).

Sometime Tester uses automation tools to help him/ herself with the Testing. Automation is not something that is mandatory, but its always good to have knowledge on this to apply it during Testing to make Testing more effective.

8. Tester should have knowledge on how Programming Languages or Scripts works.

A Tester who have knowledge on how any programming language or script works can analyse any issue in application technically and on developers prospective. Which helps Tester to find a root cause more efficiently. This also helps a Tester to apply this knowledge on Automation tools.

9. Tester should have knowledge on how a database works and how to write efficient queries.

Learning how a data from front end goes to backend and how is it stored is important. How to retrieve the data saved to check if proper data is saved and in proper format can be done by Tester effectively if a he/ she knows the concept of database and queries.

10. A Tester should be a continuous learner and should always keep him/ herself updated with technology and trends.

Learning something and stopping is not a choice of a good tester. A good Tester always keeps him/ herself updated with the latest technologies, testing world etc. This helps a Tester to perform an effective Testing.

11. Tester should have good networking with fellow Testers and keep gaining knowledge from other's work.

Networking is an important aspect in a Testers life. They connects with other Testers and try to learn from their experience and their testing process.

I must have missed a few more points above. But does it look simple to get there?

Lets see what do we mean by covering Testing. As I think Testing can be done on everything. But being on IT side I would like to list down a few Testing that is generally done on an ideal product or application.

1. Functional Testing.

2. Performance Testing.

3. Security Testing.

4 .ETL or Database Testing.

5. Hardware Testing.

6. Mobile Testing.

7. Functional Testing using Automation Tools.

And this list will go on.

Based on the above facts if job of a Tester is evaluated, it is very clear that there are quite a few unique skills that a Tester needs to have. Testing is quite a vast field and its not about just testing the functionality of an application. It goes far in depth and may be never ending if done thoroughly.

Hence Testing is not a easy job or it should not be taken as a stepping stone to career in IT. Its one of the prestigious career now and carries equal importance as any other career options available.

Please share your thoughts and feedback on this discussion or blog post.

Till the next post, Happy Testing!!!

Sunday 20 October 2013

Tester is a bridge between Team and Client, which is built on Quality!!!

Hi Readers.

I am back with a a new thought today. Lets discuss on this.

I have always admired thought of my clients and like to discuss on Testing with them. The business user or client are the one who the application is being built for and they are the best folks, who can explain us how its going to be used.

Tester are the person who knows the most about the functionality of the application after user. When a Tester takes application knowledge from the client, he/ she actually learns, how the application is going to be used when it goes live. And that knowledge helps tester to test the application better.

Let me share an example with you. It was a time when I joined a new company. As a normal practice I started observing and discussing with user about application usage. While observing, I found that user prefers to use tabs and spaces while going through fields of the application. In the new build there were few new business critical screens added for the new release. Hence, while testing the application I found that with functionality bugs there was also a defect that the tabs of the new screen fields are not set properly. Hence I logged this issue as a a high priority defect along with other defects. But on application release this issue was ignored, as it was categorized as low severity design defect. When the application was used by the client on production, they found it difficult to use as this slowed down their productivity and we ended up doing an emergency release to fix this issue.

The above issue reflects the need of understanding users mind and requirement. This is a very simple example. But in actual, user knowledge on the application is far more critical and important, which is crucial for tester to understand.

User or client has been my best teacher in my testing career. I keep my product knowledge updated with the help of client. I like to observe client working on the application or listen to user, when he/ she explains about the application and their expectation from the application. Its my regular practice to keep my domain knowledge updated to help the client to best of my ability. In one way, I can say that I try to become a real user while Testing the application.

User is the final Tester of the application. And like one of my manager (thanks to Mr. Eric) told me once, "Tester is a bridge between Team and Client, which is built on Quality", its our responsibility to give a quality product to the user. And as per my view, this is one of the best way to assure that user gets a Quality Product.

What do you say friends? I would like to know your views and ideas on this.

With this I sign off today. Until the next blog post, Happy Testing!!!

Friday 18 October 2013

Time v/s Test Coverage

Hi Readers,

Its good to be back after so many days!

Today I want to discuss something on a common problem in Testing world. Time v/s Test Coverage. I am sure every Tester comes across this situation in his career.

Its very obvious that a proper testing needs a proper time. But sometime the user needs the product earlier then even the user expected. What do we do on such cases? We can't handover a buggy application to the user!

In my Testing Life the following is what I have observed and have followed:

1. Test the application as much as possible.

You are a Tester. You don't let the application be buggy when it reaches Customer, even if you have less time. Give your best and test the application as much as possible. As a Tester we always believe that this application till have defects. Then this is the time to find as much as bug we can!

2. Exploratory Testing is your best bet in this situation.

Exploratory Testing is the way though which we don't test in a  scheduled way. We test and we find. So when we have less time, we can prioritize our test and test the application by exploring. Do some random testing and check how application reacts to you.

3. Don't forget to cover the major functionality of the application.

When time is our concern, its the major functionality that we need to focus on. I have seen testers doing very good testing, but only to know that this functionality is not a major focus for this sprint. And the output is several major functionality for the sprint remained not properly tested. Hence its the major functionalities that we can focus on when we have to deliver in a tight schedule.

4. Discuss with the user about there usage preferences.

Its always the end user who is going to use the application. The best guide for you can be the business users or end users in such cases. Talk to them, understand what exactly they are expecting from the application from this remaining time? What they want to be tested on priority. Give your inputs to them on applications (what do you think might be the priority, how we can do a better testing in stipulated time). Remember that the business user or end user is the one who is going to use the application and they should be satisfied with it.

5. Take all possible support from your development teams.

When we work on team its not only about Testing when we are trying to deliver a best Quality product. We need to take all possible support from our development teams. When we find a bug, we need to follow up with the business and development teams that its being taken care off. When its a tight schedule for Testing, its a tight schedule for bug fixes as well. We need to provide as much data as we can to the development team. We need to do a through Root Cause Analysis (RCM) for the issue. Yes! Our job doesn't just end with finding a bug. We need to make sure that its fixed and the root cause is eliminated.

What I have mentioned above is my views and the way I handle such situations. I would request readers to share there opinion and experience on the same. And last but not the least, your feedback always matters to me. So feedback on any blog post is most welcome.

Until next blog post, Happy Testing!!!

Tuesday 5 February 2013

Ajay's Software Testing Course - Session 2

Hi Readers,

Today, I am here to brief you about the second session of Ajay's Software Testing course (2nd Feb). Its was a cool session on Mind map hands-on. The mission for the session was to learn what is Mind map and how to use it.

At the beginning of the session Ajay taught us, what Mind map is and what is it used for. Now, Mind map is:

1. A visual representation of ideas.
2. It can be used in Software Testing and other fields for idea generation, brain storming and investigation (analysis).
3. It was invented by Tony Buzan.
4. Mind map can be prepared on anything that can represent an idea, like a paper, a white board, an application.
5. Few popular tools for Mind map are: Xmind, Freemind, Blumind, Mindmeister.

Then we started with  Mind map of 99Tests.com's home page. We had around 15-20 minutes for the Mind map creation. I must admit that it was a great experience and I learnt a lot of thing from it. After all the participants submitted there Mind map, Ajay reviewed everyone's Mind map and gave feedback for respective Mind map.

Now, I will list down what I learnt from the session.
1. Preparing Mind map.
2. Working in team.
3. Working under time pressure.
4. Prioritizing work while working under time limit.

I will post herewith the Mind map I created for 99Tests.com's home page using Freemind. Ajay suggested me to use Xmind for better visual representation.


Thanks for reading my blog. I will be back with more learning and interesting stuff soon.

Till then, Happy Testing and Happy Learning!!!

Saturday 2 February 2013

Ajay's Software Testing Course - Session 1

Hi Readers,

In this blog post I will discuss about Ajay Balamurugadas's Software Testing training and what I learnt from his first class.

Ajay is providing this platform for learning Software Testing through his Skype training. Its well designed by him for both freshers as well as experienced folks interested in Software Testing. And the best part of it is, ITS FREE! It is a Skype chat based session, consisting of around 15 sessions. This course will cover the concept and hands-on on Mind maps, Testing Concepts and Tools helpful in Testing. Each session is of  around 75 minutes. For more details about the outline of the course please visit this link.

On 29th Jan, while browsing through Facebook an status update by Ajay caught my attention. It was a Mind map about a new batch starting on 31st Jan by Ajay, for online Software Testing training through Skype.  Immediately I logged into Skype and pinged Ajay, requesting him to add me for his training program. The very next day Ajay pinged me back positively and added me to the newly created Skype group, for the Software Testing training. And I eagerly waited for the training to start on 31st Jan.

Ajay's Software Testing training - Session 1:

The session time is scheduled for 22:00 to 23:15 IST, every week on Tuesday, Thursday and Saturday. On 31st afternoon I logged into my Skype account to check for any update on the training. The first thing I noticed in the training group is, there were many participants from around the world too, waiting for the training to start. Meanwhile there was an interesting discussion going on between few people about Agile Model (Scrum). I enjoyed the chat and I must say I learnt few new things about Scrum.

At 22:00 hrs, Ajay started the session by welcoming everyone to the Testing training. Everyone introduced themselves and there it began. For the co-ordination with the whole group Ajay made a Google group, through which mails can be sent to all the participants at once. Once all participants registered with the group, Ajay started with Mind map. We came to know about what is Mind map, where it is used etc. Another important thing we did was, we learnt how to co-ordinate with other participants fast and working in team. We paired up as a team for the upcoming tasks. He also suggested few tools for working with Mind maps, for example: Freemind, Xmind, MindMeister. Through the discussion, I came to know about different view of different participants on a topic. Which can be said as an diverse way of learning something. The first session ended quite fruitful and I signed out with a new concept of Mind map with me.

The next session will be about creating a Mind map, while working with a team member. So, I am looking forward for our second session tomorrow.

Before concluding this blog post I would like to share what I learnt from the first session. My learning are as follows:

1. What is Mind map and its uses.
2. How to co-ordinate with other participants real fast.
3. How to form a team.
4. And of course the need of fast typing, as its a limited time session we need to type fast to express our views/ ideas, so that we can have more time for learning.

Herewith, I conclude this blog post. Stay tuned for more updates!

Happy Learning!!!

I am back!!!

Hi Readers,

I am back!!!

The last few months have been busy and I learnt a lot in between. I will share my learning's with you regularly hereon. But before that, I want to apologize for taking so much time for continuing with blogging. And I promise I will be consistent hereon.

I would start with, the ongoing testing training session with Ajay. I would update all the happenings and learning in Ajay's training session class wise. Also I would write a separate blog post on ETL Testing that I have learnt in the past few months.

Lets learn Testing!