Friday, May 21, 2010

What are the requirements of a software tester?

I am planning to pursue a career in software testing. I want your advice on what tools to study for a bright future in that line and if its ok that I dont have any computer background but I am a computer literate. Is there any software or language that i have to equip myself with to shine as a QA analyst.

What are the requirements of a software tester?
You're going to need at least a basic knowledge of computer programming. Because you will need to write unit test and regression test algorithms to check the software is doing what it is supposed to do.





A nice starter for 10 is Visual Basic. Check MSDN for more info.
Reply:Personally I have no real idea, but it seems to me that being good with computers would be a requirement, or at least a big help. I suspect that a software QA engineer would have to both see if a program breaks and figure out how it broke, or at least what the symptoms are.





http://www.careerbuilder.com/JobSeeker/J...





It almost sounds as if they want you to have some programming knowlege.





I'd suggest contacting a college and asking them what they suggest.





Good luck!
Reply:Knowing a couple of programming languages helps. (Java and some form of C are probably good).





Also, you have to be very patient. You have to test software not just by using it for fun. Each and every small detail must be sorted through with a fine-tooth comb.
Reply:Well... I'll see what I can do.





How much you need to know going in depends on the position. You'll most likely want to learn a scripting language. For me, that language is Python. The beauty of a scripting language is that it can be used to tie in a bunch of other components, all without having to compile it before you run it. However, it doesn't stop there, and this is why I mentioned that it depends on the position.





There are so many different levels/types of software testing; unit testing, integration testing, functional testing, stress testing, performance testing, integration testing, and the list goes on. You'll want to at least know what some of them are, and its easy to find that info on the web.





There will most likely be some process/procedure/standard that you need to follow. As a test engineer, test automation will most likely be big thing, with manual testing being left to "only if its so much faster, easily repeatable, and it can't be automated". My position requires that I not only write test scripts, but also develop test tools and libraries to speed up the testing process, improve reliability, and reduce maintenance due to code changes that can sometimes break tests. This requires me to know C# and also puts me in a position where I also have complete access to the code I'm testing. So in essence, while I am a software test engineer, I still develop test code on the same level as a developer. Some people are against the idea of a tester having access to the code, and it does take a certain mindset to be able to look at the code and still test it properly.





When you put on the testing hat, you shouldn't care what the code is doing, its what its suppose to do. Take the requirement and push them to the very limits of interpretation. For example, someone might ask you to test a method that they created, that takes a string and reverses it. The first step is NEVER to assume anything. If the requirement states that it should reverse a string, then it means that it should be able to handle whatever I throw at it. All sizes, characters, and even the null or empty string are all valid. How you go about thinking about creating your tests will get you far; starting with the requirements, to the test cases, to the test designs, to the scripts, depending on how you combine them. Of course, it definitely helps to know the language that's being used, and sometimes you may be in a position where you can suggest the testing language.





So for what its worth, learn a scripting language and also take some time to learn the more popular languages like C# and Java. Afterall, object-oriented programming still applies across any language and producing reusable code (libraries, packages) is always a good thing.





*Know the difference between verification and validation. :D





Just figured that I'd add this. In most cases, software testing isn't limited to the graphical user interface, but also command line interface and some.


No comments:

Post a Comment