-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Bem Vindos ao Projeto de Extensão Implementação de Praticas DevOps: uma jornada com o Projeto Fênix!
A aplicação escolhida para ser objeto deste estudo é uma ferramenta em PHP de controle de atrasos e liberações antecipadas de estudantes, em desenvolvimento como trabalho de conclusão de curso do ensino médio integrado em informática do IFPR Pinhais, pelos alunos Lucas Garzuze Cordeiro, Pietro F. A. Sotile e Victor Marcharete, no ano de 2024.
Este estudo demonstra como automatizar o pipeline de CI/CD utilizando o Azure DevOps, integrando testes automatizados de interface com o objetivo de garantir a qualidade da aplicação web desenvolvida em PHP. O repositório do código esta no GitHub SEPAIS: ferramenta de comunicação escolar abrangente.
Link de vídeos com funcionalidades do SEPAIS: https://drive.google.com/drive/folders/1pZipr55sAaw8MP0AVl1L6Y1mdCBWfYNQ
Áreas ou disciplinas envolvidas:
- Gestão de TI: Gerenciamento dos recursos e processos de TI para garantir a entrega eficiente do projeto.
- Testes de Software: Implementação de testes automatizados de interface para verificar a usabilidade e funcionalidade da aplicação.
- Infraestrutura e Automação (DevOps): Implementação do pipeline CI/CD no Azure DevOps e configuração de ambientes de deploy automatizados.
- Segurança da Informação (DevSecOps): Garantir a segurança do ciclo de vida do desenvolvimento.
- Governança de TI: Alinhamento do projeto com as boas práticas de governança e conformidade.
Fases do Projeto:
-
Planejamento:(Todos)
- Estudar as funcionalidades da aplicação, como: registro e monitoramento de atrasos e liberações antecipadas dos estudantes; interface de visualização de relatórios; acesso restrito por perfis de usuários (admin, responsáveis, alunos).
- Definir as ferramentas e frameworks de testes de interface a serem utilizados.
-
Desenvolvimento da aplicação PHP: (Aline/Lucas)
- Adicionar testes unitários e de integração para garantir que os módulos do sistema estejam funcionando corretamente.
- Garantir a integração contínua (CI) para executar testes de unidade automaticamente.
-
Automatização de Testes de Interface: (Pablo)
- Utilizar a ferramenta Selenium para criar testes automatizados de interface (UI).
- Definir cenários de teste para verificar o funcionamento correto da interface (ex: login, registro de atrasos, visualização de relatórios, etc.).
- Integrar os testes automatizados no pipeline CI/CD do Azure DevOps.
- Configurar pipelines para que os testes de interface sejam executados automaticamente após cada build ou integração de código no repositório GitHub.
- Criar testes funcionais e de usabilidade que simulam interações dos usuários, como a navegação pelos menus e o preenchimento de formulários.
-
Configuração do Pipeline CI/CD no Azure DevOps: (Duda/Luis)
- Configurar pipelines para execução de builds automáticos da aplicação PHP.
- Executar testes de unidade e integração a cada commit no GitHub.
- Configurar o Azure DevOps para executar testes automatizados de interface.
- Automatizar o deploy da aplicação PHP em ambientes de desenvolvimento, teste e produção.
-
Segurança e DevSecOps: (Kaique/Marcelo)
- Implementar varreduras automáticas de segurança no código e nas dependências da aplicação (ex: SonarQube).
- Analisar vulnerabilidades em bibliotecas e componentes usados pela aplicação.
-
Monitoramento e Logs: (Kaique/Marcelo)
- Monitorar o funcionamento da aplicação com o Azure Monitor e gerar relatórios de desempenho.
- Implementar logs centralizados para rastreamento de falhas e auditoria de segurança.
-
Governança e Gestão de Projetos: (Kaique/Marcelo)
- Gerenciar o projeto usando Kanban no Azure DevOps para organizar tarefas, sprints e releases.
- Garantir conformidade com padrões de segurança e governança, como proteção de dados (GDPR ou LGPD, se aplicável)
-
Documentação e Treinamento:(Todos)
- Documentar os cenários de testes automatizados de interface e os resultados gerados nos pipelines.
- Oferecer treinamentos para a equipe de desenvolvimento e stakeholders sobre a automação de testes de interface e o uso do pipeline CI/CD.
Tecnologias e Ferramentas Utilizadas:
- Azure DevOps: Para gerenciamento do projeto, CI/CD e execução dos testes automatizados.
- GitHub: Como repositório do código-fonte.
- PHP: Desenvolvimento da aplicação web e testes unitários.
- Selenium: Ferramenta para testes automatizados de interface.
- Docker (opcional): Para padronizar o ambiente de execução da aplicação e facilitar o deploy.
- SonarQube: Para análise de qualidade e segurança do código.
- Azure App Service: Hospedagem da aplicação PHP no Azure.
Produtos Finais:
- Pipeline CI/CD no Azure DevOps, incluindo execução automatizada de testes unitários, de integração e de interface.
- Relatórios de teste detalhados no Azure DevOps.
- Sistema monitorado e com logs centralizados para auditoria e análise de desempenho.
Critérios de Avaliação:
- Cobertura de testes automatizados (unitários, de integração e de interface).
- Performance e usabilidade da interface, garantindo que o sistema seja intuitivo para os usuários.
- Conformidade com padrões de segurança e práticas de DevSecOps.
- Eficiência do pipeline CI/CD com testes automatizados executados sem falhas.
A incorporação de testes automatizados de interface não apenas garante a qualidade da experiência do usuário, mas também traz mais robustez ao processo de entrega contínua, reduzindo o risco de problemas visuais e de usabilidade na aplicação final.