Propostas Atribuidas

DEI - FCTUC
Gerado a 2024-05-19 00:28:40 (Europe/Lisbon).
Voltar

Titulo Estágio

Distributed System Tests Framework

Áreas de especialidade

Engenharia de Software

Engenharia de Software

Local do Estágio

Coimbra OU Lisboa OU Porto

Enquadramento

About Feedzai:

Feedzai is a company that makes bleeding-edge machine learning software.
The world’s mightiest payment networks, banks and retailers use us to prevent fraud when
customers shop in store, online or via mobile devices. Backed by years of hardcore work and
funding from amazing investors (Oak HC/FT, Sapphire Ventures, Data Collective) we’re at the
inflection point of growth.

Context:

A Feedzai é uma empresa especializada no uso de técnicas avançadas de machine learning e big data para
detecção e prevenção de fraude em comércio electrónico. Tendo sido fundada em 2009 como um spin-off
da Universidade de Coimbra, conta hoje com mais de 120 colaboradores e clientes nos Estados Unidos,
Europa, África e Ásia. Diariamente a Feedzai processa transações no valor de 2 mil milhões de euros nos
vários clientes que usam a sua plataforma.

A plataforma da Feedzai é um sistema distribuido que envolve vários componentes de suporte como
Zookeeper, RabbitMQ, Cassandra, Spark, Hadoop/YARN assim como os próprios componentes
desenvolvidos internamente que também são distribuidos.

Um dos principais desafios do processo de desenvolvimento e qualidade em plataformas distribuídas é o
suporte para desenvolvimento de testes de forma ágil e rápida que consigam garantir representatividade
destes ambientes complexos e suportar não só testes funcionais da plataforma assim como testes não
funcionais (i.e. tolerância a falhas e performance).

A Feedzai desenvolveu um protótipo de uma framework de testes de sistema que usa Docker e integra a
capacidade de escrever um teste de sistema da mesma forma que um teste unitário é escrito (usando Junit)
de forma simples e eficaz por qualquer engenheiro que está a desenvolver.

Objetivo

Objectivos Globais:

O principal objectivo deste estágio é abstrair o protótipo da framework de testes numa ferramenta open source que seja usada para desenvolver testes de sistema para aplicações distribuidas tirando partido da familia de tecnologias Docker (https://www.docker.com/) de forma escalável num cluster de integração contínua.

A ferramenta deverá ser modularizada de forma a que não só seja possível usar os produtos da Feedzai, mas qualquer componente de software implementando o módulo especifico para esse componente.

A ferramenta deverá garantir várias funcionalidades nomeadamente:

 Workflow de setup, configuração e fim do ambiente de testes
 Isolamento de casos de teste
 Recolha de resultados e evidências de problemas (i.e. monitorização e logging)
 Integração com plataformas de integração contínua (i.e. Jenkins)
 Paralelização de testes em cluster (e.g. tirando partido de ferramentas como Kubernetes ou Docker Swarm)

Com uma ferramenta que forneça este tipo de funcionalidades, a Feedzai pode crescer as suas equipas de desenvolvimento mantendo o seu processo de qualidade exigente e ao mesmo tempo ágil escalando a execução de testes horizontalmente.

Uma parte integrante do estágio será desenvolver também os módulos específicos para componentes proprietários da Feedzai (não open-source) e a integração da ferramenta no processo de integração
contínua da Feedzai.

Em termos tecnológicos, a ferramenta deve ser implementada em Java. Serão valorizados conhecimentos de Docker, Maven, Junit.

Plano de Trabalhos - Semestre 1

Durante este semestre existem dois objectivos principais:

• Integrar o estagiário no funcionamento da actual framework de testes de sistema.
• Identificação de requisitos e definição de arquitectura da ferramenta.
• Prototipagem da API da ferramenta.

Abordagem:

Desenvolvimento de testes de sistema para ferramentas distribuídas é um tópico avançado na área de qualidade de software. Para garantir o sucesso do projecto é importante garantir que o estagiário percebe
o tipo de testes e problemas inerentes a estruturas distribuidas. Para isto será pedido ao estagiário que analise o código fonte da ferramenta actual assim como planos de teste e sua implementação relacionadas com o produto core da Feedzai, por outro lado será necessário adquirir competências na área de Docker
para garantir que a arquitectura desenhada tire partido das capacidades desta ferramenta.

Será adoptada uma abordagem iterativa de desenvolvimento, baseada em Scrum, em que em cada ciclo de desenvolvimento (duas a três semanas) serão definidas experiências ou funcionalidades a implementar,
assim como procedimentos de avaliação. Existirão reuniões semanais de acompanhamento do trabalho.

Atividades a desenvolver durante o semestre:

• Integração na empresa e familiarização com o produto Pulse.
• Familiarização e estudo detalhado do ecossistema de ferramentas Docker.
• Estudo detalhado do módulo system-tests-framework e do seu funcionamento.
• Identificação dos principais problemas da ferramenta actual e definição de requisitos para a
nova ferramenta.
• Definição de arquitectura da nova ferramenta.
• Prototipagem da API de utilização e extensão da ferramenta.
• Escrita do relatório intermédio de estágio.

Plano de Trabalhos - Semestre 2

Durante este semestre o objectivo principal é:

• Implementar a ferramenta e integra-la com o processo de integração contínua da Feedzai

Abordagem:

Será adoptada uma abordagem iterativa de desenvolvimento, baseada em Scrum, em que em cada ciclo de desenvolvimento (duas a três semanas) serão definidas experiências ou funcionalidades a implementar, assim como procedimentos de avaliação. Existirão reuniões semanais de acompanhamento do trabalho.

Atividades a desenvolver durante o semestre:

• Implementação da ferramenta core de testes de sistema
• Implementação de módulos especificos dos componentes proprietários da Feedzai
• Avaliação e optimização de performance da ferramente nos ambientes da Feedzai
• Escrita do relatório de estágio

Condições

PC
Bolsa de Estágio
Horário Flexivel
Possibilidade de realização do estágio em Coimbra, Porto ou Lisboa

Orientador

Ricardo Lopes
ricardo.lopes@feedzai.com 📩