Software Testing - How To Go About For Beginners
By: Nilesh Parekh
Software Testing - How To Go About For Beginners
This article is dedicated to those people who are new to the testing field, and do not know anything about the same. Also it should be my last simplified article for Software Testing beginners before I start writing articles with increasing complexity.
Many people approached me for help with likes of the following questions:
-- I am new to Testing field and I do not know anything about it, will I be able to secure a good future and survive in this field?
-- I hear about terminologies but cannot relate them logically, what can help me in getting well versed with all the relevant terminologies of testing field?
-- I am asked to test an application, but I donít know requirements how do I go about it?
-- What should I do to become a good and a complete tester?
-- Is it necessary for me to learn software testing automation tools?
I will try to address each and every question (and also all the other similar type of questions asked by my readers over the period of time) with the help of following scenarios and hope that it will help my readers.
I am totally new to this field, where and what should I begin with?
This seemingly stupid question is actually a very valid query, as many of the testers are from the non-computer background. It indeed can be very hard for any new person to understand the terminologies if that person is entering the IT field for the very first time.
My advice to the new testers with non-computer background would be to read something about computers and relevant terminologies. Reading computer science basics can help them. They should try to understand various terms used in Software Engineering and programming domain. (Please note that the Computer Science and Software Engineering field is very vast, you just have to go through the basics and not the entire course).
Once you start understanding, what is a program? What does it mean by execution? What are the different languages? Etc. you gain enough momentum and understanding which helps you in dealing with any new terminology in the computer world. As you finish it, you should also take an overview of various development methodologies used in the software development field such as Water-Fall model, spiral model, incremental-integration model etc.
After you finish your first step, you should start looking into various terminologies and definitions used in software testing field such as various types of testing, testing strategies, methodologies etc. Even though most of the definitions/terminologies are very simple and quite easy to understand, you should try to create a small definition directory, which will be handy for you anytime you wish to go through.
As soon as you are done with the above specified things, you should understand what is a bug/error and life-cycle of a bug (For this you can go through my articles "Software Testing Ė An Introduction", "Software Testing Ė Contents of a Bug", "Software Testing Ė Bug Life Cycles" and "Software Testing Ė Bug And Statuses Used During A Bug Life Cycle"). At this point, you will have enough knowledge to be able to take a plunge in the vast field of Software Testing.
How should I test a system without knowing requirements?
Recently many people asked me the same question Ö and truly speaking my answer to this question is "YOU SHOULD NOT TAKE A CHANCE TO TEST SYSTEM WITHOUT KNOWING REQUIREMENTS".
If you are testing a system without knowing the requirements, its just like searching for something in this world and you donít know what you are exactly expected to look for and identify. This way whatever you come across, you will think that itís the same thing that you have been searching entire world for. And we have to admit that it surely can be your mistake. If someone has asked you to test a system without giving you the proper requirements, then almost everything you see in the system will seem to be a bug for an example if the requirement says that there should be a submit button on the login form but as the requirement has not been specified, you surely will say that the submit button is a mistake of developer and it should not be there (even when logically we know there WILL be a submit button on the login form) and hence you will count it as a bug.
So please, do not think of testing a system without getting proper requirements. And if someone makes you test the system without specifying you the actual requirements, then you should start yelling at each and everything that happens in the system saying it is a bug Ö the reason is simple Ö you donít know what should be there in the system and what should not!
On other hand, if you really want to test a system and no matter what are the requirements, then you surely can go ahead and do so. But then you will have to use only monkey testing. The reason for this is again the same Ö you donít know anything about the system! So whatever you LOGICALLY think can be a potential bug in the system, you can report it.
What should I do to become a good and complete tester?
You should try to expand the horizon of your knowledge, your understanding of any subject, depth of thinking and be creative. Try to learn new trick which will help you stand in the crowd. Develop your own understanding and techniques of how you should test the system so that you can find more and more bugs, giving the best result.
Anyone can test a system, even if a normal person brings a Television at his house he can find out a normal defect that like defective power cable by trying to turn the Television On, and mark my words Ö EVERYONE WILL DO THE SAME THING AT FIRST. Then whatís the difference in that normal person and you as a tester (or say GOOD Tester)? Here you can distinguish yourself from others; you can try to search for more bugs in the system.
Is it necessary for a Tester to learn Automation Tools?
Software testing in India is growing very fast. And I can assure you that there will be deep penetration of automation tools and their uses. So the more you know about automation tools the better chances you stand to mark your presence in the industry over others.
It also depends on the type of project you are working in, if your work demands you to understand and use an automation tool then in that case you will have to surely learn it.
... to read more articles, visit http://sqa.fyicenter.com/art/