testes de software. o que é? u É o processo de investigação técnica com intuito de identificar...

19
Testes de Software

Upload: internet

Post on 22-Apr-2015

104 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Testes de Software. O que é? u É o processo de investigação técnica com intuito de identificar a qualidade, a segurança e a exatidão do software desenvolvido

Testes de Software

Page 2: Testes de Software. O que é? u É o processo de investigação técnica com intuito de identificar a qualidade, a segurança e a exatidão do software desenvolvido

Testes de Software

O que é?

É o processo de investigação técnica com intuito de identificar a qualidade, a segurança e a exatidão

do software desenvolvido.

A validação do software tem como objetivo mostrar que um sistema encontra-se conforme sua

especificação e satisfaz os requisitos do cliente

Page 3: Testes de Software. O que é? u É o processo de investigação técnica com intuito de identificar a qualidade, a segurança e a exatidão do software desenvolvido

Testes de Software Relação com Outras Disciplinas  

A disciplina Teste relaciona-se a outras disciplinas. A disciplina Requisitos captura os requisitos do software, que representam uma das

bases principais para a identificação dos testes que devem ser executados. A disciplina Análise e Design determina o design adequado para o software. Essa é

outra base importante para a identificação dos testes que devem ser executados. A disciplina Implementação produz builds do software que são validados pela disciplina

Teste. Em uma iteração, vários builds são testados, geralmente um por ciclo de teste. A disciplina Ambiente desenvolve e mantém os artefatos de suporte usados durante o

teste, como o Guia de Teste e o Ambiente de Teste. A disciplina Gerenciamento planeja o projeto e o trabalho necessário em cada iteração.

Descrito em um Plano de Iteração, esse artefato é uma base importante para definir a missão de avaliação correta para o esforço de teste.

A disciplina Gerenciamento de Configuração e Mudança controla a mudança dentro da equipe de projeto. O esforço de teste verifica se cada mudança foi efetuada corretamente.

 

Page 4: Testes de Software. O que é? u É o processo de investigação técnica com intuito de identificar a qualidade, a segurança e a exatidão do software desenvolvido

Testes de Software

Objetivos para a realização de testes

Encontrar falhas que comprometam a confiabilidadeEncontrar diferenças da especificação originalAnalisar se o sistema está adequado ao usoAnalisar se o desempenho do sistema é satisfatórioEncontrar problemas nas interfaces com outros sistemasEncontrar problemas nas interfaces com equipamentos

Page 5: Testes de Software. O que é? u É o processo de investigação técnica com intuito de identificar a qualidade, a segurança e a exatidão do software desenvolvido

Testes de Software

Exemplos de tipos de falhas

EspecificaçãoEspecificação dos requisitosEspecificação do projeto e da arquitetura

ProjetoInterface com o usuárioInterface com outros sistemas ou hardwaresInterfaces entre módulos e classes

Modelos de dadosComunicação de dadosValidação de dados

Page 6: Testes de Software. O que é? u É o processo de investigação técnica com intuito de identificar a qualidade, a segurança e a exatidão do software desenvolvido

Testes de Software

Exemplos de tipos de falhas

Sincronização em processos distribuídosConformidade com padrõesCódigoLógicaCálculoManipulação de dadosImplementação de interfacesDocumentação incompleta ou incompreensívelDocumentação inconsistente

Page 7: Testes de Software. O que é? u É o processo de investigação técnica com intuito de identificar a qualidade, a segurança e a exatidão do software desenvolvido

Testes de Software

Base dos processos de testes

Formular um caso de teste segundo um critério estabelecido

Determinar os resultados esperados dos casos de testeRever os casos de teste e seus resultados esperadosComparar os resultados do teste com o resultado

esperadoExplicar os problemas encontrados de forma que possam

ser corrigidos no sistema

Page 8: Testes de Software. O que é? u É o processo de investigação técnica com intuito de identificar a qualidade, a segurança e a exatidão do software desenvolvido

Testes de Software

Técnicas de Testes

Caixa-Branca: Técnica de teste que avalia o comportamento interno do componente de software. Essa técnica trabalha diretamente sobre o código-fonte do componente de software para avaliar aspectos tais como: teste de condição, teste de fluxo de dados, teste de ciclos e teste de caminhos lógicos. Os aspectos avaliados nesta técnica de teste dependerão da complexidade e da tecnologia que determinarem a construção do componente de software.

A técnica de teste de Caixa-Branca é recomendada para as fases de Teste da Unidade e Teste da Integração, cuja responsabilidade principal fica a cargo dos desenvolvedores do software, que por sua vez conhecem bem o código-fonte produzido.

Page 9: Testes de Software. O que é? u É o processo de investigação técnica com intuito de identificar a qualidade, a segurança e a exatidão do software desenvolvido

Testes de Software

Técnicas de Testes

Caixa-Preta: Técnica de teste em que o componente de software a ser testado é abordado como se fosse uma caixa-preta, ou seja, não se considera o comportamento interno do mesmo (código-fonte). Dados de entrada são fornecidos, o teste é executado e o resultado obtido é comparado a um resultado esperado previamente conhecido. O componente de software a ser testado pode ser um método, uma função interna, um programa, um componente, um conjunto de programas ou componentes ou mesmo uma funcionalidade.

A técnica de teste de Caixa-preta é aplicável a todas as fases de teste: teste de unidade (ou teste unitário), teste de integração, teste de sistema e teste de aceitação.

Page 10: Testes de Software. O que é? u É o processo de investigação técnica com intuito de identificar a qualidade, a segurança e a exatidão do software desenvolvido

Testes de Software

Categorias

Estrutural (Caixa-branca)baseada no código

Funcional (Caixa-preta)baseada na especificação

Estatísticoenfoque na confiabilidade

Desempenho (performance)enfoque na medição de parâmetros de eficiência

Stressenfoque nos parâmetros de sobrecarga

Page 11: Testes de Software. O que é? u É o processo de investigação técnica com intuito de identificar a qualidade, a segurança e a exatidão do software desenvolvido

Testes de Software

Estratégias

Teste de Unidade Teste de Integração Teste de Sistema (aceitação)

Unidade Integração Sistema

Estrutural

Funcional

Performance

Stress

Estatístico

Page 12: Testes de Software. O que é? u É o processo de investigação técnica com intuito de identificar a qualidade, a segurança e a exatidão do software desenvolvido

Testes de Software

Estratégias

Teste de Unidade: Também conhecida como Teste Unitário. É a fase do processo de teste em que se testam as menores unidades de software desenvolvidas( pequenas partes ou unidades do sistema). Os alvos desse tipo de teste são os métodos dos objetos ou mesmo pequenos trechos de código. Assim, o objetivo é encontrar falhas de funcionamento dentro de uma pequena parte do sistema funcionando independentemente do todo. Cada parte do programa é isolada e testada afim de mostrar que funciona individualmente. O teste de unidade não detecta todos os erros de um programa, como por exemplo, erros de integração e problemas de performance. Além disso, pode não ser fácil antecipar todos os casos especiais de input que a “unidade” do programa pode vir a receber. Esse tipo de teste é eficaz apenas se for usado conjuntamente com outras atividades de teste do software.

Page 13: Testes de Software. O que é? u É o processo de investigação técnica com intuito de identificar a qualidade, a segurança e a exatidão do software desenvolvido

Testes de Software

Estratégias

Teste de Integração: Na fase de teste de integração, o objetivo é encontrar falhas provenientes da integração interna das unidades de um sistema. Geralmente os tipos de falhas encontradas são de envio e recebimento de dados. Por exemplo, um objeto A pode estar aguardando o retorno de um valor X ao executar um método do objeto B, porém este objeto B pode retornar um valor Y, gerando uma falha. Não faz parte do escopo dessa fase de teste o tratamento de interfaces com outros sistemas (integração entre sistemas). Essas interfaces são testadas na fase de teste de sistema, apesar de, a critério do gerente de projeto, estas interfaces poderem ser testadas mesmo antes de o sistema estar plenamente construído.

Page 14: Testes de Software. O que é? u É o processo de investigação técnica com intuito de identificar a qualidade, a segurança e a exatidão do software desenvolvido

Testes de Software

Estratégias

Teste de Sistema: Na fase de Teste de Sistema o objetivo é executar o sistema sob o ponto de vista do seu usuário final, varrendo as funcionalidades em busca de falhas. Os testes são executados em condições similares - de ambiente, interfaces sistêmicas e massas de dados - àquelas que um usuário utilizará no seu dia-a-dia de manipulação do sistema. De acordo com a política de uma organização, podem ser utilizadas condições reais de ambiente, interfaces sistemáticas e massas de dados.

Page 15: Testes de Software. O que é? u É o processo de investigação técnica com intuito de identificar a qualidade, a segurança e a exatidão do software desenvolvido

Testes de Software

Teste de Aceitação

 O teste de aceitação do "Usuário" normalmente é a ação de

teste final anterior à implantação do software. O objetivo do teste de aceitação é verificar se o software está pronto e pode ser usado pelos usuários finais para executar as funções e as tarefas para as quais o software foi criado.

 Há outras noções de teste de "aceitação", geralmente

caracterizadas por uma entrega de um grupo ou equipe para outro. Por exemplo, um teste de aceitação de build é o teste realizado para aceitar o encaminhamento de um novo build de software do desenvolvimento para o teste independente.

Page 16: Testes de Software. O que é? u É o processo de investigação técnica com intuito de identificar a qualidade, a segurança e a exatidão do software desenvolvido

Testes de Software

O Ciclo de Vida do Teste

No ciclo de vida do desenvolvimento de software do RUP, o software é refinado através de iterações. Nesse ambiente de processo, o ciclo de vida do teste tira proveito de uma abordagem iterativa equivalente.Em cada iteração, a equipe de desenvolvimento de software produzirá um ou mais Builds, cada um deles representando uma possível sugestão a ser testada. 

Page 17: Testes de Software. O que é? u É o processo de investigação técnica com intuito de identificar a qualidade, a segurança e a exatidão do software desenvolvido

Testes de Software

Fluxo de Trabalho

Page 18: Testes de Software. O que é? u É o processo de investigação técnica com intuito de identificar a qualidade, a segurança e a exatidão do software desenvolvido

Testes de Software

Visão geral das Atividades

Page 19: Testes de Software. O que é? u É o processo de investigação técnica com intuito de identificar a qualidade, a segurança e a exatidão do software desenvolvido

Testes de Software

Artefatos

Os artefatos desenvolvidos como produtos das atividades de teste e avaliação agrupados por papel de responsabilidade.