Monday, October 8, 2012

5 Months Testified

It’s been around 5 months working as a Quality Analyst. In these 5 months I have learned many things. Many tasks had been assigned to me which were completed successfully. The tasks that includes preparing test documents, test cases, bug reports & various other related reports. There are many important things I learned that I want to share with the new comers on my blog.


Quality Assurance OR Quality Control

Make sure before you join what are your responsibilities on the job. Quality Assurance and Quality Control are two different terms but in Indian IT companies, the truth is something different. In general, Quality Assurance is responsible for maintaining quality throughout the process of development, right from the project kick-off to the Acceptance testing. Testing is a part of Quality Assurance. Quality Control deals mainly with the testing of the developed product.

In India, the position mostly found is Quality Analyst or Software Quality Analyst, but what are the responsibilities of a QA, you need to confirm before joining. I was lucky I got the position in which I am getting opportunity to learn and implement the whole quality assurance process. I got a friend, who is also working as QA in some company and his work is to just create & implement the test cases. He is happy with it, YOU MAY NOT BE.


A Big Responsibility

When I was in my masters, I used to hear that testing is not an important task, it's an easy task, will have to invest lesser time, etc. Let me tell you people, if after listening to those things you want to come in testing, DON’T DO THAT.

First, it is definitely not an easy task, the developer had invested hours in developing a functionality, checked it thoroughly, the Senior Developer/TL has reviewed the project and then it comes for testing, and you need to find bug in that code. It’s definitely NOT AN EASY TASK.

Second, the responsibility is not less in this job. If you have tested a website and said that it is ready to go live. After that if from the client’s end a bug is found, which was not found by you, BE READY FOR RED EYES. Definitely, it matters that whether the bug was due to sales department, designing dept, development dept, etc. but why was it not caught by the QA Department will be the biggest question. Be ready to answer that.


Not Just Testing

Testing is an important part of a QA’s job but it is not the only important part. When the projects comes to the QA department and the bug report is filled, than it becomes responsibility of the QA department to take care that all those listed bugs has been properly solved. This sounds like a cup of cake but trust me it’s not.


Working With Developers

This is probably the most sensitive and difficult task that a QA executive handles. Getting the bugs solved by the developers is not at all an easy task. You will get replies from the development team such as It is not a bug, It doesn’t affect the functionality, It is a default bug we do not solve that, Its third party extension bug, It is not possible to solve in IE 7, It doesn’t appear in my pc, etc, etc, etc. the list continues.

There are two steps to deal with these issues.
Step 1: The QA executive need to be firmly confident that the bug listed is a valid bug and need to be solved.
Step 2: The QA executive should stand for his/her decision taken in Step 1.

 These two things are very important for getting bugs solved from the development team. The QA should also continuously follow up the bugs which are kept On Hold by the development team.


To all the Quality Assurance & Control Department people, I just want to tell you one thing….
BE PROUD of What You Are Doing :)

Thursday, October 4, 2012

Unit Testing

In testing terminology, the smallest testable part of the code is called Unit. Unit testing is the testing technique in which the units of code are tested to check whether they are functional according to the requirements or not. The code is tested thoroughly, thus we can say that it comes under the White Box Testing method.

Unit Tests are generally written and performed by the code programmers. It ensures the programmers that the piece of code they wrote is proper and functional.

Unit Testing also proves to be very useful at the time of integration. If the programmer has unit tested the program properly, the integration-time issues generally doesn't show up and if they do show up, they are solved too quickly as the programmer has a clear idea where the problem resides. One should keep in mind that a properly done Unit Testing makes the integration easier, but it doesn't replace the Integration Testing which is a very important part of the testing phase.

It is obvious that a small bug in a code, if left unsolved, can grow into a big issue as the system and code grows. Thus if a programmer solves the bug at the initial level through Unit Testing the code, it saves the extra time and efforts that the programmer will waste in solving the same grown-up issue at the later stage.


Advantages
  • If any error exists in the code, it is found and solved on the very initial level.
  • Proper unit testing makes the integration process easier.
  • It reduces the work load of QA department. If the Unit tests are properly done and test cases are maintained, the QA people can focus on other important aspects of testing the system.

Disadvantages
  • Unit Testing can be time consuming and tedious. Patience and dedication is required on the part of the development team.
  • It is not possible to find the integration bugs, system bugs, etc in Unit Testing


Unit Testing is a very important part of software development as it ensures the quality of the software from the beginning.