TL;DR
As a software tester, you will need to do your own research. It is sporadic that you will get information about how the product works or how it should work. This post is about how to do your research. The post is aligned with the Black Box Software Testing Foundations course (BBST) designed by Rebecca Fiedler, Cem Kaner, and James Bach.
In the definition of software testing given by Dr. Cem Kaner, the central part is word investigation:
Software testing is
empirical
technical
investigation
conducted to provide stakeholders
with information
about the quality
of product or service under test.
This investigation is needed in order to do:
- Test design
Using consistency heuristics, tester knows what product should/should not do. Using that information, it creates tests that will check that information.
- Make a decision do we have a problem here
Consistency heuristics oracles help the tester to make a decision about the question do we have a problem with a program behavior.
- Make a credible bug report that we have a problem here.
Tester made a decision that something is a bug. Using consistency heuristics oracles makes this decision credible.
A competent tester asks for information, and if they do not get it, they do their own research.
What is research?
Research is creative and systematic work undertaken to increase the stock of knowledge, including knowledge of humans, culture and society, and the use of this stock of knowledge to devise new applications. It is used to establish or confirm facts, reaffirm the results of previous work, solve new or existing problems, support theorems, or develop new theories [Wikipedia].
In research, you ask questions. But which questions we should ask? We use heuristics, and one set of heuristics is consistency heuristics. In your software testing, you probably asked a lot of questions. Some of those questions were directed to yourself. Software testing heuristics help you to ask better questions. Questions that could help you to solve problems much faster, or questions that would fail but will create a new set of questions.
A passionate software tester is credible. That means that it knows what is talking about.
This post should help you to understand why software testing is a set of recipes or best practices. The investigation is the core of software testing.
That is why there is no such thing as automated testing. Scripts can not do an investigation, only testers can.