Would you be happy if your car was quality certified, without someone looking at whether it actually passes the quality requirements? When testing, we are ultimately testing against some form of requirements, whether they are explicitly defined upfront, or implicitly through the implementation, or even through our human intuition.
You can manage and maintain your software requirements directly in Virtuoso. This can be done using the Requirements tab of the project dashboard. You can create requirements either manually or by importing from a file, and each requirement can be linked to one or more journeys.
When you already have your requirements specified in Gherkin syntax, you can generate journey skeletons automatically to help guide you during test authoring.
# Listing, creating, and updating requirements
The requirement tab shows you the list of requirements you have on your project.
To create a new one manually, click on the
New requirement button.
A requirement contains a name and criteria:
- Name: A unique name that allows you to identify the requirement in the project.
- Criteria (optional): A text using any syntax to specify the requirement.
Click on a requirement from the list to show its details or to update it.
# Importing a requirement from a file
You can also import requirements from files into your project by clicking on the
Import requirement button. Each file represents a requirement: the file name without extension becomes the requirement's name, and it contains the requirement's criteria.
# Linking journeys
You can manage the association between the requirement and journeys through the
Linked journeys tab. To add a new link, first select a goal and pick one of its journeys, then press the
Link journey button. You can also add all journeys from a goal at once by pressing the button without picking a journey.
An association can be removed by clicking on the icon.
# Generating journeys
If your requirement is specified using the Gherkin syntax, Virtuoso can help you to create tests for it.
As an example, suppose our target system is Virtuoso itself, and we have a requirement named Generate journey from requirement, with the following criteria:
Feature: Generate journey from an existing requirement whose criteria uses the Gherkin syntax Scenario: Open the "Generate journeys" modal Given the user has opened the requirement in the side panel When user clicks on the "Generate journeys from criteria" button Then the "Generate journeys" modal is shown Scenario: Generate journey Given the "Generate journeys" modal is open When user chooses an existing goal And clicks on the "Generate" button Then a success message with a link to the generated journey is shown And the "Linked journeys" tab is selected Scenario: Navigate to generated journey Given the success message with a link to the generated journey is visible When user clicks on the link Then the user is taken to the recently generated journey And the user can see one checkpoint for each scenario And the can see a step in the form of comment for each line of requirement criteria
By clicking on the
Generate journeys from criteria button the
Generate journeys modal is shown. Pick an existing goal, and press the
A draft journey will be created in the selected goal, and it will be automatically linked to your requirement. The feature name is used as the journey title, each scenario becomes a checkpoint, and each gherkin step becomes a comment in the checkpoint.
# Checking requirement coverage
The last tab in the requirement panel gives you information about your requirement coverage. It shows the linked journeys last execution outcome (passed, failed, or never executed) and the percentage of the linked journeys that passed, which works as a summary of the requirement coverage.
# Overall coverage panel
If you are interested in the overall coverage across the project, you have that information above the requirement list. By clicking on the Overall coverage report link, you see both the overall coverage percentage and each individual requirement coverage. The overall coverage is computed by averaging the coverage of all requirements linked to at least one journey.