Software testing is not a one-person job. It takes a team, but the team may be larger or smaller depending on the size and complexity of the application being tested.
The programmer who wrote the application should have a reduced role in the testing if possible. The concern here is that they’re already so intimately involved with the product and “know” that it works that they may not be able to take an unbiased look at the results of their labors.
Testers must be cautious, curious and good communicators. One part of their job is to ask questions that the developers (or Business Analyst) might find not be able to ask themselves or are awkward, irritating, insulting or even threatening to the developers.
♦ How well does it work?
♦ What does it mean to you that “it works”?
♦ How do you know it works? What evidence do you have?
♦ In what ways could it seem to work but still have something wrong?
♦ In what ways could it seem to not work but really be working?
♦ What might cause it to not to work well?
A good developer does not necessarily make a good tester and vice versa, but testers and developers do share at least one major trait—they itch to get their hands on the keyboard
Testers are the only IT people who will use the system as heavily an expert user on the business side. User testing almost invariably recruits too many novice business users because they’re available and the application must be usable by them. The problem is that novices don’t have the business experience that the expert users have and might not recognize that something is wrong. Testers from IT must find the defects that only the expert users will find because the experts may not report problems if they’ve learned that it’s not worth their time or trouble.
Key Players and Their Roles
Business sponsor(s) and partners
♦ Provides funding
♦ Specifies requirements and deliverables
♦ Approves changes and some test results
Project manager Plans and manages the project Software developer(s)
♦ Designs, codes, and builds the application
♦ Participates in code reviews and testing
♦ Fixes bugs, defects, and shortcomings
♦ Creates test plans and test specifications based on the requirements and functional, and technical documents Tester(s)