-
Notifications
You must be signed in to change notification settings - Fork 0
11 ‐ Testes de Integração
Este documento estabelece os padrões e diretrizes para o processo de testes no projeto Tupan, abrangendo testes unitários e de integração.
- Documentação detalhada dos requisitos.
- Critérios de aceitação bem definidos.
- Cenários de teste bem definidos.
- Ferramentas e ambientes de teste configurados adequadamente.
A criação dos testes de integração é responsabilidade dos testadores, profissionais especializados em desenvolver e validar cenários de testes forem definidos.
Os cenários de testes devem ser criados logo após a definição dos critérios de aceitação das User Story's.
As ferramentas de teste utilizadas para o frontend e backend são respectivamente:
- Jest
- Pytest
O ambiente de teste é configurado com um banco de dados preparado especificamente para ser populado com os dados necessários durante a execução dos testes, garantindo um cenário adequado para validação das funcionalidades.
Os testes de integração devem ser elaborados na branch develop
assim que os critérios de aceitação das User Story's e os cenários de testes forem definidos.
Os testes de integração devem popular o banco de dados com dados específicos para cada cenário, sendo responsabilidade do script de teste criar esses dados. Para garantir um ambiente limpo entre os testes, existe uma fixture configurada para excluir os dados do banco ao final de cada execução, permitindo que o próximo teste insira as informações necessárias de forma isolada e controlada.
Os testes de integração serão realizados por meio de um pipeline com acionamento manual, que deverá ser executado pelos testadores. Esses testes devem ser executados exclusivamente na branch develop
.
Caso os testes passem sem nenhum erro o testador deve acionar o checkbox de que passou nos testes de integração que estará no card da tarefa.
Quando uma falha for detectada:
- Logs detalhados serão gerados para apoiar a análise do problema.
- Os testadores serão responsáveis por analisar as falhas identificadas nos testes de integração e notificar os responsáveis, seja do frontend ou do backend, conforme a origem do problema.
- A correção das falhas identificadas nos testes ficará a cargo do indivíduo que foi notificado pelo testador sobre a falha.
As falhas identificadas devem ser registradas como issues no GitHub, permitindo seu rastreamento e priorização.
-
Detalhes da Issue:
- Critérios de aceitação associados à tarefa em que o teste apresentou falha.
- Logs de execução do teste, fornecendo informações para facilitar a análise e resolução.
Após as correções, os testes devem ser reexecutados para verificar se o problema foi solucionado e garantir que nenhuma nova falha foi introduzida. Somente após essa validação a issue poderá ser marcada como resolvida.
- Pytest: Framework para criação e execução dos testes.
Os testes de integração serão armazenados dentro de ./src/tupan/tests/integration
.
/src
/tupan
/usuarios
__init__.py
admin.py
views.py
urls.py
serializers.py
/tests
test_views.py
test_urls.py
/usuarios
test_views.py
/tests
/integration
conftest.py
pytest.ini
test_examplo.py
- Jest: Framework para criação e execução dos testes.
Os testes serão organizados em uma pasta dedicada dentro de src
, com subpastas para escopos específicos e uma pasta ìntegration
contendo os testes de integração.
/src
/app
/components
/alertas
confirmacao.tsx
/estacao
estacao.tsx
/hooks
/tests
/estacao
adicionarEstacao.test.ts
/integration
integrationEstacoes.test.ts
Nota: Testes fora das subpastas abrangem múltiplos escopos.
A execução da pipeline dos testes de integração deve ser realizada manualmente através do GitHub.
name: Django Integration Tests
on:
workflow_dispatch:
jobs:
build:
runs-on: ubuntu-latest
strategy:
max-parallel: 4
matrix:
python-version: [3.12]
steps:
- uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v3
with:
python-version: ${{ matrix.python-version }}
- name: Install Dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements-dev.txt
- name: Start PostgreSQL service
run: |
docker run --name postgres-db -d \
-e POSTGRES_USER=${{ secrets.DB_USERNAME }} \
-e POSTGRES_PASSWORD=${{ secrets.DB_PASSWORD }} \
-e POSTGRES_DB=${{ secrets.DB_NAME }} \
-p 5432:5432 postgres:13
# Wait until PostgreSQL is ready
until docker exec postgres-db pg_isready -U ${{ secrets.DB_USERNAME }}; do
echo "Waiting for PostgreSQL to be ready...";
sleep 5;
done
- name: Create .env file
run: |
echo "SECRET_KEY=${{ secrets.SECRET_KEY }}" >> .env
echo "DB_USER=${{ secrets.DB_USERNAME }}" >> .env
echo "DB_PASSWORD=${{ secrets.DB_PASSWORD }}" >> .env
echo "DB_NAME=${{ secrets.DB_NAME }}" >> .env
echo "DB_HOST=localhost" >> .env
echo "DB_PORT=5432" >> .env
- name: Apply Django Migrations
run: |
python src/tupan/manage.py makemigrations
python src/tupan/manage.py migrate
- name: Run Integration Tests
run: |
cd src/tupan/tests/integration && pytest
- name: Stop PostgreSQL container
run: |
docker stop postgres-db
docker rm postgres-db
Criar a tela de exibição dos dashboards com as informações das estações.
Não exibir dashboards que não apresentem informações
Se um dashboard não possui nenhum valor a exibir o mesmo deve ser ocultado da página
Dados das estações metereológicas.
- Os dashboards devem apresentar informações de fácil leitura;
- Legendas/títulos explicativos de cada dashboard exibido;
- Passou nos testes unitários
- Passou nos testes de integração
Não há material de apoio.
Desenvolvido pela equipe: SyntaxSquad, composta por alunos do 4º semestre, do tecnólogo em Desenvolvimento de Software Multiplataforma, na FATEC Profº Jessen Vidal - São José dos Campos, SP, 2024