In the previous article, we learned about test analysis for a product in general, and now we are ready to go further and look at test analysis for specific features.
There are three main activities of test analysis at the Feature level:
For Product test analysis, as the high-level analysis of the system, it’s enough to determine the actions of the object during decomposition, but for the Feature test analysis, we need to proceed further and define the parameters of the tested object.
Parameters are the properties or characteristics of the object, they define the specific conditions, behaviors, or configurations associated with that object. Parameters are values that act as inputs, providing specific information needed for a particular operation.
So here, we have the following sequence of decomposition:
Let’s proceed with Slack as an example and look at the Create Account feature.
To create an account, the user needs to submit a form that has the following parameters:
Each parameter has requirements regarding what values it should accept:
Next, we need to create test data to check the form submission with different values for each parameter to verify that valid values are accepted and invalid values are rejected.
There is a large number of possible values that can be checked and we usually don’t have so much time to test all possible values for each parameter. Instead, we can explore test design techniques that help to define an efficient set of test data.
We move on to the next stage - creating test cases using appropriate test design techniques.
For testing data validation, the following techniques are most often used:
However, testing input validation is not all verifications that we should perform. Lots of testing that we do involves testing the business logic that sits underneath the user interface. The most known techniques that focus primarily on testing business logic functionality are:
Test design techniques help reduce the number of tests while maintaining a high level of coverage. However, there are some important notes to remember about test design techniques:
At the Feature level, we also need to conduct dependency analysis, because usually, every new feature interacts with some existing features. Hence, we need to find out these interactions and possible dependencies.
We should take the list of our objects/epics (created at the Product test analysis stage), go one by one, and think if it interacts with the feature we are testing.
Let’s perform a dependency analysis for the Send Messages feature in Slack.
Now, we can extend test cases for the Send Messages feature with the following verifications:
Let’s recap the steps of test analysis at the Feature level:
Having such a structured and comprehensive test analysis brings the following benefits: