Arquivo

Arquivo de maio, 2009

Um roteiro para planejar testes de software

25, maio, 2009

No senso comum, os testes de software servem para encontrar erros. Nestes casos a palavra “erro” é usada de forma generalizada para indicar falhas no sistema. Os erros no sistema indicam um estado incorreto durante a execução que pode levar a uma falha no software.

A falha é quando ocorre discrepância entre o resultado obtido de um software e o resultado prescrito nos requisitos.

Os testes de software estão cada vez mais ligados à estratégia das empresas desenvolvedoras, pois ajudam a garantir vários itens que considerados diferenciais de seus produtos.

Os testes ajudam a garantir vários itens muito importantes.

Qualidade

A qualidade está relacionada ao fato de seu produto atender, ou não, as necessidades de seu cliente, sejam elas implícitas ou explícitas. Os testes ajudam a garantir que o produto atende todas as especificações.

Economia

Reduz o tempo gasto com retrabalho relacionado às manutenções corretivas, muitas vezes originadas por falhas de projetos e programação.

Segurança

Hoje, a maioria dos sistemas desenvolvidos conta com algum tipo de sistema de segurança, seja para uma área restrita de um site ou para lidar com transações de informações sigilosas.

Dependendo do projeto os testes de segurança podem ser considerados fundamentais, valendo de tudo para tentar “burlar” o sistema.

Confiabilidade

Neste caso os testes são para medir o período máximo de tempo que o software permanece funcionando sem apresentar falhas. Muitas vezes durante os testes podem ser encontradas soluções para aumentar a confiabilidade do sistema.

Negócio

Os testes podem gerar informações importantes para a gerência de uma empresa influenciando na decisão de liberar, ou não, o sistema desenvolvido. Neste caso, a equipe deve estudar as falhas encontradas e então criar estratégias para eliminá-las.


Técnicas de teste de software


Caixa branca

Esta técnica visa checar o comportamento interno do software. O responsável pelos testes deverá ter acesso ao código fonte do sistema, de forma a poder criar casos de testes para todas as interações possíveis.

Os itens verificados nestes testes variam de acordo com a complexidade do software e podem ser verificado desde validações e caminhos lógicos até se o código está de acordo com os padrões aceitos no mercado.

Caixa preta

Os testes de caixa preta levam em consideração o comportamento externo do software, não importando como ele funciona internamente. Estes testes são feitos fornecendo dados de entrada e comparando os dados de saída com os dados esperados (já conhecidos anteriormente).

Geralmente os testes de caixa preta são baseados nos requisitos do sistema.

Caixa cinza

Os testes de caixa cinza mesclam os testes de caixa preta e caixa branca. Exemplo: são fornecidos dados e entrada e então são verificados o comportamento interno do sistema e os dados de saída.


Fases de testes de software


Veja abaixo algumas fases referentes ao testes de software:

Teste de unidade

Nesta fase são realizados testes em partes do sistema e podem ser em sub-rotinas ou em trechos do código. O objetivo é encontrar falhas em partes pequenas do sistema funcionando de forma independente do todo.

Teste de integração

Nesta fase, como o próprio nome diz, são feitos testes na integração das partes do sistema. As falhas são comumente encontradas na comunicação entre os componentes. Por exemplo, um componente espera um valor Y mas o componente que deveria passar este valor retorna W.

Teste de sistema

Aqui serão realizados testes usando o sistema do ponto de vista do usuário final. Sempre que possível é recomendado que estes testes sejam feitos no mesmo ambiente e condições do usuário final.

Teste de aceitação

Testes realizados por usuários finais do sistema a fim de conferir se o sistema atende a todos os requisitos solicitados e se está de acordo com todos os critérios de aceito do sistema.

Teste de operação

Fase em que os testes são realizados pelos administradores do ambiente final do sistema. São feitas simulações para garantir que o sistema entrará no sistema de produção de forma segura e estável.


Como fazer os testes


O ideal seria que sempre houvesse uma equipe destinada a realizar testes de software, produzindo os relatórios necessários para que os problemas possam ser estudados e resolvidos.

Mas nem todas as empresas possuem estrutura que suporte ter uma equipe que siga todas as instruções para a realização de testes.

Nestes casos, uma boa saída é nomear alguém da empresa que não esteja envolvido na produção do sistema para realizar os testes. Claro que nestes casos as empresas devem definir quais os principais testes devem ser realizados de forma a atingir as partes mais críticas do sistema.

Os erros encontrados devem ser documentados com informações suficientes que ajudem na reprodução do erro, facilitando assim a solução do problema.

A documentação do erro deve ser definida pela empresa. É importante manter um histórico de falhas encontradas pois assim, ao final do projeto, pode ser feito um estudo e obter um aprendizado em cima dos erros que foram encontrados.


Conclusão


Os testes ficaram, por muito tempo, em segundo plano nas empresas que desenvolvem softwares, mas de um tempo para cá vêm sendo cada vez mais adotados como forma de garantir a qualidade dos produtos e muitas vezes como diferencial competitivo.

É certo que nem todas as empresas têm capacidade de ter uma equipe destinada a testes, mas precisam precisam procurar alternativas para realizar o mínimo de testes necessários para um software

Filipe Giacomin Sem categoria

Fim da solidão com as redes sociais

7, maio, 2009

Em meio ao turbilhão de informações e novidades relacionadas às redes sociais me deparei com uma matéria da Super Interessante, no mínimo, interessante. A matéria fala sobre a dificuldade cada vez maior que as pessoas encontram para ficarem sozinhas e pensar na vida, algo que é fundamental para o amadurecimento.

O engraçado nisso é que procurar se relacionar com outras pessoas é algo tão natural quanto se alimentar, mas mesmo assim especialistas estão preocupados se perda da capacidade das pessoas de ficarem sozinhas. Outros se preocupam com as consequências dessa troca do relacionamento real pelo virtual dizendo que podem causar até depressão.

Mas pra mim a melhor parte da matéria é a que diz o seguinte “Se buscar amigos virtuais é um instinto natural, qual o problema? Bem, se alimentar também é, e vivemos uma epidemia de obesidade“. Nesta parte eu só consegui fazer uma analogia: assim como muitas empresas ganham muito dinheiro com produtos para dietas e etc, muitas empresas já começaram e ainda vão faturar muito nessa nova epidemia de relacionamentos virtuais.

Se desligar dos relacionamentos virtuais é muito simples, basta apertar um botão, mesmo que isso seja, para muitas pessoas, tão difícil quanto fazer uma dieta.

Por falar nisso meu twitter: www.twitter.com/filipegb

Filipe Giacomin Sem categoria

Teoria da tripla restrição em projetos

2, maio, 2009

A teoria da tripla restrição considera que o projeto possui, como principais restrições, o custo, o tempo e escopo/qualidade. A escolha entre o escopo e a qualidade depende do foco do projeto. Se, por exemplo, considerarmos como principais retrições o tempo, custo e o escopo, a consequência será a qualidade do projeto. Por sua vez se considerarmos a qualidade no lugar do escopo, este será a consequência.

tripla_rest

A alteração em algum dos fatores faz com que pelo menos um dos outros se altere. Sendo assim, em um projeto em que as restrições são custo,tempo e escopo, a alteração no escopo do projeto faz com que o tempo e/ou o custo aumente ou diminua.

Muitas vezes a teoria da tripla restrição pode ser usada para gerenciar as expectativas do cliente, principalmente quando ele se empolga para adicionar novos itens no escopo e/ou pedir para que o projeto seja entregue antes do tempo estimado mas não se empolga na hora de investir mais dinheiro para atender às suas necessidades. O uso da teoria para para gerenciar expectativas começa educando o cliente, ensinando a teoria da tripla restrição. Depois que o clinte entender esta teoria, conversar com ele sobre alterçoes no projeto pode se tornar algo muita mais simples.

É importante salientar que para usar a teoria da tripla restrição no gerenciamento de expectativas é necessário que o itens considerados como restrição (tempo, custo, escopo e/ou qualidade) estejam bem claras e aprovadas pelo cliente.

Baseado na tripla restrição, um projeto termina com sucesso quando o produto ou serviço especificado é entregue contendo tudo que foi definido no escopo, no prazo, dentro do orçamento previsto e com qualidade.

Filipe Giacomin Gerência de Projetos