Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog and this project adheres to Semantic Versioning.

But we group the changes as follows:

  • Breaking Changes when a change requires manual activity at update.
  • Bug Fixes when we fix broken functionality.
  • New Features for added functionality.
  • Improvements for other changed parts.

Table of Contents

[Unreleased]

Breaking Changes

  • Changed table headers to allow gathering of its column headers. Since additional components are found in screens with tables, they need to be accepted manually.
  • Add font, background color, foreground color and enabled-status as additional criteria per component, which may lead to additional changes when running tests. However, simply accepting the changes after update should suffice.

Bug Fixes

  • Fixed that, in some cases, tab-clicks were not recorded.

New Features

  • Components are now analyzed whether they do custom painting and, if so, the screenshots of the images is compared. Two comparison implementations are available via the de.retest.image.DifferenceCalculator property: ExactImageDifferenceCalculator and FuzzyImageDifferenceCalculator. To enable this comparison for 3rd party libraries, please use the property de.retest.swing.paintingComponents.packages to define packages of which painting components should the screenshot be taken off.
  • Added ability to convert suites to execsuites via ant.

Improvements

  • Removed tree selection listeners. Clicking on a tree is now only one action.
  • Now using TreeTable in the GUI for creating tests, suites, converting action sequences and in the review module to visualize the structure and relation of action sequences, tests and suites.
  • Add count of number of rows of tables, trees and lists if not all children are tracked in detail (i.e. if their number exceeds de.retest.maxChildComponents).

[1.3.2] (2017-05-15)

Bug Fixes

  • Fixed a bug, where the de.retest.maxChildComponents parameter was influencing the number of table rows that were counted.

[1.3.1] (2017-05-13)

Bug Fixes

  • Fixed replay of rightclick for tables where the renderer / editor is not a simple component, but contains children.
  • Two minor bugfixes for rare cases.

[1.3.0] (2017-05-02)

Breaking Changes

  • Changed trees to allow for complex layouts. This requires all actions with trees to be recorded and converted again.

Bug Fixes

  • Fixed recording of clicks on JList.
  • Fixed clicks on JTree being recorded twice.
  • Fixed clicks on JCheckBox in tables being recorded twice.
  • Fixed recording of double clicks on JTextfield.

New Features

  • It now is possible to ignore individual attributes of individual components.
  • Surili now also tries to insert values from the Big List of Naughty Strings.
  • Right click on tables, trees, table headers, labels and text fields can be recorded and replayed.
  • Added a new option that removes the signature of all .jar when ReTest launches. This is because if the application has signed .jar its launch will take longer. To use this feature it must be toggled with de.retest.checkAndRemoveJarSignature=true. However this causes a short delay when ReTest is started. It is recommended that this option should only be used if necessary.
  • Add property to ignore threads while waiting for stabilization.

Improvements

  • Improved user feedback when ReTest could not find a component on a dialog (TargetNotFoundException).
  • Increased default for de.retest.maxChildComponents to 1,500 child components to tackle medium-sized lists, tables, and trees.
  • Better logging during update process when there're missing file permissions.

[1.2.3] (2017-04-19)

Bug Fixes

  • Fixed a bug where in some special cases modal dialogs where not recognized.

Improvements

  • Ignore Java2D Queue Flusher active waiting thread.

[1.2.2] (2017-04-10)

Bug Fixes

  • Fixed obfuscation preferences where an MalformedParameterizedTypeException was thrown.

[1.2.1] (2017-04-03)

Bug Fixes

  • Update demo license.

[1.2.0] (2017-03-28)

Bug Fixes

  • A DefaultUncaughtExceptionHandler no longer keeps ReTest from terminating the SUT properly.
  • Fixed IllegalArgumentException: Only directories are allowed! that occurred when Surili opened a JFileChooser.
  • Fixed NullPointerException for tables without table headers.

Improvements

  • A dialog will be shown when saving or loading files fails.
  • Added menu hover to improve self explanatory of clickable content.
  • Added support button for direct access to ReTest's service desk.
  • HSQLDB is now supported by the ThreadMonitor.
  • Added property de.retest.instrumentation.shouldInstrument to allow to completely skip instrumentation, along with a warning if used. This is intended only for debugging purposes.
  • Support invisible java.awt.Components and provide a stub for easy extension.
  • Show English descriptions for screens.

[1.1.1] (2017-03-15)

Bug Fixes

  • In special situations where the java.util.logging framework is used, the SUT could only be started once.

[1.1.0] (2017-03-08)

Breaking Changes

  • Removing de as the language in the default config, possibly making it necessary to set it, if so preferred.
  • Differences on the file system are now completely ignored. As a result, actions via JFileChooser must be rerecorded.

Bug Fixes

  • Properly mark screenshots of differences for nested windows.
  • Inactive windows due to modal dialogs are now correctly ignored by the monkey.
  • Fixed automatic invocation of (general and specific) suite hooks for action sequences within ReCapture.
  • Fixed IOException thrown when proxy settings were used for local addresses.
  • Fixed IllegalStateException if a replay result was opened where an additional window was shown in the SUT.
  • Fixed a bug which shadowed child differences in a few situations. Hence, former hidden differences may be visible now.
  • Various minor bug fixes.

New Features

  • Now all changes of an action can be accepted at once via an "Accept all" checkbox in the table header.
  • Now the (always up-to-date) documentation in the web is linked in the HTML descriptions.
  • Partly English translation of the GUI (without the HTML description).

Improvements

  • The screen to edit actions is polished.
  • Black- and whitelisting is now on the same page of the monkey wizard, making it harder to confuse them or create invalid configurations.
  • Errors and warnings now occur within the startup shell, which makes it a lot easier to detect issues like invalid licenses.
  • Randomly missing Popup$HeavyWeightWindows no longer cause differences.

[1.0.0] Ham - The First One (2017-02-09)

Bug Fixes

  • It is not possible anymore to apply the same changes twice to an executable suite.
  • Fixed encoding, various typos, and formatting issues of the HTML description in the GUI.
  • Fixed regression with ignored proxy settings.

New Features

  • After applying changes to executable suites and/or ignored components, a popup shows which files are affected and reminds to commit them.
  • Adding the possibility to have the monkey test UI components exclusively (whitelisting).
  • Adding a screen to view the currently ignored components.
  • After generating tests with Surili, the best suite is now exported as an executable suite.
  • The color markings of selected components is now different for ignoring (grey), blacklisting (red) and whitelisting (green).
  • In ReView, there is now a table on the level of the action that shows all differences of that action and allows to accept them right there.

Improvements

  • Showing report summary when initially opening a replay.result file, summarizing execution time, number of suites, tests, actions, number of differences and errors and such.
  • Behavior in regard to ignored.components is now consistent with updating execution suites - changes to ignored components are only applied when someone presses Apply Changes.
  • Update the inline documentation on the right side.
  • Add extended online documentation at https://retest.de/docs/de/.
  • Several improvements in demo application.

[0.12.0] (2017-01-30)

Breaking Changes

  • Changed application packaging, the complete code is now in one fat JAR. Paths to classpath and javaagent in startup scripts or build.xml must be adjusted regarding to this change.

Bug Fixes

  • A lot of bug fixes in Surili module.

New Features

  • Added a demo application as show case.

[0.10.2] (2017-01-26)

Bug Fixes

  • Fixed automatic invocation of specific suite hooks within ReCapture.

[0.10.1] (2017-01-05)

Bug Fixes

  • Fixed two different OutOfMemoryError leaks, triggered if one opens too many GUI screenshot popups.
  • Fixed IndexOutOfBoundsException if same changes were applied to same execsuite multiple times.
  • Corrected displaying of error in details view (was stuffed into one line).

[0.10.0] (2016-12-22)

Breaking Changes

  • Proxy settings changed, please take a look in retest-template.properties.
  • For lists, tables, and trees, at most 500 child components are being recorded in order to improve overall performance and file sizes. This value can be adjusted via the property de.retest.maxChildComponents.

Bug Fixes

  • Fixed race condition between clean up task and (external) report creator.
  • Fixed IllegalStateException "No state AND no stateDifference is illegal!" in ReView.
  • Huge components no longer cause differences per se.
  • Fixed several corner cases regarding path differences, e.g. sometimes the wrong table cell was clicked.
  • RePlay no longer allows starting multiple SUTs by accident.
  • Closing a window is now recorded again.
  • Fix for OSGI applications, where the bundle de.retest.equinox.hooks was not found.
  • Fixed a bug, where the folder latest was not cleared from XML files.

Improvements

  • Stabilized and secured outgoing connections, especially with proxy setups.
  • Better error messages for configuration errors.

[0.9.0] (2016-11-17)

Breaking Changes

  • The license file must be moved to retest workspace with name retest.license, or specified with system property de.retest.license.File.
  • The classes referenced in Ant build.xml have changed, please inherit from new build.xml in the release.
  • The sut-javaagent is now placed directly in install directory with fix name retest-sut-javaagent.jar.
  • The equinox-hooks-fragment is now placed directly in install directory with fix name retest-equinox-hooks-fragment.jar.

Bug Fixes

  • Fixed OutOfMemoryError in ReView.
  • Removed old update folders.
  • Added support for combo chooser again.
  • Surili now excludes submenus if the corresponding menu or menubar is excluded as well.
  • Fixed bug where table cells where wrongly associated to one another.
  • Fixed bug where JFileChooser was not recorded and replayed correctly.
  • A lot of bugfixes for Surili Ant task.

New Features

  • Write a live test anything protocol (TAP) after each test execution. This can be displayed within the build server.
  • Made Screenshots resizable in report.
  • Let Surili optionally start at the end of an ExecSuite instead of anywhere.
  • Limit number of test reports via de.retest.cleanUp.maxFolders (default 10) and/or de.retest.cleanUp.maxDirectorySizeInMByte (default 1GB).
  • Added support for editable combo box.
  • Test reports are created when Surili is executed.

Improvements

  • Simplifyed path serialization to reduce file size.
  • Made screenshots clickable in report.
  • Added summary of changes in actions details view within ReView.
  • Added support for disabled Tabs.