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!

domingo, 16 de setembro de 2007

Templates de documentos de Engenharia de Software

Existe um projeto do repositório Tigris.org chamado ReadySET cujo intuito é prover templates de documentos referente à Engenharia de Software.
Estes documentos podem servir como ponto de partida para a documentação de seu projeto.
Vejo em algumas listas o pessoal pedindo templates de documentos, em sua maioria de Plano de Testes que é facilmente confeccionado com base na norma IEEE 829...

O projeto ReadSET possui os seguintes documentos:
  • Proposta do projeto
  • Plano do Projeto
  • Caso de Uso
  • Plano de QA
  • Casos de Teste
  • Checklists
Você pode visualizar todos os templates neste link.

Vale a pena verificar estes templates mesmo se você já possui um modelo bem definido.
Quando você efetua o download destes documentos ele já vem num formato HTML já padronizado e muito organizado.

quarta-feira, 22 de agosto de 2007

Livro Automação e Gerenciamento de Testes

Dia 21/07/2007 foi lançado o livro "Automação e Gerenciamento de Testes:Aumentando a Produtividade com as Principais Soluções Open Source e Gratuitas" por Cristiano Caetano.

Este livro aborda as principais ferramentas OpenSource e gratuitas de Teste de Software apresentando um catálogo de ferramentas e seus principais recursos.

O livro está disponível a venda em ebook por este link.

Vale a pena conferir!

Resenha: http://www.linhadecodigo.com.br/Artigo.aspx?id=1392
Preview do livro: http://www.linhadecodigo.com.br/EBook.aspx?id=2951

segunda-feira, 13 de agosto de 2007

Casos de Teste

Depois de um tempo sem blogar vou compartilhar minhas experiências sobre um documento muito utilizado por nós, profissionais de qualidade e teste de software: Casos de Teste.
Vamos fazer uma abordagem bem inicial:

O que é um Caso de Teste?
Basicamente um Caso de Teste é aquele documento que possui entradas dentro inseridas no sistema/programa e suas saidas esperadas.
Mostra os caminhos percorridos por um módulo, caso de uso ou funcionalidade dentro do projeto.
Servem como base para que os testadores possam executar os testes manualmente, mas podemos cria-los com o intuito de automatizar os casos e devem cobrir o máximo de situações possíveis.

Campos necessários para um Caso de Teste
Segunda a norma IEEE 829 um Caso de Teste deve possuir:
  • Identificador do Caso de Teste
  • Itens de teste
  • Especificações de entrada
  • Especificações de Saida
  • Ambiente necessário
  • Exigências especiais
  • Interdependências
Identificador do Caso de Teste
Devemos criar um identificador para o documento. Podemos colocar informações sobre o tipo de caso, revisão, numero do caso de teste entre outros itens.

Itens de teste
Breve descrição dos itens, funcionalidades, módulos, etc. que será descrito no caso de teste.

Especificações de entrada

Especifica todas as entradas necessárias para executar o caso de teste. Podemos colocar qualquer tipo de entrada no caso de teste, o que melhor se adequar a sua realidade.
Ex: dados na tela, comandos SQL, mensagens, etc...

Especificações de Saida
Especificar todas as saidas e particularidades depois de executada uma determinada entrada. Procure explicar claramente o que deve ser exibido para não haver erros de entendimento.

Ambiente necessário
Especifica ambientes como hardware e software necessários para a execução do caso de teste, bem como qualquer configuração que externa (fora da aplicação).

Exigências especiais
Descreve qualquer caso especial de inicialização, configuração, etc que seja necessário aplicar no caso de teste.

Interdependências
Relacionar todos os documentos necessários para a execução do caso de teste. Procure sumarizar os documentos.


Ao longo do tempo vou postar alguns modelos de casos de teste.
Quem tiver algum modelo que queira compartilhar envie um email ou poste um comentário aí!

Abraços!


Referências:
http://en.wikipedia.org/wiki/Test_case
http://standards.ieee.org/reading/ieee/std_public/description/se/829-1983_desc.html

sexta-feira, 22 de junho de 2007

Novos blogs sobre Qualidade e Teste de Softtware

Seguem mais blogs sobre Qualidade e Teste de Software:

José Papo Weblog
http://josepaulopapo.blogspot.com/

Diário da Qualidade
http://diariodaqualidade.blogspot.com/

Abraços

sexta-feira, 15 de junho de 2007

Questionário de Teste de Performance, Carga e Stress

Bolei um questionário para os testes de Performance, Carga e Stress.
O intuito foi levantar o que será necessário na hora de efetuar alguns destes testes.

Basicamente o questionário parece muito com um checklist, mas traz algumas perguntas para avaliações destes testes.

O questionário pode ser baixado neste link.

Qualquer sugestão será muito bem vinda.

Abraços!

domingo, 27 de maio de 2007

Blogs Brasileiros sobre Qualidade e Teste de Software

Bom, além deste blog sobre Qualidade e Teste de Software existem outros (poucos pelo que conheço), mas de ótima qualidade.
Abaixo segue a lista de blogs:

Software Quality
http://softwarequality.spaces.live.com/

VirtualTesting
http://www.virtualtesting.blog.br/

Teste de Software
http://www.testesdesoftware.blogspot.com/

TI na Bahia
http://tinabahia.blogspot.com/

Ponto T
http://www.pontodatecnologia.com.br/

Estes são os blogs que conheco, se alguem tiver ou saber de outro blog, por favor avise para compartilhar estas informações.

Abraços!

quarta-feira, 16 de maio de 2007

Resultado da Enquete: Testes Unitários

Segue abaixo o resultado da enquete sobre testes unitarios:



Podemos ver que há uma mescla em pessoas que sempre escrevem (TDD, XP) e pessoas que raramente escrevem (desenvolvedores em outras metodologias)

Numa análise otimista temos 58% que escrevem testes unitários (sim(s) + metade do raramente) e 42% que não escrevem ou não tem costume (metade do raramente + não(s))

Corrijam se algo estiver errado!

Abraços!

terça-feira, 8 de maio de 2007

Teste em multiploes IE's






Faz um tempo que uso o Multiple IE.
Um instalador que coloca no seu micro o Internet Explorer as versões 3.01, 4.01, 5.0.1, 5.5 e 6.0
Muito util para quem tme que homologar seus sistemas web em mais de uma versão do navegador...
E um alternativa pra quem usa o IE7, pois depois que você instala o IE7, não consegue voltar para alguma versão.
Tá ai a dica...

Site: http://tredosoft.com/Multiple_IE


sexta-feira, 4 de maio de 2007

Add-ons do Firefox para Teste de Software (web)






Bem, como a maioria da galera usa Firefox pra desenvolver aplicações web e testá-las (e poucas pessoas como eu tenha que homologar no IE também), segue uma lista de Add-ons para o Firefox que pode lhe ajudar a efetuar testes nestas aplicações.
Segue a lista abaixo:

Console2 (ao quadrado)
Substitui o Console de JavaScript do Firefox 1.5+ . Ele traz uma interface mais amigável e agrupando os erros por tipo (erros, warnings e alertas), linguagens (JavaScript, CSS, XML) e contexto (Chome e Content), além de algumas customizações.
Url: https://addons.mozilla.org/en-US/firefox/addon/1815


UrlParams
Exibe os parâmetros do GET e POST do website corrente numa sidebar. Você pode alterar os parâmetros, adicionar novos e alternar entre GET e POST.
Url: https://addons.mozilla.org/en-US/firefox/addon/1290


Selenium IDE
Plugin do Selenium que cria, testa, executa e debuga testes.
Url: https://addons.mozilla.org/en-US/firefox/addon/2079


Molybdenum
Edita, executa testes do Selenium IDE. Também pode ser usado em linha de comando e gerar relatórios.
Url: https://addons.mozilla.org/en-US/firefox/addon/4149


Server Switcher
Ferramenta para alterar entre páginas locais (http://localhost:8080/test.jsp) para um site em produção (http://seusite.com/test.jsp).
Url: https://addons.mozilla.org/en-US/firefox/addon/2409


LiveHTTPHeaders
Visualiza os cabeçalhos HTTP da página que está sendo aberta.
Url: https://addons.mozilla.org/en-US/firefox/addon/3829


TestGen4Web
Grava a navegação no site que pode ser gravada para uma futural execução. Pode gerar scripts HTTP-Unit e PHP-SimpleTest.
Url: https://addons.mozilla.org/en-US/firefox/addon/1385


Web Developer
ToolBar que efetua diversas verificações em sua página como validação do CSS e HTML, Possui DOM Inspector.
Url: https://addons.mozilla.org/en-US/firefox/addon/60


FireBug
Com ele você editar, debuga e monitora CSS, HTML e JavaScript no seu site.
Url: https://addons.mozilla.org/en-US/firefox/addon/1843


Load Time Analyser
Mede o tempo de permanência/execução de uma página, imagem, stylesheet, script. Mostra os tempos de forma gráfica.
Url: https://addons.mozilla.org/en-US/firefox/addon/3371

Por enquanto é destes que me lembro...
Se alguem tiver algum pra acrescentar deixe um comentário que coloco aqui.

terça-feira, 24 de abril de 2007

Qualidade de Software - Parte 2





Em continuação ao post Qualidade de Software - Parte 1 vamos dar continuação daquelas premissas de cada característica.
Agora veremos as sub características de cada um e a auto-reflexão sobre cada uma:



A tabela tá meio "ordinária" pois é uma imagem, mas nada que um clique nela não resolva.

Uma dica é criar um checklist com os itens que você acha relevante junto com um "sim|não" e uma descrição ou justificativa de cada item.
Isso nos ajuda a enxergar a aplicação de uma outra maneira.

Então mãos a obra!

terça-feira, 17 de abril de 2007

Lista de softwares para Teste e Qualidade de software






Segue abaixo uma lista de sites que possuem link's para diversas ferramentas dos mais variados tipos: Performance, Funcional/Regressão, Unitário, Gerenciamento, Bug Tracking, Segurança, etc...

  • Web Site Test Tools and Site Management Tools
  • OpenSource Testing
  • Software QA Testing and Test Tool Resources

  • Estes três link's já possuem um bocado de ferramentas...
    Aceito sujestões!

    quinta-feira, 12 de abril de 2007

    Ilustração para melhoria no seu projeto/software








    Bom, vi uma frase que descreve bem a Qualidade de Software para o cliente:

    "Qualidade de Software é tudo aquilo que o CLIENTE requisitou explicitamente e o que ele não requisitou mas espera receber."

    Mas como será que o cliente define realmente a qualidade do software que nós entregamos a ele?

    Podemos tomar como base o objetivo do teste de software, que é prover um software, no mínimo esteja respeitando algumas coisas como:
    * Ser rápido
    * Ser funcional
    * Ser fácil de usar
    * e principalmente que faça as necessidades dos clientes

    E o diferencial é aquele "plus": uma frescurinha em Ajax, uma funcionalidade que ele não requisitou, mas que será util, etc...
    É assim que conquistamos a confiança dele.

    Mas tudo tem que partir de sua empresa, não só da equipe de testes, mas também da boa integração de todas as áreas envolvidas no processo.

    Abaixo a figura explica melhor o que eu quero dizer...

    sexta-feira, 23 de março de 2007

    Enquete - Você escreve testes unitários?






    Bom, esta é um enquete para verificar se o "povo" anda escrevendo teste unitário e criando (ou tentando) um software de qualidade!

    A enquete está no meu ao lado direito do blog!!!

    Não deixe de votar!!!!



    Você escreve testes unitários?

    Sim, sempre

    Sim, mas nem sempre

    De vez em quando, raramente

    Não, tenho o costume

    Não, isso é um saco!













    Qualidade de Software - Parte 1






    Bom, todos hoje em dia ouvem falar de Qualidade de Software. Mas é importante relembrar as premissas para que o software sair mesmo com qualidade...
    Basicamente será colocar aqui a característica, significado e pergunta reflexiva que você sempre deve fazer sobre seu produto.

    Característica Significado Pergunta chave
    Funcionalidade Conjunto de funções que atendem ás necessidades do produto. Satisfaz às necessidades?
    Confiabilidade Capacidade do produto de manter seu desempenho. É imune a falhas?
    Usabilidade Facilidade de utilização do produto É fácil de usar?
    Eficiência Relação entre Funcionalidade e Confiabilidade É rápido e “enxuto”?
    Manutenibilidade Esforço necessário para modificar o produto. É fácil de modificar?
    Portabilidade Capacidade do produto ser transferido de um ambiente para outro É fácil de usar em outro ambiente?

    Para verificar se o seu produto está aderindo aos padrões de qualidade, você deve fazer estas perguntas a si mesmo (e tomar as providências necessárias)!
    Conforme o tempo veremos as sub-características de cada uma destas características acima.

    quinta-feira, 22 de março de 2007

    Teste seu código-fonte!






    Bom... vamos começar com uma pergunta:
    "Quem costuma verificar a qualidade de seu código-fonte"?

    Parece até estranho, mas a quantidade de erros bobos que cometemos até conseguir atingir um nível satisfatório de qualidade é grande!
    Por isso existem algumas ferramentas de análise de código-fonte*.

    * aplicativos Java! :)

    Vamos então ao que interessa!!!

    FindBugs
    Site: http://findbugs.sourceforge.net/
    Licença: GNU Public License
    Integração com IDE's: NetBeams, Eclipse

    Ferramenta de análise de código a procura de bug's. Ele verifica código "malicioso", má pratica de programação, performance, etc...

    Exemplo de relatório


    PMD
    Site: http://pmd.sourceforge.net/
    Licença: BSD
    Integração com IDE's: JDeveloper, Eclipse, JEdit, JBuilder, BlueJ, CodeGuide, NetBeans/Sun Java Studio Enterprise/Creator, IntelliJ IDEA, TextPad, Maven, Ant, Gel, JCreator, e Emacs.

    Ferramenta que vascula o código-fonte a procura de erros como: possíveis bugs de código, código, métodos e variáveis não utilizadas, sugestões de melhorias, loops desnecessários ou gerando mais de um tipo de saida, código duplicado entre outros.
    Possui um Sistema de Regras muito interessante para você mesmo criar suas métricas de qualidade no código.
    É possível automatizar a verificação com scripts do ANT ou do Maven.

    Exemplo de relatório

    Estas foram duas ferramentas que eu tive contato. No proprio site do PMD existe um link referenciando outras ferramentas: http://pmd.sourceforge.net/similar-projects.html

    Cabe a cada desenvolvedor utilizar a ferramenta achar interessante, mas não esqueça de utilizar esta prática no seu código-fonte.

    Abraços!

    quarta-feira, 21 de março de 2007

    Como documentar seus testes






    Bom, vou falar aqui como documentar seus testes, não só os unitários que os desenvolvedores estão acostumados a criar, mas vou falar de uma norma existente pra isso, a norma IEEE 829.

    O propósito desta norma é facilitar a comunicação e, dentre outras coisas, prover uma forma organizada de manter uma documentação eficaz para seus testes.

    Então vamos direto ao que interessa...
    Esse documento descreve 8 sugestões de documentação:

    • Plano de Teste: Apresenta o planejamento para execução do teste, incluindo a abrangência, abordagem, recursos e cronograma das atividades de teste.

    A tarefa de especificação de testes é coberta por 3 documentos:

    • Especificação de Projeto de Teste: Refina a abordagem apresentada no Plano de Teste e identifica as funcionalidades e características a serem testadas pelo projeto e por seus testes associados.
    • Especificação de Caso de Teste: Define os casos de teste, incluindo dados de entrada, resultados esperados, ações e condições gerais para a execução do teste.
    • Especificação de Procedimento de Teste: Especifica os passos para executar um conjunto de casos de teste.

    Os relatórios de teste são cobertos por 4 documentos:

    • Diário de Teste: Apresenta registros cronológicos dos detalhes relevantes relacionados com a execução dos testes.
    • Relatório de Incidente de Teste: Documenta qualquer evento que ocorra durante a atividade de teste e que requeira análise posterior.
    • Relatório-Resumo de Teste: Apresenta de forma resumida os resultados das atividades de teste associadas com uma ou mais especificações de projeto de teste e provê avaliações baseadas nesses resultados.
    • Relatório de Encaminhamento de Item de Teste: Identifica os itens encaminhados para teste no caso de equipes distintas serem responsáveis pelas tarefas de desenvolvimento e de teste.
    Estes são apenas os "resumos" de cada item.
    Você não precisa utilizar todos estes itens necessariamente. O ideal é você utilizar o que mais se adequar a sua necessidade.

    Para saber mais sobre esta norma e sobre o assunto visite estes links http://www.ruleworks.co.uk/testguide/IEEE-std-829-1998.htm
    http://www.ieee.org.br/
    http://www.ieee.org/portal/site

    sábado, 17 de março de 2007

    Primeiro Post :)






    Bem...
    Como estou iniciando numa nova área: Qualidade e Teste de Software, resolvi criar um blog para compartilhar minhas experiências, idéias, etc...

    Já tenho inúmeros post's na cabeça, mas vamos começar com calma, hehe!

    Abraços!