O documento discute testes de software, incluindo: 1) O que são testes de software e seus objetivos de verificar erros e garantir qualidade; 2) A importância de testes para reduzir custos de correção de erros; 3) Os principais tipos de testes como caixa branca, caixa preta e testes de unidade e integração.
3. O que é teste de software ? http://www.flickr.com/photos/notsogoodphotography/2778909670/
4. Processo de executar um programa ou sistema com a intenção de encontrar defeitos (Glen Myers - 1979) http://www.flickr.com/photos/notsogoodphotography/2393634228 /
5. Qualquer atividade que a partir da avaliação de um atributo ou capacidade de um programa ou sistema seja possível determinar se ele alcança os resultados desejados (Hetzel, 1988) http://www.flickr.com/photos/notsogoodphotography/2099576911 /
6. O que é teste de software ? http://www.flickr.com/photos/notsogoodphotography/2778909670/
9. A importância dos testes http://www.flickr.com/photos/45396648@N04/4183857477 /
10. Quanto mais tarde um defeito for identificado mais caro fica para corrigi-lo e mais ainda, os custos de descobrir defeitos no software aumentam exponencialmente na proporção que o trabalho evolui através das fases do projeto de desenvolvimento [Boehm 1976] . http://www.flickr.com/photos/minebilder/292519152 /
11. A importância dos testes http://www.flickr.com/photos/45396648@N04/4183857477 /
12. Segundo James Martin & Carma L. McClure (1984) Manutenção contabiliza quase 70% dos custos totais de software; 20% do orçamento de manutenção é para corrigir defeitos; 25% é gasto para adaptar programas a um novo hardware e software; 6% é gasto corrigindo documentações; 4% é gasto na resolução de problemas de performance; 42% é gasto fazendo mudanças solicitadas pelos usuários;
14. Teste caixa branca (Estrutural) http:// www.flickr.com/photos/jmcraftworks/3215217087 /
15.
16. Estágios (ou níveis) de teste Testes unitários : estágio mais baixo da escala de testes e são aplicados nos menores componentes de código criados. Testes de integração : são executados em combinação de componentes para verificar se eles funcionam corretamente juntos.
17. Outros tipos de testes Testes de regressão Testes de carga Testes Back-to-back Testes de configuração Testes de usabilidade Testes de instalação Testes de segurança Testes de recuperação Testes de compatibilidade Testes de desempenho/performance Testes funcionais
18. Outros tipos de testes Testes de qualidade de código Testes de alterações Testes de recuperações de versões Testes de interoperabilidade Testes de sobrevivência Testes estéticos Teste embutido Teste de conferência de arquivos Testes alfa Testes beta Teste de verificação de sites web
19. O processo de testes http://www.flickr.com/photos/cubagallery/4466636070 /
20. Fases do Processo Níveis do Teste de de Software Software Especificação Requisitos do Usuário Teste de de Requisitos Aceitação Especificação Especificações Funcional e Teste de do Sistema Não Funcional Sistema Projeto do Arquitetura do Teste de Sistema Sistema Integração Projeto de Projeto Teste de Unidade Unidade Codificação de Unidade Processo de testes [Myers 1979]
22. Procedimentos iniciais : Elaboração de um documento onde define o objetivo do projeto de testes e o plano de trabalho. Planejamento : Elaboração e revisão da estratégia de testes e do plano de testes. Preparação : Preparação do ambiente de teste, incluindo equipamentos, rede, pessoal, software e ferramentas. O Processo de Testes
23. Especificação : Execução dos testes de verificação da documentação do sistema. Execução : Execução dos testes planejados. Entrega : Conclusão do processo de testes com a entrega do sistema para o ambiente de produção. O Processo de Testes
30. Planejamento Preparação Procedimentos Iniciais Especificação Execução Entrega Banco de dados de indicadores Banco de dados com informações dos relatórios de defeitos Indicadores de acompanhamento do projeto e indicadores de qualidade
ATUALMENTE O SOFTWARE PASSOU A TER UM PAPEL IMPORTANTE NO APOIO AOS NEGOCIOS DAS EMPRESAS. HOJE ONDE A INTERNET É UM IMPORTANTE SUPORTE AOS NEGOCIOS, UM TESTE MAL FEITO PODE SIGNIFICAR EM DIVERSOS PROBLEMAS GRAVES, COMO POR EXEMPLO: FRAUDE, INCORREÇÕES E ATÉ BLOQUEIO DO SITE. QUANDO TRATAMOS DE TESTES, ESTAMOS TAMBÉM NOS REFERINDO A QUALIDADE DO SOFTWARE.
VERIFICAR SE O SOFTWARE ESTÁ FAZENDO O QUE DEVERIA FAZER DE ACORDO COM OS REQUISITOS.
MUITAS OUTRAS DEFINIÇÕES PODERIAM SER CITADAS, MAS, TESTE DE SOFTWARE É O PROCESSO QUE VISA SUA EXECUSÃO DE FORMA CONTROLADA, COM O OBJETIVO DE AVALIAR O SEU COMPORTAMENTO BASEADO NO QUE FOI ESPECIFICADO. A EXECUSÃO DOS TESTES É CONSIDERADA UM TIPO DE VALIDAÇÃO. NA PRÁTICA NÃO SE PODE TESTAR UM PROGRAMA COMPLETAMENTE E GARANTIR QUE ELE FICARÁ LIVRE DE BUGS.
O OBJETIVO DA ATIVIDADE DE TESTE PODE SER ENTENDIDO DA SEGUINTE FORMA:
PORTANTO O SUCESSO EM UM TESTE CONSISTE EM DESCOBRIR OS ERROS E CORRIGI-LOS.
QUANTO MELHORES FOREM FEITOS OS TESTES DURANTE O DESENVOLVIMENTO, MENORES SERÃO OS CUSTOS DE MANUTENÇÃO. AS MANUTENÇÕES SOLICITADAS PELOS USUÁRIOS SÃO FONTES DE NOVOS DEFEITOS, INCLUSIVE GERANDO PROBLEMAS EM PARTES DO PROGRAMA QUE NÃO FORAM MODIFICADOS. CERTO TESTES, TAIS COMO O DE CARGA EM AMBIENTE WEB, SÓ PODEM SER REALIZADOS, COM AUXILIO DE FERRAMENTAS DE AUTOMAÇÃO DE TESTES, POIS POSSUEM A CAPACIDADE DE SIMULAR O AMBIENTE REAL.
TEREMOS ALGUNS TIPOS DE TESTES NÃO PODEMOS ESQUECER QUE, MUITAS VEZES, OS TIPOS DE TESTES SE SOBREPÕEM, SENDO AS PRÓPRIAS DEFINIÇÕES ABRANGENTES OU ESPECÍFICAS, CONFORME O PROCESSO DE SUA EXCECUÇÃO
TESTE CAIXA BRANCA TESTE ESTRUTURAL VISA AVALIAR AS CLAUSULAS DO CÓDIGO, A LÓGICA INTERNA DO COMPONENTE CODIFICADO, AS CONFIGURAÇÕES E OUTROS ELEMENTOS TECNICOS.
TESTE CAIXA PRETA TESTE FUNCIONAL TEM COMO OBJETIVO VERIFICAR A FUNCIONALIDADE, COM UMA VISÃO EXTERNA, SEM SE BASEAR EM QUALQUER CONHECIMENTO DO CÓDIGO.
O PROCESSO DE TESTE ENVOLVE BASICAMENTE EM:
Modelo V um dos mais adotados para o teste de software. Esse modelo considera as principais fases do processo de software, associando a cada fase o nível de teste de software correspondente.
ENTÃO TEMOS AS FASES DO PROCESSO COMO:
A DEFINIÇÃO NO CASO DE ERROS DE PROGRAMAS É DEPENDENTE DE FATORES HUMANOS, A CONSTRUÇÃO PODE ESTAR CORRETA, MAIS A PESSOA QUE TESTE E OU O USUÁRIO QUE USA ACHA QUE NÃO ESTÁ BOM E APONTA COMO UM PROBLEMA A SER CORRIGIDO.
O LIVRO SUGERE UM RELATÓRIO DE DEFEITOS, PARA COMUNICAÇÃO DOS DEFEITOS ENCONTRADOS.