Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
127 commits
Select commit Hold shift + click to select a range
7376c77
Datastructures4 @servlet vuln_count = "0"
Jclavo Jan 27, 2025
ddca39b
Inter9 vuln_count = "2"
Jclavo Jan 27, 2025
b391497
remove Collections11b
Jclavo Jan 27, 2025
ecfa6d9
AliasingTest
Jclavo Jan 27, 2025
5fdd980
ArraysTest
Jclavo Jan 27, 2025
4f72d18
BasicTest
Jclavo Jan 27, 2025
bd395d8
CollectionTest
Jclavo Jan 27, 2025
4ae5ede
update metrics
Jclavo Jan 27, 2025
373bd80
DataStructureTest
Jclavo Jan 27, 2025
42c6e67
fix DataStructure4
Jclavo Jan 27, 2025
f3a8951
fix Collection9
Jclavo Jan 27, 2025
61d0839
FactoryTest
Jclavo Jan 27, 2025
bdcaa9a
InterTest
Jclavo Jan 27, 2025
22dbd33
fix expected values
Jclavo Jan 27, 2025
33f3a5f
fix expected value
Jclavo Jan 27, 2025
36d0033
SessionTest
Jclavo Jan 27, 2025
a0d8693
StrongUpdateTest
Jclavo Jan 27, 2025
629a1b2
JSVFA metrics
Jclavo Jan 27, 2025
5f3d746
metrics for JSVFA in tests
Jclavo Jan 27, 2025
c72d100
applicationClassPath
Jclavo Jan 27, 2025
1f79008
fix table
Jclavo Jan 27, 2025
aab0f98
remove indivisual tests
Jclavo Jan 27, 2025
e6ea99a
FlowdroidTest one in all
Jclavo Jan 27, 2025
bf361c3
compute metrics
Jclavo Jan 27, 2025
3c77221
enable all tests
Jclavo Jan 27, 2025
03352f0
use size == 0
Jclavo Jan 27, 2025
8b8e954
pass and failed
Jclavo Jan 27, 2025
6e16696
disable AliasingTest
Jclavo Jan 27, 2025
3be57fc
set expected value for Collection9
Jclavo Jan 27, 2025
fb9aee1
expected value for DataStructure4
Jclavo Jan 27, 2025
93b829c
expected value fpr Inter9
Jclavo Jan 27, 2025
abbd7d8
InterTest
Jclavo Jan 27, 2025
7b1270a
pass and fail
Jclavo Jan 27, 2025
15e8335
Test Basic6 is a flaky test.
Jclavo Jan 27, 2025
f4fbbb7
remove old metrics
Jclavo Jan 27, 2025
befd173
ARRAY TESTs
Jclavo Jan 27, 2025
cc86deb
Basic tests
Jclavo Jan 27, 2025
d0ca81f
ignore COLLECTION TESTs
Jclavo Jan 27, 2025
36db7c1
DATASTRUCTURE TESTs
Jclavo Jan 27, 2025
f1f50cd
FACTORY TESTs
Jclavo Jan 27, 2025
3caa40f
INTER TESTs
Jclavo Jan 27, 2025
9807912
InterTest metrics
Jclavo Jan 27, 2025
7abdc07
SESSION TESTs
Jclavo Jan 27, 2025
96dc949
STRONG UPDATE TESTs
Jclavo Jan 27, 2025
3a872ab
ignore tests
Jclavo Jan 27, 2025
0ad88fe
passed and failed
Jclavo Jan 27, 2025
592e204
Inter11 is flaky
Jclavo Jan 27, 2025
6580a71
Inter11 is flaky
Jclavo Jan 27, 2025
632733b
separe metric details in another file
Jclavo Feb 6, 2025
7cd2f08
set old version "0.2.9"
Jclavo Feb 6, 2025
9e737fa
DISCLAIMER
Jclavo Feb 6, 2025
df459be
typo
Jclavo Feb 6, 2025
9c69c83
fix basic
Jclavo Mar 16, 2025
f512861
metrics for Basic
Jclavo Mar 16, 2025
9ff0a83
total TP
Jclavo Mar 16, 2025
020d9d3
add test number
Jclavo Mar 16, 2025
426342b
Pass Rate
Jclavo Mar 16, 2025
b3f79d0
metrics
Jclavo Mar 16, 2025
dbf769c
ignore Basic28 test
Jclavo Jun 10, 2025
290e1d8
update metrics values
Jclavo Jun 10, 2025
a964911
rename tests to use securibench prefix
Jclavo Jun 26, 2025
f60e65c
Add SecuribenchExtraTest with Pred test cases for conflict detection
Jclavo Jun 28, 2025
7f6cab6
Add reflection tests to SecuribenchExtraTest for conflict detection
Jclavo Jun 28, 2025
5cfab99
Add sanitizers tests to SecuribenchExtraTest for conflict detection
Jclavo Jun 28, 2025
c360a37
Add pass rate metric for additional tests in old metrics documentation
Jclavo Jun 28, 2025
75f7139
remove unused tests
Jclavo Jul 15, 2025
7d65a0c
separate logic for tests
Jclavo Jul 15, 2025
b374bee
refactor SecuribenchTestSuite to list only tests
Jclavo Jul 15, 2025
503d4c3
implement class to run test dynamically
Jclavo Jul 15, 2025
ce001f6
remove comments
Jclavo Jul 15, 2025
e89b0a4
AliasingTest metrics
Jclavo Jul 15, 2025
e80da73
fix logic to compute metrics
Jclavo Jul 15, 2025
7fe8902
fix logic to compute metrics
Jclavo Jul 15, 2025
47ab495
compute metrics for AliasingTest
Jclavo Jul 15, 2025
4a4c5d7
add metrics to SecuribenchDynamicTest
Jclavo Jul 15, 2025
affd70d
improve metric calculations to handle division by zero in precision, …
Jclavo Jul 15, 2025
b49a452
MetricsTest
Jclavo Jul 15, 2025
d2d1111
round double to 2 decimals
Jclavo Jul 15, 2025
a7303ea
use Pattern matching "match"
Jclavo Jul 15, 2025
d58f66a
use Pattern matching "match"
Jclavo Jul 15, 2025
c7ee3f7
handle testName
Jclavo Jul 15, 2025
b33ac93
fix wrong amount
Jclavo Jul 15, 2025
862bbef
case class Metrics
Jclavo Jul 15, 2025
bb40c6f
Refactor CustomMetrics to use a map for test-specific metrics and upd…
Jclavo Jul 15, 2025
a35b13b
wip: report all metrics
Jclavo Jul 15, 2025
2da93f0
reportSummary
Jclavo Jul 15, 2025
24b313b
Enhance CustomMetrics methods to support optional testName parameter,…
Jclavo Jul 15, 2025
335c025
reportSummary
Jclavo Jul 15, 2025
f8b3cca
reportSummary
Jclavo Jul 15, 2025
ef36aed
sort by name
Jclavo Jul 15, 2025
5a0bdbe
show icon in status
Jclavo Jul 15, 2025
4bf1ab6
format table
Jclavo Jul 15, 2025
32e77ea
add report name
Jclavo Jul 15, 2025
f3120cb
add report name
Jclavo Jul 15, 2025
5a2dbc0
securibench.micro.aliasing metrics
Jclavo Jul 15, 2025
7012c97
securibench.micro.arrays metrics
Jclavo Jul 15, 2025
f9a724e
securibench.micro.arrays and collections metrics
Jclavo Jul 15, 2025
d235dc5
move SecuribenchTestSuite to deprecated folder
Jclavo Jul 15, 2025
ae0603a
move SecuribenchExtraTest to deprecated folder
Jclavo Jul 15, 2025
845eee4
rename tests
Jclavo Jul 15, 2025
25ff66e
rename SecuribenchBaseTest
Jclavo Jul 15, 2025
6fea35d
make SecuribenchDynamicTest Abstarct
Jclavo Jul 17, 2025
1fc9ce7
SecuribenchAliasingTest
Jclavo Jul 17, 2025
1aea1c5
arrays and basics
Jclavo Jul 17, 2025
867523c
collections
Jclavo Jul 17, 2025
68e907a
datastructures
Jclavo Jul 17, 2025
3eff884
factories
Jclavo Jul 17, 2025
c2edee6
inter
Jclavo Jul 17, 2025
f27fd1c
session
Jclavo Jul 17, 2025
2382091
strong_updates
Jclavo Jul 17, 2025
52da835
remove uncommented code
Jclavo Jul 17, 2025
757070e
add SecuribenchAllTest
Jclavo Jul 18, 2025
1357c90
imporve logic to get files
Jclavo Jul 18, 2025
135764d
total metrics
Jclavo Jul 18, 2025
64910d4
add logic to explore subfolders
Jclavo Jul 20, 2025
56cfa2c
improve filters
Jclavo Jul 20, 2025
e923fd3
add extra tests
Jclavo Jul 20, 2025
fbd7edb
metrics for securibench.micro.pred
Jclavo Jul 20, 2025
4066933
metrics for securibench.micro.reflection
Jclavo Jul 20, 2025
998d583
sanitizers
Jclavo Jul 20, 2025
28a672b
remove comments
Jclavo Jul 20, 2025
be34de6
rename to SecuribenchTest
Jclavo Jul 20, 2025
052f239
CustomMetrics Trait Documentation
Jclavo Jul 20, 2025
de7e9d7
reverse changes in tests
Jclavo Jul 21, 2025
f00f23b
update metrics for incorrect tests
Jclavo Jul 21, 2025
057c1a9
sort tests info
Jclavo Jul 21, 2025
57c38a8
summary metrics
Jclavo Jul 21, 2025
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
74 changes: 36 additions & 38 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -60,41 +60,39 @@ This project use some of the [FlowDroid](https://github.com/secure-software-engi


### Flowdroid
~~TTests failed: 34, passed: 64, ignored: 6 of 104 test~~T

Tests failed: 40, passed: 64, ignored: 0 of 104 test
Tests failed: 33, passed: 71, ignored: 0 of 104 test (original)

Tests failed: +17.5%, passed: +9.86, ignored: 0 of 104 test (original)

#### AliasingTest
Tests failed: 0, passed: 5, ignored: 1 of 6 test
#### ArraysTest
Tests failed: 9, passed: 1, ignored: 0 of 10 test
#### BasicTest
Tests failed: 0, passed: 37, ignored: 5 of 42 test

Fails:
17
36 (same)
38
42

#### CollectionTest
Tests failed: 14, passed: 1, ignored: 0 of 15 test
#### DataStructureTest ☑
Tests failed: 1, passed: 5, ignored: 0 of 6 test
#### FactoryTest ☑
Tests failed: 1, passed: 2, ignored: 0 of 3 test
#### InterTest
Tests failed: 7, passed: 7, ignored: 0 of 14 test
~~#### PredTest~~
~~Tests failed: 3, passed: 6, ignored: 0 of 9 test~~
~~#### ReflectionTest~~
~~Tests failed: 4, passed: 0, ignored: 0 of 4 test~~
~~#### SanitizerTest~~
~~Tests failed: 2, passed: 4, ignored: 0 of 6 test~~
#### SessionTest ☑
Tests failed: 3, passed: 0, ignored: 0 of 3 test
#### StrongUpdateTest ☑
Tests failed: 1, passed: 4, ignored: 0 of 5 test

## TEST METRICS

> failed: 0, passed: 61, ignored: 42 of 103 tests.

| Test | Σ | TP | FP |
|:---------------:|:-------:|:------:|:--:|
| Aliasing | 5/6 | 10/11 | 0 |
| Array | 1/10 | 0/9 | 0 |
| Basic | 35/42 | 56/61 | 2 |
| Collection | 2/14 | 2/14 | 1 |
| DataStructure | 4/6 | 5/5 | 2 |
| Factory | 2/3 | 3/3 | 1 |
| Inter | 8/14 | 10/16 | 0 |
| ~~Pred~~ | ~~0/9~~ | - | - |
| ~~Reflection~~ | ~~0/4~~ | - | - |
| ~~Sanitizers~~ | ~~0/6~~ | - | - |
| Session | 0/3 | 0/3 | 0 |
| StrongUpdate | 4/5 | 0/1 | 0 |
| **TOTAL** | 61/103 | 86/123 | 6 |

- **Precision:** 0.93
- **Recall:** 0.70
- **F-score:** 0.80
- **Pass Rate:** 59.22%

To have detailed information about each group of tests run, [see here.](old-metrics)

**OBSERVATIONS**
- Flowdroid is not taking in count the TP expected in StrongUpdate4;
- Test Basic40 is commented in the test suite so the amount of TP differs from the original run by Flowdroid;
- There are two flaky tests: Basic6 and Inter11.


## DISCLAIMER
- The last code changes for this Release were added in March, 2023.
2 changes: 1 addition & 1 deletion build.sbt
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ scalaVersion := "2.12.8"
name := "svfa-scala"
organization := "br.unb.cic"

version := "0.2.1-SNAPSHOT"
version := "0.2.9"

githubOwner := "rbonifacio"
githubRepository := "svfa-scala"
Expand Down
222 changes: 222 additions & 0 deletions old-metrics.md

Large diffs are not rendered by default.

52 changes: 0 additions & 52 deletions src/test/java/securibench/micro/aliasing/Aliasing7.java

This file was deleted.

58 changes: 0 additions & 58 deletions src/test/java/securibench/micro/aliasing/Aliasing8.java

This file was deleted.

51 changes: 0 additions & 51 deletions src/test/java/securibench/micro/aliasing/Aliasing9.java

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@

/**
* @servlet description="simple nexted data (false positive)"
* @servlet vuln_count = "1"
* @servlet vuln_count = "0"
* */
public class Datastructures4 extends BasicTestCase implements MicroTestCase {
public class C {
Expand Down Expand Up @@ -50,6 +50,6 @@ public String getDescription() {
}

public int getVulnerabilityCount() {
return 1;
return 0;
}
}
2 changes: 1 addition & 1 deletion src/test/java/securibench/micro/inter/Inter9.java
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,6 @@ public String getDescription() {
}

public int getVulnerabilityCount() {
return 1;
return 2;
}
}
92 changes: 0 additions & 92 deletions src/test/scala/br/unb/cic/flowdroid/AliasingTest.scala

This file was deleted.

Loading