Many testers get bewildered when asked to test some software without clear requirements. How not to plunge into panic and come out of this situation safely if you do not have much experience to rely on your senses – this article will tell.
Hardly ever can a tester hope for complete and accurate functional specification document. In many cases there are early deadlines, sudden customer’s requirements changes, urgent tasks, independent or temporary human resources and other obstacles that can complicate the testing process. More often there are also misunderstandings between specialists from different domains that can be prevented only by your broad competence. However here are some tips that can help even inexperienced testers.
First of all you should give yourself clear answers to some general questions:
- Will it be a unit or system test?
- Will you do functional, performance or regression testing?
- Is it a new product or a maintenance project?
- How do the developers understand the system?
- What other documentation is there besides functional specification?
- Do you have a business analyst, domain expert or an end user available?
- Are there prior functional parts in the system?
- Are there any risk areas?
- Which level of expertise does your team carry out?
- Are you going to do manual or automated testing etc.?
These points will reveal for you possible directions of testing.
As for the organizational aspect of testing consider the following tips as well:
- Find out you team’s strong points.
- Learn about the technical modules developed.
- Depending of the testing type combine or decompose the modules.
- Give every person of your team the modules consistent with their skills and knowledge.
- Provide a constant communication between your team, developers and analysts.
- Choose clear and analysis-free testing approaches to avoid misinterpretation.
- Document the basics filling in the details in the process of testing if you have little time.
With these principles taken into account you may try some alternative testing approaches. To do user or acceptance testing involve an unknown user into the system so that you can detect its defects and see how users interact with it. While random testing you can test the system in your own method but this type needs basic requirements and functionality understanding. You may as well ask customers to write so called short stories on small pieces of paper that will make you separate tasks for further testing.
In conclusion, it can fairly be said that whatever the conditions of software testing, one should always think carefully and set clear goals before starting.