Skip to content

Commit dec9828

Browse files
authored
Merge pull request #444 from TESTARtool/master_development
Refactor output sequences files, add paintBatch widgets logic, and extend web tags features
2 parents db74bd2 + 7bc95a5 commit dec9828

64 files changed

Lines changed: 1133 additions & 652 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

CHANGELOG

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,19 @@
1+
#TESTAR v2.7.8 (2-Sep-2025)
2+
- Add paintBatch and drawBatchTestar logic to paint all web elements at once
3+
- Fix the derivation and visualization of slide actions in web applications
4+
- Add more Verdict warning groups
5+
- Refactor output files to avoid saving ".testar" sequences twice
6+
- Add Constants ignoredAttributes list to allow users to ignore JavaScript state attributes that require a high workload
7+
- Fix issue to avoid serializing non-serializable elements (this was provoking issues with iframe elements)
8+
- Add loadUrlWithRetry to catch selenium timeout exceptions and avoid TESTAR hanging
9+
- Extend TESTAR webdriver tags
10+
- Fix bug extracting the protocol name the .sse file
11+
- Ignore weak password chrome popup
12+
- Refactor usage of Tag ScreenshotImage
13+
- Add settings to configure webdriver constants
14+
- Add settings to enable/disable generating replayable files
15+
16+
117
#TESTAR 2.7.7 (26-Aug-2025)
218
- Bump org.seleniumhq.selenium:selenium-java from 4.34.0 to 4.35.0
319
- Bump io.appium:java-client from 9.5.0 to 10.0.0

VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
2.7.7
1+
2.7.8

android/src/org/testar/monkey/alayer/android/AndroidCanvas.java

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
/***************************************************************************************************
22
*
3-
* Copyright (c) 2020 - 2022 Universitat Politecnica de Valencia - www.upv.es
4-
* Copyright (c) 2020 - 2022 Open Universiteit - www.ou.nl
3+
* Copyright (c) 2020 - 2025 Universitat Politecnica de Valencia - www.upv.es
4+
* Copyright (c) 2020 - 2025 Open Universiteit - www.ou.nl
55
*
66
* Redistribution and use in source and binary forms, with or without
77
* modification, are permitted provided that the following conditions are met:
@@ -137,4 +137,10 @@ public void release() {
137137

138138
}
139139

140+
@Override
141+
public void paintBatch() {
142+
// TODO Auto-generated method stub
143+
144+
}
145+
140146
}

core/src/org/testar/StateManagementTags.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -321,6 +321,7 @@ public enum Group {General, ControlPattern, WebDriver}
321321
public static final Tag<Boolean> WebWidgetIsOffScreen = Tag.from("Web Widget Is Off Screen", Boolean.class);
322322
public static final Tag<String> WebWidgetSrc = Tag.from("Web Widget src", String.class);
323323
public static final Tag<String> WebWidgetPlaceholder= Tag.from("Web Widget placeholder", String.class);
324+
public static final Tag<Boolean> WebWidgetIsDisabled = Tag.from("Web Widget Is Disabled", Boolean.class);
324325

325326

326327
// a set containing the tags that are available for state management
@@ -411,6 +412,7 @@ public enum Group {General, ControlPattern, WebDriver}
411412
add(WebWidgetIsOffScreen);
412413
add(WebWidgetSrc);
413414
add(WebWidgetPlaceholder);
415+
add(WebWidgetIsDisabled);
414416
}
415417
};
416418

@@ -507,6 +509,7 @@ public static boolean isStateManagementTag(Tag<?> tag) {
507509
settingsMap.put(WebWidgetIsOffScreen, "WebWidgetIsOffScreen");
508510
settingsMap.put(WebWidgetSrc, "WebWidgetSrc");
509511
settingsMap.put(WebWidgetPlaceholder, "WebWidgetPlaceholder");
512+
settingsMap.put(WebWidgetIsDisabled, "WebWidgetIsDisabled");
510513
}
511514

512515
// a mapping of a tag to its group
@@ -593,6 +596,7 @@ public static boolean isStateManagementTag(Tag<?> tag) {
593596
put(WebWidgetIsOffScreen, Group.WebDriver);
594597
put(WebWidgetSrc, Group.WebDriver);
595598
put(WebWidgetPlaceholder, Group.WebDriver);
599+
put(WebWidgetIsDisabled, Group.WebDriver);
596600
}
597601
};
598602

core/src/org/testar/environment/UnknownEnvironment.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,6 @@
3838
public class UnknownEnvironment implements IEnvironment {
3939
@Override
4040
public double getDisplayScale(long windowHandle){
41-
System.out.println("WARNING getDisplayScale not implemented for current OS, returning default value");
4241
return 1.0;
4342
}
4443
}

core/src/org/testar/monkey/alayer/AWTCanvas.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
/***************************************************************************************************
22
*
3-
* Copyright (c) 2013, 2014, 2015, 2016, 2017 Universitat Politecnica de Valencia - www.upv.es
3+
* Copyright (c) 2013 - 2025 Universitat Politecnica de Valencia - www.upv.es
4+
* Copyright (c) 2018 - 2025 Open Universiteit - www.ou.nl
45
*
56
* Redistribution and use in source and binary forms, with or without
67
* modification, are permitted provided that the following conditions are met:
@@ -439,6 +440,7 @@ else if (sizeThis < sizeImg)
439440
}
440441

441442
public void release() {}
442-
443+
public void paintBatch() {}
444+
443445
public String toString(){ return "AWTCanvas (width: " + width() + " height: " + height() + ")"; }
444446
}

core/src/org/testar/monkey/alayer/Canvas.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
/***************************************************************************************************
22
*
3-
* Copyright (c) 2013, 2014, 2015, 2016, 2017 Universitat Politecnica de Valencia - www.upv.es
3+
* Copyright (c) 2013 - 2025 Universitat Politecnica de Valencia - www.upv.es
4+
* Copyright (c) 2018 - 2025 Open Universiteit - www.ou.nl
45
*
56
* Redistribution and use in source and binary forms, with or without
67
* modification, are permitted provided that the following conditions are met:
@@ -61,4 +62,5 @@ public interface Canvas {
6162
void rect(Pen pen, double x, double y, double width, double height);
6263
Pen defaultPen();
6364
void release();
65+
void paintBatch();
6466
}

core/src/org/testar/monkey/alayer/Tags.java

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -123,8 +123,6 @@ private Tags() {}
123123
/** The pattern value of a web-widget : hyperlink or text in input field */
124124
public static final Tag<String> ValuePattern = from("ValuePattern", String.class);
125125

126-
public static final Tag<WidgetMap> WidgetMap = from("WidgetMap", WidgetMap.class);
127-
128126
public static final Tag<String> Path = from("Path", String.class);
129127
public static final Tag<String> ConcreteID = from(CodingManager.CONCRETE_ID, String.class);
130128
public static final Tag<String> AbstractID = from(CodingManager.ABSTRACT_ID, String.class);
@@ -161,9 +159,7 @@ private Tags() {}
161159
public static final Tag<Long> TimeStamp = from("TimeStamp", Long.class);
162160

163161
/** Usually attached to an object of {@link State}. The value is a screenshot of the state. */
164-
//public static final Tag<Image> Screenshot = from("Screenshot", Image.class);
165162
public static final Tag<String> ScreenshotPath = from("ScreenshotPath", String.class);
166-
public static final Tag<AWTCanvas> ScreenshotImage = from("ScreenshotImage", AWTCanvas.class);
167163

168164
/** Usually attached to a {@link State} object. The value is an outcome of a test oracle for that state. It is
169165
* used to mark states as 'suspicious' or 'erroneous' */

core/src/org/testar/monkey/alayer/Verdict.java

Lines changed: 28 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,10 +60,36 @@ public enum Severity {
6060

6161
// Default WARNING verdict
6262
WARNING(0.1, "WARNING"),
63+
64+
// WARNING GROUP: DATA
65+
WARNING_DATA_CONFIGURATION_SETTING_NOT_WORKING(0.10000002, "WARNING_DATA_CONFIGURATION_SETTING_NOT_WORKING"),
66+
WARNING_DATA_DATA_VALUE_NOT_STORED_OR_DELETED(0.10000003, "WARNING_DATA_DATA_VALUE_NOT_STORED_OR_DELETED"),
67+
WARNING_DATA_DATA_MAPPING_FAULT(0.10000004, "WARNING_DATA_DATA_MAPPING_FAULT"),
68+
WARNING_DATA_FILTERING_FAULT(0.10000005, "WARNING_DATA_FILTERING_FAULT"),
69+
WARNING_DATA_FUNCTIONAL_DOMAIN_SPECIFIC_FAULT(0.10000006, "WARNING_DATA_FUNCTIONAL_DOMAIN_SPECIFIC_FAULT"),
70+
WARNING_DATA_INPUT_VALIDATION_FAULT(0.10000007, "WARNING_DATA_INPUT_VALIDATION_FAULT"),
71+
WARNING_DATA_SORTING_FAULT(0.10000008, "WARNING_DATA_SORTING_FAULT"),
72+
WARNING_DATA_VISUAL_DOCUMENT_GENERATION_OR_CONVERSION_FAULT(0.10000009, "WARNING_DATA_VISUAL_DOCUMENT_GENERATION_OR_CONVERSION_FAULT"),
73+
74+
// WARNING GROUP: RESOURCE
75+
WARNING_RESOURCE_PERFORMANCE_ISSUE(0.10000010, "WARNING_RESOURCE_PERFORMANCE_ISSUE"),
76+
WARNING_RESOURCE_NOT_FOUND_FAULT(0.10000011, "WARNING_RESOURCE_NOT_FOUND_FAULT"),
77+
78+
// WARNING GROUP: UI
79+
WARNING_UI_TRANSLATION_OR_SPELLING_ISSUE(0.10000012, "WARNING_UI_TRANSLATION_OR_SPELLING_ISSUE"),
80+
WARNING_UI_FLOW_FAULT(0.10000013, "WARNING_UI_FLOW_FAULT"),
81+
WARNING_UI_ITEM_VISIBILITY_FAULT(0.10000014, "WARNING_UI_ITEM_VISIBILITY_FAULT"),
82+
WARNING_UI_ITEM_WRONG_VALUE_FAULT(0.10000015, "WARNING_UI_ITEM_WRONG_VALUE_FAULT"),
83+
WARNING_UI_TRIMMED_SECURITY_FAULT(0.10000016, "WARNING_UI_TRIMMED_SECURITY_FAULT"),
84+
WARNING_UI_VISUAL_OR_RENDERING_FAULT(0.10000017, "WARNING_UI_VISUAL_OR_RENDERING_FAULT"),
85+
86+
// SUSPICIOUS GROUP: EXCEPTION
87+
SUSPICIOUS_ALERT(0.19999998, "SUSPICIOUS_ALERT"),
88+
SUSPICIOUS_TITLE(0.19999999, "SUSPICIOUS_TITLE"),
89+
6390
// WARNING GROUP: WEB INVARIANT
6491
WARNING_WEB_INVARIANT_FAULT(0.2, "WARNING_WEB_INVARIANT_FAULT"),
65-
// WARNING GROUP: UI
66-
WARNING_UI_VISUAL_OR_RENDERING_FAULT(0.3, "WARNING_UI_VISUAL_OR_RENDERING_FAULT"),
92+
6793
// WARNING GROUP: ACCESSIBILITY
6894
WARNING_ACCESSIBILITY_FAULT(0.4, "WARNING_ACCESSIBILITY_FAULT"),
6995

core/src/org/testar/monkey/alayer/WidgetMap.java

Lines changed: 0 additions & 40 deletions
This file was deleted.

0 commit comments

Comments
 (0)