TAST tool Menu
TAST Adaptors
Adaptors examples
TAST Integrations
Interesting features
Documentation of technical administration
Modeling recommendations
Training in the TAST tool
TAST tool Menu
TAST Adaptors
Adaptors examples
TAST Integrations
Interesting features
Documentation of technical administration
Modeling recommendations
Training in the TAST tool
This option of the TAST tool allows the user to manage UML diagrams. It will also be able to manage the data and manage the repositories of the test cases that are designed.
This option of the TAST tool allows the user to manage all treatments associated with UML diagrams.
UML diagrams are completely necessary for the creation of the test cases. That is because every message of the diagram represents an action that will be carried on in the test (click or type, for instance). In the next paragraphs, it is explained how can an UML diagram be created.
When logged in the tool, the user can see a menu in the left side (see First steps in TAST for further info). In this menu, the user will click on the button “Modeling”.
Once in the Modeling page, the user can proceed in three ways:
Where you will have to fill in the following fields:
This option of the TAST tool allows create / modify a diagram.
Below we see the screen or canvas to edit a diagram. It is the Canvas 2.0. At the top right (marked in red), is the Canvas toolbar, which offers different options for the design of the diagram. Let's look at them below:
The object or objects (Adapters), is the main element when creating a diagram. Two tabs help to define the name of the object, its properties and initialization or configuration parameters, to be able to interact with web pages, files, API, scripts, remote, DB.
In a message, by double click over it, is possible to indicate the type of action when the step is executed based on the following checkbox:
A guard is a logical condition that can be included in a UML message. The behavior is as follow, when the logical condition is true, the message is executed, when the logical condition is false, the message is NOT executed.
A guard is really useful when an action must or must not be executed, based on the result of a condition.
The conditions inside a guard can be of two types:
Following some examples about simple and complex conditions in a Guard:
In the mapping of a message, is possible to include a value with line skipping.
For this, there is a checkbox 'Multiline Text':
If the checkbox is selected, an editor will appear to include the text:
This message has to be tied to another message between two objects and is painted in the opposite direction. The two messages form a set and are not treated separately.
This option of the TAST tool allows the user to pass information between sequence diagrams. Gates can be an easy way to model the passing of information between a sequence diagram and its context. A gate is merely a message that is illustrated with one end connected to the sequence diagram's frame's edge and the other end connected to a lifeline and represents another diagram.
About Gates, please consider the following important topics:
How to Create a Gate:
In the toolbar, select the Gate and draw on the lifeline. Double click and open the Gate properties, where you choose the domain, the project and the diagram you want to copy.
The selected diagram can be visualized by clicking on the icon of the image.
By clicking on the message map, it is displayed.
DATA MANAGEMENT: Allows to assign test case data to each Gate included in the diagrams.
EXECUTION OF TEST SET WITH GATES: A Test Set containing Gates is created and executed.
This option of the TAST tool allows the user to handle bifurcations and loops.
TAST allows the following types of combined fragment:
Subtestcases are test cases that can be drawn inside a diagram. The reason to implement the subtestcases consists in having a visual option to create test cases in a diagram instead of only in Data Management. Also, to obtain a result (or/and log) with an isolated portion of a diagram (test case) apart of the main result or log.
To use a subtestcase in a diagram, go to the toolbar, click on the ”+” icon and then select subtestcase. You can also use “ALT + S” as a shortcut to draw it. To place it on the canvas you will have to click where you want to place it.
Once drawn, the subtestcase can be resized with the small light green square at the bottom right of the subtestcase. Subtestcases can be moved (by selecting and dragging) in any direction. The only limitation to the vertical movement is that they do not exceed the line of the adapters.
To open the subtestcases properties, double click in the subtestcase and it will appear, here you can change the name of the subtestcase (up to 100 characters) and add/edit a guard. Also you can set a name with a variable like: “name of the subtestcase” + #Variable
It also works as: ‘name of the subtestcase‘ + #Variable.
There are some things to keep in mind using subtestcases:
In Data Management once you have a diagram with a subtestcase (or various) the SubTestCase will appear as a red rectangle.
Data Management can be used as usually with the addition of subtestcases appearing there.
In results page a new functionality has been added, with the symbol of “+” you can click to deploy a new table with all the subtestcases an execution has. For example, in the following image:
We can see the result as always. But with the new addition:
You can now see the subtestcases results. Here you can download the evidences and the result document of the subtestcase.
In the result document:
In test case data description, you can see the name of the subtestcase, in case that the test case data had a description it will show you “testcasedatadescription_subtestcasename”.
In ALM it will show the full evidences of the execution, and all the subtestcases in the execution separatedly (also if you have gates with subtestcases those will be registered aswell).
When you want to remove a message from a diagram, TAST offers several alternatives:
The first one allows us to delete the selected object(s) from the diagram by clicking on the trash can icon in the toolbar. The following window appears with 2 possible options for deleting (Delete elements and variables, Delete elements) and a Cancel/back option.
A second one would be to click with the right mouse button on any object in the canvas, a dynamic contextual menu appears, which presents a series of options depending on the type of object. If the “Delete” option is checked, the same previous screen appears and you will confirm whether you want to “Delete elements and variables”, “Delete elements” or “Cancel/go back”.
And finally, we can delete an element (this option only allows us to “Delete elements” or “Cancel/go back”), in a faster way (shortcut), using the keyboard. In this case the Delete key.
This information about the keyboard shortcuts in the canvas will be displayed by clicking on the ”?” icon in the toolbar.
And then all the necessary help will be displayed:
Below, the screen to manage the UML diagrams :
We can see the diagram information by clicking on the 'More info' icon.
You can page the diagrams using the page numbers at the bottom of the screen.
This screen allows:
- Create a new diagram (// New diagram // option).
- Save the information of the active diagram on screen (diskette icon).
- Delete a diagram, using the bin icon.
- Create a new folder (// + Folder // option).
- Select diagrams using user filters and mappings, clicking the filter icon.
- Deactivate the filters used, using the cross icon.
- Edit a diagram for its update, double click.
In the mapping Tab you set the information at the message level:
In the mapping Tab you set the information of the parameters of the message. So, the “SearchBy” is the way to find an element in the parameter section (using tags) and the “Element” is the path you obtain from the real element to interact with.
In a TAST diagram, the messages (steps) non-reply can be documented using the “Message documentation” tab in the properties of the same.
In this tab it will be possible to document everything that should be stored in the evidence repository tools such as ALM, Confluence, etc.
This new tab contains the following elements:
This option of the Tast tool allows the user to move a diagram to another folder of any domain and project to which they have access.
To be able to use it you have to:
Go to Model, click on UML Diagrams. The table is shown, where you have to click on the arrow icon located in the Actions column (fourth element). A pop-up appears, in which you select the domain, the project and the folder where you want to move the diagram. Click on “yes”. The diagram has been moved to that folder.
In a diagram, it is possible to use a set of global variables in all the parts where the help of variables is allowed (object mapping, message mapping, …).
The dropdown of variables (including global ones) will appear when typing the character '#':
In TAST, there are currently these global variables:
We can also quickly access the list of global variables through the toolbar. Clicking on the ”?” icon will display “Show Canvas help”.
Next a modal with 3 tabs and choose the “Global Variables” tab which displays the standard global variables available in any diagram.
Below, the list of predefined functions and the indication of whether they generate evidences or not:
Predefined Function | Adaptor | Generates evidences |
---|---|---|
connect | Database | NO |
connect_DB | Database | NO |
dBExecuteStatement | Database | NO |
dBGetQueryData | Database | YES |
disconnect_DB | Database | NO |
getNumColumns | Database | NO |
getNumRows | Database | NO |
getTableValue | Database | NO |
tableRecordCount | Database | NO |
addSheet | Excel File | NO |
deleteSheet | Excel File | NO |
generateFileAsEvidence | Excel File | YES |
getCellValue | Excel File | NO |
getColumnByRowSearch | Excel File | YES |
getExcelSheet | Excel File | NO |
getNumColumns | Excel File | NO |
getNumRows | Excel File | NO |
getNumValueSearchOnColumn | Excel File | NO |
getRowByColumnSearch | Excel File | YES |
getTableValue | Excel File | NO |
getTableValueByColumnName | Excel File | NO |
getValuesByPosition | Excel File | NO |
newFile | Excel File | NO |
setCellValueOneParameter | Ecxel File | NO |
setColumnValues | Excel File | NO |
setHeader | Excel File | NO |
setRowValues | Excel File | NO |
setTableValue | Excel File | NO |
setSheet | Excel File | NO |
vTableLookUp | Excel File | YES |
vTableLookupArray | Excel File | YES |
allOptionsAreSelected | GUI HTML | YES |
clear | GUI HTML | YES |
clearAndType | GUI HTML | YES |
click | GUI HTML | YES |
clickByJavaScript | GUI HTML | YES |
clickLink | GUI HTML | YES |
clickPrint | GUI HTML | NO |
closeAllWindows | GUI HTML | YES |
closeOthersWindows | GUI HTML | NO |
closeWindow | GUI HTML | NO |
countElements | GUI HTML | NO |
checkbox | GUI HTML | YES |
checkRadio | GUI HTML | NO |
doubleClick | GUI HTML | YES |
deleteAllCookies | GUI HTML | NO |
deselectAllOptions | GUI HTML | YES |
fileDownload | GUI HTML | YES |
fileDownloadDialog | GUI HTML | YES |
fileUpload | GUI HTML | NO |
getAttribute | GUI HTML | YES |
isCurrentUrlContains | GUI HTML | YES |
isCurrentUrlEquals | GUI HTML | YES |
isCurrentUrlMatches | GUI HTML | YES |
isDisplayed | GUI HTML | YES |
isExist | GUI HTML | YES |
isSelected | GUI HTML | YES |
isTitleEquals | GUI HTML | YES |
isTitleMatches | GUI HTML | YES |
hasOptionWithValue | GUI HTML | YES |
javascriptAlertAccept | GUI HTML | NO |
javascriptAlertCancel | GUI HTML | NO |
javascriptExecute | GUI HTML | NO |
login | GUI HTML | YES |
openUrl | GUI HTML | YES |
optionWithValueIsEnabled | GUI HTML | YES |
optionWithValueIsSelected | GUI HTML | YES |
pressEnter | GUI HTML | YES |
select | GUI HTML | YES |
selectAllOptions | GUI HTML | YES |
selectOption | GUI HTML | NO |
submit | GUI HTML | YES |
tableCellValue | GUI HTML | NO |
tableCellXPathByPosition | GUI HTML | NO |
tableColumnsNum | GUI HTML | NO |
tableHLookUpXPath | GUI HTML | NO |
tableHtml | GUI HTML | YES |
tableRowsNum | GUI HTML | NO |
tableVLookUpValue | GUI HTML | NO |
tableVLookUpXPath | GUI HTML | NO |
takeScreenshot | GUI HTML | YES |
type | GUI HTML | YES |
typeAction | GUI HTML | NO |
typeKeys | GUI HTML | NO |
uncheckbox | GUI HTML | YES |
validateAttribute | GUI HTML | YES |
waitFor | GUI HTML | NO |
waitForElement | GUI HTML | NO |
waitForPageLoad | GUI HTML | NO |
newConnect_Script | Script Generic | NO |
execute_Script | Script Generic | YES |
disconnect_Script | Script Generic | NO |
connect_Script | Script Generic | NO |
closeFile | Text Files | NO |
containsText | Text Files | NO |
countFileLine | Text Files | NO |
countTextFile | Text Files | NO |
deleteFtpFile | Text Files | NO |
deleteSftpFile | Text Files | NO |
generateFileAsEvidence | Text Files | YES |
getFileText | Text Files | NO |
getFtpFile | Text Files | NO |
getLineLength | Text Files | NO |
getNumColumns | Text Files | NO |
getOwner | Text Files | NO |
getReadLine | Text Files | NO |
getSize | Text Files | NO |
getSftpFile | Text Files | NO |
getTableValue | Text Files | NO |
getTextFileData | Text Files | YES |
lineContainsText | Text Files | NO |
loadCsvData | Text Files | YES |
newFile | Text Files | NO |
openFile | Text Files | NO |
openNewFile | Text Files | NO |
putFtpFile | Text Files | NO |
putSftpFile | Text Files | NO |
replaceText | Text Files | NO |
writeEnter | Text Files | NO |
writeTo | Text Files | NO |
assertion | User Object | NO |
compareParameters | User Object | NO |
compareVariables | User Object | NO |
copyFile | User Object | NO |
dateAddition | User Object | NO |
dateDifference | User Object | NO |
dateWeekDay | User Object | NO |
executeCommand | User Object | NO |
executeJavaScript | User Object | NO |
failTest | User Object | NO |
getCurrentDate | User Object | NO |
getCurrentDateAsDate | User Object | NO |
getCurrentDateAsString | User Object | NO |
isExistVariable | User Object | NO |
manualTast | User Object | YES |
removeVariable | User Object | NO |
replaceAll | User Object | NO |
saveRepositoryAsEvidence | User Object | YES |
sendKeys | User Object | NO |
sendKeysCombination | User Object | NO |
sendKeysPaste | User Object | NO |
setArrayVariable | User Object | NO |
setVariable | User Object | NO |
systemCloseProgram | User Object | NO |
takeScreenshot | User Object | YES |
waitFor | User Object | YES |
deleteRest | API/WebService | YES |
getALLXMLElementValueByTagName | API/WebService | YES |
getCookieValue | API/WebService | NO |
getHeaderValue | API/WebService | NO |
getHTMLElementValueByXPath | API/WebService | NO |
getJSONElementValueByJsonPath | API/WebService | NO |
getJSONElementValueByTagName | API/WebService | NO |
getRest | API/WebService | YES |
getResponseStatus | API/WebService | NO |
getResponseTime | API/WebService | NO |
getXMLElementValueByXPath | API/WebService | NO |
getXMLElementValueByTagName | API/WebService | NO |
patchRest | API/WebService | YES |
postRest | API/WebService | YES |
putRest | API/WebService | YES |
responseBodyContainsText | API/WebService | NO |
setNoneAuthentication | API/WebService | NO |
setBasicAuthentication | API/WebService | NO |
setBearerTokenAuthentication | API/WebService | NO |
setDigestAuthentication | API/WebService | NO |
clearAndWriteField | Host 3270 | YES |
clearField | Host 3270 | YES |
containsText | Host 3270 | YES |
getLenghField | Host 3270 | NO |
nextScreen | Host 3270 | YES |
previousScreen | Host 3270 | YES |
readField | Host 3270 | YES |
readRow | Host 3270 | YES |
readScreen | Host 3270 | YES |
readScreen | Host 3270 | YES |
rowContainsText | Host 3270 | YES |
waitCRC | Host 3270 | NO |
waitFor | Host 3270 | NO |
waitForChange | Host 3270 | YES |
waitForText | Host 3270 | YES |
writeAfterLabel | Host 3270 | YES |
writeBeforeLabel | Host 3270 | YES |
writeField | Host 3270 | YES |
writeKey | Host 3270 | YES |
writeKeyUntilFind | Host 3270 | YES |
writeText | Host 3270 | YES |
checkTextInSlide | NO | |
checkTextOnDocument | NO | |
checkTextOnPage | NO | |
checkTextOnPageArea | NO | |
generateFileAsEvidence | YES | |
getGetTextByPageArea | YES | |
getNumPages | NO | |
getNumWhitePages | NO | |
getPageAsImage | YES | |
getPageText | YES | |
getTextCountOnDocument | NO | |
getTextCountOnPage | NO | |
isPageWhite | NO | |
generateFileAsEvidence | XML | YES |
getElementAttrTextByXPath | XML | NO |
getElementsCountByTagName | XML | NO |
getElementsCountByXPath | XML | NO |
getElementsTextByTagName | XML | YES |
getElementsTextByXPath | XML | YES |
getElementTextByTagName | XML | NO |
getElementTextByXPath | XML | NO |
replaceElementAttrTextByXPath | XML | NO |
replaceElementTextByTagName | XML | NO |
replaceElementTextByXPath | XML | NO |
saveAs | XML | NO |
saveXml | XML | NO |
xmlToString | XML | NO |
executeAllServiceOperations | SOAP UI | YES |
executeAllTestSuite | SOAP UI | YES |
executeServiceOperation | SOAP UI | YES |
executeTestCase | SOAP UI | YES |
executeTestStep | SOAP UI | YES |
executeTestSuite | SOAP UI | YES |
executePostmanCollection | Postman Collection | YES |
getResponseBody | Postman Collection | YES |
getResponseStatusCode | Postman Collection | YES |
You can use the following keyboard shortcuts in the canvas:
Shortcut | Description |
---|---|
Esc | Close menus and selects the pointer. |
Supr | Deletes elements if there is one or more elements are selected. |
Alt + 9 | Unlock diagrama for edition. |
Alt + P | Selects the pointer tool. |
Alt + O | Selects the “Adaptor” tool. |
Alt + M | Selects the “Message” tool. |
Alt + R | Selects the “Reply message tool”. |
Alt + G | Selects the “Gate” tool. |
Alt + A | Selects the “Combined Fragment: ALT” tool. |
Alt + D | Selects the “Combined Fragment: DO WHILE” tool. |
Alt + W | Selects the “Combined Fragment: WHILE” tool. |
Alt + F | Selects the “Combined Fragment: FOR” tool. |
Alt + E | Selects the “Combined Fragment: FOR EACH” tool. |
Alt + S | Selects the “Subtestcase” tool. |
Ctrl + C | Copy selected elements. |
Ctrl + V | Paste copied elements. |
Ctrl + Shift + V | Paste copied items on the position of the cursor. |
Ctrl + Z | Undoes some actions such as: Delete elements, Redistribute diagram, etc… |
Ctrl + Shift + F | Toggle comment out selected items (messages/gates). |
Double click | Edit element: double click on a diagram element to edit its properties. |
Right button | Context menu: by right-clicking on an element, you can access the dynamic context menu. The options of this menu vary and can appear active/not active, depending on the currently selected elements. |
Mouse Wheel | Zoom in/Zoom out: Ro ll the mouse wheel forward or backward to zoom in or zoom out the canvas respectively. |
Shift + click | Multiple selection: press “shift” key while click on items to select them. |
Shift + drag | Multiple drag&drop: press “shift” key while drag and drop all selected items |
Click + drag | Move diagram: click on an empty diagram place while drag the diagram to any direction to move it. |
By Selecting an object, we can then perform other actions with it (eg delete it, etc.)
To select an object in the canvas, just click on the object (in any of its parts, including the text). To deselect it, just click on an “empty” area of the canvas.
To select several objects in the canvas, we will press shift-click on the different objects that we want to select.
This allows us to perform actions on that group of selected objects (eg delete them, move them, copy them, etc.)
To deselect them, just click on an “empty” area of the canvas.
In multiple selection there is no limitation regarding the type of selected objects. All types of objects can be selected at the same time (messages, gates, fragments…).
TAST has an important help when mapping objects and messages in a diagram: Selective Mapping.
The configuration, how to use the functionality, and some considerations are explained in the document below:
In an UML diagram, TAST allows the use of variables of a specific type of table, called TastTableData.
These variables can be used with practically all the adaptors available in TAST (HTML GUI, Excel Files, Database, …). They can be used in the “Value” box of a Predefined Function or in Javascript.
Once the TastTableData variables have been created (as output variables), they can be used as input variables in subsequent messages. The way to use them in a “Value box” is:
#TastTableDataVariableName.functionName(params…).
From javascript, you will use the syntax functionName(params…)
The functions currently available are:
TastTableData is a multidimensional list, or a list of lists. By placing a list inside other lists, we can store information in rows and columns. Let's show an example:
With the SetVariable function we are going to define a variable of type TastTableData.
The different rows appear, containing five columns, each of one type. More rows can be added.
To get all the information that is on the first page of the Excel file, we can use the getExcelSheet function and it is stored in this variable TastOutputTable.
Then, in order to work with TastOutputTable we can use the functions or methods described above.
TAST allows the use of variables of a specific type of row, called TastRowValues.
These variables can be used with practically all the adaptors available in TAST (HTML GUI, Excel Files, Database, …). They can be used in the “Value” box of a Predefined Function or in Javascript.
Once the TastRowValues variables have been created (as output variables), they can be used as input variables in subsequent messages.
The way to use them in a “Value box” is: #TastRowDataVariableName.functionName(params…)
From javascript, you will use the syntax functionName(params…)
In order to be able to work with these variables, some methods or Predefined Functions have been created. The functions currently available are:
TastRowTableData is a collection of data in the form of a list that can be repeated. The number of elements is not fixed or limited in advance. To access the elements an index is used which indicates the position of the element in the collection. This type of data is required in several Adapters.
Let's take an example with two Adapters: User Adapter and Excel Adapter. In the User Adapter we are going to create a variable of this type. We use the Method or the Predefined Function SetVariable, for this we only have to choose the data type: TastRowValue and fill in.
In this other example (message), the column whose row meets a condition is collected from an Excel file through the Excel Adapter. The result is stored in this data type, in the variable OUTPUT.
In this other example (message) we see that we are going to use the variable OUTPUT and we are going to obtain the index cell one, with these methods or Predefined Functions, the first cell is one, it is not zero.
For more information about Variables Management, see the topic “Variable Management”.
TAST has an important feature: the Canvas, which is a place where the user can paint the UML diagrams.
Actually, the Using TAST workflow starts from its Canvas.
Currently Canvas/Modeling 2.0 does not work in Internet Explorer, because IE is a discontinued product. All other browsers Chrome, Edge and Firefox are supported.
You can launch the Canvas from several places:
We have created a page where it is explained in detail, its use, the improvements made and all the features it has.
TAST Canvas 2.0
With this option it will be possible to manage the data sets with which the tests corresponding to a specific diagram will be launched.
The Data Management option has three tabs:
Displays the list of diagrams for a specific domain and project, with information about their test case data sets and test case sets. In general, we can filter by:
It will also allow you to modify and delete a folder.
In the main window of Data Management, the list of diagrams for the filters used will be displayed, with the following information:
In this window the data of the test cases of a diagram will be created. Is accessed by clicking on any diagram of the Test Sets Data window.
There will be a set of validation data and 1 to n data sets of values. It will be possible to indicate:
You can also view the diagram.
There will be the option to copy the data of the test cases, which can be modified later.
There are two ways to access this Information Window:
This new Information Window will provide us with information related to:
Back in the Test Set Data Window, we have another functionality to delete massively the Test Case Data (TCD) created for that Test Set (TS).
A new icon with a trash bin inside is located in the upper icon bar.
Once this button is clicked a modal window with all the TCD list will appear.
Different features in this modal window:
In this page you can also to import data from an Excel file.
You just need to click in the Import icon to show the Import TC file page.
Then,
After you select the file and set the correspondence, you should click the button Import to perform the import process.
This TAST option allows the user to do a search of a diagram (and its Test Case Data) among all the domains of the application. TAST also allows the filtering of Test Set in TS Management in all domains.
To use the search for a UML diagram, click on the filter button for all domains and projects.
The following screen will appear
We can choose between two types of search:
Search by diagram ID
In the search field you type the diagram ID of the search you want to perform, and click on the magnifying glass button. The application shows the diagram with the specified ID in the search.
If you click on the file icon, the diagram will open directly:
Search by diagram name
In the search field you type the characters of the search you want to perform, and click on the magnifying glass button. The application shows all the diagrams of all the domains that contain the characters entered in the search.
If you click on the list icon, the application will switch to the selected Diagram, Domain and Project:
This TAST option allows the user to do a search of a diagram (and its Test Case Data) among all the domains of the application. TAST also allows the filtering of Test Set in TS Management in all domains.
There are two types of searches:
To use the search of an UML diagram in Data Management, follow these steps:
In Modeling, select the Data Management Option.
Click on the filter button of all domains and projects.
Search by diagram ID
In the search field you type the diagram ID of the search you want to perform, and click on the magnifying glass button. The application shows the Test Set Data corresponding to the diagram with the specified ID in the search.
If you click on the file icon, the Test Set Data will open directly:
Search by diagram name
In the search field you type the characters of the search you want to perform, and click on the magnifying glass button.
The application shows all the diagrams of all the domains that contain the characters entered in the search.
If you click on the list icon, the application will switch to the selected Test Case Data, Domain and Project:
Clicking on the diagram, you can see the Test Case Data of the selected diagram.
In this tab, all the repositories that the users are going to use in the diagrams will be stored The repositories are TXT or YML files (they must have YML /YAML format) that we create and upload to this tab and contains information that we can use in a diagram.
To evade confusions with the functionality, and to briefly explain how to create repositories we have to know the details about the elements used here. Next we have a detailed example.
Concepts to create a repository:
In the repository management we have different “features”:
In the repository management tab, we have to click the import button in the top right side.
Then a modal window will appear.
In this modal window, we choose the name of the repository, domain and project also the name and where to save it.
Once it is ready, we click import.
If the TXT/YML file is ok, the importation will be perfect.
But if the file has some kind of error, this message will appear:
This can happen for different reasons:
In modeling are some changes about repositories as well.