terça-feira, 27 de dezembro de 2011

Estatísticas sobre os tipos de testes utilizados no Brasil

Logo abaixo temos um panorama criado através de pesquisa realizado pelo Ministério de Ciência e Tecnologia, sobre as "Práticas de Engenharia de Software adotadas na avaliação da qualidade do produto", ou seja, os tipos de testes realizados.

Figura 1. Práticas de Engenharia de Software adotadas na avaliação da qualidade do produto (MINISTÉRIO DE CIÊNCIA E TECNOLOGIA, 2008).

sábado, 10 de dezembro de 2011

Outros tipos de testes


Existe uma infinidade de outras classificações de testes, alguns exemplos são citados na tabela abaixo:

Tabela 1. Outros tipos de testes (elaborado pelo autor).
TIPOS DE TESTES
CARACTERISTICAS
Performance
Determinar a capacidade máxima do conjunto software e hardware.
Aceitação do usuário
Teste em produção no ambiente do usuário ou contratante, Alphas e BETA.
Estresse
Continuidade dos serviços em um volume de dados no máximo.
Volume
Continuidade, performance, volume
Instalação
Verificar a instalação do pacote
Documentação
Verificar se a documentação está completa
Integridade
Continuidade, performance, volume, também se preocupando com a integridade das informações.
Funcionalidade
Funcionalidades
Interface
Conectividade
Carga
Continuidade, performance, volume
Produção
Operabilidade
Recuperação
Recuperação
Regressão
Todas
Segurança
Segurança
Fonte da pesquisa: (MOLINARI, 2006) e (RIOS e MOREIRA, 2006).

Site interessante: Profissionais TI

http://www.profissionaisti.com.br/2011/11/testes-de-software-as-principais-tecnicas-e-porque-realizar/

segunda-feira, 28 de novembro de 2011

Testes De Níveis ou Fases

TESTES UNITÁRIOS

Estes testes são realizados nas menores parcelas do código possível, visam testar sub-rotinas, classes, pequenas partes ou unidades do sistema de forma isolada ou até mesmo separadas do restante do código, para garantir que atendam as especificações, características e funcionalidade.
Os testes unitários são utilizados intensamente os testes de caixa branca. Na grande maioria dos casos estes testes são realizados pelos próprios desenvolvedores (RIOS e MOREIRA, 2006), durante o desenvolvimento do código.

TESTES DE INTEGRAÇÃO

Os testes de integração são realizados no momento em que dois ou mais componentes precisam se comunicar, cada componente já foi previamente testado nos testes unitários.
Podemos chamar de componentes os pedaços de código, módulos, aplicações distintas, clientes, servidores e etc.
Existem algumas técnicas para realização destes testes conhecidas como:
·       Botton-up – os testes são realizados no agrupamento dos componentes de mais baixo nível, como os de infra-estrutura, formando novos módulos. Desta forma vai incluindo os módulos até termos o software completo;
·       Top-down – exatamente inverso da técnica Botton-up, a vantagem desta técnica é a de poder apresentar os resultados para os usuários ou clientes antes dos módulos de baixo nível estejam prontos. De forma geral desenvolvemos o esqueleto global do sistema e os componentes são adicionados a ele. Um exemplo é desenvolver a interface gráfica antes do sistema em si;
·   Fluxo de dados – o agrupamento e os testes são realizados conforme a o projeto desenhou o fluxo dos dados;
·      Big-bang – esta técnica é a mais caótica, pois se integra todos os módulos de uma só vez e depois realiza os testes. É recomendado nunca utilizar esta técnica.

TESTES DE SISTEMA

Os testes de sistema fazem uso da técnica de caixa preta, ou seja, foca na visão do usuário final, ou seja, são realizados testes simulando ao máximo os ambientes ao qual o software será utilizado.
Nos testes de sistema os principais testes são os de performance que pretende determinar a capacidade máxima que o software pode atingir em determinado ambiente e o teste de carga que visa simular uma grande massa de dados e usuários simulando um ambiente o mais próximo do real possível.

FASE ALPHA

Nesta etapa o software está praticamente pronto para o lançamento é executado os testes de caixa preta, focando sempre na simulação de ambientes reais de utilização.
Podemos incluir nesta etapa o software em uso real em ambientes controlados, como por exemplo, utilizá-lo internamente na própria empresa de desenvolvimento.
Se necessário criar subdivisões da etapa de Alpha, exemplo:
·         Pré-Alpha: primeiro build do software finalizado disponibilizada para os testes;
·       Alpha 1: um novo build é gerado com as correções dos problemas encontrados na fase de pré-alpha, nesta etapa implementa-se o uso do software internamente na empresa de desenvolvimento;
·    Alpha 2: similar ao Alpha 1, porém uma nova buid é gerada se necessário com correções dos problemas encontrados nas fases anteriores, nesta etapa os testes são expandidos ao uso do software internamente na empresa em filiais se for o caso e em parceiros.

FASE BETA

A fase de beta é uma continuidade das Alphas, porém agora se iniciam testes em clientes de forma controlada e também de forma descontrolada, que nada mais é que disponibilização dos pacotes em sites e listas de discussões, com uma eficiente forma de receber os feedbacks destes usuários “voluntários”, normalmente usa-se emails para esta comunicação.

sábado, 19 de novembro de 2011

Tipos de testes


Abaixo veremos diversas técnicas para auxiliar na estruturação dos testes de software, vale lembrar que muitas vezes os tipos de testes se sobrepõem e ainda não se encaixam por completo há necessidade, mas o importante é dar o caminho, pois o objetivo continua o mesmo, encontrar defeitos no software.

Testes Caixa Preta

Segundo Rios & Moreira (2006), os testes de caixa preta realizam testes na visão do usuário com objetivo de verificar as funcionalidades e os requisitos sem qualquer conhecimento do código ou da lógica interna dos itens testados. Outra definição é a de teste funcional, orientado a entrada e saída, onde definimos um conjunto de entradas, sem considerar a estrutura do software desenvolvido e validamos sua saída, ou seja, quanto mais abrangentes sejam as entradas melhor será o teste.
Esta técnica pode ser utilizada em todas as outras fases de testes, porém esse tipo de teste é insuficiente para identificar certos riscos num projeto de software (BACH, 1999).

Testes Caixa Branca

Nesta técnica o testador tem acesso ao código fonte e irá preparar os testes baseando em sua lógica interna e estrutura avaliando aspectos como: testes de condição, teste de fluxo de dados, testes de ciclos, varia a entrada para que todas as condições e códigos possíveis sejam executados.
Os testes de caixa branca: visam avaliar as clausulas de código, a lógica interna do componente codificado, as configurações e outros elementos técnicos (RIOS e MOREIRA, 2006).

Testes Caixa Cinza

Os testes nesta técnica é uma interseção entre as técnicas de caixa preta e branca, com base no código fonte e estrutura do código, criamos os testes de forma que o realizamos conforme a técnica de caixa preta em outras palavras o desenvolvedor auxilia na criação do Plano de testes, que falaremos a seguir, de forma que os testes atinjam o maior número possível de possibilidades.