If an application is defined properly, there is good chances that developers will create it correctly.
Keetup's clients are entrepreneurs or company representatives, and they have different technical levels. In some cases they are important programmers (CTOs) and in others they are people with little or no computer knowledge.
That is why it is necessary to establish a language that the client and programmers can understand. This language is mainly the definition of ACTIONS that can be executed in the APP.
In this article I explain what are actions of a mobile application (and web application), how to define them and what are they for.
🤔 What are Actions of an Application?
An action, in a system, is everything that must happen and is performed by a User or automatically. Although it seems very simple, and obvious, it is very important to define them by establishing a short title and description.
In the case that the action is executed by a user role, then we will place its identifier next to the action.
SEE ALSO: The secret to define Mobile Applications: ROLES
🤔 How to define an action?
Let's supposed that it is necessary to describe a very common feature: "Registration of users".
So, the action is defined as:
Title: Registration to the system
Description: The system must display a form that allows data to be entered for a user to register. The necessary fields are: Name, Surname, Email. The optional fields are: Cellular, Address.
Additionally, it is recommended to define the action as much as possible, because this will reduce misunderstandings with the development team (and with the client if you are part of the development team).
For example, if we leave the description as it is defined, it is not possible to claim that the name should not contain letters or symbols, although it is quite obvious, right? it would be better if it were stipulated.
So, the action is defined as:
Title: Registration to the system
Description: The system must display a form that allows data to be entered for a user to register. The necessary fields are:
Name (must not contain numbers or symbols),
Last Name (must not contain numbers or symbols),
Email (must be a valid email).
Optional fields are: Cellular (must be a valid number), Address (must be a valid address).
In this way there is no doubt about what to expect.
An additional TIP is to define what are the steps to test this action.
So, adding steps to test this action:
Title: Registration to the system
Description: The system must display a form that allows data to be entered for a user to register. The necessary fields are:
Name (must not contain numbers or symbols),
Last Name (must not contain numbers or symbols),
Email (must be a valid email).
Optional fields are: Cellular (must be a valid number), Address (must be a valid address).
How to test it:
Access the registration form with an anonymous user
Fill in the form data leaving one or more mandatory fields without completing and press "Register"
The system should display an error message
Complete the form data by completing all the required fields and press "Register"
The system must register the user
The system must send an email to the user informing that the user has successfully registered
This will allow knowing if the action is working correctly, it can be minimally tested by following these steps.
Under no circumstances should these steps be taken as proof of action since when testing the Tester you should try to break the functionality and find an error. It is possible that an action is not literally executed by a user role, and is an automatic action, such as: Send notifications to users who registered yesterday. In this case, these actions must be separated and defined all together, since these will be in charge of the system.
🤔 What are actions for?
The main utility of the actions is to know and to control its correct functioning of the APP.
However, they also serve to:
- know the scope of the project, and therefore, estimate the time required for its development,
- stipulate a test plan, to execute each action after implementing new functionality,
- know which are the roles that each of the actions can execute,
- keep the documentation on the system functionalities updated.
After having created many computer systems, I have come to two conclusions:
The success of a system is directly related to its correct definition,
The correct functioning of a system is totally related to the organization of the tests (manual and automatic).
SEE ALSO: Do I really need a mobile app?