Testing does not start from the moment you were given a working application, but much earlier – once the work on the project has just begun, you can assume that you have already started testing.
Questions facing a tester are:
– What is this project?
– What features will it have?
– What tests will be carried out?
– What interesting defects will be found there?
After receiving the first specifications, a QA engineer begins writing a test plan, developing test cases, evaluate the need for automation and both automation of functional testing and load testing. As soon as the developers have prepared the build, Smoke testing should be conducted, which leads to the conclusion about the possibility and expediency of further testing:
If the “smoke test failed!!!”, the application is sent back for revision.
Having opened the bugtracker, you need to recheck the defects that the developers have transferred to the status “Fixed”, “Rejected”, “Can’t Reproduce”, etc. Note that “Rejected” and “Can’t Reproduce” statuses are the most nasty – this is clear evidence that either the defect was not well located, the steps for playback are not clearly described, or the developer was too lazy to reproduce the situation.
Having dealt with the closing and re-opening of the defects, there is a transition to the main operation – centralized testing by test cases and / or (if you practice exploratory testing) the “research” of the application begins.
When everything that was planned is passed, you get the results of the test cases, bug reports, questions to analysts and “notes in the margin”. Based on all this, a report is prepared on the testing conducted and it is sent to the project team.
Such a process runs from version to version, and after some time the test results will converge with the test criteria specified in the testing plan. At this point, the main work related directly to testing is over, and you can begin to release the application to the customer.
So, once again, briefly repeat the sequence of completed tests: Smoke> Regression> all other types of testing.