-
Notifications
You must be signed in to change notification settings - Fork 22
TESTAR release notes
Fernando Pastor edited this page Aug 14, 2024
·
40 revisions
- Update Selenium dependencies from 4.23.0 to 4.23.1
- Fix Java Swing EXCEPTION_ACCESS_VIOLATION for JDK > 8
- Move the Access Bridge checkbox option from the StateModel panel to the Advanced panel
- Create a GitHub Actions CI test to check java swing
- Add Chromedriver flag to disable search engine selector
- Update Selenium dependencies from 4.22.0 to 4.23.0
- Delete the old KNOWN_ISSUES file (being tracked in GitHub issues)
- Update Selenium dependencies from 4.21.0 to 4.22.0
- Fix issue 129 by updating the protocol desktop_widget_recognition
- For the image recognition, we clear the green/red dots from the canvas before taking the screenshot
- Update Selenium dependencies from 4.20.0 to 4.21.0
- Derive actions in Qt applications
- Enable SUTProcesses settings for multi-processes
- Remove old debugging code from the Windows StateFetcher class
- Update Selenium dependencies from 4.19.1 to 4.20.0
- Update MacOS chromedriver runner dependency
- Update Selenium dependencies from 4.16.1 to 4.19.1
- Add GitHub dependabot for selenium java dependency
- Add automatic TESTAR release workflow
- Refactor CodingManager state and actions AbstractID and ConcreteID identifiers
- Refactor Widget toString prints all children values instead of the current widget
- Remove the deprecated HTML report package and unused batch metrics scripts
- Adding LogOracle implementation that allows detecting suspicious titles in log files and system command outputs using Regex expressions
- Fix TESTAR reporting crashes when a ScreenshotPath Tag is not available
- Fix TESTAR latestState is not updated in specific system protocols
- Implement a reporting framework to manage multiple report formats
- Add Inner and Outer HTML WdTags
- Update Action <-> Widget mapping
- Fix the creation of replayable files for web systems
- Update Selenium and Appium dependencies
- Updating Gradle to support Java 21
- Official Java support moved to Java 11, 17, and 21
- Add documentation about supported OS
- Refactor Settings class and package
- If AbstractStateAttributes is Empty, inform the user and assign a default one, but do not block TESTAR execution
- Add Dockerfile file to support docker images in ARM architectures
- Add KeyBoardListener setting to fix Keyboard Events
- Refactor NativeHookManager
- Extend TESTAR settings validation
- Add webdriver CI test for Linux and macOS
- Fix: If SUTConnectorValue is empty, show a message and finish the main process
- Fix: Android Spy mode screenshot
- Update budtmo Android Docker dependencies
- Update selenium and Dockerfile dependencies
- Update parabank protocol for HandsOn exercises
- Adding WdRemoteActions to send interaction actions at webdriver level instead of GUI-level
- Add maxLength to WdTags
- Check Nashor Enginer in Edit Protocol
- Fix cast bugs in filtering and suspicious tags features
- (Edit protocol) Show Java compilation Exception if code is erroneous
- Update chromedriver plugin
- Fix model visualization mode exception
- Build actions identifiers before returning retryDeriveAction
- Escape possible special characters in ApplicationName and ApplicationVersion to avoid file stream exceptions
- Add JDK Nashorn check for Edit Protocol launch
- Fix widget filtering bug
- Fix suspiciousStringValueMatcher bug
- Fix Sikulix screenshot bug
- Fix forcing the system to the foreground
- Include ALT button for SPY filtering
- Refactor action selector protocols to ActionSelectorProxy
- Refactor DataManager to InputDataManager
- Clean old ant files
- Update selenium library dependencies versions
- Update 01 and 02 HandsOn protocols
- Update default Spy mode properties
- Disable dialog Misc panel
- Add a description for each ConfigTags settings
- Create TypeableClasses for webdriver
- Add Check Regex button in the TESTAR dialog
- Bugs fixing
- Remove the jumping between Generate and Record mode
- Verify regular expressions in the test settings file
- Fix ActivateSystem action when Calculator SUT freezes
- Add the new Appium framework that allows TESTAR to connect and test Android and iOS mobile applications.
- Refactor the TESTAR execution modes (moving out of the DefaultProtocol monster)
- Added new security package
testar/src/org/testar/securityanalysis
- Added the new protocol
webdriver_security_analysis
with an example that uses OWASP-Benchmark SUT - New passive analysis that allows TESTAR to validate the security aspects of the web headers
- Three active analysis features that allow TESTAR to detect XSS, SQL injection and invalid token
- Move Gradle workflow CI tasks to another file
- Add form filling, browser console error, and OnlySaveFaultySequences checks in the workflow CI tests
- If the force to foreground setting is enabled, allow TESTAR to connect to a Desktop app even if running in the background
- Add the debuggingDistribution task to the build.gradle file to allow running TESTAR easily from the IDE
- Add Debug TESTAR with IntelliJ IDE and Increase Java memory to the readme file
- Update the selenium-java plugin version to 4.4.0
- Add Verdicts to detect error and warning messages from the web browser
- Add the Form filling feature and webdriver_formfilling protocol as an example
- Refactor the OnlySaveFaultySequences feature and add it to the GUI
- Add Verdict result to HTML output filename
- Create a button in the HTML report to reverse the information order
- Create an empty state if the javascript plugin does not return a widget tree (to fix XML pages issue)
- Fix the pre-selection of a history back action if we did not derive any action
- Fix Mouse move actions and visualization
- Move isTypeable() to WebdriverProtocol
- Replace new line characters in the widget values
- Allow configuring webdriver clickable CSS classes at runtime with spy mode
- If OrientDB has no models open a web page with instructions in the Analysis mode
- Update the java selenium version
- Remove unused old code and Tags
- Fix multiple tags functionality bug. Add JUnit tests to test it.
- Add SUTConnectorValue domain and initial web domain to domains allowed
- Add find widget with multiple tags functionality, and a GitHub Actions CI test
- Added checkstyle plugin
- Refactor testar packages and classes structure
- Remove old graphdb and native java projects from the code structure
- GitHub Actions: Remove chromedriver download task and use internal GitHub chromedriver executable
- Retry action execution if derived actions are empty (because SUT is still updating but TESTAR tries to obtain the state too fast)
- Fix webdriver execution without windows.dll
- If Analysis server is already in use, detect and connect to it instead of printing an error
- gradle wrapper version to 7.1.1
- remove old Windows UIAutomation windows.dll build instructions from readme (move to wiki for advanced users)
- Use the AbstractIDCustom tag (instead ConcreteID) to identify actions and states in QLearning and StateGraph algorithms
- Update Dockerfile java version from openjdk-14-jdk to openjdk-16-jdk
- Fix canvas exception for Replay mode with GUI actions visualization
- Fix IllegalStateException null pointer if no message added
- Fix log4j vulnerability
- Temporal fix for github actions
- Allow users to programmatically customize the State and Actions identifiers
- Replay mode will create HTML, logs and sequence files
- TESTAR checks if replay mode can not reproduce the actions
- Infer the State Model in Replay mode
- Fix issues writing the replayable fragment
- Prepare TESTAR for SVT course
- Added extra functions in GenericUtilsProtocol
- Added an example of triggered compound action for Parabank protocol
- Fix minor bugs
- Added Dockerfile to build a TESTAR Chromedriver Docker image
- Added github\worflows\docker.yml file to automatically build and push a TESTAR Chromedriver image to Docker Hub
- Added testar-kubernetes.yaml file to allow the integration of TESTAR in the Kubernetes infrastructure
- Added new reporting structure
- Fix minor bugs
- Added a new setting to detect suspicious titles on multiple tags
- TagsForSuspiciousOracle
- Added a setting to filter multiple tags
- TagsToFilter
- Extended XML setting framework
- Add WebDriver settings to allow users to customize some features (ClickableClasses, DeniedExtensions, DomainsAllowed, FollowLinks, BrowserFullScreen, SwitchNewTabs) using the cmd or without recompile the protocol
- Add 5 "wildcard" string settings to offer some flexibility for some features as login
- Add webdriver workflow tasks
- Fix minor bugs
- New feature to visualize filtered actions as gray dots or gray text
- Rename old web generic protocols (Win API + IExplorer)
- Internal code refactoring
- Added gradle workflow tasks
- Allow TESTAR to run in Windows environments even if they are not Windows 7 or 10 (Windows Server 2016 & 2019 works with default windows.dll). An output message is printed to inform the user.
General improvements:
- Remove old graphdb settings
- Update Readme with the new State Model information
- Solve issue #239 , launch AlwaysCompile feature before initializing the protocol
- Update copyright and solve warnings
- Verify TESTAR initial directory to print a warning message (Main)
Webdriver improvements:
- Make activate tab configurable to offer a solution to the issue #235
- Change webdriver widget and actions Desc Tag (if one Tag value is empty check other one). Try to avoid Actions Description with empty content.
- Automatically add Initial domain to domainsAllowed List if didnt exists.
- Move and clean generic webdriver configuration (addWdDriverOS, WdProtocolUtil, ensureDomainsAllowed)
- Allow the possibility of disable chrome web security to detect elements inside iframes from external cross origin
- If Webdriver selectAction detects an empty state, force back history and print a warning message
- Added Is not running verdict if selenium chromedriver stops respond
- Small bug fixes to state model protocols related to generated HTML reports
- Config for visualizing the detected and selected actions
Improvements to WebDriver support:
- Add Webdriver StateModel Management Tags (settings and GUI level)
- Refactor and move "settings/webdriver_protocols" generic utility content. Utility webdriver methods like "detectForcedActions", "detectForcedPopupClick", etc... have been moved to "WebdriverProtocol.java".
- Shadow Web Elements should be detected now
- Avoid kill process exception with SPY + Webdriver, do not call killTestLaunchedProcesses
- Improve scrolling actions comparing document body bounds with window bounds
Create PasteText Action
- Create "waitLeftClickAndPasteIntoWidget" utility method
- Update examples: protocol_web_one_drive & protocol_webdriver_parabank
Gradle compilation tasks (more in Readme)
- gradle build, only compile at Java level
- gradle installDist and distZip, copy existing windows.dll, not using VisualStudio Tools
- gradle windowsDistribution, use VisualStudio Tools to compile a new windows distribution
Escape Special Strings in Action Desc and HTML report
Spy Mode Visual Panel will not be created over the y-axis of the screen + Add Refresh Time setting
Solve issue saving ESC actions (Empty State) in the State Model
- Log4j2 implementation
- Fix issue: Update State after beginSequence SUT modifications
- Add new protocols with Action selection prioritization example
- Internal code refactoring
- An issue related with webdriver action coordinates and the Windows System Display Scale option, has different behavior in different environments.
- This release adds a setting option to override the default Display Scale value in case of environment specific requirements.
- fixing some of the issues with wrong coordinates for actions and screenshots, the cause seems to be Windows display scaling settings
- providing functions in DefaultProtocol to help defining system specific pre-defined TESTAR behaviour, for example to provide valid input into a login screen: protected boolean waitAndLeftClickWidgetWithMatchingTag(Tag tag, String value, State state, SUT system, int maxNumberOfRetries, double waitBetween) and protected boolean waitLeftClickAndTypeIntoWidgetWithMatchingTag(Tag tag, String value, String textToType, State state, SUT system, int maxNumberOfRetries, double waitBetween)
- Solve duplicated actions bug (The same actions on widgets were being added twice)
- Disabled process listener feature in Spy Mode (Exploring the SUT with Spy mode it is not necessary to create new threads intended for listening the out/err buffers)
- Structure created to Match Suspicious String Values in the SUT. Until now only Tags.Title was checked in the Verdict, ValuePattern property is also checked now. More and customizable properties will be added in the future.