There are many ways to learn about software testing, including reading books and articles, attending training classes, listening to webcasts and hands-on work in the field. But there is no one answer book or one path to learn software testing. Consider, too, that there are many different types of software and what works well for one type of software may not work at all for another type. I'm using the word "type" to identify financial applications, e-commerce Web sites, medical devices, embedded software, manufacturing applications and so forth.
Tools and techniques that work in one environment might not work at all with a different type of application. I point this out not to confuse you or to be obscure, but as a reminder that as you learn what makes sense for what you are testing now, it would be best not to become too attached or rigid in your thinking about testing software. Even if you remain testing one type of software, technology changes and oftentimes our tools and techniques have to change as well.
These warnings aside, there are two books in the software testing field I often recommend:
- Testing Computer Software, 2nd Edition
By Cem Kaner, Jack Falk, Hung Q. Nguyen
- Lessons Learned in Software Testing
By Cem Kaner, James Bach, Bret Pettichord
ISBN-13: 978-047108112 (Click here for Chapter 3, Testing Techniques)
Keep reading and keep learning. As James Bach suggested in his tutorial on Self-Education for Testers, build your own curriculum. Find the books, articles, Web sites and blogs that help you learn. Build your own educational plan. James does a great job of pointing out how to survey a book. I interpreted his idea this way -- sometimes we want to learn in detail and sometimes we just need to know a little bit about a topic. For instance, if you decide you want to learn more about relational databases, investigate books at your local bookstore or library. You can also go online for continued research. Surveying multiple topics will help you choose what topics to you want to learn in-depth and what topics you want to gain an awareness of.
Additionally, I recommend finding opportunities to work with the technology you want to know more about. You can read, research via the internet, attend training classes and read tech magazines, but nothing compares to live experience. Seek work opportunities that help you grow. Look at your
Automated vs. manual testing
Regarding your question about which form of testing is best, manual or automated. There is no one right answer. Here are a few considerations to help you make the assessment whether a task is worth automating.
- Will the functionality need to be tested multiple times due to multiple internal builds before production release?
- Will the functionality need to be tested on different operating systems and/or on different browsers?
- Will the functionality need to be tested with many different types of data?
- If automation is built, will it be used for one product release or for many releases in the future?
- Does your company have sufficient staff to bring a tool in-house?
- Do you have or can you gain sufficient knowledge of the tool and automation techniques in general to put a tool to good use?
For additional thoughts on this subject, I recommend Bret Pettichord's article "Seven Steps to Test Automation Success."
This was first published in July 2007