Get an estimate
Manual tests are part of the software quality assurance process. They help to identify errors, evaluate usability and ensure that the product meets clients expectations. In this article, I will analyse the role of test scenarios in this process.
Let’s start by defining manual tests as a software evaluation process in which the tester manually checks the functionality of the software by following specific scenarios and use cases. The tester executes various operations to ensure that the application works as expected. Manual tests may primarily involve manual data entry, interaction with the user interface and observation of the application’s behaviour.
An important element of such testing is creating test scenarios which define the steps the tester should take to evaluate specific aspects of the application. However, is it even worth conducting tests using the “human factor” instead of completely automating the testing process? After all, they require much more time and effort than automated tests (the tester has to manually do each step of the test), not to mention the vulnerability to human error or just pure fatigue. As you may have guessed, the answer to this question is positive. By implementing this type of test, we benefit from the creativity and intuition of the human user, which, so far, despite the accelerating development of AI, is irreplaceable. Of course, this may change in the future, but I cannot imagine that artificial intelligence could replace humans in the process of defining business requirements. After all, software is created for the client and it is the client who knows best what he expects from the applications created for him. This is where tools such as use cases and test scenarios come in, which, in my opinion, are very good means of agreeing business requirements and their scope with the client even before the programming work on the project begins.
Firstly, this ensures the compatibility of the delivered functionalities with the client’s requirements. Test scenarios are often developed based on the requirements and specifications provided by the client. They are the link between the client’s expectations and what will be delivered within the project. By verifying the software using these predefined scenarios, the client has a guarantee from the contractor that the final product will be in line with their original vision. Of course, this requires client’s involvement, but this activity fosters cooperation and ensures that the client’s expectations are taken into account at every stage of software development. It also allows clients to understand the testing process and track the progress of the project. Such cooperation can be as follows:
Earlier I have written about both use cases and test scenarios, so perhaps I will write about how I understand these two concepts and what their use might look like in the process of designing and developing an IT system.
Use cases define how the system and its functionalities are used by the user, and are used to describe users’ interactions with an application or a system. They aim to understand which goals and tasks users want to achieve by using the software. The description of use cases contains information about the actors (users or external individuals), the purposes of these actors and the main course of the user’s interaction with the system. On the other hand, test scenarios contain the specific steps that testers need to take, to test a specific functionality. They describe what the tester should do, what data to enter and what results to expect. Test scenarios focus on the technical aspects of testing, such as the specific operations that need to be done to verify if the software works as expected.
From the description of the mentioned tools, it can be seen that use cases can as much as possible be considered as a basis for creating test scenarios. In practice, we can imagine the following approach: the customer specifies which system functionalities he wants to have delivered and what he expects from them. Then (in a nutshell), together with the client, use cases are created on this basis in the form of descriptions, which can also be supported by diagrams. On its basis, the contractor creates simple scenarios describing the functioning of elements with the input of basic data and specifies what the expected result of such operation is. We can provide such scenarios for each functionality, which, after being confirmed by the client, state what the scope of work to be executed is, and when a given functionality is ready, be the basis for the client to verify its execution.
An example of such use of the tools discussed can be seen in the test scenario created for a functionality which is part of a financial system produced for our client in Belgium. This functionality allows the creation of a planned cost structure for a newly emerging business. Costs can be added, edited or deleted manually, but most importantly they can be added by default based on a survey in which the questions are multi-level and dependent on previous answers. In addition, the costs are grouped according to their type. In this case, the creation of a test scenario is very helpful because it allows the evaluation of the functioning of the survey itself as well as the correctness of the cost summation in the individual groups.
Basic information such scenario must contain is the pre-conditions required before starting the test, a description of the steps to be performed and the expected result afterwards. As you can see in the example, with the help of such tests we will check both the correctness of the interface elements, the error-free calculation and categorisation of costs, as well as localisation aspects, which in this case is, for example, the use of the appropriate number format used in Belgium for financial amounts using a dot as a separator of thousands.
And so on until all the necessary steps in a particular view have been tested.
Precise and accurately described scenarios help testers to effectively test the application, identify errors and ensure that the software meets users’ expectations. Be sure to fully understand the test objectives, describe the test steps, define test data and expected results.
Creating effective test scenarios can be one of the key steps in the software quality assurance process, but also, as I pointed out, a very good tool for planning development work and controlling its scope.
In conclusion, test scenarios can be successfully used already at the planning stage of project work by defining objectives, scope, schedule and resources, becoming an indispensable part of the project management process. They help to ensure the quality of the product and effectively manage resources and the progress of development work, contributing to the elimination of errors and problems at an early stage of the project, which can save time and costs in the long run.