add futur works, with drawings
All checks were successful
/ test_checkout (push) Successful in 46s

This commit is contained in:
Jean-Marie 'Histausse' Mineau 2025-11-23 21:23:32 +01:00
parent ee0aea2aca
commit e05a22e373
Signed by: histausse
GPG key ID: B66AEEDA9B645AD2

View file

@ -1824,19 +1824,28 @@
A lot of engineering, preferably spearheaded by Google. A lot of engineering, preferably spearheaded by Google.
] ]
#for i in range(3) { //- Benchmark of APKs to evaluate finishing rate
let delta_x = 75pt //- Make tools reusing sources from Android Open Source Project
//- Require developpers to provide high coverage tests inputs with the APKs
#for i in range(4) {
let delta_x = 50pt
let myell = ellipse.with( let myell = ellipse.with(
stroke: green + 5pt, stroke: green + 5pt,
outset: 5pt, outset: 5pt,
fill: white, fill: white,
) )
let myline(start, end) = { let myell_red = ellipse.with(
stroke: red + 5pt,
outset: 0pt,
fill: white,
)
let myline(start, end, color: green) = {
place(left+top, dx: delta_x, line( place(left+top, dx: delta_x, line(
start: start, end: end, start: start, end: end,
stroke: green + 5pt, stroke: color + 5pt,
)) ))
} }
let myplace(pos, body) = context { let myplace(pos, body) = context {
let size = measure(body); let size = measure(body);
place( place(
@ -1853,6 +1862,7 @@
let pos_tools = (100pt, 50pt) let pos_tools = (100pt, 50pt)
let pos_devs = (500pt, -100pt) let pos_devs = (500pt, -100pt)
let pos_google = (500pt, 100pt) let pos_google = (500pt, 100pt)
let pos_test = (600pt, 0pt)
let circle_apk = myell[APK] let circle_apk = myell[APK]
let circle_android = myell[Android] let circle_android = myell[Android]
@ -1861,12 +1871,109 @@
let circle_tools = myell[Analysis tools] let circle_tools = myell[Analysis tools]
let circle_devs = myell[Developers] let circle_devs = myell[Developers]
let circle_google = myell[Google] let circle_google = myell[Google]
let circle_test = myell_red(align(center)[Public \ Dynamic Tests])
counter("logical-slide").update( n => n - 1 ) counter("logical-slide").update( n => n - 1 )
slide( slide(
title: [Future Works], { title: [Future Works], {
if i >= 1 {
let dx = 25pt
let cdx = 30pt
let cdy = 30pt
let st = (
pos_dataset.at(0) - dx,
pos_dataset.at(1)
)
let en = (
pos_tools.at(0) - dx,
pos_tools.at(1)
)
let c1 = (
st.at(0) - cdx,
(st.at(1) + en.at(1)) / 2 - cdy
)
let c2 = (
st.at(0) - cdx,
(st.at(1) + en.at(1)) / 2 + cdy
)
place(left+top, dx: delta_x, curve(
stroke: red + 5pt,
curve.move(st),
curve.cubic(c1, c2, en)
))
place(
left+top,
dx: delta_x + st.at(0) - 150pt,
dy: (st.at(1) + en.at(1)) / 2 - 30pt,
text(fill: red)[
RASTA-like \
benchmark
]
)
}
if i >= 2 {
let cdx = 50pt
let cdy = 0pt
let st = (
pos_tools.at(0),
pos_tools.at(1)
)
let en = (
pos_aosp.at(0),
pos_aosp.at(1)
)
let c = (
(st.at(0) + en.at(0)) / 2 - 40pt,
(st.at(1) + en.at(1)) / 2 + 50pt
)
let c1 = (
c.at(0) - cdx,
c.at(1) - cdy
)
let c2 = (
c.at(0) + cdx,
c.at(1) + cdy
)
place(left+top, dx: delta_x, curve(
stroke: red + 5pt,
curve.move(st),
curve.cubic(c1, c2, en)
))
place(
left+top,
dx: delta_x + c.at(0) - 100pt,
dy: c.at(1),
text(fill: red)[
Use Android Code
]
)
}
if i >= 3 {
myline(pos_apk, pos_test, color: red)
myline(pos_android, pos_test, color: red)
myline(pos_devs, pos_test, color: red)
myline(pos_tools, pos_test, color: red)
myline(pos_google, pos_test, color: red)
myplace(pos_test, circle_test)
place(
left+top,
dx: delta_x + pos_test.at(0) - 10pt,
dy: pos_test.at(1) + 45pt,
text(fill: red, align(center)[
Require \
high-coverage \
tests inputs \
for some \
permissions
])
)
}
myline(pos_apk, pos_android) myline(pos_apk, pos_android)
myline(pos_aosp, pos_android) myline(pos_aosp, pos_android)
myline(pos_apk, pos_dataset) myline(pos_apk, pos_dataset)
@ -1885,60 +1992,12 @@
myplace(pos_google, circle_google) myplace(pos_google, circle_google)
}) })
} }
//- Benchmark of APKs to evaluate finishing rate
//- Make tools reusing sources from Android Open Source Project
//- Require developpers to provide high coverage tests inputs with the APKs
#empty-slide[ #empty-slide[
Questions Questions
] ]
/*
#slide()[
#get_figure(<fig:th-cg-before-after>))
]
#slide()[
#pl.toolbox.slide-number
#context({
pl.toolbox.all-sections((sections, current) => {
for i in sections {
repr(i.at("body").at("text"))
}
})
})
]
*/
#pagebreak() #pagebreak()
#set page(height: auto, margin: 25mm) #set page(height: auto, margin: 25mm)
#bibliography("bibliography.bib") #bibliography("bibliography.bib")
/*
* RETOUR 1:
*
* Pas de retour en arriere
* Ne pas se retourner
*
* Bon premier jet.
*
* - slide text bof
* - Parti 3: plus dure a comprendre
* - Expliquer ce qui est fait avant le résultat (surtout parti 3)
*
* slite titre problemenatiques: PB1, PB2 PB3
*
* Plus d'état de l'art, dans chapitres? redonner contexte au debut des chapitre, en profiter pour l'état de l'art. Pas plus d'un ou deux papiers, si important.
* Remplacer l'état de l'art dans l'intro par intuition et mettre soa dans chapitre
*
* PQ: focu on dcl & refl
*
* RQ1: Static, RQ2: Check coherence static / dynamic, RQ3: transformation
*
*/