Gerência - Qualidade e Testes
Entendendo o conceito por trás dos processos de Qualidade de Software
Veja neste artigo uma abordagem sobre como planejar e executar um processo de testes de software.
por Flávio Secchieri MariottiVeja neste artigo uma abordagem sobre como planejar e executar um processo de testes de software.
Introdução
Infelizmente, ainda é uma preocupação comum no dia a dia das equipes de implantação a publicação de novas realeses de software. Portanto, fica fácil identificar que ainda não estamos dando a real importância para os processos de qualidade de software.
As equipes de desenvolvimento estão enfrentando uma mudança significativa no modelo de desenvolvimento de software com a transição de modelos tradicionais como cascata, por exemplo, para métodos ágeis de desenvolvimento, como o SCRUM, XP, FDD, entre outros. Os métodos ágeis estão cada dia obtendo mais atenção e sendo mais e mais adotados como modelos de desenvolvimento nas organizações e fábricas de software. Com isso, podemos perceber que o mercado ainda se preocupa mais com a velocidade do que com a qualidade, mas será que esse realmente é o caminho? Pare um minuto do seu dia e se faça as seguintes perguntas:
- A equipe realmente está sendo mais rápida?
- Quanto tempo minha equipe está perdendo com manutenção e correção de bugs que não foram identificados antes da implantação?
- Estou realmente entregando um produto de qualidade?
- Meu cliente está feliz com o meu produto?
Na tentativa de auxiliar as equipes de desenvolvimento de software e principalmente os profissionais de qualidade, este artigo aborda alguns conceitos básicos para planejamento um bom plano de teste e aplicação de processos estratégicos e eficientes para validação e garantia da qualidade de software.
Objetivo
O principal objetivo deste artigo é auxiliar os profissionais da área de qualidade de software. Para isso, será apresento uma simples proposta de documentação de testes com base em casos de uso, além de trazer uma breve definição de várias categorias de testes e também apontar algumas das principais metodologias e ferramentas utilizadas no mercado de TI.
Metodologias
Mps.br: o Modelo de Processos de Software Brasileiro é uma proposta de solução brasileira compatível com o modelo CMMI que está em conformidade com as normas ISO/IEC 12207 e 15504, além de ser adequado à realidade brasileira. Para mais informações, acesse: http://www.softex.br/mpsbr/_guias/default.asp
Papéis
- Gerência da Qualidade
- Gerencia da Qualidade de Software
- Gerência de Teste de Verificação
- Profissionais dos Testes de Verificação
- Revisores de Documentos
- Auditores da Qualidade
- Profissionais dos Testes de Validação
- Arquiteto de Teste
- Analista de Teste
- Automatizador de Teste
- Executor de Teste
Categorias de testes de Software
Teste de funcionalidade: teste que verifica se todos os requisitos do cliente foram satisfeitos, executando todas as funcionalidades de uma aplicação.
Teste de Usabilidade: tem por objetivo verificar a facilidade que o software http://pt.wikipedia.org/wiki/Software possui de ser claramente compreendido e manipulado pelo usuário http://pt.wikipedia.org/wiki/Usu%C3%A1rio na sua navegação(utilização).
Teste de Carga (Stress): teste que avalia um sistema simulando uma situação predeterminada, geralmente um grande volume de carga ou dados. Tem por objetivo identificar gargalos originados por baixo dimensionamento de link, falta de otimização da infraestrutura ou implementação ineficiente do aplicativo.
Teste de Regressão: teste que executa alguns ou todos os casos de testes já verificados, a fim de detectar erros gerados por alterações ou correções feitas durante o processo de desenvolvimento ou manutenção do software.
Teste de Volume: teste que avalia um sistema ou componente executando de modo que a demanda de recursos ocorre em quantidade frequente ou volume irregular.
Teste de Configuração: teste que verifica todas as configurações necessárias para garantir um bom funcionamento do software.
Teste de Compatibilidade: teste que garante a compatibilidade com todos artefatos
Teste de Segurança: teste de segurança visa verificar se todos os mecanismos de proteção embutidos no sistema eliminam as vulnerabilidades do software.
Teste de Desempenho: teste que avalia o tempo de resposta, os recursos utilizados e eficiência de cada função.
Teste de Instalação: teste que verifica se o processo de instalação está executando todos os passos requeridos para implementação do sistema no ambiente de utilização.
Teste de Confiabilidade: teste que valida à confidencialidade das informações, geralmente este teste é aplicado em conjunto com o teste de segurança.
Teste de Disponibilidade: teste que verifica o nível de disponibilidade do software, esta fase tem como objetivo garantir que o sistema estará disponível mesmo com pequenas falhas no ambiente de produção.
Teste de Recuperação: teste de sistema que força o software a falhar de diversas maneiras e verifica se a recuperação é adequadamente executada.
Teste de Contingência: teste também conhecido como plano de continuidade de negócios ou plano de recuperação de desastres, tem como intuito descrever as medidas a serem tomadas para restabelecer o sistema a seu estado funcional ou estado minimamente aceitável em caso de paralisação do sistema.
Checklist de verificação
- Checklist Verificação de Negócios
- Checklist da Proposta de Projeto de Software
- Checklist Verificação de Requisitos
- Checklist Diagrama de UML
- Checklist da Arquitetura
- Checklist Verificação, Análise e Modelagem
- Checklist do Código-Fonte
- Checklist do Bando de Dados
- Checklist Verificação da Implementação
Exemplo de checklist
Checklist do Modelo de Negócios | ||
Levantamento das Necessidades do Cliente | ||
- Todas as necessidades foram devidamente registradas. | SIM | NÃO |
- Todas as necessidades foram devidamente registradas. | SIM | NÃO |
Definição das Características do Software | ||
- Cada característica atende ao menos a uma necessidade identificada. | SIM | NÃO |
- Cada característica possui uma descrição clara. | SIM | NÃO |
- Cada característica possui exemplos que auxiliam seu entendimento. | SIM | NÃO |
- Existe uma rastreabilidade entre característica e necessidade. | SIM | NÃO |
Componentes de testes
Test-drivers: os controladores de teste são programas desenvolvidos com a finalidade de testar uma unidade de software. Esses controladores executam chamadas as unidades a ser validadas. Com isso, definindo uma ordem de execução e um conjunto de parâmetros de entrada que possibilitam testes mais variado em diferentes cenários.
Stubs: os simuladores são programas que simulam o comportamento de uma unidade de software ou hardware. Os simuladores substituem determinadas unidades reais que dificultam ou limitam determinados testes de software.
Reflexão
Segundo Leintz, a proporção de esforços dedicados para manutenção de software corresponde a 20% de corretivas, 25% adaptativas, 50% evolutiva e apenas 5% para preventivas. Esse resultado é com base em um estudo que aconteceu com 487 organizações da área de TI e testes.
Conclusão
Apesar de termos um processo que permite a organização e seqüenciamento das atividades de teste de software, é muito importante investir na capacitação das pessoas que vão desempenhá- las. Existem diversas técnicas e práticas para realização de testes, mas é preciso conhecimento do assunto para escolher o que é melhor utilizar, levando em consideração o contexto.
Comunicado Importante
Espero que tenham gostado do conteúdo explorado neste artigo. Caso exista qualquer dúvida relacionada ao conteúdo ou interesse em conhecer um pouco mais sobre qualidade de software, informe seu interesse usando o recurso de "comentários".
Referência
Bartié, Alexandre . Garantia de Qualidade de Software, Campus, 2002.
Paul M. Duvall; Steve Matyas; Andrew Glover . Continuous Integration: Improving Software Quality and Reducing Risk, Addison-Wesley Professional, 2007.
- Entendendo Indicadores de Prazo e Custo de ProjetosQualidade e Testes
- Aplicação de QUALIDADE de processo de SoftwareQualidade e Testes
- Segurança: Item primordialQualidade e Testes
- Qualidade de Software: Oculte seu códigoQualidade e Testes
- TMap Next Test Management Approach - As 4 Essências do TMap Next - Parte 3Qualidade e Testes