To begin with, you should give a detailed description of the problem situation and if you cannot identify the cause, just explain why you think that there is something the matter. Be sure to spell out all the steps and symptoms in the report, including all particularities and error messages so that to simplify the work of software test company’s specialists. Also, when provided with too much information on the problem, the programmers will be able to find the most effective ways to solve it.
Apart from everything else, you should consider phyсhological constitution of a programmer as he may not to correct the error because of impossibility to reproduce it, or just defer the report as he was unsuccessful in repeating the error at the first attempt. You need not to waste his time and make him track the error that you already identified. If you often submit the reports that make it harder to reproduce errors specified in them, then programmers are most likely to put them aside.
When drawing the report, a tester usually understands that he is unaware of what caused the error. Therefore it is better to admit this fact immediately and test the program one more time than to give the programmer reason to doubt your capabilities, namely your preciseness and thoughtfulness.
If you cannot reproduce the error, even after many test attempts, but you are absolutely sure that you found it, write a good report on it, trying to be as detailed as possible about your observations. A good programmer will be able to detect this error based on your description, by analyzing the code. Describe all error messages, tell what you were trying to do. But do not ever ignore the problem because it cannot be reproduced.
The Proposed Correction
If the solution to the problem is obvious, or, on the contrary, you do not have a concrete proposal, just leave his fact unmentioned.
But do not neglect filing in the report, specifically the field where this information should be included, if you know how to correct the error found in the program. This is especially true of the user interface: the programmer cannot fix it, simply because he cannot quickly figure out how to do it. At the same time, a bad text on the screen or inconvenient location of the form features will be corrected very quickly if the programmer has a ready-made solution.
Exploratory testing services are necessary discover, learn and investigate the program under test to check the predetermined outcome.