Implementation of required tests in RCSS2D based on Continuous integration

Presenter : Mojtaba Moazen

 

Supervisor : Dr.Saeed Seddighian Kashi

 

 

Agenda

  1. What is 2d Soccer Simulation?
  2. why do we tests need? 
  3. what are the implemented tests for this project?

 

  1. What is DevOps? 
  2. Automated Tests in RCSS2D 
  3. Pipeline Implementation
  1. Monitoring 
  2. Compare Tools 
  3. Tools and FrameWorks
  1. What is 2d Soccer Simulation?
  2. why do we tests need? 
  3. 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