I just found this site, and I have a question for everyone who can help me. My new passion for IT made me wish to learn more, and I wish to start with Testing. I've learned HTML5 and CSS3, but now I'm stuck because I don't know how to continue. I am open to suggestions.
For the beginning it is very useful to know what kind of tests exists. So you can explore the ISTQB Glossary to discover them and testing terms in general. After that you could try to get involved in some open source projects. You could install and test them and contribute some bug tickets.
- Mozilla has a QA area. (Other companies / organisations too.)
- On GitHub are a lot of open source projects.
- Learn the basics of a programming language.
- Pick one of the unit testing frameworks for your programming language.
- Write some simple functions/methods and unit tests for that.
- Keep busy with frameworks like Cucumber, JBehave or Selenium and tools like JMeter or SoapUI. It depends on what kind of tests you want to automate.
- Try to create automated test cases for open source projects and contribute them.
Pratice is the best way to learn about testing. If you want and can, try to do some testing things at work. But currently I assume that you do not work in this area, therefore the open source points.
Personally, I would suggest starting with tools.
A basic list of some tools to be familiar with or at the very least understand what they are:
The next step would be SQL as this is a daily task in the QA roles.
After learning at the very least the basics, utilize some of the open source software in order to get a feel for what you personally enjoy doing and see if you want to find an area of specialty. Personally, my are of specialty is in API testing and Tools development, with a dash of Automation and Load/Performance testing thrown in. I will use this as an example.
Since I develop tools, I use C# and Java. The preferred language would depend on what company you are interested in working for but the 2 languages are very similar and you shouldn't have too many problems switching between them.
For LoadTesting, LoadUI and LoadRunner as well as several other tools are typically utilized. For LoadTesting, I STRONGLY encourage you to avoid loadtesting public sites. Set up a WAMP/LAMP server and load test locally. Loadtesting public sites without permission is considered a DOS attack and can have consequences.
For Automation, there is Selenium (see tools above),HP QTP,Coded UI and several other tools. Again, get some open source tools and just play with these on random websites.
After all of this, I would find a position doing basic manual testing. This will teach you far more about Software Testing than an automation position and give you a chance to get your feet wet. There is some online training places, like the Mozilla project mentioned in another answer, that are worth checking out as well. Manual testing is VERY important in my opinion to being a strong tester with any sort of specialty.
After completing the above steps (about 12 months of steady studying and working if you are quick), you should be able to have a very high demand skill set and get a rather nice position.
Now when we confirmed that you think analytically, let's consider next steps on your career into testing, and testing automation.
As automated tester you need to write programs. Competent programmers know multiple languages and can learn new one quickly. Python is commonly considered as best language for beginners, and there are plenty of free online education resources. Learn Python Wiki is one maintained by me. Later, you can learn more languages as you need, but Python will likely remain on your toolset to manage/parse text files, even if your main language may be Java or C#.
Being at least passable system administrator knowing Linux will greatly enhance your possibilities. Most of world computers are running Linux. because it has no license fee, it is trivial to add few servers when needed. Luckily for you, edX.org just started free online course, LinuxFoundationX: LFS101x Introduction to Linux. I highly recommend it.
Also, Selenium WebDriver is upcoming W3C standard for browser automation, so learning it should be your next step if you want to work in web application testing. Luckily for you, Selenium has good Python binding so you can learn it using Python, and CSS locators are used often to locate elements on the page to interact with.
Consider joining relevant Meetups groups in your area, and LinkedIn. This way you start building your professional network, which you will need to find job.
There was a recent thread on this same topic that had some similar commentary that may also help you: