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 testeAlguns 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
Uma solução que vem ganhando espaço, por ser mais econômica, é a criação de ambientes virtuais (‘máquinas virtuais’).
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:
_ 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
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.
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);
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.