Testing

This section describes the basic testing scenarios and should mainly be used for regression testing.

Unit Testing

The Google Test framework is used for all of the unit tests. Please refer ot the following section for how to write the tests, compile and run them.

Developer Guides - Testing with Google Test

Functional Testing

The functional testing is split into several testing scenarios. Those are menat to cover all of the tool functionalities including the GUI.

Basic GUI Functionality

Action Expected Behavior Comment
Start GUI The main GUI is started. -
Close GUI The main GUI is closed. -
Print graph Prompts the user to select the printer from which the current graph will be printed. -
Export graph Prompts the user to select the destination folder and type in the file name and format in which the graph will be exported as. Test this for all available graph formats.
Show/Hide GUI components All GUI components listed in the Show menu are displayed when checked and hidden when unchecked. Test the resizing of the different components.
Search for an SWU by name A graph is displayed in the GraphView with the root node being the SWU being searched for. First level dependencies are displayed as neighbors in the graph. Note that an XML file has to be loaded before searching.
Seach for a run block by name A graph is displayed in the GraphView with nodes (SWUs) belonging to that specific run block including all dependencies within that run block. Note that an XML file has to be loaded before searching.
Search with autocompletion When an XML file is loaded, the search field will automatically perform an autocompletion, matching the prefixes of either SWU or run block names. Note that an XML file has to be loaded before searching.

GraphView Functionality

Action Expected Behavior Comment
Open an XML file A graph is displayed in the GraphView. -
Open an XML file to show difference A graph is displayed in the GraphView/DiffView. Three conditional formattings are automatically created. One for ADDED (introduced SWUs and dependencies), one for REMOVED (eliminated SWUs and dependencies) and one for REMAINED (SWUs and dependencies that remained unchanged).
Change the layout algorithm A relayout of the graph nodes are performed according to the chosen algorithm. Do this for all available layout methods.
Excluding nodes Selected nodes are hidden when pressing the D button or when right-clicking and selecting to exclude the nodes from the graph. Make sure that excluded nodes can be reincluded from the right-click menu.
Right-click and focus node The selected node is focused and expanded. Note that a complete relayout of the node positions will be required. Also take note of the zoom behavior.
Right-click and expand node The selected node is expanded (neighbors are displayed) without overlapping with other nodes. Note that a minor relayout of node positions might be required. Also take note of the zoom behavior.
Toggle anti aliasing Anti aliasing are applied/unapplied to the graph nodes and edges. -
Toggle Graph Edge Memory Type Coloring By checking this option from the Show menu, the edges in the graph will be colored in three different colors according to the underlying load block memory type. The three memory types are LDM, LPM and LDM_LPM (both LDM and LPM).

Filters and Conditional Formattings

Action Expected Behavior Comment
Create a filter A filter is created and added to the list of filters in the filter menu. Available filters are Dependency Degree, Difference, LDM/LPM, Regular Expression, Run Block filters.
Edit a filter An existing filter can be edited from the filter menu. The changes take effect immediately. Available settings vary depending on the filter type. Make sure to test the include/exclude variations.
Applying/Unapplying a filter A filer is either applied or unapplied depending on the checkbox next to the filter in the filter menu. -
Create a conditional formatting A conditional formatting is created and added to the list of conditional formattings in the filter menu. Available conditional formattings are Dependency Degree, Difference, LDM/LPM, Regular Expression, Run Block filters.
Edit a conditional formatting An existing conditional formatting can be edited from the filter menu. The changes take effect immediately. Available settings vary depending on the conditional formatting type but should at least allow for changing the Opacity, Color and Hide (Yes/No). Make sure to test the include/exclude varations.
Applying/Unapplying a conditional formatting A conditional formatting is either applied or unapplied depending on the checkbox next to the conditional formatting in the filter menu. -
Export filters Filters are exported as an XML file. This is done from the File menu. -
Import filters Filters are imported from an XML file. This is done from the File menu. The filters should appears in the filter menu. -
Export conditional formattings Conditional formattings are exported as an XML file. This is done from the File menu. -
Import conditional formattings Conditional formattings are imported from an XML file. This is done from the File menu. The conditional formattings should appears in the filter menu. -

TreeView Functionality

Action Expected Behavior Comment
Synchronize node selection with GraphView All selected nodes in the TreeView are also selected in the GrahView. All selected nodes in the GraphView are selected in the TreeView. -
Show/Hide active columns Columns are shown/hidden depending on their status in the right-click menu in the TreeView. -
Sorting elements All elements are sorted in an ascending or descending order with respect to a column. -

Other Scenarios

Make sure that following scenarios have acceptable behaviors.

Back