Why is Software Testing Necessary ?
8 April 2020
In this article I would like to show how important it is to take care of the quality of the software produced as early as it is on the development stage. An early error detection reduces software delivery time, reduces costs, and increases product quality. Depending on the created functionality, the code should undergo a series of tests, including: checking the boundary values, ranges of values for performed loops or input data formats. Form tests deserve a lot of attention because they contain the majority of errors, such as writing and reading values from fields to / from the database, verifying the number of characters for form fields, displaying results for time intervals, the number of fields required, pagination errors in results filtering and much more.
Unfortunately, we often deal with situations where testing procedures are one of the first elements cut out from the software development process in order to reduce costs or shorten the project implementation schedule. Such a strategy does not give the intended effect, on the contrary, it almost always produces an effect which is completely different from the intended one. Someone might ask: why? Let’s look at the process the error detected in the production environment must undergo:
- the problem must be identified, reported and a potential software patch shall be made,
- the problem must be reproduced, classified in terms of severity and given priority,
- the problem is likely to be recreated by the software developer and corrected,
- problem resolution requires implementation and testing in a test environment,
- problem resolution requires implementation and testing in a validation environment,
- problem resolution requires implementation in a production environment.
As you can see, reducing the number of tests results in late detection of the problem, which reduces the quality of the solution and increases the cost of software production.
Preparation is half the battle
The tester’s task is to check whether the software works properly, meets the user’s expectations, whether the product complies with the specifications.
Before starting manual tests the tester prepares:
- by analyzing documentation: functional requirements, security, performance,
- by verifying graphic designs and mockups.
Based on the received documentation the tester creates test cases, then fulfills them step by step. Such testing consists in performing the previously described actions in the system and comparing the expected results with the actual ones. The differences between them should be reported and most often they are system defects.
An important element is the ability to prepare an appropriate test scenario, test paths so that the system / functionality is covered with as many test cases as possible.
What if there are no requirements
It also happens that tests should be performed without predefined steps. In this situation, we perform exploratory tests, where the scenarios are created ad-hoc, based on the knowledge and context in which the system is used by the end user.
Do I have to report this defect?
Sometimes testers are accused of clinging to every, even the slightest inaccuracy. However, this is the role of a tester to detect inaccuracies even if they are nuances. Effectiveness in detecting errors, even the smallest ones, is a considerable feature. Sometimes the error is hidden very deeply and only the inquisitive tester can find it. In addition to typical programming errors, the tester reports all other inaccuracies in the operation of the software, documentation or manufacturing process.
Never give up testing, even at an early stage of software development-it will give us the opportunity to receive the highest quality product.