Sobre Ferramentas de Testes

11/01/2012

Ola!

Após um longo período sem posts espero retornar, de forma periódica, a publicar alguns materiais sobre testes de softwares e afins.

Interessante que, neste período ausente, recebi uma grande quantidade de solicitações de informações e a maioria era sobre ferramentas de testes. O que percebo é que existe um certo equivoco, principalmente dos iniciantes na área, sobre teste de software. A primeira coisa que se deve saber sobre ferramentas de testes é. “Qual o objetivo que se deseja alcançar?” Pois, a utilização de uma determinada ferramenta deve-se ao nível de teste associado a fase de teste e à técnica utilizada, afim de se detectar o maior numero possível de falhas na aplicação sob teste. Alem disso ainda temos ferramentas de apoio como: ferramentas de gestão de incidentes, ferramentas de gerenciamento dos testes, ferramentas de analise de código-fonte e etc.

Sendo assim, temos ferramentas para testes unitários, utilizados nas técnicas de caixa-branca e que tem o JUnit como a ferramenta mais conhecida. Esta é uma ferramenta, normalmente utilizada por desenvolvedores, para teste de unidades de código-fonte ao longo do desenvolvimento dos mesmos. Serve para garantir a corretude de determinados trechos de código.

Temos, também, ferramentas de testes funcionais utilizados nos testes de caixa-preta. Estas são as ferramentas que tem como objetivo simular a utilização da aplicação ou sistema pelo usuário ou outro sistema. Nesta família de ferramentas podemos citar: Selenium e BadBoy. Que são ferramentas para aplicações web que simula a navegação pelas páginas a procura de falhas nas funções existentes. Para testes funcionais em aplicações desktop, temos: SiKuLi. Uma ferramenta que faz uma analise das imagens contidas na tela para executar um script de teste previamente criado.

Para teste de performance temos: JMeter. Uma ferramenta que a principio foi desenvolvida para testes de performance, mas que foram acrecidas inúmeras outras funcionalidades. Com o JMeter é possível testar os limites de sua aplicação, evitando que um grande numero de usuários cause um crash no sistema, por exemplo.

Para gerenciamento dos casos de testes e controle da execução dos testes, temos o TestLink. Esta ferramenta cuida da parte gerencial do ciclo de vida do teste, desde a criação do plano e casos de teste até a produção do relatório final dos testes.

Por fim, temos os bug trackers no qual o Mantis é o mais conhecido, por sua praticidade, simplicidade e robustez. Um bug tracker é um gerenciador de incidentes, utilizado para manter um controle de quais incidentes está para correção, corrigido, em teste, etc.

Existem inúmeras outras ferramentas utilizadas nos testes de softwares, mas quis apenas exemplificar com as que mais utilizo no meu dia-a-dia. Uma lista mais detalhada de ferramentas pode ser encontrada aqui.

Bom, espero ter ajudado e até o próximo post!

 


Verificação, Validação e Teste de Software. Qual a diferença??

19/05/2011


O ato de efetuar testes em tudo que construímos e usamos é algo natural do ser humano, isso porque temos um instinto natural de saber se as coisas funcionam corretamente. Testar tem se mostrado ao longo dos séculos a maneira mais eficiente de verificar se algo está se comportando de forma correta. Produtos de software não fogem a esta regra. Isso porque mesmo o sistema que foi minunciosamente projetado e construído não está livre de apresentar falhas, defeitos e erros. Para que estes problemas sejam descobertos antes do sistema ser entregue para o cliente, executamos uma série de atividades que chamamos de
Validação, Verificação e Teste.

Estes termos são frequentemente confundidos, por isso vamos ver agora a diferença entre cada um destes processos:

1. Verificação: Fizemos o software corretamente? 
Esta atividade se resume em responder a esta pergunta. 
A verificação tem o objetivo de avaliar se o que foi planejado realmente foi realizado. Ou seja, se os requisitos e funcionalidades documentados foram implementados, além disso a verificação também pode ser realizada para especificação de sistemas, para avaliar se os requisitos estão sendo documentados como deveriam e ainda prever falhas ou inconsistências entre requisitos.

2. Validação: Fizemos o software correto?

A validação tem o objetivo de avaliar se o que foi entregue atende as expectativas do cliente. Ou seja, se os requisitos, independente do que foi planejado, estão sendo implementados para atender a regra de negócio do cliente, se o sistema é realmente aquilo que o cliente quer e está pagando para ter. A validação final do sistema é realizada pelo próprio cliente ou usuário.


3. Teste de Software: O software tem defeitos!
O teste de software é considerado uma técnica dinâmica 
de verificação e validação, pois o software é executado com dados de teste e seu comportamento é analisado. Diferentemente da inspeção de software ou, também chamada de revisão por pares, que é considerada uma técnica estática, pois não é necessário executar o software em um computador.

Então é isso. Agora que já sabemos as diferenças entre eles, vamos usar os termos certos daqui pra frente.


Porque devemos testar? A realidade do teste de software…

07/05/2011

Quando era pequeno, sempre que saia pra comprar alguma coisa, minha mãe dizia: “Paulo não esqueça o leite… NÃO ESQUEÇA O LEITE”. Já deu pra perceber o que eu sempre esquecia? Pois bem, engenharia de software é a mesma coisa: “Não esqueça de testar… NÃO ESQUEÇA DE TESTAR”. Imagino que tenha ficado bem claro o que sempre é esquecido quando se está desenvolvendo um software.

Teste de software sempre foi visto como o patinho feio, algo que existe para dificultar a construção do software e atrasar a entrega do projeto. Mas então, por que é tão importante assim?

Teste é algo natural na vida de todos nós, o nosso dia-a-dia é repleto de testes de diversas formas, então deveria ser natural, também, testar o software que desenvolvemos. Lembrando que se não testarmos, os nossos clientes, sejam eles quem forem, irão fazer.

Quando são bem planejados, os testes podem sim, poupar um bocado de tempo e dores de cabeça futuras, minimizando retrabalhos e desgastes com o cliente. Fico imaginando como seria voar em um avião que não foi minimamente testado… Esquece! É melhor nem pensar.

Talvez prazo e custo sejam as desculpas mais utilizadas para se justificar deslizes na qualidade mas, fato é, que existe sim uma síndrome de Deus, na qual muitos desenvolvedores se acham incapazes de errar e que suas vontades prevalecem sobre tudo e todos. Sem falar nas desculpas tradicionais: “estamos com muita pressa, depois testamos isso ai” ou então “engraçado, na minha máquina funciona”.

O fato é: não é possível entregar um software, o seja lá o que for, sem um teste por mais breve e superficial que seja.

Muitas ferramentas para automação de testes tem sido desenvolvidas para auxiliar a execução e permitir um ganho na cobertura dos testes. Técnicas de testes cada vez mais apuradas tem sido utilizadas, bem como processos que permitem um aumento na produtividade, desmentindo o mito de que testes atrasam o andamento do projeto.

Muito mais que uma moda, teste de software tem se tornado uma necessidade crescente devido a também crescente busca por qualidade, resultado da maior exigência dos consumidores, complexidade dos softwares e a introdução maciça de produtos de softwares em nossas vidas.

Abaixo segue a linha de tempo do teste de software:



O que é teste de software e todo o resto!

14/04/2011

Olá pessoal!

Este é meu primeiro post neste blog que tem a intenção de ajudar a disseminar a cultura de teste de software. E nada melhor do que começar pelo começo, “O que é teste de software? e todo o resto”.
Sendo assim lá vai:

“O teste do software é a investigação do software a fim de fornecer informações sobre sua qualidade em relação ao contexto em que ele deve operar. Isso inclui o processo de utilizar o produto para encontrar seus defeitos.”. Referencia – pt.wikipedia.org/wiki/Teste_de_software

Teste de software é mais que simplesmente navegar na aplicação e tentar encontrar algum tipo de falha, é preciso técnica e critérios bem definidos para alcançar os objetivos que é encontrar bugs.

Segue um vídeo que ilustra bem isso:

Acho que por hoje é só pessoal!


Seguir

Obtenha todo post novo entregue na sua caixa de entrada.

%d blogueiros gostam disto: