modeling [TAST DokuWiki ]

User Tools

Site Tools


Sidebar

First steps in TAST

What is UML

Computer setup for TAST use

FAQ

Recognized Issues

TAST tool Menu

TAST Adaptors

Adaptors examples

TAST Integrations

Interesting features

Documentation of technical administration

Modeling recommendations

Training in the TAST tool

modeling

Modeling

This option of the TAST tool allows the user to manage UML diagrams and Test Set Data.

UML Diagram

This option of the TAST tool allows the user to manage all the treatments associated with the UML diagrams.

How to create an UML diagram

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”. After this, there will open a window where the user will select the domain and project where the test case will be included in.

IMPORTANT: The projects and domains need to be created before the creation of the test case and, also, the user needs to be assigned to the domain and project. Otherwise, the user will not be able to see neither the project-domain, nor the test cases that might have already been created.

For more info about the creation of the Domain and user, please check customize._domains_and_Projects page.

Once in the Modeling page, the user can proceed in three ways:

  • Selecting and modifying one of the test cases already created.
  • Creating a new test case.
  • Importing a test case created with any other UML Design tool.



If the user chooses to modify an existing UML diagram (left side of the upper screenshot), there will be 4 different colors for the test cases: green for the cases where the mapping has been completed and validated, yellow for the cases where the mapping has been completed but not validated, red for the cases where the mapping has not been done, and grey for the cases that are empty.



When choosing to create a new UML diagram, it is needed to click on “New” button. After this, a new window will open as shown below.

In it, can be selected:

  • Domain: this is the domain which the test case will belong to.
  • Project: select the project where the test case will be linked to.
  • Folder: folder of the system where the test case will be stored.
  • Diagram name.
  • Diagram description.
  • Use diagram template.
  • Copy validation mapping.
  • Visibility as a template:
    • Public.
    • Domain.
    • Project.
    • Private.
    • None.

Edit diagram

This option of the TAST tool allows create / modify a diagram.

Below, the screen to edit a diagram:



This screen allows:

  • Increase the size of the elements of the diagram, using the 'magnifying glass +' icon.
  • Decrease the size of the elements of the diagram, with the 'magnifying glass -' icon.
  • Delete the diagram that we have selected using the bin icon.
  • Download an image of the diagram on the screen with the download icon.
  • Validate the mappings included in the diagram using the 'validate mapping icon'.
  • Execute the validation of the diagram with the play icon.
  • Select the elements to be included in the diagram through the + icon:
    • Pointer (complete information of the selected element).
    • Object.
    • Message.
    • Reply message .
    • Gates.
    • Bifurcations.
    • Loops.

Checks in message properties tab

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:

  1. Locking step: If this message fails, the test execution will stop and the test will end.
  2. Optional step: The result of this step will not impact the test result.
  3. Comment out: If this check is marked, the message will not be executed.
  4. Breakpoint: The breakpoint check is used to stop the execution of the test in this step. It is helpfull during the creation of the diagram.

Guards

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:

  • Simple, by using logical operators like, < (less than), > (greater than), == (equal to), != (different than), ⇐ (less or equal to), >= (greater or equal to).
  • Complex, by concatenating the use of simple operators through logical operators as: AND (and), OR (or), && (exclusive and), || (exclusive or)

Following some examples about simple and complex conditions in a Guard:

  • #numCol < 25
    The message will be executed when, the variable numCol is less than 25.
  • #myFavoriteApp == “TAST”
    The message will be executed when the variable myFavoriteApp is equal to the string “TAST”. To be considered that the strings must be compared using “” (double coutes).
  • #fahrzeugtypTestData ==“Gebrauchtwagen”||#fahrzeugtypTestData==“Vorführwagen” || #fahrzeugtypTestData==“Tageszulassung”
    The message will be executed when the variable fahrzeugtypTestData, is equal to one of the following values: Gebrauchtwagen, Vorführwagen, Tageszulassung.
  • #str1 ==“TAST” AND #str2==“TaaS” AND #str3==“SIPSA”
    The message will be executed when the variable string str1 is equal to TAST and when the variable str2 is equal to TaaS and when the variable str3 is equal to SIPSA.

Multiple line text

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:

Reply message

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.


  • The only function allowed in the reply message is assertion, that has as input parameters stepResult (result of the previous message), and can have more parameters. The output parameter is also stepResult.
  • This message allows us is to vary the result of the previous step by checking some conditions. This process is done using a javascript.

DATA MANAGEMENT: It allows modifying the javascript of each one of the diagrams.

Gates

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:

  • The position of the adaptor inside the gate is very important for the correct behavior because the Gate is also related to the Adaptor you plan to instantiate. Thus, you should put the Gate not only in the number step, but also in the same lifeline where you can continue the test execution. For example, if you want to use a Gate to a HTML GUI Adaptor, you should put the Gate in a Lifeline of a GUI HTML Adaptor into the parent diagram.
  • The Isolated behavior always instantiates all adaptors.
  • The Non-isolated behavior: maps the messages of the first adaptor of the Gate that has the same type as the adaptor of the parent where it is drawn; the rest of the adaptors will be instantiated.
  • The concept of Isolated / Non-Isolated is internally configured in TAST. Currently, that concept only applies for these adaptors: GUI Adaptor and Web Services Adaptor.
  • For the User's Gates: all the Gates in lifelines belonging to User objects are mapping to the User object of the Father diagram.

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.

Combined Fragments

This option of the TAST tool allows the user to handle bifurcations and loops.

TAST allows the following types of combined fragment:

  • To handle bifurcations:
    • CF ALT: if the condition indicated in the Guard of the Combined Fragment is true, the steps of the first part of the ALT will be executed; otherwise, the steps executed will be those of the 'else' part:





  • To handle loops:
    • CF Loop do while: while the condition indicated in the Guard of the Combined Fragment is true, the steps of the Combined Fragment will be executed. The condition is check after the steps are executed, so do while loop guarantees the loop execution at least once:





  • CF Loop while: this loop is similar to do while loop. The difference is when the exit condition of the cycle is evaluated. In the while loop this evaluation is done before entering the cycle, which means that the loop may not get executed:





  • CF Loop for: All the steps included in this loop will be executed a number of times, according to the parameters indicated in the fragment properties tab:

    Guard: this field indicates the condition that the specified variable must meet to execute the steps of the For loop. This variable will appear in the section 'Variable for iteration'.

    Case start: contains the initial value that the variable will take for the iteration inside the loop.

    Type increment: type of increment of the variable. It can be incremental (+) or decremental (-).





  • CF Loop for each: It enables to iterate one by one (from 1 … n) the selected row or column of a table introduced as variable. It makes possible to handle one by one the information selected in a Vertical or Horizontal way.





    To get data from the object, use the name of the table, followed by the word “Row”, using the method getCellValue(n\.



    For the column, use the table name, followed by the word “Column”, using the method getCellValue(n).



    Where (n) is the position of the cell in the row or the position of the cell in the column.

SubTestCases

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.

How to use it in a diagram

To use a subtest case in a diagram you have to go to drawing tools and click in subtestcase, then to draw it in the canvas click wherever you want to put it. You can also click ALT+S to select the subtestcase (as a shortcut).

Once it is drawn you can resize it with the little grey square in the bottom right of the sub test case (clicking holding and dragging it) and you can replace it the same way as the combined fragments.

To open the subtestcases properties, double click in the subtestcase and it will appear, here you can change the name of the sub test case (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

SubTestCases specs

There are some things to keep in mind using subtestcases:

  1. All the messages inside the subtestcase will work as usual in the diagram but will generate a different result and log. So, in the end, we will have one global and another with the content of the subtestcase. If you want to retrieve the logs from the client it will look like the following image, inside the folder is the subtestcase log. It will generate a folder for every subtestcase in the diagram.





  2. You cannot nest subtestcases, it will only register one of the subtestcases nested it must be avoided.
  3. Inside a subtestcase can be placed steps and fragments, those fragments can be nested.
  4. Inside a fragment can be placed a subtestcase and that subtestcase can be like the point 3.
  5. The subtestcases can be deleted but not copy-pasted.
  6. Various subtestcases can be placed in the same diagram (but not nested).

SubTestCases in Data Management

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.

SubTestCases in Results Page

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”.

SubTestCase in ALM

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).


Delete a message

When you want to delete a message from a diagram, the following window appears:

  • No: the message is not deleted. The delete confirmation window is closed.
  • Delete message and variables: the message and the references of the variables declared by that message are deleted. The delete confirmation window is closed.
  • Delete only the message: only the message is deleted, remaining the references of the variables declared by that message. The delete confirmation window is closed.

Information about the management of UML diagrams

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.

Message Properties Tab

In the mapping Tab you set the information at the message level:

  • Name: Message Name.
  • Description: Message Desscription.
  • Predefined Function: Selected Prefdefined Function (form a combo list).
  • Input Parameters: Depending of having or not parameters the selected PF.

For the Input Parameters there are two important points to take in care:

  • Sensible: In case is checked, it means that the parameter is character's sensible. That is you cannot see the chraracters when you are setting the value for it (later, in the Mapping Tab). E.g, this is very useful for passwords, to hide the entered values.
  • Variable: In case is checked, it means that the parameter could be used later in the diagram as a variable. One the checkbox is checked, the symbol # appears to indicate that this name will be a variable since that moment.

Message Mapping Tab

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.

  • Element: HTML element Identifier (related to the Attribute selected in the Search By field). E.g. XPath Identifier or CssSelector Identifier.
  • Search By: Attribute by which you wonder to find an HTML element. In the search by field you choose one of the following options: ClassName, CssSelector, Id, LinkText, Name, PartialLinkText,TagName or Xpath and those options are tags that the user can obtain for example in the html of a webpage in certain elements. The best way to obtain this information is using the F12 and search for the element we want or using the “selective mapping” we have developed.

    A visual example of this is: we want to click the yellow button.



    To do that with F12, you search the button html and pick the id in this case:



    On the other hand, using selective mapping you could pick the class or css…


And to finish this, the user have to put the information in the diagram.

  • Value (optional): Input Value to enter into the control.

Message documentation Tab

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:

  • Documenting evidences: This check is going to tell us if we should get the evidences (screenshot, files, etc) and if we should register the step in the documentation tool (alm, confluence, etc). Only one screenshot is going to be taken at the end of the execution of all the parameters of the message.
  • Step description: By default, the same description that has been included in the Message Properties, but there will be the possibility to write and change it.
  • Step expected result: By default is just empty or with OK, but you can write whatever you want.
  • Step execution result: At the moment is going to be empty.
  • Attachments: To paste the files into the Documentation tab using you can either use the “Control + V” shortcut and dragging the mouse (mouse down + mouse up).
  • Screenshots: To add an image in the screenshot zone from the clipboard, press “Ctrl + V”; a modal screen will open with the screenshot preview and a field to give it a name. It´s not necessary to be over any element, the paste event works anywhere in the modeling page as long as there is an image in the clipboard.

    IMPORTANT:
    This feature is not supported on Internet Explorer due to IE limitations, so it needs to be performed using Chrome.

How to Move diagram

MOVE DIAGRAMS TO A FOLDER

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.

Global Variables

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:

  • #caseResult: boolean variable that contains the result of the test case execution:
    • true: when the result of all steps execution of the test case has been correct.
    • false: otherwise; that is, at least the execution of a step of the test case has been failed.
  • #global_password: Contains the client access password.
  • #global_user: Contains the client access user
  • #pathLog: contains the path to the folder, which contains the screenshots, log file and other files generated during the execution.
  • #stepNumber: It contains a four-character number (e.g. '0001') and represents the number by which the next step marked to be documented in ALM will be recorded. When a step is recorded in ALM, this number will be incremented for the next step.
  • #stepNumberTast: Contains the old numbering for documenting steps in ALM before the 'stepNumber' variable was available. This format is “Step X.Y…Z Loop I.J…K” where X…Z is the step position, where Y…Z are positions within Gates, and I…K are the loop iteration number, where J…K are the iteration number of nested loops.
  • #stepResult: boolean variable that contains the result of the last step execution in the test case:
    • true: when the result of the last step execution has been correct.
    • false: otherwise; that is, the result of the last step execution has been failed.

Predefined Functions - Generation of evidences

Below, the list of predefined functions and the indication of whether they generate evidences or not:

Predefined Function AdaptorGenerates evidences
connectDatabase NO
connect_DBDatabase NO
dBExecuteStatementDatabase NO
dBGetQueryDataDatabase YES
disconnect_DBDatabase NO
getNumColumnsDatabase NO
getNumRowsDatabase NO
getTableValueDatabase NO
tableRecordCountDatabase NO
addSheetExcel File NO
deleteSheetExcel File NO
generateFileAsEvidenceExcel File YES
getCellValueExcel File NO
getColumnByRowSearchExcel File YES
getExcelSheetExcel File NO
getNumColumnsExcel File NO
getNumRowsExcel File NO
getNumValueSearchOnColumnExcel File NO
getRowByColumnSearchExcel File YES
getTableValueExcel File NO
getTableValueByColumnNameExcel File NO
getValuesByPositionExcel File NO
newFileExcel File NO
setCellValueOneParameterEcxel File NO
setColumnValuesExcel File NO
setHeaderExcel File NO
setRowValuesExcel File NO
setTableValueExcel File NO
setSheetExcel File NO
vTableLookUpExcel File YES
vTableLookupArrayExcel File YES
allOptionsAreSelectedGUI HTML YES
clearGUI HTML YES
clearAndTypeGUI HTML YES
clickGUI HTML YES
clickByJavaScriptGUI HTML YES
clickLinkGUI HTML YES
clickPrintGUI HTML NO
closeAllWindowsGUI HTML YES
closeOthersWindowsGUI HTML NO
closeWindowGUI HTML NO
countElementsGUI HTML NO
checkboxGUI HTML YES
checkRadioGUI HTML NO
doubleClickGUI HTML YES
deleteAllCookiesGUI HTML NO
deselectAllOptionsGUI HTML YES
fileDownloadGUI HTML YES
fileDownloadDialogGUI HTML YES
fileUploadGUI HTML NO
getAttributeGUI HTML YES
isCurrentUrlContainsGUI HTML YES
isCurrentUrlEqualsGUI HTML YES
isCurrentUrlMatchesGUI HTML YES
isDisplayedGUI HTML YES
isExistGUI HTML YES
isSelectedGUI HTML YES
isTitleEqualsGUI HTML YES
isTitleMatchesGUI HTML YES
hasOptionWithValueGUI HTML YES
javascriptAlertAcceptGUI HTML NO
javascriptAlertCancelGUI HTML NO
javascriptExecuteGUI HTML NO
loginGUI HTML YES
openUrlGUI HTML YES
optionWithValueIsEnabledGUI HTML YES
optionWithValueIsSelectedGUI HTML YES
pressEnterGUI HTML YES
selectGUI HTML YES
selectAllOptionsGUI HTML YES
selectOptionGUI HTML NO
submitGUI HTML YES
tableCellValueGUI HTML NO
tableCellXPathByPositionGUI HTML NO
tableColumnsNumGUI HTML NO
tableHLookUpXPathGUI HTML NO
tableHtmlGUI HTML YES
tableRowsNumGUI HTML NO
tableVLookUpValueGUI HTML NO
tableVLookUpXPathGUI HTML NO
takeScreenshotGUI HTML YES
typeGUI HTML YES
typeActionGUI HTML NO
typeKeysGUI HTML NO
uncheckboxGUI HTML YES
validateAttributeGUI HTML YES
waitForGUI HTML NO
waitForElementGUI HTML NO
waitForPageLoadGUI HTML NO
newConnect_ScriptScript Generic NO
execute_ScriptScript Generic YES
disconnect_ScriptScript Generic NO
connect_ScriptScript Generic NO
closeFileText Files NO
containsTextText Files NO
countFileLineText Files NO
countTextFile Text Files NO
deleteFtpFileText Files NO
deleteSftpFileText Files NO
generateFileAsEvidenceText Files YES
getFileTextText Files NO
getFtpFileText Files NO
getLineLengthText Files NO
getNumColumnsText Files NO
getOwnerText Files NO
getReadLineText Files NO
getSizeText Files NO
getSftpFileText Files NO
getTableValueText Files NO
getTextFileDataText Files YES
lineContainsTextText Files NO
loadCsvDataText Files YES
newFileText Files NO
openFileText Files NO
openNewFileText Files NO
putFtpFileText Files NO
putSftpFileText Files NO
replaceTextText Files NO
writeEnterText Files NO
writeToText Files NO
assertionUser Object NO
compareParametersUser Object NO
compareVariablesUser Object NO
copyFileUser Object NO
dateAdditionUser Object NO
dateDifferenceUser Object NO
dateWeekDayUser Object NO
executeCommandUser Object NO
executeJavaScriptUser Object NO
failTestUser Object NO
getCurrentDateUser Object NO
getCurrentDateAsDateUser Object NO
getCurrentDateAsStringUser Object NO
isExistVariableUser Object NO
manualTastUser Object YES
removeVariableUser Object NO
replaceAllUser Object NO
saveRepositoryAsEvidenceUser Object YES
sendKeysUser Object NO
sendKeysCombinationUser Object NO
sendKeysPasteUser Object NO
setArrayVariableUser Object NO
setVariableUser Object NO
systemCloseProgramUser Object NO
takeScreenshotUser Object YES
waitFor:User Object YES
deleteRestAPI/WebService YES
getALLXMLElementValueByTagNameAPI/WebService YES
getCookieValueAPI/WebService NO
getHeaderValueAPI/WebService NO
getHTMLElementValueByXPathAPI/WebService NO
getJSONElementValueByJsonPathAPI/WebService NO
getJSONElementValueByTagNameAPI/WebService NO
getRestAPI/WebService YES
getResponseStatusAPI/WebService NO
getResponseTimeAPI/WebService NO
getXMLElementValueByXPathAPI/WebService NO
getXMLElementValueByTagNameAPI/WebService NO
patchRestAPI/WebService YES
postRestAPI/WebService YES
putRestAPI/WebService YES
responseBodyContainsTextAPI/WebService NO
setNoneAuthenticationAPI/WebService NO
setBasicAuthenticationAPI/WebService NO
setBearerTokenAuthenticationAPI/WebService NO
setDigestAuthenticationAPI/WebService NO
clearAndWriteFieldHost 3270 YES
clearFieldHost 3270 YES
containsTextHost 3270 YES
getLenghFieldHost 3270 NO
nextScreenHost 3270 YES
previousScreenHost 3270 YES
readFieldHost 3270 YES
readRowHost 3270 YES
readScreenHost 3270 YES
readScreenHost 3270 YES
rowContainsTextHost 3270 YES
waitCRCHost 3270 NO
waitForHost 3270 NO
waitForChangeHost 3270 YES
waitForTextHost 3270 YES
writeAfterLabelHost 3270 YES
writeBeforeLabelHost 3270 YES
writeFieldHost 3270 YES
writeKeyHost 3270 YES
writeKeyUntilFindHost 3270 YES
writeTextHost 3270 YES
checkTextInSlidePDF NO
checkTextOnDocumentPDF NO
checkTextOnPagePDF NO
checkTextOnPageAreaPDF NO
generateFileAsEvidencePDF YES
getGetTextByPageAreaPDF YES
getNumPagesPDF NO
getNumWhitePagesPDF NO
getPageAsImagePDF YES
getPageTextPDF YES
getTextCountOnDocumentPDF NO
getTextCountOnPagePDF NO
isPageWhitePDF NO
generateFileAsEvidenceXML YES
getElementAttrTextByXPathXML NO
getElementsCountByTagNameXML NO
getElementsCountByXPathXML NO
getElementsTextByTagNameXML YES
getElementsTextByXPathXML YES
getElementTextByTagNameXML NO
getElementTextByXPathXML NO
replaceElementAttrTextByXPathXML NO
replaceElementTextByTagNameXML NO
replaceElementTextByXPathXML NO
saveAsXML NO
saveXmlXML NO
xmlToStringXML NO
executeAllServiceOperationsSOAP UI YES
executeAllTestSuiteSOAP UI YES
executeServiceOperationSOAP UI YES
executeTestCaseSOAP UI YES
executeTestStepSOAP UI YES
executeTestSuiteSOAP UI YES
executePostmanCollectionPostman Collection YES
getResponseBodyPostman Collection YES
getResponseStatusCodePostman Collection YES

Shortcuts

You can use the following keyboard shortcuts in the canvas:

Shortcut Description
ESC Close menus and selects the pointer.
Alt + 9 DUnlocks diagrama for editing.
Alt + P Selects the pointer tool.
Alt + O Selects the “Object” 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 + Z Undoes some actions such as: Delete elements, Redistribute diagram, etc…
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: Roll the mouse wheel forward or backward to zoom in or zoom out the canvas respectively.
Shift + click Multiple selection: hold down the shift key and click on different elements to select them.
Shift + drag Multiple scrolling: hold down the shift key while scrolling the selected elements.
Click + drag Move diagram: click on an empty area of the diagram while dragging in any direction to move the diagram.



Multiple Selection of Messages

This tool option allows the user to select one or more messages one by one, in block or alternate.

SELECT MULTIPLE MESSAGES INDIVIDUALLY.
We can select several messages, one by one, it is done with the 'M' key pressed.

1. SELECT MESSAGES. 1.1. If we click on a message with the 'M' key pressed, a message is selected. (In the image message 1 is selected).

1.2. If we press the 'M' key and click on different messages, each one will be added to the selection. (Messages 3, 6 and 9 have been added to the selection in the image).

UNCHECK MESSAGES.
With the 'M' key pressed, if we click on a message already marked, it will be unmarked. If we do this without pressing the 'M' key, the multiple selection will be lost and only the selected message will be marked.

SELECT MESSAGES BETWEEN TWO UNIQUE SELECTIONS.
We can select a message line by pressing the 'L' key and clicking on two unique messages, this will mark all the messages between those two selected.

1. SELECT MESSAGES.
1.1. To select the first message we can: - Click on the first message WITHOUT PRESSING the 'L' key. - Click on the first message by pressing the 'L' key. (In the image the first message marked is message 3).



1.2. To select the second message: -We have to do it by ALWAYS PUSHING the 'L' key.
1.2.1. If the message of the second click is above the first one, the messages between those two are selected. (In the image on the next page, the first message selected was 3 and the second message marked was the message: message 1, all messages from 1 to 3 being marked). (In the image the first message marked is message 3).



1.2.2. If the message of the second click is below the first one, the messages between the two are selected. (In the next image the first selected message was 3 and the second message marked was the message: message 10, all messages from 3 to 10 being selected).



2. DESELECT MESSAGES.
If we want to unmark an intermediate message, we can do it by pressing ONLY the 'M' key and clicking on the messages that we want to unmark. (In the image, the unmarked messages are 5 and 9).



3. INTERCHANGE BLOCKS.
Example of use to be able to interleave selections of several groups.
3.1. We select a message line by holding down the 'L' key. (A block of household items 1 to 6 has been selected in the picture).



3.2. We could deselect one or several messages to personalize the group of messages and eliminate some of them. (In this picture the message 4 has been deselected).



3.3. If, for example, we want to add the block of messages 9, 10 and 11 to this selection, we would have to follow the following steps:
3.3.1. To select the first message of this sub-block we would do it by pressing the 'M' key. To add that unique message to the selection. The first message could be 9.
3.3.2. To select the second message of the sub-block we would do it by pressing the 'L' key and we would add all the messages between those two selections. The second selected message would be 11. The result is this serious selection that we have marked alternate message blocks. The messages “1, 2, 3” are selected in the image; “5, 6”; “9, 10, 11”).



COPY AND STICK MULTIPLE MESSAGES IN A DIAGRAM.
1. We select the messages that interest us with the different selection options offered by the application.
2. Copy and paste messages: You can copy and paste the selected messages with the key combination: “ctrl + sifth + c” and to paste them it would be with the key combination “ctrl + sifth + v”.
3. You do NOT have to be able to paste messages from one diagram into another diagram: If you copy and paste a single message or several, they can only be pasted on the diagram where they are drawn.
4. Reply Messages: - If we select only a reply message, it does not allow copying. - If we select the source message to which a reply is associated, both are copied.

DISPLACING MULTIPLE MESSAGES IN A DIAGRAM.
1. We select the messages that interest us with the different selection options offered by the application.
2. Move a group of messages: When we have selected the last message of the selection, do not raise the left mouse button, leave it pressed and when moving the mouse upwards or downwards the block will follow the movement.

DELETE MULTIPLE MESSAGES FROM A DIAGRAM.
1. We select the messages that interest us with the different selection options offered by the application.
2. Delete a group of messages: We can delete a group of messages with the 'DELETE' key or with the 'Delete item' button of the diagram tools.

Selective Mapping

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:

tast_selective_mapping_v1.0.doc

Tast Table Data Management

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:

Output Function Description
intgetNumColumns()Returns an integer with the number of columns.
int getNumRows() Returns an integer with the number of rows.
String getStringValue() Returns a string containing the content of the table separating cells with | and rows with ||.
TastRowTableData getTheRow(int index)Returns a row.
N/AaddRowData(TastRowTableData rowData)Adds a row at the end of the table.
TastRowTableData getTheColumn(int index)Returns a column (as a row).
TastDataGeneric getCellValue(int row,int column) Returns the value of a specific cell.
TastDataGeneric getTableValueByColumnName(int rowNum, String columnName) Returns the value of a cell identified by row number and Column name.
N/AsetTableValue(int row, int column, String value)Allows to add a value to a specific cell. The value can be a string, Float or Boolean value, either contained in a variable or hardcoded:

Tast Row Data Management

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…)

The functions currently available are:

Output Function Description
N/AaddCellValue(String value)Allows to add a cell at the end of the TastRowValues.
String getCellValue(int index)Returns the content of a specific cell.
int getLength()Returns the number of cells of the TastRowValues.
StringgetStringValue() Returns the content of the row separating cells with |

For more information about Variables Management, see the topic “Variable Management”.

The TAST Canvas

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.

You can launch the Canvas from several places:

  • Creation of a new UML Diagram.
  • Editing an existing Diagram.
  • Navigation from several places of TAST to consult a diagram.

Top toolbox

The toolbox on top has the following options:

  • Create a New Diagram: for creating a UML diagram.
  • Import a Selenium IDE Record: for importing an IDE record from Selenium.
  • Import a Diagram: for importing an existing diagram, but from another environment to our current environment.
  • Export a Diagram: for exporting a diagram to be used on another environment, but also into TAST.

Bottom toolbox



Once editing a Diagram, a second toolbar will be shown to make interaction with the diagram easier. The following options are available:

  • Zoom in: Increases the size of the diagram.
  • Zoom out: Reduces the size of the diagram.
  • Move diagram: Allows to navigate the diagram either by click-and-drag or by the different Generic Positions (Home, Top, Bottom, Right, Left)
  • Delete an item: Deletes the selected item in the diagram.
  • Download image diagram: Generates an image of the diagram and downloads it to your computer.
  • Selective Mapping (GUI HTML Assistant): Launches the GUI HTML Assistant to help in the mapping step.
  • Selective Mapping (Web Service Assistant): Launches the Web Service Assistant to help in the mapping step.
  • Validate Mapping: Validates if a diagram is correct and the mandatory data has been provided. This makes the diagram available for execution in the Client.
  • Launch Validation: Makes the diagram available for execution in the Client with the Validation Test Case Data.
  • Drawing Tools: Expands the toolbox for the UML items you can use in diagrams (Object, Message, Gate, Combined Fragment).

UML items toolbox

In this toolbox, you have all the items you can use for painting your UML diagrams. The list of UML elements you can use is the following:

  • Pointer: Returns to the pointer mouse, instead of a selector.
  • Object: Makes a zoom out into the diagram.
  • Message: delete the currently selected item in a diagram.
  • Reply Message: Generates an image of the diagram and download it to your filesystem.
  • Gate: Launches de GUI HTML Assistant for helping in the mapping step.
  • Combined Fragment (ALT): Paints a Combined Fragment of the ALT type.
  • Combined Fragment (Loop do while): Paints a Combined Fragment of the do while loop type.
  • Combined Fragment (Loop while): Paints a Combined Fragment of the while loop type.
  • Combined Fragment (Loop for): Paints a Combined Fragment of the for type.
  • Combined Fragment (Loop for each): Paints a Combined Fragment of the for each type.

GATES

Gates could be regarded as being a simple way to model the passing of data between a sequence diagram and its context. A Gate is a message that is highlighted with one end connected to the sequence diagram’s frame’s edge and the other end connected to a lifeline.

When you choose a Gate for being used, firstly, you should provide a name and a path to the diagram you are referencing as a gate. The second step is to decide the execution way:

  • Isolated: it creates a new instance of the object where the gate is placed.
  • No Isolated: it reuses the same instance of the object where the gate is placed.

Data Management

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:

  • Test Sets Data.
  • Test Set Data.
  • Test Sets Data Info.

Test Sets Data window

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:

  • Domain.
  • Project.
  • Diagram.
  • User.

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:

  • Creation date.
  • Number of data sets of test cases.
  • Number of sets of test cases.
  • Action: with the following indicators:
    • Uploaded to ALM.
    • Owner.
    • More information: when you click on this option, the Test Set Data Info window appears.

Test Set Data Window

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:

  • The description of the Test case data.
  • The type of test (positive or negative).
  • The values for the parameters of the objects.
  • The values for the parameters of the messages.

You can also view the diagram.

There will be the option to copy the data of the test cases, which can be modified later.

Test Set Data Info Window

It can be accessed on two ways:

  • Selecting the corresponding tab.
  • Clicking on the icon More info of a diagram.

This screen shows the following information:

  • Owner user.
  • Diagram´s path.
  • Creation Date.
  • Name of the diagram.
  • Number of Test case Data.
  • Number of Test case Set and it´s path.

Delete Functionality

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:

  • Every TCD have a checkbox.
  • Those checkboxes can be selected by clicking on them, and they will remain clicked instead you click them again.
  • Also, you can multiselect TCDs while holding shift and clicking two of them. (You can select segments that are separated each other, just selecting the first one without holding shift and then holding it).
  • There is a “select all” checkbox, that selects and deselects all the TCD.
  • To close the modal window without doing any changes, you can either click the cross in the top right or click in the “No” Button.
  • Finally, to delete all the selected TCD, click “Delete” button. It will close when the changes are done. If you want to save definitively the changes, you have to save the TS.

Import TCD from an Excel file

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,

  1. You should provide an Excel file with the right order of data.
  2. To set in the page, the correspondence betwen the column in the Excel file (A, B, etc.) with the related field Description, Test Type, etc.

After you select the file and set the correspondence, you should click the button Import to perfom the import process.



How to search an UML diagram in Modeling

This TAST option allows the user to do a search of a diagram 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:

  • by diagram ID.
  • by name (partial or total) of the diagram.

To use the search of an UML diagram, follow these steps:

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 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:

How to search an UML diagram in Data Management

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:

  • by diagram ID.
  • by name (partial or total) of the diagram.

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.

Repository Management

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.

Glossary

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:

  • Files: they can be Text files or YML/YAML there the user insert the code to use the repository. Mention that if we don’t have an environment (like Notepad++ or others) with transformation between tab spacing or normal spaces. The file won’t work if you use the tab for spacing instead normal spaces because the indentation with tabs don’t work in YML.
  • Keys: They are every word that comes before “ : ”
  • Value: Value is what comes after “ : ”
  • Properties: Is the entire path that includes the keys until the “ : ” using “ _ ” to separate them.

    Example:
    Also, you can do subkeys:
    So in the end, the variable will have all the properties separated by “_” in this example should be: #wiki_url1.

    The first key will always be one of the following words:

Features

In the repository management we have different “features”:

  • Import repositories with a TXT and YML extension. The repositories are defined by keys. These repositories must have a first level key that will be a “searchBy” option listed in a diagram message. Then it will have a second key that will be a name to identify the property and finally the value that is the path of the searchBy we are using. (those keys are not “case sensitive”, nevertheless, when you put it in the element box in the message, it has to be exactly as the repository property.

    Example:

  • Export repositories as YML files saved in repository management.
  • Open, edit, delete, and save repositories.
  • Create, edit and delete the folders in which those repositories will be kept. A folder with a repository saved in, can´t be deleted. You have to delete the repository before. (default folder can´t be deleted)
  • Clone a repository already imported into a new one.
  • Watch information about repositories such as creation date and diagrams that use it, works like more information tab in modeling.
  • Locate where a repository is being used.

Import repositories

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 could happen if: the TXT format is not YML/YAML, or because there are some kind of error in the file also could be because the syntaxis of the yml in the repository is wrong like inserting spaces with tab instead spacebar or using a key as subkey of another when the value is already defined.

Changes in modeling

In modeling are some changes about repositories as well.

  • The properties tab in the diagram has been updated to show from now on, information about repositories in the right side. del
  • From here the user can add a repository clicking the edit button.


  • Using this button will deploy a modal window, here we can use a filter to find the repositories we want.

  • We can add or delete all the repositories we want. Once accepted it is saved and the diagram is updated with the repositories in the “selected repositories” list box, also this can delete old repositories from the diagram in case there was any and add new ones. Although the repositories are enabled immediately after selecting them, the relation repository-diagram can´t be confirmed until the diagram is saved.


  • To delete a repository from the diagram properties, just click the thrash can icon in the repository´s row and the repository will be deleted with all the connections that could have with the diagram messages.
  • To go to the repository, click in the repository name and it will act as shortcut going to repository management exactly where the repository is.



  • In the messages there are also upgrades. As the image shows, a “Repository” field has been added from here the user can choose which repository is going to be used. In the “Element” field repository keys (properties) can be used as variable, writing first “#” and having a repository and searchBy selected. In the repository Tab you have to choose the repository you want and then in searchby you have to choose repository, then you can write the element with the repository properties.
  • Also you can choose not to put searchby repository and do it as a normal searchby, instead you can use the repository in this case to put the value. In the second screen you can see that a repository is used in the value, you can search the properties in the repository the same way as the element does but it will automatically add the prefix “Repo:” to differentiate it.
  • As an important note, avoid the use of “_” to create a property in the repository, that is because TAST concatenates the repository variables with the underscore, so it will lead to some problems if the properties have underscores in them.



  • Once you put the “#” it´s possible to autocomplete with keys the repository, as shown in the upper image. To use this keys, the variables are generated concatenating the levels of the keys with “_” (underscore), until reach the value, so all the keys have to be separated by “_” as shown in the example in glossary.
modeling.txt · Last modified: 2024/02/19 10:01 by montse