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!!!