The year 2022 marked the fifth consecutive participation of the Additional Testsuite research project in the Google Summer of Code. This year the team comprised of Panagiotis Soritopoulos (Ph.D. Candidate in the Department of Informatics and Telecommunications) and Stefanos Vlachos (graduate student of the Department of Informatics and Telecommunications).
EAT is a testsuite to develop tests against infinite number of JBoss servers. It’s an innovative tool because it’s creating the test once and testing with any version of the tested software.The idea behind the project, the AT (Additional Testsuite) structure, covers a wide variety of new features that could be added to it. One of them, is the addition of a CI (Continuous Integration) tool to perform some automated testing operations. EAT is available for a number of server configurations and a CI pipeline can be built using the maven tool.
- Writing the tests once and testing against infinite number of Application Servers.
- Having all the tests at one place.
- Comparison of the servers based on the testsuite.
- Guarding against regression.
- Faster convergence among the servers.
- Comparison of the servers based on tests of the past and the present.
- Addition of tests with possible future features that are not at the moment available.
- It makes possible to push a testcase of a fix regarding a specific component of the server, without the component version to have been updated at the server pom.
This year, our team’s goals were:
- to extend the functionality of the Additional Testsuite implementation to provide support for testing the latest version of JBoss Community Server to be released
- to dynamically create/build multi-version Android projects which would be checked on the device, and
- to create of a multi-version Android application where proposals and Additional Testsuite-related function/program descriptions would be displayed.
The implementation of the project lasted from June 2022 to November 2022 (Large Size Project) and the timeline was envisaged as follows:
During the 1st phase of GSoC 2022 a snapshot was added to the EAT project for testing the latest version of JBoss Community Server.
In more detail, the 27.0.0.Final version of the Wildfly server was added to EAT (COMMIT 1, COMMIT 2).
During the 2nd phase of this project, new multi-version Android projects were added to EAT. In EAT there is already a basic android multi-version example. This was extended with other open source android projects, demonstrating how EAT can be used to support multi-version real life android projects.
The open source projects that were selected and finally integrated into EAT can be found in https://github.com/topics/android-project and are the following:
- BloodBank (GITHUB REPO, PULL REQUEST)
- Elegant_Calculator (GITHUB REPO, PULL REQUEST)
- My_Companion (GITHUB REPO, PULL REQUEST 1, PULL REQUEST 2)
- TruthDare (GITHUB REPO, PULL REQUEST 1, PULL REQUEST 2)
- ThemeSample (GITHUB REPO, PULL REQUEST 1, PULL REQUEST 2)
- voxRec (GITHUB REPO, PULL REQUEST 1, PULL REQUEST 2)
- ImageBox (GITHUB REPO, PULL REQUEST)
- MyCamera (GITHUB REPO, PULL REQUEST)
- JKSLinks (GITHUB REPO, PULL REQUEST 1)
As it was mentioned earlier, one of the scopes of our team’s participation in the Google Summer of Code 2022 was to highlight the ability of EAT to support multi-version real life Android projects. The EAT project supports versioning using the @EAT annotation. When using this annotation, there is the possibility, along with the path to the server, to add the lower and upper bound of the supported versions of the servers the test case should be tested with. This feature of EAT could be exploited so that different versions of Android apps would be built based on various Android versions dynamically.
In this context, for each Android project integrated into EAT, an alternative version of it was created, modifying one or more of its files. Using the @EAT annotation on the modified files, EAT was able to build different versions of each Android app, based on the Android version of the system.
During the 3rd and final stage of our team’s participation in the GSoC 2022 an Android application, named EAT-PROPOSALS, was developed and finally integrated (PULL REQUEST) into the EAT project.
The idea behind the EAT-PROPOSALS app was to develop an application that would enable users to Upload, View and Download proposals and Additional Testsuite related function/program descriptions.
In more detail, the EAT-PROPOSALS app meets the following requirements:
- A user should be able to create a new account filling and submitting a Create an account form
After a user submits a Create an account form, a verification email should be sent to the user so that the given email addres sis verified
- A user that has successfully created an account should be able to # the app filling and submitting a Login form
- Signed In users should be able to upload a selected file or folder form the internal storage of the mobile device
- The platform should allow users to upload only certain types of files, that are defined in the database of the app
- When a file/folder is uploaded, it should be placed in approval state and it should not be visible on the app until the administrator of the app approves it
- Every user, Signed In or not Signed In, should be able to view a selected file among a list of uploaded and approved files/folders
- Every user, Signed In or not Signed In, should be able to download a selected file/folder
EAT-PROPOSALS is an Android application developed on the IntelliJ IDE using the Java programming language. It was compiled using the Android SDK 32.0.0 and requires an Android version ≥ 7.0 and an Android SDK ≥ 30.
Firebase, which is an app development platform that provides numerous services and extensions for building and growing applications including Android apps, forms the backbone of the application and enables:
- the authentication of registered users
- the storage of uploaded files/folders
Mailgun, which is an E-mail delivery service, and the Retrofit library were utilized so that the administrator of the app gets notified via E-mail for new uploads on EAT-PROPOSALS.
EAT-PROPOSALS has been set up so that it is eventually published on Google Play Store.