segunda-feira, 27 de agosto de 2012

Dicas para melhorar a performance de sqls






1º Evitar o uso de DISTINC, pois ele precisa ordenar os resultados.
2º No FROM colocar primeiro as tabelas menores e as que você tem certeza que utilizam índices.
3º Filtros de atributos vem antas das junções (JOIN).
4º Ordem na junção: primeiro as que utilizam índices e segundo as de menores tamanhos.
5º Evitar o uso de Or .
6º Ordene os campos de junção pelo índice de melhor desempenho.

sexta-feira, 10 de agosto de 2012

O mundo precisa de QAs Técnicos!

Excelente post do Camilo Ribeiro, leitura obrigatória:

http://www.bugbang.com.br/?p=2782

sábado, 28 de julho de 2012

O que tem de especial no teste de software


terça-feira, 13 de março de 2012

Diferenças entre Back-to-back e Teste de Regressão

Back-to-back ou teste de comparação faz testes em diferentes versões da
aplicação e compara os resultados, não só o conteudo, mas tempo de
resposta. É usado em softwares críticos, por exemplo.

Teste de regressão é feito no build da aplicação que será enviado para
produção. E se aplica em qualquer tipo de software que sofrer alterações.

Back-to-back você usa para auferir o tempo de resposta de um build pro
outro, por exemplo. Compara os resultados não só o conteudo em si, mas
diversos outros fatores.

O regressão sim confere se a funcionalidade foi afetada.

Regressão: testar novamente algo que já foi testado para ter certeza que
uma alteração não inseriu bugs.

Back-to-back: roda o mesmo teste em 2 versões do sistema e compara os
resultados.

Realiza-se teste Back-to-back quando um novo software é desenvolvido.
Imagine a situação em que já exista um sistema legado e uma nova versão
desse sistema seja desenvolvida. Pode ser que seja utilizada outra
linguagem ou uma nova forma de armazenamento. Nesse contexto, o teste
back-to-back serve para verificar se a nova versão implementa as mesmas
funcionalidades (e com os mesmos resultados) da versão legada. Sendo assim,
o teste Back-to-back é executado em software diferentes.

Já o teste de regressão serve para verificar se a nova funcionalidade não
vai produzir erros (efeito colateral) nas funcionalidades já implementadas.
Teste de regressão nada mais é que executar todos os testes  que
foram executados anteriormente.

terça-feira, 7 de fevereiro de 2012

Predição de Defeitos nos Softwares

Apesar da produção de um software de qualidade depender de muitos fatores, a inclusão das atividade de teste contribuem, e muito, na qualidade final do software, pois uma de suas etapas é a identificação dos defeitos existentes no produto. Assim, antecipar a localização de defeitos contritui para o direcionamento do teste, de forma que a equipe de teste possa direcionar seus esforços para as partes do software que mais tendem a apresentar problemas

O que significa Prdição de Defeitos em Software?

Para Pontes(2008) "Predição de defeitos é a tentativa de antecipar a localização de defeitos em uma aplicação através do uso de técnicas específicas." Então, predizer um defeito, é prever seu aparecimento através de algumas ações corretivas.

E afinal o que se ganha com isso?

Ainda segundo Pontes(2008), tem-se os seguintes benefícios:
• Suporte ao planejamento e execução de testes;
• Identificação de pontos de melhoria no código desenvolvido, através do diagnóstico de trechos de código complexos que podem ser simplificados;
• Redução da taxa de inserção de defeitos na manutenção e evolução do software;
• Planejamento do esforço de desenvolvimento de iterações futuras do projeto.

E quais técnicas usar?

• Análise de Regressão: é uma técnica de modelagem utilizada para analisar a relação entre uma variável dependente (Y) e uma ou mais variáveis independentes X1, X2, X3,..., Xn.
Tem como  objetivo estimar uma função que descreve a relação entre essas variáveis e  predizer o valor que a variável dependente (Y) irá assumir.
 
Pontes (2008) exemplifica seu uso da seguinte forma: "Podemos exemplificar como variável dependente, o que se quer observar, como a existência ou não de defeitos em determinado módulo da aplicação, quantidade dos defeitos existentes ou densidade."

A Análise de Regressão está subdividida em:

Outras técnicas, conhecidas como técnicasde aprendizado de máquina, são as seguintes:
 • Árvore de decisão:utilizadas para dar ao agente a capacidade de aprender, bem como para tomar decisões.Árvores de decisão são similares a regras if-then.
Para representar graficamente a árvore de decisão são geralmente usadas linhas para identificar a decisão (por exemplo "sim" ou "não") e nós para identificar a as questões sobre as quais se deve decidir. Cada um dos ramos formador por linhas e nós termina numa espécie de folha que identifica a consequência mais provável da sequência de decisões tomadas.
 • Classificadores Bayesianos: São baseados na teoria de Thomas Bayes.
Trata da probabilidade de acontencimento de eventos: Altera a estimativa inicial com base em novas informaçõesque atuam como um modificador de opinião.
Mostra como fazer avaliações e como ajustá-las quando deparados com novos dados.
Apresentadas as técnicas, faz-se necessário um estudo de qual técnica será mais viável para cada projeto. E lembrem-se Para a equipe se beneficiar da aplicação de técnicas de predição, deve definir as informações a serem coletadas de um projeto já no inicio do seu desenvolvimento, pois qualidade dos dados coletados pode influenciar a qualidade dos modelos de predição desenvolvidos.
 
Referência:
Pontes, Melissa Barbosa. Predição de Defeitos em Software. 2008. Disponível em < http://www.devmedia.com.br/post-14497-Artigo-Engenharia-de-Software-17-Predicao-de-Defeitos-em-Software.html> Acesso em 07/02/2012