Monday, July 28, 2008

Software Testing Certifications -I

Software testing is growing up as a renowned profession and with the passage of time ,lot many certifications have come up to add value to this profession. It specializes you in your area of expertise, makes you more aware of testing nuisances, allow you to stand out from your peers. Till date, there are not many certified software test engineers,so demand is even more.
This post is not meant to preach that only certified testers should be there.Certification cannot bring intelligence and if a person is not certified that does not mean that he or she is not a good tester.

I am writing this post to provide information about the various available software testing certifications at one stop, the information that I didn’t received.

Listing down a few in no particular order:
  • CSQA (Certified Software Quality Analyst)
The regulatory authority is QAI and this designation means a professional level of competence in the principles and practices of quality assurance in the IT profession. This certification requires prior experience.

  • CSTE (Certified Software Test Engineer)
The regulatory authority is again QAI and this designation means a professional level of competence in the principles and practices of quality control in the IT profession. This certification also requires prior experience.
There are advanced levels of certifications also available from QAI like CMST and CMSQ. For detailed information, checkout software certifications .

  • CSTP (Certified Software Test Professional)
The regulatory authority is IIST. This certification is an education-based certification, based on a Body of Knowledge that covers areas essential for every test professional to effectively perform their job in testing projects. Prior experience of at least one year is required. For detailed information, checkout Indian institute.

  • ISTQB certifications
ISTQB is the regulatory authority that provides certifications in various countries through their approved national boards. For e.g. ‘ISTQB-certified-tester’ certification in India. For detailed information, you can checkout ISTQB

  • SECP(Software Engineering Process Certified Professional)
The regulatory authority is learning tree. This certification is for those who mange the development process. For detailed information, you can checkout Learning tree

  • CSQE (Software Quality Engineering Certification)
This certification indicates that tester understands software quality development and implementation, software inspection, testing, verification and validation; and implements software development and maintenance processes and methods. For detailed information checkout ASQ

All the links that I have mentioned are official websites, which will provide you the most accurate information.
This is the list of certifications based on body of knowledge. I am in no way claiming that the list is complete. Their will still be lot many certifications available and would like you all to come forward and share that information.

Keep looking for my next post, which will have the list of certifications on the basis of tool knowledge.

Wednesday, July 16, 2008

Testing for beginners

New to Testing? Don't know how to start your career path so as to become a successful software tester.
Here are some of the tips that I learned along my way and I hope they help you achieve what you want.

First you need to have following know hows:
  • Idea about terminologies used in the field of testing like methodologies,test strategies,testing types and all.
  • Reading articles to get into the frame of mind of a tester. Read good blogs and books on testing. Begin with a quote "You are here to break the software":-).
  • Technical skills: If possible go for courses that are offered but even if you don't,its Ok.Get yourself exposed to automation tools and keep in mind,they are not just "record and playback".There is so much more to them.
A good tester has superb soft skills which I would put as "testing skills":
  • Be a brilliant observer. Look for what usually doesn't catches the eye.
  • Be curious.
  • Its very important to be intuitive. As you go along in this field,you will start feeling that your intuition is going strong and strong.Slowly,you start identifying the areas just intuitively where bugs can be found.
  • Have the perseverance because bugs you find are not always reproducible.You have to try again and again with possible combinations.
  • Good communication skills.You will find them so handy in tricky situations when dealing with developers and PMs(project managers).
  • Habit of digging deep will not pay you best anywhere but in the field of software testing.
  • Out of box thinking. Believe me,this would make you stand apart in the crowd.
  • Knowledge of how the user will be using it. You have to be in th customer's shoes.
  • Team work. You cannot achieve anything on your own,it has to be a team effort and a good team member is the one which inspires others and take them towards a common goal.
Domain knowledge also proves helpful because it allows you to have an idea about the flow of control and data which is bound to uncover series of bugs. And if you feel having a list of test cases in front of you will take you through,you are badly mistaken,always remember its the tester who finds the bugs and not the test case(Courtesy: Its a tester).So go for the kill believing in yourself and not any external help.

Software testing is a very challenging field that helps you grow not only professionally but also personally. Its creative,interesting,intuitive and a great career option.

Thursday, July 10, 2008

Software Testing:An underrated skill

Many number of times,people enter the field of testing with a perception that it does not require any special skill.But to the disappointment of all,it is a very creative field and requires lots of brains. As they say,"Its easy to commit a mistake but difficult to find a genuine one " :) .

I believe that it is very underrated skill and this aura is created by none other than the developers. No offense intended,but in my career I have met many developers who think of testers as nothing but just an additional load on the organization.What they forget is,that hadn't the testers been there,owing to their negligence,the software would never have gone live or the customers would have just run away.I don't only blame the developers for that.
Some organizations also think of testers as one level lower to the developers and I want to ask a question here, Why?

In my own organization,I felt this rift. We all were working so diligently for the release of one of our products,the best of the efforts were going in,be it testers,developers,PMs, everyone was trying hard and achieve the milestone. Suddenly we heard about management giving away incentive awards to boost the morale. Everyone was elated and then came the real bet, the incentives for the R&D team and QA team has a difference of INR 5000,R&D gets more.
The reason when asked, "This is how the management has decided and its just a little bit of difference." "Its not about the money", we argued and they said nothing but "concentrate on your work,you are getting the incentives". Hard to believe but it is the truth of the industry.

Agreed,testing(manual) does not need technology but what about the soft skills a tester needs? And when it comes to automation and white box, testers are no less than the developers technologically rather I would say more technically sound because they have to find the problems in the code.
Before erasing it from the mind of people working in the organizations,the organizations themselves have to believe in the equality of the streams.They have to believe that QA and R&D compliment each other.And this does not just have to come in words.Actions always speak louder than words.
And guys remember,testing is not a no brainer's job,so gear up before getting into this field.

Friday, July 4, 2008

Automation Testing: Is this the answer?

All those who are familiar with the field of testing must be knowing what automation testing is. Lets dig into it and find what it is all about and Is Automation testing an answer to every testing problem.

Automation Testing is testing which is done without human intervention.This is the testing assisted with software tools and does not require any operator input,analysis or evaluation.
No doubt we have many advantages like:
  • accelerates the test time
  • easy to do repetitive testing
  • possibility of exhaustive testing
  • Better test path coverage
With all these benefits in mind,I can't stop but thinking is Automation an answer to every testing problem? Is it applicable everywhere?The answer according to me is NO. And why is that?

Simply because automation testing has many sub challenges, and is restricted by a number of questions:
  • Is the time frame permissible of creating an automation testing framework? Although this makes the testing faster but creating framework takes time.
  • Do we have the skilled and sufficient resources to do the job? If the resources are not there,nothing can happen and obviously they cannot be hired at the blink of the eye.
  • Does automating will make the process really faster? If a project is not big enough,is it a complete waste spending time and energy on it?
  • Up to what level the automation needs to be done?
I have seen this happening a number of times that the decision of using automation and the extent of it becomes debatable. In certain scenarios, we have implemented automation partially because completely automating the task was not worth the effort.

So whatever testing is decided to be used:manual or automated or a super mix,I believe one should always measure all the pros and cons of the process.

Tuesday, July 1, 2008

QA Glossary continued

In continuation to my last post,I have come up with some other terms and their meanings:
  • Alpha Testing: Testing performed at the developer's site by a group that is independent of the design team and all the issues so found are fixed before going into production.
  • Beta Testing: Testing performed at customer's site by one or more end users in order to know how good a software is,whether they should go into the production with this software or not. The software has to meet the acceptance criteria as set by the customer.
  • Software testing methodology: It is a three step process: a) Creating a test strategy b) Creating a test plan c) Executing tests.
  • Test strategy: The test strategy is a formal description of how a software product will be tested. A test strategy is developed for all levels of testing, as required. The test team analyzes the requirements, writes the test strategy and reviews the plan with the project team. The test plan may include test cases, conditions, the test environment, a list of related tasks, pass/fail criteria and risk assessment.
  • Clear box testing: Same as white box testing. It is a testing approach that examines the application's program structure, and derives test cases from the application's program logic.
  • Boundary value analysis: Boundary value analysis is a technique for test data selection. A test engineer chooses values that lie along data extremes. Boundary values include maximum, minimum, just inside boundaries, just outside boundaries, typical values, and error values. The expectation is that, if a systems works correctly for these extreme or special values, then it will work correctly for all values in between. An effective way to test code, is to exercise it at its natural boundaries.
  • Ad hoc testing: Random testing which is performed with no formal documents so it is a least formal testing approach.
Blog Widget by LinkWithin