Closed francescolupo closed 1 year ago
Dear @francescolupo, Thank you for your question. Unfortunately, the information you have provided is insufficient for me to provide a correct answer. Based on the information you have given, my initial assumption is that you may not have instrumented the application using a tool such as COSMO. Could you kindly confirm whether this is the case?
ps. I'm Italian, if you want we can also switch language
Grazie mille per la risposta.
Si, in realtà non ho usato COSMO perché credevo che ARES pensasse a tutto e che bastasse inserire il parametro --instr_jacoco
in fase di lancio del tool per instrumentare l'applicazione.
Potresti fornirmi gentilmente gli step necessari per usare correttamente COSMO e per far si che ARES generi correttamente i file relativi alla Coverage?
Ti ringrazio anticipatamente per la disponibilità. Se preferisci, possiamo continuare la discussione per email.
Figurati! Anzitutto per utilizzare COSMO devi avere il codice sorgente dell'applicazione da testare (questo è il requisito fondamentale). Poi scarichi la repo di COSMO da qui: https://github.com/H2SO4T/COSMO e segui i punti di installazione e utilizzo. A questo punto puoi buildare la tua app instrumentata con COSMO, installarlo sul dispositivo e testarlo con ARES.
Resto a disposizione nel caso ci fosse la necessità!
Vorrei farti un'ultima domanda per avere la certezza di aver capito. Quindi per poter testare ARES e la sua Coverage su un'app, devo avere a disposizione il codice sorgente dell'app altrimenti non posso farlo, dico bene? E se partissi da un'applicazione e la decompilassi, a quel punto potrei farlo? Ti faccio queste domande perché il mio obiettivo era quello di scaricare alcuni apk sui quali testare ARES e la sua Coverage, quindi voglio capire se sia fattibile.
La coverage può essere monitorata utilizzando lo strumento di tua preferenza. Non dipende da ARES. Ad esempio, ARES è compatibile con strumenti come COSMO e EMMA. Puoi inserire una singola riga di codice in ARES per avviare l'intent e raccogliere la coverage dell'applicazione.
Lo strumento che ho sviluppato personalmente, COSMO, funziona solo con applicazioni di cui si dispone del codice sorgente e non può essere utilizzato su un'app decompilata.
Se hai solo un file APK a disposizione, puoi utilizzare un tool di strumentazione black-box come ACVTool (https://github.com/pilgun/acvtool). L'unica cosa che dovrai fare in seguito è modificare ARES per raccogliere la coverage secondo le specifiche richieste da ACVTool.
Hello, I am a Macbook pro owner with an Apple Silicon processor. I have tried to test ARES with various apks using Android Studio and an emulator with Android 9 API 28, but the tool fails to create files with Coverage information as the folder is empty. When running the tool, I get the following error:
Broadcasting: Intent { act=intent.END_COVERAGE flg=0x400000 pkg=com.shazam.android } Broadcast completed: result=0 adb: error: failed to access 'path/to/ARES/rl_interaction/coverage/shazam-13-27-0-230420/SAC/0/18.ec': No such file or directory
The command I use to launch the tool is as follows:python3 parallel_exec.py --instr_jacoco --list_devices "emulator-5554" --appium_ports "4270" --android_ports "5554" --path "apps" --timer 60 --internet --emu headless --platform_version 9.0 --iterations 1 --algo SAC --timesteps 1000 --trials_per_app 1 --save_policy
I would appreciate it if you could help me.
Thank you vary much.