Você está na página 1de 36

Teste de Software

Integra mtodos de projeto de Testes em uma srie bem planejada de passos. Envolve: planejamento de testes, projeto de casos de teste, execuo de teste, coleta e avaliao de dados. Para que serve: descoberta de erros. Quem realiza: gerentes de projeto, especialistas em testes, engenheiros de software.

Atividades de Teste

Teste de Software
O teste requer mais esforo de projeto do que qualquer outra atividade no desenvolvimento. Como realizar: comear por pequenos componentes ou grupos de componentes relacionados partindo em direo do sistema completo. Identificao de erros na satisfao de requisitos do cliente. O que fazer no projeto de teste: - documentar a abordagem da equipe de teste,

Teste de Software
- descrever a estratgia global e o procedimento que define passos especficos de teste. O teste e a depurao so atividades diferentes, contudo a depurao faz parte do processo de teste. O teste engloba atividades de Verificao e Validao. Verificao: Estamos construindo o produto corretamente? Validao: Estamos construindo o produto certo?

Teste de Software
So atividades definidas pelo SQA (Software Quality Assurance) Inclui: revises tcnicas formais, auditoria de qualidade e configurao, monitoramento de desempenho, estudo de viabilidade, reviso de documentao, reviso de base de dados, anlise de algoritmos, teste de desenvolvimento, teste de usabilidade, teste de qualificao e teste de instalao.

Teste de Software
Realizado pelo prprio desenvolvedor que quer demonstrar que o sistema funciona, que atende aos requisitos e que a equipe cumpriu os prazos e custos. O cliente achar os erros. Implantao do ITG (Independent Test Group) envolve a participao do Engenheiro de Software Em aplicaes orientadas a objetos as tcnicas de descoberta de erros devem ser aplicadas s fases de anlise e projeto.

Teste de Software
A filosofia para testes de POO a mesma, da unidade para o todo. Testar classes com atributos e mtodos, bem como suas colaboraes. Estratgias para testar o software: 1) Especificar os requisitos antes de testar; 2) Detalhar os objetivos do teste (erros, desempenho), 3) Desenvolver um perfil para cada grupo de usurio,

Teste de Software
4) Teste de Ciclo rpido de incrementos de funcionalidade ou aperfeioamento de qualidade, 5) Utilizar tcnicas de teste automtico, 6) Usar revises tcnicas formais antes de realizar o teste, 7) Desenvolver uma abordagem de aperfeioamento contnuo para o processo de teste.

Teste de Software
Teste de Software Convencional: A) Teste de Unidade (componente, mdulo, funo, estrutura de dados) Garantia de que a informao flui adequadamente na unidade. Criao de interfaces para os mdulos necessria. Casos de teste devem: comparar tipos de dados diferentes, verificar operadores,

Teste de Software
Teste de Software Convencional: A) Teste de Unidade (componente, mdulo, funo, estrutura de dados) ... verificar precedncia lgica, comparar variveis, terminao de ciclo, falha na sada. Realizar testes nos limites: no n-simo elemento e na i-sima repetio. B) Teste de Integrao: teste para descoberta de erros associados s interfaces das unidades.

Teste de Software
Teste de Software Convencional: B) Teste de Integrao: A integrao dos componentes deve ser feita de maneira incremental, sendo testada a cada nova integrao. O processo de integrao realizado em cinco passos: 1) O mdulo de controle principal usado de pseudo-controlador do teste.

Teste de Software
Teste de Software Convencional: B) Teste de Integrao: 2) Componentes de teste so inseridos um por vez ao pseudo-controlador. 3) Testes so realizados medida que cada componentes inserido 4) Ao trmino de cada conjunto de testes, o componente real inserido. 5) O teste de regresso realizado para garantir que novos erros no foram inseridos.

Teste de Software
Teste de Software Convencional: B) Teste de Integrao: Teste de Integrao para sistemas OO: Baseado no caminho de execuo, integra um conjunto de classes necessrias para responder a uma entrada ou a um evento do sistema. Teste de classes servidoras e classes dependentes.

Teste de Software
Teste de Software Convencional: C) Teste de Validao: Comea no fim do deste de integrao, quando componentes individuais j foram testados, os erros de componentes e interfaces foram descobertos e corrigidos. Validao quando o software roda segundo o esperado pelo cliente. Critrios de validao: conformidade com os requisitos, casos de teste, requisitos de desempenho, documentao, usabilidade, manutenibilidade, interoperabilidade.

Teste de Software
Teste de Software Convencional: C) Teste de Validao: necessrio a verificao da aceitao do cliente, conduzido pelo usurio final. Realizao de testes betas: realizados nas instalaes dos clientes. Teste de Recuperao: forar o sistema a falhar e verificar se a recuperao bem sucedida.

Teste de Software
Teste de Software Convencional: Teste de Segurana: verificar se os mecanismos de proteo vo de fato proteger o sistema. Teste de Estresse: executar o sistema de tal forma que demande recursos em quantidade, volume ou frequncia anormais. Teste de Desempenho: sobretudo para sistemas de tempo real.

Tcnicas para o Teste de Software


Caractersticas que levam um software a ser testvel [Bach]: Operabilidade: quanto melhor funciona, mais eficientemente pode ser testado. Observabilidade: o que voc v o que voc testa. Estados e variveis de sistema devem ser visveis execuo. Controlabilidade: quanto melhor se pode controlar o software, mais o teste pode ser automatizado. Decomponibilidade: controlando o escopo do teste, pode-se isolar problemas mais rapidamente.

Tcnicas para o Teste de Software


Caractersticas que levam um software a ser testvel [Bach]: Simplicidade: quanto menos houver a testar, mais rapidamente podemos test-lo. Estabilidade: quanto menos modificaes, menos interrupes nos testes. Compreensibilidade: quanto mais informaes temos, mais racionalmente vamos testar.

Tcnicas para o Teste de Software

Tcnicas para o Teste de Software


I) Teste Caixa-Preta: refere-se aos testes realizados na interface do software. Examina os aspectos funcionais, pouco levando em considerao a estrutura interna do software. II) Teste Caixa-Branca: baseado em um exame rigoroso do detalhe procedimental. Teste de caminho bsico uma tcnica de teste caixa-branca proposta por McCabe. Define um caminho bsico de execuo baseado em um projeto procedimental.

Tcnicas para o Teste de Software


I) Teste Caixa-Preta: refere-se aos testes realizados na interface do software. Examina os aspectos funcionais, pouco levando em considerao a estrutura interna do software. II) Teste Caixa-Branca: baseado em um exame rigoroso do detalhe procedimental. Avaliao interna do comportamento do componente de software. Analisa o cdigo-fonte e elabora casos de teste que cubram todas as possibilidades do componente de software.

Tcnicas para o Teste de Software


Teste de caminho bsico: necessrio a representao de um fluxo de controle, chamado de grafo de fluxo. Teste do Ciclo: uma tcnica de teste caixabranca que focaliza exclusivamente a validade de construes do ciclo. Ciclos podem ser: simples, concatenados, aninhados, desestruturados.

Tcnicas para o Teste de Software


Teste do Ciclo: Exemplo de teste aplicado a um ciclo simples: Pule o ciclo completamente; Apenas uma passagem pelo ciclo; N Passagens pelo ciclo; M passagens pelo ciclo em que M<N

Teste de Mutao
Definio: uma metodologia de teste de software que executa dois ou mais programas mutantes contra o mesmo conjunto de teste para avaliar sua habilidade em detectar alteraes. uma tcnica baseada em defeitos. Os casos de teste devem mostrar diferena resultados diferentes entre o programa original e o programa mutante.

Teste de Mutao
Realizao do Teste: Cada mutante determina um subdomnio do domnio de entrada, formado por dados que possam ser modificados pelo programa original e pelo programa mutante. Cada subdomnio tem a finalidade de revelar um defeito especfico. Mutantes podem ser automaticamente criados de uma ferramenta de teste de mutao.

Teste de Mutao
Um operador mutante um conjunto de instrues que realizam uma mudana simples no cdigo fonte da aplicao. Exemplo: Mudana de um operador AND para o operador OR. O Teste te mutao de alto custo e para casos especficos. Determinados mutantes podem no serem detectados pelo conjunto de testes.

Teste de Mutao
Mutante: Programa original modificado Operador de Mutao: Definio de uma transformao (de original para mutante) Mutante morto: Quando a sute de teste consegue distinguir mutante do original Mutante sobrevivente: No morto (acima) Mutante equivalente: Semntica do mutante equivalente ao original

Teste de Mutao
Cada mutante um cpia do programa original com uma mudana atmica. A ferramenta de mutao pode re-compilar o cdigo mutante automaticamente. As mudanas atmicas so baseadas em duas ideias: - A Hiptese do Programador Competente; desenvolvimento de um software prximo do correto. - Efeito de Acoplamento: os casos de teste que distinguem programas com poucas modificaes, podem distinguir programas com modificaes mais complexas.

Teste de Mutao
Os operadores so classificados de acordo com as construes da linguagem. Ex: Em java, pode-se substituir a chamada um mtodo de uma classe por um mtodo similar. Se o conjunto de testes de sada forem os mesmos, tanto do programa original quanto do mutante, significa que o mutante escapou o caso de testes.

Teste de Mutao
Segundo Offut, Ma e Kwon: o teste de mutao classificado em quatro tipos de atividades: definio dos operadores de mutao, desenvolvimento dos mutantes, descoberta de caminhos para reduo de custos na anlise da mutao e experimentos com a mutao. Mutao Fraca [Jorgensen, Erickson]: um programa composto por uma srie de componentes que correspondem a estruturas computacionais elementares (referncia a uma varivel, expresso aritmtica ou booleana).

Teste de Mutao
Fundamento Terico: Um conjunto de testes T adequado para um programa P em relao a um conjunto A de programas alternativos, se para cada programa P pertencente a A, P difere de P em pelo menos um caso de teste.

Teste de Mutao
Segundo Maldonado et al., um teste de mutao realizado atravs dos seguintes passos; Gerao dos mutantes; Execuo do Programa Original; Execuo dos Mutantes; Anlise dos Mutantes.

Teste de Mutao
Ferramentas: FMS (Fortran Mutation System), CMS ( Cobol Mutation Systems) EXPER (Experimental Mutation System) Mothra (Fortran) Proteum (Linguagem C) Jumble Tool for Junit Test MuJava MuClipse (plugin Eclipse) adaptao do MuJava Jester for JUnit

Teste de Mutao
Jumble Realiza testes de mutao em cdigo Java Emula os operadores usados pelo Mohtra executado atravs de linhas de comando e produz um arquivo de sada textual. A descrio do operador de mutao que foi utilizado registrada. Permite a execuo do teste de mutao em mltiplas classes Java.

Teste de Mutao
Jumble Operadores de Mutao Jumble

Teste de Mutao
MuJava Fornece operadores de mutao nvel de mtodos e de classe. Teste realizado em mtodos pblicos contendo a palavra test em sua assinatura. Armazena e mostra os valores de retorno destes mtodos de teste.