Ambientes de Teste


Neste tópico será abordado o ambiente de teste.



Ambiente de teste é toda a infra-estrutura onde o teste será executado, compreendendo configurações de hardware, software, ferramentas de automação, equipe envolvida, aspectos organizacionais, suprimentos, rede e documentação. Sua finalidade é propiciar a realização de testes em condições conhecidas e controladas.


O ambiente de teste deve ser tratado na estratégia de teste e planejamento dos mesmos. O mesmo deve ser similar possível ao ambiente de teste que o usuário utilizará para o software em questão, sendo considerado assim como uma das fases mais difíceis, tendo como responsável o arquiteto de teste. Elementos como: massa de testes, modelos de dados, configuração dos softwares usados, tipo de teste, técnica de teste, também deverão ser considerados para a criação do ambiente de teste.



Veja a seguir os elementos do ambiente de testes que devem ser levados em consideração para o planejamento do ambiente de testes.
Preparação do ambiente de teste





Alguns atributos do ambiente de testes precisam ser analisados e planejados para a realização dos testes. Veja na tabela abaixo a organização destes atributos de acordo com os tipos de teste:


* É a quantidade de dados utilizados durante o teste. Deve ser planejado a cada nível de teste.
- Testes de funcionalidade ou regressão - volume pequeno
- Testes de performance e carga - volume grande

** Depende diretamente do volume de dados.

Volume pequeno – criação manual, aqui importa a qualidade.
Volume grande – uso de ferramentas, aqui não importa a qualidade.
-Testes funcionais -utilizar dados reais
-Testes de performance e estresse - não são necessários dados reais e sim o volume de dados.

*** Se refere se o software possui integração com outro software.
Os testes devem ser feitos dos dois lados, no software que sofreu a modificação e o que não sofreu modificação.

É importante trabalhar em ambientes de teste isolados para que não haja influências externa durante os testes de sistema e aceitação.

Determinar os testes relacionados ao ambiente de produção vai depender de vários fatores: tamanho do projeto, orçamento disponível e cronograma.

No processo de teste de software definimos três tipos de ambiente de teste:

Ambiente de Desenvolvimento compreende aos testes unitários e de integração.
Ambiente de Testes é composto pelo Teste de Integração, Sistema, Regressão, Aceitação e Funcionais.
Ambiente de Produção é composto pelo Teste de Estresse, Performance e de Aceitação.

Uso de ambientes virtuais


Na realidade atual, a maioria das empresas não prevê orçamento para preparação dos ambientes de testes na contratação de novos projetos de software.

Uma solução que vem ganhando espaço, por ser mais econômica, é a criação de ambientes virtuais (‘máquinas virtuais’).


Máquina virtual é um software que permite ao arquiteto de testes criar vários ambientes de testes, com diferentes configurações de software, hardware, sistemas operacionais, etc, utilizando na realidade a mesma máquina física.

Automação de Testes
A principio será abordado dois conceitos importantes na automação de testes:
Técnica – procedimento ou conjunto de procedimentos que tem como objetivo obter um determinado resultado.

Ferramenta – instrumento utilizado para aplicar a técnica.

Cada vez mais, ferramentas de automação de teste estão sendo lançadas no mercado para automatizar as atividades de teste. Mas antes de pensar em uma ferramenta é preciso definir os processos. Veja alguns fatores que leva a automação de testes:


_ Existem fortes pressões para melhorar a qualidade;
_ O projeto tem situações que não possam ser testadas adequadamente pelos métodos tradicionais,
_ O perfil dos softwares desenvolvidos forem complexos e com impacto no negócio,

_ Estudos de custo X benefício justificar o investimento,

_ O tamanho do projeto ou do ambiente de teste justificar.

A maioria das empresas sempre avaliam a possibilidade do uso de ferramentas abertas e livres.


Tipo de Ferramentas


Existem basicamente três categorias de ferramentas de automação de testes, a saber:

Ferramentas de gerenciamento

As ferramentas de gerenciamento são as ferramentas gerenciais, normalmente utilizadas para fazer a gestão de testes e defeitos. Por exemplo, uma ferramenta que permite que sejam cadastrados os defeitos encontrados no software durantes os testes.


São ferramentas muito importantes, pois auxiliam o processo de teste como um todo.

Estão divididas em:

Ferramentas de gerenciamento de defeitos (rastreamento e correção dos defeitos): Jira, Mantis (Free), BugZilla (Free);

Ferramentas de controle de versionamento (documenta as versões dos testes): SubVersion, SourceSafe (Free);


Ferramenta de gerenciamento dos testes (gerenciam quais módulos deve ser testado, em qual data, dar suporte ao gerenciamento de testes e suas atividades. Faz a interface entre as ferramentas de execução, gerenciamento de defeito e gerenciamento de requisitos, gerar os resultados e os relatórios de progresso de teste): RTH, TestLink, Mantis


Ferramentas de verificação de código-fonte


Estas ferramentas são utilizadas para:

Verificar se o trabalho foi produzido dentro dos padrões de codificação;

Identificar pedaços de códigos não executados;

Identificar erros mais comuns, como problemas com inicialização de variáveis, estouro de memória, etc.

Estes tipos de ferramentas não têm a obrigação de verificar se o código realiza o que deveria realizar, ou seja, não têm a responsabilidade de testar as funcionalidades. Esse tipo de ferramenta é muito utilizado nos testes unitários.

Ferramentas de automatização na execução dos testes.

São ferramentas que auxiliam diretamente na execução dos testes. Veja alguns exemplos:

Unitários - JUnit

Sistema – TestComplet (Teste Funcionais), JUnitPerf

Aceitação – Jmeter (Teste Estresse), JUnitPerf (Teste de Performance).

Objetivos da automação

Veja alguns dos objetivos na utilização da automação de teste:

Apoiar o processo de testes;
Reduzir falhas introduzidas pela intervenção humana;
Aumentar a produtividade (a médio/longo prazo);
Tratar a automação dos testes como um projeto.

A automatização deve acontecer quando:
Existirem fortes pressões para melhorar a qualidade;

O projeto tiver situações que não possam ser testadas adequadamente pelos métodos tradicionais;
O perfil dos softwares desenvolvidos for complexo e com impacto no negócio;
Estudos de custo X benefício justificar o investimento;
O tamanho do projeto ou do ambiente de teste justificar.


Podemos concluir que uma inadequada infra-estrutura para testar softwares leva à situação onde os defeitos são identificados mais tarde e que a garantia da integridade do ambiente de teste está diretamente relacionada à garantia de qualidade do produto.

A seguir iremos apontar diagnósticos dos riscos em projetos de testes.