Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions CHANGELOG
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
#TESTAR v2.8.2 (10-Mar-2026)
- Fix ignoring ValuePattern tag for UIAEdit widgets
- Remove unused comments and classes


#TESTAR v2.8.1 (9-Mar-2026)
- Refactor TESTAR internals from a single Verdict getVerdict to List<Verdict> getVerdicts
- Report all Verdict issues per state independently
Expand Down
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
2.8.1
2.8.2
1 change: 0 additions & 1 deletion core/src/org/testar/monkey/alayer/Verdict.java
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,6 @@ public enum Severity {

// SUSPICIOUS GROUP: EXCEPTION
SUSPICIOUS_ALERT(0.19999998, "SUSPICIOUS_ALERT"),
SUSPICIOUS_TITLE(0.19999999, "SUSPICIOUS_TITLE"),

// WARNING GROUP: WEB INVARIANT
WARNING_WEB_INVARIANT_FAULT(0.2, "WARNING_WEB_INVARIANT_FAULT"),
Expand Down
92 changes: 0 additions & 92 deletions testar/src/org/testar/ActionStatus.java

This file was deleted.

102 changes: 0 additions & 102 deletions testar/src/org/testar/JavaOutputParser.java

This file was deleted.

5 changes: 0 additions & 5 deletions testar/src/org/testar/SutProfiler.java

This file was deleted.

41 changes: 0 additions & 41 deletions testar/src/org/testar/monkey/ConfigException.java

This file was deleted.

19 changes: 6 additions & 13 deletions testar/src/org/testar/monkey/DefaultProtocol.java
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@
import org.testar.monkey.alayer.ios.IOSProtocolUtil;
import org.testar.monkey.alayer.visualizers.ShapeVisualizer;
import org.testar.monkey.alayer.webdriver.WdProtocolUtil;
import org.testar.monkey.alayer.windows.UIARoles;
import org.testar.monkey.alayer.windows.WinApiException;
import org.testar.oracles.Oracle;
import org.testar.oracles.OracleSelection;
Expand Down Expand Up @@ -534,10 +535,6 @@ void endTestSequence(){
cv.release();
ScreenshotSerialiser.exit();
TestSerialiser.exit();
// String stopDateString = Util.dateString(DATE_FORMAT);
// String durationDateString = Util.diffDateString(DATE_FORMAT, startOfSutDateString, stopDateString);
// LogSerialiser.log("TESTAR stopped execution at " + stopDateString + "\n", LogSerialiser.LogLevel.Critical);
// LogSerialiser.log("Test duration was " + durationDateString + "\n", LogSerialiser.LogLevel.Critical);
LogSerialiser.flush();
LogSerialiser.finish();
LogSerialiser.exit();
Expand Down Expand Up @@ -928,23 +925,22 @@ private Verdict suspiciousStringValueMatcher(Widget w) {
String tagValue = "";
// First finding the Tag that matches the TagsToFilter string, then getting the value of that Tag:
for(Tag<?> tag : w.tags()){
// Ignore the ValuePattern tag for UIAEdit widgets
if(tag.name().equals("ValuePattern") && w.get(Tags.Role, Roles.Widget).equals(UIARoles.UIAEdit)) {
continue;
}

if(w.get(tag, null) != null && tag.name().equals(tagForSuspiciousOracle)){
// Force the replacement of new line characters to avoid the usage of (?s) regex in the regular expression
tagValue = w.get(tag).toString().replace("\n", " ").replace("\r", " ");
break;
//System.out.println("DEBUG: tag found, "+tagToFilter+"="+tagValue);
}
}

//Check whether the Tag value is empty or null
if (tagValue == null || tagValue.isEmpty())
continue; //no action

//Ignore value ValuePattern for UIAEdit widgets
if(tagValue.equals("ValuePattern") && w.get(Tags.Role, Roles.Widget).toString().equalsIgnoreCase("UIAEdit")) {
continue;
}

m = this.suspiciousTitlesMatchers.get(tagValue);
if (m == null){
m = this.suspiciousTitlesPattern.matcher(tagValue);
Expand Down Expand Up @@ -1016,7 +1012,6 @@ protected Set<Action> deriveActions(SUT system, State state) throws ActionBuildE
return actions;
}

//TODO is this process handling Windows specific? move to SystemProcessHandling
/**
* If unwanted processes need to be killed, the action returns an action to do that. If the SUT needs
* to be put in the foreground, then the action that is returned is putting it in the foreground.
Expand All @@ -1026,8 +1021,6 @@ protected Set<Action> deriveActions(SUT system, State state) throws ActionBuildE
* @return null if no preSelected actions are needed.
*/
protected Set<Action> preSelectAction(SUT system, State state, Set<Action> actions){
//Assert.isTrue(actions != null && !actions.isEmpty());

// TESTAR didn't find any actions in the State of the SUT
// It is set in a method actionExecuted that is not being called anywhere (yet?)
if (actions.isEmpty()){
Expand Down
2 changes: 1 addition & 1 deletion testar/src/org/testar/monkey/Main.java
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@

public class Main {

public static final String TESTAR_VERSION = "v2.8.1 (9-Mar-2026)";
public static final String TESTAR_VERSION = "v2.8.2 (10-Mar-2026)";

//public static final String TESTAR_DIR_PROPERTY = "DIRNAME"; //Use the OS environment to obtain TESTAR directory
public static final String SETTINGS_FILE = "test.settings";
Expand Down
Loading