Software testing processes can change according to the testing strategies of companies. In this article, we will talk about general processes.
The importance of software testing in the software development life cycle is increasing day by day. Therfore, testing was placed in the software cycle and the value of the software tester began to increase.
We mentioned the definition of software testing in this article: What is Software Testing
During the testing process, the software tester checks whether the product behaves as expected. It finds and solves errors during the testing phase. In this way, it helps the product to provide the desired functionality and accuracy. From this point of view, we can say that software testing increases the quality of the software. Software testing is not just a stage at the end of the software lifecycle. Software testing is a process and continues after the software is complete. For example, after the product is delivered, new features will be added to the product and the product will be developed. At this stage, software testing will again be required. In summary, software testing is a never-ending process.
We can list the software testing processes as follows:
- Planning
- Creation of Scenarios
- Preparing the Test Environment and Creating the Data
- Running the Created Scenarios
- Reporting the Results
Now it’s to talk about details.
1- Planning
This is the stage where test planning is done. The scope of the test is determined and the risks to be taken or not taken accordingly are analyzed. Planning varies according to the content and size of the project. For example, in some cases, it will be sufficient to do a sanity check within the scope of the job. The decision is made at this stage. An impact analysis is made by determining which areas the development will affect.
Required test resources are determined. This resource can be a mobile device, an operator line or even a browser that needs to be installed on a computer. At this stage, all materials to be used during the test should be listed. The resources determined in this step will be used in the third stage, which is the setup of the test environment and the provision of data.
Timing is planned. When to start and end the test is determined and the date ranges are reported to the project leader or team leader. Of course, it is not clear at the beginning of the road when the test will end. Errors seen during the tests or problems that may occur in the process negatively affect the test processes. The dates given here are approximate and should also be stated as “estimated”.
2- Creation of Scenarios
It is the stage where the “expected” and “realized” outputs are prepared according to the content of the project to be tested. In this step, the tester writes the scenarios to be implemented. While creating test scenarios, preliminary information from the software developer or product manager are used with design and analysis documents.
The example below contains the test scenario and test steps of the sign up screen. As you can see, the name of the test scenario is “sign up – negative test cases” and there are 3 steps for this scenario.
Test scenarios consist of steps. Expected and realized outputs are included in the test steps.
While creating test cases, it should be considered both simple and different. While trying very different cases, you should not get away from the main subject. It is of course very important to be able to see the general and go to the specific; but it should not be lost in private either. So balance is very important when writing test scenarios.
Another valuable resource that should be used at this stage is the experience of the tester. The tester will prepare efficient scenarios thanks to his previous experience.
3- Preparing the Test Environment and Creating the Data
This phase is the preparation phase for the test. All necessary preparations are made in this step before starting the test.
The project to be tested is successfully installed in the test environment.
In the first step, the planning stage, the determined resources are made suitable for the test environment. For example, if a development made in a mobile application is to be controlled, the application must be made to speak the same language as the current backend. Necessary adjustments are made for this, it is ensured that everything is ready for the test.
Required data for testing is provided. After the test environment is prepared, the necessary data is determined and prepared in line with the scope of the development. It can be a user or a product. Data can be created either manually or through a script.
It is checked that the test environment is working properly. In order not to encounter any surprises, it should be checked beforehand that not only the area to be tested, but also the screen/page before or after it is working and if the application is to be tested, the application can be downloaded and connected to the test environment.
4- Running the Created Scenarios
This is the stage where the tests are run. The written test scenarios are applied in this step.
The point to be considered here is that the scenarios created are applicable without succumbing to time pressure. Unfortunately, there is always a “time pressure” on testers. Time pressure is very dangerous, especially when running scenarios. Planned scenarios should be run completely.
Both newly created test cases and pre-existing old scenarios can be used in this step. Scenarios involving areas that can be affected should be run step by step.
5- Reporting the Results
It is the stage in which the situation that occurs after all the determined scenarios are applied is communicated to the relevant person.
The report should use as plain language as possible. The errors dedected should be written step by step. If possible, supporting elements such as screenshot, backend log, video showing the error should be used. The software developer, who cannot repeat the found error, can want to repeat it together, and if they are not in the same office, he will close the error as “it cannot be repeated”. In order to prevent such a waste of time and effort, the error should be well expressed.
Information such as the platform where the error is seen and the data repeating the error should be transferred in the report.
Afterwards, there is the step of following the error and reaching the solution by being in constant communication with the software developer. This step can also be included in the reporting of bugs.
We have briefly mentioned the stages of software testing processes. There may be differences in these processes in cases such as software company, software product or project scope. In general, the testing process stages can be summarized as we mentioned above. In the next article we will discuss about one of the software testing techniques: What is Black Box Testing?