TAE-2.1.2 (K2) Explicar como a automação de teste é aproveitada em diferentes ambientes.
Diferentes tipos de testes automatizados podem ser executados em diferentes ambientes.
Esses ambientes podem diferir entre projetos e metodologias, e a maioria dos projetos tem um ou mais ambientes a serem utilizados para testes.
Do ponto de vista técnico, esses ambientes podem ser criados a partir de contêineres, virtualização de software ou usando outras abordagens.
Um conjunto de possíveis ambientes a serem considerados inclui:
Ambiente de desenvolvimento local
- Criação Inicial do Software: É nesse ambiente que se escreve o código e é construído os componentes básicos do software.
- Testes Automatizados Iniciais: São utilizados para verificar se os componentes funcionam como esperado, desde o início do processo de desenvolvimento.
- Diferentes tipos de testes podem ser realizados:
- Testes de Componentes: Verificam o funcionamento individual de cada parte do código.
- Testes de GUI: Avaliam a interface gráfica do usuário (GUI) e garantem que ela seja fácil de usar e funciona corretamente.
- Testes de API: Testam as interfaces de programação de aplicativos (APIs) que permitem que diferentes partes do software se comuniquem entre si.
- Testes de Caixa-Branca: O ambiente de desenvolvimento local, juntamente com um ambiente de desenvolvimento integrado (IDE), facilita a realização de testes de caixa-branca.
Vantagens: Detecção Precoce de Problemas e Feedback Rápido.
Ambiente de geração de build
O ambiente de geração de build é imperativo em um ecossistema DevOps. Tem o objetivo de gerar a build, ou versão executável do software, e realizar testes para garantir sua funcionalidade. Este ambiente pode ser:
- Local: No ambiente de desenvolvimento do próprio desenvolvedor;
- Agente de CI/CD: Um servidor dedicado à integração e entrega contínua.
A grande vantagem do ambiente de geração de build é permitir a execução de testes de baixo nível, como testes de componentes e testes de integração de componentes, além da análise estática de código, sem a necessidade de implantar o software em outros ambientes.
Ambiente de integração
É o estágio após a realização de testes de baixo nível e análise estática no ambiente de geração de build. Permite testar o SUT completamente integrado a outros sistemas.
Características Principais:
- Versão Candidata do SUT: O ambiente de integração utiliza uma versão do SUT que é candidata a ser lançada, estando totalmente integrada aos sistemas com os quais irá interagir.
- Testes Automatizados: A execução de testes no ambiente de integração é totalmente automatizada, abrangendo testes de interface do usuário (UI) e testes de API.
- Teste Caixa-Preta: O foco é no teste caixa-preta, o que significa que os testes são realizados sem conhecimento da estrutura interna do SUT. Os tipos de teste realizados neste ambiente incluem testes de integração do sistema e testes de aceite.
- Monitoramento: O ambiente de integração é o primeiro estágio onde o monitoramento é fundamental, permitindo a observação do comportamento do SUT em segundo plano e facilitando a investigação de falhas.
Ambiente de pré-produção
Simula o ambiente de produção o mais fielmente possível, permitindo a avaliação completa do sistema antes de seu lançamento.
Principais características:
- Foco em testes não funcionais: Esse ambiente é principalmente utilizado para avaliar características de qualidade não funcionais, como performance, escalabilidade e segurança.
- Semelhança com a produção: A importância do ambiente de pré-produção reside na sua capacidade de espelhar o ambiente de produção, garantindo que os testes realizados sejam representativos do comportamento real do sistema.
- Testes de aceite do usuário: Stakeholders de negócio podem realizar testes de aceite do usuário (UAT) neste ambiente para validar se o produto final atende às suas necessidades e expectativas.
- Reutilização de testes automatizados: O conjunto de testes automatizados existentes pode ser executado no ambiente de pré-produção para garantir a qualidade do sistema em um ambiente próximo ao real.
- Monitoramento Contínuo: O ambiente de pré-produção é monitorado continuamente para detectar problemas de performance e outros comportamentos inesperados do sistema.
Ambiente de produção/operacional
É o ambiente final onde o sistema é executado em tempo real, com usuários reais interagindo com ele. A avaliação das características de qualidade, tanto funcionais quanto não funcionais, é fundamental para garantir o sucesso do software.
Práticas Recomendadas para Testes em Produção:
- Lançamento Canário: Uma nova versão do sistema é lançada para um pequeno grupo de usuários antes de ser disponibilizada para todos. Isso permite a detecção de problemas e a coleta de feedback em um ambiente controlado, antes de impactar um grande número de usuários.
- Implantação Azul/Verde: Duas versões do sistema são mantidas em paralelo, uma versão “azul” (a versão atual em produção) e uma versão “verde” (a nova versão). O tráfego de usuários é gradualmente direcionado para a versão “verde”, permitindo uma transição suave e a possibilidade de reversão rápida para a versão “azul” em caso de problemas.
- Testes A/B: Diferentes versões de um recurso ou funcionalidade são apresentadas simultaneamente a grupos de usuários distintos, permitindo a comparação de seu desempenho e a escolha da melhor opção com base em dados reais.
