A Bible for Software Testing?
An anonymous reader asks: "I'm soon to be starting a position in software testing and wondered (well hoped) if Slashdot readers had recommendations for reading, in terms of dealing with testing from the trenches and management of the process. I've read a number of general software engineering texts, but what I'm looking for is a specific 'bible' on software testing that will get me in the right mindset, before I begin."
By the way, I'm a software tester, and I hate my job. And don't worry about being too over-prepared for your job. All the testing jobs I've had (4 now) have been pretty simple. The first day on the job, you'll be introduced to your new computer, and if you are lucky, your co-workers. After that they will give you a bunch of documentation to look through and in about 2-4 weeks you will begin testing from scripts. It's the easiest, most mind-numbing job for a computer professional. Not fun if you ask me... If you are detail-oriented, and not problem-solving oriented, it might be a good match for you. But don't expect to do much thinking on the job...
Testing Computer Software
by Kaner, Falk, Nguyen
You can't go wrong with this one.
Testing Computer Software
by Cem Kaner, Jack L. Falk, Hung Quoc Nguyen, Jack Falk, Hung Q. Nguyen
If you plan on doing this as a career I am sure you will encounter something by James Bach, IMO he is overated and a bit of an ass (sent me outside a classroom because I didn't have any questions for him?! So I came up with a lame question I already knew the answer to and proceeded to fall asleep for the rest of the lecture).
Q.
I work testing desktop app integration, and a very good book I've seen that's quite accessible to the beginner is Testing Computer Software by Kaner, Falk, and Nguyen. I bought it and passed it around our lab just for the first few chapters which deal with the mindset behind software testing, such as why even bother testing when you can't assure 100% bug-free code. Later chapters cover how to effectively log bugs, how to test things besides actual code (devices, localization, manuals, etc.), and an overview of how to manage a software testing team. From experience, I can tell you that not 100% will be applicable to the particular job you're about to start, but it will meet your "get me in the mindset" requirement.
I'm not a cool guy, I just play one on T.V.
I find these books useful:
Lessons learned in software testing - A good introduction
Software Testing - A whole load of thing you'd never think off
Software test automation:Effective use of test execution tools - A bible for implememting automated testing
How to break software - crashing apps by forcing error conditions
How to break software security - similar to above, but with security in mind
How To Break Software by Dr. James Whittaker.
I was able to attend a "virtual lecture" by Dr. Whittaker thanks to a former employer. He not only understands the root causes for most bugs, but understands the core competencies that the best software testers have.
RomSteady - I came, I saw, I tested. GamerTag: RomSteady / http://www.romsteady.net
Here
Sure it costs a fortune, and its old, but the stuff in it stands the test of time. Definatly a must have if you're testing any software that just cannot have a critical failure.
If you're not at a managerial level and need more localized nuts-and-bolts information, I'll second the recommendation everybody else is making - Testing Computer Software by Kaner/Falk/Nguyen.
If you want to get certified, you can find out about that here. As part of running tests to certify people, the Software Quality Institute maintains a current list of books here for Certified Software Test Engineers and here for Certified Software Quality Analysts.
(I'm signed up to take the CSTE next month.)
I play Nerd-Folk!
Ok. Cheap joke. I know.
What you'll need depends on what the corporate culture is for QA there and how much initiative and experience you're bringing to the table. Several people have suggested good books on testing and breaking software already, so just a few things I'd recommend on the practical...
If you're taking the programmer angle, take a look at "Building Secure Software" by Viega and McGraw. If the product runs on Windows, I'd also suggest "Debugging Applications for .NET and Windows" by Jon Robbins.
Whether you code or not, I'd also recommend GUI Bloopers by Johnson - there's a lot more to testing software than just finding where it crashes, and GUI issues are one place where problems are often swept under the rug. Look for inconsistencies in how the software responds to the user, and point those out to developers.
Use revision control software like CVS and keep any scripts and automation projects you do in there - they can be almost as important as the product's code. Also make sure there's a way to track bug histories available - I've walked into some shops that did it all purely by email and word of mouth, which is a great way to ship forgotten bugs. Bugzilla and Mantis are the two I've used.
Remember that the developers and management should strongly appreciate it when you find problems with the software, but more often than not they'll be behind schedule and a bit bitchy when you do your job well and find issues with their code - it's part of being in testing. They'll likely want to brush off things they find 'minor' entirely near ship date - you can keep those marked as low priority, but get them into the bug tracker!
Try to learn how to let people know there's a problem w/o being abrasive, and if you're working with a good team you'll likely find the developers are happy to help you out if you need anything to make your process smoother. Don't be afraid to ask for features that make testing easier.
And probably most importantly - when you do find a problem, make sure you know *exactly* how to repeat it or do your best to find out and let the developers know. That can mean the difference between a 5-minute fix by a developer and a few days of developer time before a fix. There are a couple of QA guys I've worked with that I wish I could drag with me whenever I switch products/companies simply because of how detailed their bug reports are.
Just my $0.2...
I write code.
Check out this class site:
T here is a lot of useful information including the required and recommended texts along with other resources.
http://www.eng.mu.edu/corlissg/198.2001/
I like Boris Beizer's "Black Box Testing", which is not really about white box testing. It has really good examples based on filling out U.S. tax forms. It helps to understand testing at both specific and abstract levels.
Just a note - Software QA (i.e. Quality Assurance) can mean anything from a tester in the trenches to someone who only works on process improvement. Note that in the CMM, Software Quality Assurance has nothing to do with testing. It is a process job. Keep this in mind, depending on where you are working.
My beliefs do not require that you agree with them.
You should think about getting certified as a CSTE (Certified Software Test Engineer) or CQA (Certified in Quality Assurance) from the Quality Assurance Institute.
By the way, I'm a software tester, and I hate my job. And don't worry about being too over-prepared for your job. All the testing jobs I've had (4 now) have been pretty simple.
You must be a contractor. I have been in software testing for 11 years now, and it can get very complicated. Of course, every place you work looks at testing differently. If you get in somewhere that values testing, your job can get very complicated - "Here, learn how this entire program works in a week. Oh, and learn how it interfaces with these two other products."
It's the easiest, most mind-numbing job for a computer professional. Not fun if you ask me... If you are detail-oriented, and not problem-solving oriented, it might be a good match for you. But don't expect to do much thinking on the job...
Sorry, but you don't sound like a professional to me. Sure, it can be boring and un-technical, but if you take that attitude then you'll be doing the same job forever. There are tons of opportunities to work directly with developers to debug code, or get into complex system configurations, or performance testing and tuning, or tracking down some elusive customer problem. It all depends on where you are working, and their level of sophistication. Test automation is a whole nuther ball-o-wax too. There are requirements, design, and sometimes code inspections. And if where you are working is into the whole CMM thing, then QA is not testing, but is process oriented.
Believe me, a good quality tester is a valuable asset. They think differently than programmers, which can strike a very good balance. If a workplace doesn't value their QA/testing people, then it probably shows in their products.
My beliefs do not require that you agree with them.