Mostrando postagens com marcador estrategias. Mostrar todas as postagens
Mostrando postagens com marcador estrategias. Mostrar todas as postagens

terça-feira, 16 de junho de 2009

Escolas de Teste (Testing Schools)

Uma escola é definida por afinidades intelectuais, integração social, objetvos em comum e composto hierarquia de valores, técnicas representativas e intituições organizadoras.

As Escolas de Teste são uma abordagem adotadas por cada tipo de industria na área de Teste e Qualidade de Software. Temos as escolas:
  • Escola Analítica
  • Escola Convencional
  • Escola da Qualidade
  • Escola “Context Driven”
  • Escola Ágil
Para saber mais sobre as Escolas de Teste, visualize a apresentação abaixo criada por Rafael Oliveira Nóbrega, meu colega de trabalho (Arquiteto de Teste na InMetrics)

Obrigado Rafa pela ótima apresentação!




Artigo de Bret Pettichord sobre Escolas de Teste
http://www.io.com/~wazmo/papers/four_schools.pdf

sexta-feira, 23 de maio de 2008

Teste Caixa Cinza (Gray Box)

Nesta estratégia de teste o testador tem acesso a algumas das operações internas do sistema, mas normalmente a uma base de dados através de consultas SQL, não visualizando seu código.

Como sabemos a técnica de Caixa Branca tem acesso direto ao código-fonte da aplicação, validando assim sua estrutura interna, mas na técnica de Caixa Preta não conhecemos sua estrutura interna, sabendo só as entradas e saídas sem conhecer o que é feito com a entrada.
Ainda sobre as duas abordagens, sabemos que no Caixa Branca quem cria e executa é o próprio desenvolvedor testando através de testes unitários e no Caixa Preta quem cria e executa é o testador.

Nos testes de Caixa Cinza juntamos estas duas estratégias: conhecimento interno do produto e saídas esperadas. Não vamos confundi-lo com os testes de Caixa Branca, que cobre com testes a estrutura interna.

"Testes baseados no conhecimento do algoritmo, estados internos, arquitetura ou outras descrições mais alto-nível do comportamento do programa" [Doug Holffman]

Analisar as atividades por trás dos componentes durante o processo de execução de teste.
Dois tipos de problemas podem ser encontrados durante os testes de caixa-cinza:
- O componente encontra uma falha de algum tipo, fazendo com que a operação seja abortada. A interface com o usuário (front-end) ira indicar que ocorreu algum problema
- Os testes executam com sucesso, mas o conteúdo dos resultados está incorreto. Um sistema processando dados incorretos causa erro no resultado. [Elfriede Dustin]

Para aplicar esta estratégia utilizamos como suporte, por exemplo, consultas no banco de dados para confirmar que a consulta que os dados da consulta ou filtro que executamos na tela está de acordo com os dados existente no banco.
Esta estratégia é aplicada aos testes de WebServices, mesmo sem você se dar conta, pois você necessita conhecer a estrutura interna (arquido wsdl) e saber os resultados que devem ser obtidos neste tipo de teste.

O conhecimento interno do funcionamento pode ser de:

* Modelo de Arquitetura da aplicação
* Diagrama UML (diagrama de classe e/ou diagrama de sequência)
* Diagrama ER

Muita atenção: o testador não precisa conhecer o código-fonte da aplicação, e na minha opinião nem deve pois não é o seu papel. Mas conhecer a estrutura da aplicação é interessante para aprimorar a abrangência dos testes.

Por enquanto é isso!
Abraços e qualquer duvida: comentários!

quinta-feira, 20 de setembro de 2007

Testes pós entrega

Você deve estar se perguntando ao ler o titulo Teste pós entrega: "Porque eu deveria testar a aplicação após a entrega, já que existe um período de testes e homologação para garantir a qualidade (ou parte dela) da minha aplicação"?

Bom, vou citar alguns pontos a favor:
  • Achar aqueles bugs bem "tinhosos" (não é o foco, mas pode acontecer)
  • Garantir, sob condições diversas vários critérios como usabilidade, performance, etc... (após a entrega e, provavelmente quando você estiver verificando a aplicação o cliente está usando)
  • Verificar resultados esperados
  • Continuar achando bugs
Pontos "contra":
  • Pode aumentar o custo de teste
  • Má organização e planejamento de testes
  • Demanda tempo para testes que podem não estar alocados

Bom, eu fiz um processo aqui na empresa não por existir bugs em produção, mas para continuar garantindo a qualidade da aplicação.
A aplicação em questão é um site de serviços, sendo o mesmo para todos os clientes.

Criei uma Matriz de Ciclo Pós Entrega, que consiste em alocar pessoas por dia/semana para efetuar determinado teste na aplicação. Basicamente este matriz possui:
  • Criar um calendário (pode ser agrupado por dias ou semanas)
  • Lista de Recursos
  • Grupos de Tarefas
No exemplo que será apresentado uma matriz com dias da semana (quase um calendário, os recursos e os grupos de funcionalidades para teste).



No caso do exemplo não cobrimos todos os grupos de funcionalidades já no primeiro dia de teste, efetuamos isso gradativamente, na apresentada, por possuir 13 grupos de funcionalidades ela vai iniciar novamente na 3° semana.

Este é um modelo que eu utilizo aqui, e que tem garantido nossa segurança em relação ao sistema, verificação de usabilidade e as demais questões citadas.

Algumas questões levantadas sobre este tema podem visualizadas na lista da QAI Brasil: http://br.groups.yahoo.com/group/qai-brasil/

Você pode visualizar e baixar o template que criei neste link.

Abraços!