Titulo Estágio
Quality Assurance Automation
Áreas de especialidade
Engenharia de Software
Local do Estágio
STRA, S.A., IPN, Coimbra
Enquadramento
De que forma conseguimos garantir a qualidade do software produzido de forma sistemática econsistente? Quais os mecanismos disponíveis para automatizar esse processo e assim agilizar o desenvolvimento de software?
Este estágio integra-se na iniciativa que a Stratio tem para a expansão de mecanismos de integração contínua e automação de testes de software, com tarefas que vão desde a melhoria de condições para
a execução de testes automáticos, passando pela implementação ou configuração de frameworks de auxílio aos testes e terminando com a programação de testes de integração e/ou sistema.
Os processos de garantia de qualidade (QA) desenvolvidos na Stratio têm sobretudo um cariz preventivo e de optimização do processo de desenvolvimento. Assim, focam-se sobretudo em prover a equipa de desenvolvimento das ferramentas necessárias para evitar a introdução de erros em primeiro lugar. O trabalho de um elemento em QA foca-se, portanto, em análise estática do código desenvolvido, automação de processos (usando o Jenkins), provisionamento dinâmico de ambientes de teste (usando Docker e Kubernetes), automação de testes e monitorização dos serviços, tanto em ambientes de teste como ambientes produtivos.
Objetivo
O presente projeto/estágio pretende atingir os seguintes objetivos genéricos:
• Levantamento do estado da arte em integração contínua e automação de testes
• Participação na aplicação de integração contínua na Stratio
• Participação na criação de uma framework de testes automáticos
• Implementação de baterias de testes automáticos
Com este fim, é expectável que o aluno desenvolva conhecimentos nas àreas de:
• Processos de garantia de qualidade em desenvolvimento de Software e Firmware.
• Automação de processos usando Jenkins, Groovy, Python, Bash e Powershell.
• Provisionamento dinâmico e gestão de configuração de ambientes de teste para sistemas distribuídos usando Docker, Kubernetes e Ansible.
• Especificação e automação de planos de testes de integração, sistema, performance, carga e Interfaces Web, sobre os sistemas distribuídos e IoT desenvolvidos na Stratio.
• Monitorização e diagnóstico de ambientes de teste, bem como identificação e reporte de defeitos às equipas de desenvolvimento e produto.
Plano de Trabalhos - Semestre 1
Fase 0 – Welcome & Setup
Descrição: Recepção, adaptação ao ambiente da empresa e configuração do ambiente de desenvolvimento.
Resultados: Aprendizagem sobre a empresa, nomeadamente processos, produto, modelo de negócio e equipa, bem como configuração do ambiente e ferramentas de trabalho.
Resultado: Integração na Stratio, e em particular na equipa de Software, e configuração das principais ferramentas de trabalho.
Calendarização: Semana 1
Fase 1 – State of the Art
Descrição: Levantamento do estado da arte nas àreas de integração contínua, análise estática de código, processos de QA em equipas Agile e especificação e automação de planos de testes, focando
tanto em tecnologias e metodologias estabelecidas na indústria como em outras emergentes.
Resultados: Conhecimento sobre o papel de um QA na indústria, incluindo os processos e artefactos que deve manter e as ferramentas ao seu dispor para realizar as suas funções com sucesso.
Calendarização: Semana 1 a Semana 4
Fase 2 – Build Automation
Descrição: Expansão da automatização de processos de construção de software, tirando partido de tecnologias como o Jenkins, linguagens interpretadas, Docker e Kubernetes, de forma a garantir a
execução consistente desses processos em ambientes heterogéneos e de forma escalável.
Resultados: Standardização e redução de divida técnica no ecossistema para automatização de processos de construção de software.
Calendarização: Semana 5 a Semana 8
Fase 3 – System Tests Framework
Descrição: Expansão da framework de provisionamento dinâmico de ambientes de teste com fim à agilização da criação e destruição de ambientes de software temporários, destinados tanto à execução de testes automáticos com à execução de validações adicionais por parte das equipas de desenvolvimento e de produto.
Resultados: Suporte à integração de todos os serviços necessários em deployments da plataforma desenvolvida pela Stratio na System Tests Framework. Desbloqueando a automação e execução de testes de sistema, performance, carga e estabilidade.
Calendarização: Semana 9 a 20
Plano de Trabalhos - Semestre 2
Fase 4 – Automated Tests
Descrição: Especificação e automação de planos de testes a diferentes níveis (integração, sistema, UI, performance), utilizando a System Tests Framework para orquestrar e integrar os sistemas sob teste.
Resultados: Reportagem automática de regressões no Software desenvolvido a nível protocolar, de interface e performance.
Calendarização: Semana 21 a 38
Fase 5 – Final Report
Descrição: Encorajando a redação do relatório de estágio ao longo da duração do estágio, reservamse as duas últimas semanas para a elaboração do relatório final de estágio.
Resultados: Relatório final de estágio completo e revisto.
Calendarização: Semana 39 a 40
Condições
Bolsa de Subsidio de Alimentação
Posto de trabalho para uso profissional
Orientador
José Pedro Santos Manso Côrte-Real
hr@stratioautomotive.com 📩