
Implementation of required tests in RCSS2D based on Continuous integration
Presenter : Mojtaba Moazen
Supervisor : Dr.Saeed Seddighian Kashi



Agenda

- What is 2d Soccer Simulation?
- why do we tests need?
- what are the implemented tests for this project?
- What is DevOps?
- Automated Tests in RCSS2D
- Pipeline Implementation
- Monitoring
- Compare Tools
- Tools and FrameWorks


- What is 2d Soccer Simulation?
- why do we tests need?
- what are the implemented tests for this project?
Agent Feature
multi-agent decisioning: different neck Angles, different positionings,...
Main parts of 2d base :
1- Server
2- Agent
3- Library and Dependencies
should be developed by developers


Library and dependency
Agent

Team 1


Agent
Team 2
Library and dependency
why do we need tests?
different idea have different results
what are the implemented tests for this project?
System Test :
1- AutoTest
2- Formation Test
Unit Test
1- Golie Test
2- Block test
What is AutoTest ?
a simple auto test toolkit for RoboCup 2D Soccer Simulation League ( based on WrightEagle autoTest code ).


JSON Format
TXT Format
What is Formation Test ?
Test your team against different teams with different Formations!
1-Generate different formations

2-Test your team against different teams with different formations



Manual ?
Automated?

DevOps ?
DevOps is a set of practices that combines software development and IT operations.
a software developer, a programmer, or more recently a coder, is a person who creates computer software and implements idea!


Test team , a team that test the implemented idea of programmer team !
DevOps contain two parts : 1- Continuous integration 2-Continuous Delivery
DevOps contain two main parts : 1- Continuous integration 2-Continuous Delivery

Continuous integration in RCSS2D
Commit your code
build code
run unit tests
run system tests
release results
Auto test
formation test
block test
goalie test




Gitlab registry




Configure pipeline with Gitlab CI/CD


Auto test
formation test

Configuring Gitlab Runner
Gitlab Runner Type :
1- Gitlab shared Runner
2- Gitlab Specific Runner

also, there are the different executors in Gitlab Specific Runner?

The Custom executor allows us to specify our own execution environments


Library and dependency
Agent

Team 1
RCSS2D Server
Run build in docker container

What is Docker ?
Docker is a set of the platform as service products that use OS-level virtualization to deliver software in packages called containers.


write once, run everywhere
Configuring Pipeline
Gitlab CI/CD service uses the YAML format for configuring pipelines.

1- build Stage
2- Run Tests!

3 - save results as artifacts


Now we have an automated pipeline for two related 2d base tests
automation without monitoring
every 2d soccer simulation team needs automated tests
manual monitoring will waste time and causes bad decisioning
Monitoring
Detecting defects/bugs before delivery guarantees the quality of the software. This makes tests prominent.
This project is made of 2 test types. formation tests and auto test tools
By visualizing the procedure of coding, this tool will make the team's progress quicker

Compare Tools
technologies







Main page
Login page

Repository selection


All tested Commit
Results


Test information
Win Rate and ExpectedWinrate

Offensive and defensive charts based on job id

defensive charts
Offensive charts


References :
1- https://docs.gitlab.com
2-Continuous Delivery & DevOps : https://www.coursera.org/learn/uva-darden-continous-delivery-devops/home/welcome
final thesis
By mojtabam722
final thesis
- 26