• Nenhum resultado encontrado

Engenharia de Software I ADS teste software

N/A
N/A
Protected

Academic year: 2018

Share "Engenharia de Software I ADS teste software"

Copied!
20
0
0

Texto

(1)
(2)

Garantia de Qualidade de Software

É um conjunto de

atividades técnicas

aplicadas durante

todo

o

processo de desenvolvimento.

• O objetivo é garantir que tanto o processo de desenvolvimento quanto o produto de software atinjam níveis de qualidade especificados.

• VV&T - Verificação, Validação e Teste.

Verificação: Assegurar consistência, completitude e corretitude do

produto em cada fase e entre fases consecutivas do ciclo de vida do

software.

“Estamos

construindo corretamente o

produto?”

. (inspeção,

revisão de produtos e

“walkthroughs”

).

Validação: Assegurar que o produto final corresponda aos requisitos do

software.

(3)

Qualidade de Software

Conformidade com requisitos funcionais e de desempenho,

padrões de desenvolvimento documentados, e características

implícitas esperadas de todo software profissionalmente

desenvolvido

.

Definições (terminologia)

Defeito Erro Falha

Defeito:

deficiência mecânica ou algorítmica

que se ativada pode

levar a um erro ou a uma falha.

resultado de um erro encontrado num código ou num documento;

Erro: item de informação ou estado de execução inconsistente.

engano cometido por seres humanos;

(4)

Definições (terminologia)

Exemplo: A aplicação entra em looping infinito, devido a um erro de lógica, ocasionando o

travamento da mesma.

No exemplo acima citado, o defeito é o looping infinito, que foi causado devido a um erro de lógica do programador e a falha é o travamento da aplicação.

(5)

Mitos sobre TESTABILIDADE

Alguns mitos sobre testabilidade atrasam seu uso nos projetos:

Mito: A testabilidade é cara.

A testabilidade não precisa ser cara. Um pequeno investimento durante a fase de projeto pode trazer grandes melhorias na detecção de falhas.

Mito: A testabilidade pode ser um plug-in.

A testabilidade precisa ser gradualmente incluída.

Mito: Aplicações de baixo custo não podem gastar com testabilidade

(6)

Defeitos no Processo de Desenvolvimento

 A maior parte é de origem humana;

 São gerados na comunicação e na transformação de informações; (Principal causa: tradução incorreta de informações);

 Permanecem presentes nos diversos softwares produzidos e liberados - (10 defeitos a cada 1000 linhas de código);

 Quanto antes a presença do defeito for revelada, menor o custo de correção do defeito e maior a probabilidade de corrigi-lo corretamente;

 Solução: introduzir atividades de VV&T ao longo de todo o ciclo de desenvolvimento;

Teste e Depuração

Teste: Processo de executar um programa com o objetivo de revelar a presença

de defeitos. Contribui para

aumentar a confiança

de que o software desempenha

as funções especificadas.

Depuração: é uma conseqüência não previsível do teste. Após revelada a

presença do defeito, ele deve ser encontrado e corrigido;

(7)

Teste de Software

Principal Objetivo: certificar-se de que o produto está correto.

Determinar entradas que façam as saídas obtidas diferirem das saídas

esperadas segundo a especificação (busca de um contra-exemplo);

Testes devem ser planejados antes de serem iniciados;

Testes devem ser realizados dos aspectos menos críticos aos mais críticos;

Testes devem ser realizados por diferentes pessoas (principalmente por

pessoas que não participaram do desenvolvimento);

Testes exaustivos não são possíveis;

É um processo destrutivo, sob o ponto de vista psicológico, contrariamente

às demais fases da Engenharia de Software, onde constrói-se um produto;

(8)

Defeitos e erros no software não revelados

Falhas a se manifestarem na utilização

pelos

usuários e erros corrigidos

durante a manutenção

.

CUSTOS ALTÍSSIMOS!

(9)
(10)

Etapas de Teste

 GOT;

 Planejamento;

 Preparação do ambiente de teste;

 Especificação casos de teste;

 Execução;

 Análise de Resultados – Entrega.

Teste de

SW

teste de SW é o processo que visa a sua execução de forma controlada, com o objetivo de avaliar o seu comportamento baseado no que foi especificado.

Importância dos Testes

Segundo Martin & McClure:

 Manutenção contabiliza quase 67% dos custos totais de SW;

 20% do orçamento de manutenção é para corrigir defeitos;

 25% é gasto para adaptar programas a um novo hardware e SW;

 6% é gasto corrigindo documentações;

 4% é gasto na resolução de problemas de performance;

(11)

Automatização da Atividade de Teste

Ferramentas de Teste

Para a aplicação efetiva de um critério de teste faz-se

necessário o uso de ferramentas automatizadas que apoiem a aplicação desse critério.

Contribuem para reduzir as falhas produzidas pela intervenção humana;

Aumento da qualidade e produtividade da atividade de teste;

Aumento da confiabilidade do software

.

Estratégias de Teste

Relação entre o processo de

desenvolvimento e uma

(12)

aplicados nos menores componentes de código criados, visando garantir que

estes atendem as especificações, em termos de características e funcionalidade;

utiliza, em geral, as técnicas de teste estrutural;

verificam o funcionamento de um pedaço do sistema ou SW isoladamente ou que

possam ser testados separadamente, podendo, inclusive, ser um programa ou um

componente;

Estratégias de Teste

(13)

Constrói-se, de uma forma sistemática, a estrutura do programa

realizando, ao mesmo tempo, testes para detectar erros de interface;

Embora os módulos, depois do teste de unidade, funcionem

corretamente de forma isolada, o teste de integração é necessário pois

quando colocados juntos, várias situações inesperadas podem

acontecer;

Teste de

Integração -

Identificar erros associados às interfaces

entre os módulos do software.

(14)

O software está montado como um pacote e a validação do mesmo é

realizada através de uma série de testes caixa preta;

Teste de

Validação

Finalidade:

- demonstrar a conformidade aos requisitos funcionais e de desempenho

- verificar se a documentação está correta;

Duas possibilidades:

- aceito

- não está totalmente de acordo com os requisitos: negociar com o usuário.

(15)

Engloba o Teste de Aceitação: realizado pelo próprio usuário;

No caso de software desenvolvido para vários usuários:

- teste alfa: realizado pelo usuário no ambiente do desenvolvedor;

- teste beta: realizado pelo usuário em seu próprio ambiente;

Estratégias de Teste

Considera o software dentro do seu ambiente mais amplo (todos os aspectos de

interação, como outro hardware, software, pessoas, etc.

Corresponde a uma série de testes que tem por objetivo verificar se todos os

elementos do sistema foram integrados adequadamente e realizam corretamente

suas funções;

(16)

Teste de segurança:

tem por objetivo verificar se todos os mecanismos de proteção protegem realmente o software de acessos indevidos. Validam a capacidade de proteção do SW contra acesso interno ou externo não autorizados.

Teste de estresse ou carga:

tem por objetivo confrontar os programas com situações anormais de frequência, volume ou recursos em quantidade. Visam a avaliar a resposta de um SW sob uma pesada carga de dados, repetição de certas ações de entrada de dados, entrada de valores numéricos grandes, ou uma grande quantidade de usuários simultâneos para verificar o nível de escalabilidade, ou seja, o momento onde o tempo de resposta começa a degradar ou a aplicação começa a falhar. Estes testes devem ser aplicados durante os testes de sistema e são também são chamados de testes de estresse.

Teste de desempenho:

tem por objetivo testar o tempo de resposta do sistema e é aplicado, geralmente, para sistemas de tempo real. São também chamados de testes de

(17)

Funcional ou Teste Caixa Preta

:

visam verificar a funcionalidade e a aderência aos requisitos, em uma ótica externa ou do usuário, sem se basear em qualquer conhecimento do código e da lógica interna do componente testado (baseada na especificação do software).

Estrutural ou Teste Caixa Branca:

visam avaliar as clausulas de código, a lógica interna do componente codificado, as configurações e outros elementos técnicos (baseada numa implementação em particular).

Teste (tipos)

Testes estáticos:

avaliam toda a documentação do projeto, tais como modelos, requisitos, etc.

(18)

Testes de configuração:

verificam se o SW está apto a rodar em diferentes versões ou

configurações de ambientes (hardware e software), como por exemplo, diversos browsers

ou versões de browsers.

Teste (tipos)

Testes de usabilidade:

verificam o nível de facilidade de uso do SW pelos usuários.

Deve ser efetuado principalmente em aplicações Web, onde existe muita navegação entre

páginas. As telas de ajuda devem ser avaliadas quanto ao seu conteúdo e clareza de

linguagem, assim como as mensagens de erro. É um tipo de teste subjetivo, baseado nas

opiniões dos usuários obtido através de reuniões, entrevistas ou outras pesquisas. Não deve

ser alocado programadores ou a equipe de testes para realizar este tipo de teste.

(19)

Conclusões

 A atividade de teste é fundamental no processo de desenvolvimento de software (Qualidade do produto).

 Alto custo da atividade de teste.

 Desenvolvimento e utilização de ferramentas de teste.

 São cometidos muitos erros na fase de Análise de Requisitos.

 Erros permanecem latentes e tardam a ser detectados.

(20)

Referências Bibliográficas

R. Pressman,

Software Engineering - A

Pratitioner’s

Aproach

-

4th Edition - Mc. Graw-Hill, 1997.

S. Pfleeger,

Software Engineering - Theory and Practice

,

Prentice Hall,1998.

I. Jacobson, G. Booch eJ, Rumbaugh,

The Unified Software

Development Process

, Addison Wesley, 1999.

Referências

Documentos relacionados

Na atividade de hoje não será necessário duplicar o o projeto para sua conta pois não será necessário editar nada1. De toda maneira, você ainda pode duplicar o projeto caso

Em relação à ocupação da Casa das Retortas pela Fundação Patrimônio Histórico da Energia, manteve-se a Casa internamente como se encontra hoje, e aproveitou-se da

A finalidade do “Documento de Arquitetura de Software - DAS” é definir um modelo arquitetural para ser aplicado ao desenvolvimento dos jogos do Desafio SEBRAE, bem como

estabelece, promovendo a socialização dos saberes e o resgate do coletivo, base sobre a qual os membros tendem a expressar-se e identificar-se, apropriando-se de suas histórias,

– dificuldade em mensurar a dimensão do problema , em trabalhar a diversidade de manifestações no extenso território nacional e em pautar o assunto nos diferentes espaços públicos

Os dados do presente trabalho mostraram que os animais submetidos à dieta rica em carboidratos simples apresentaram menor massa corporal, no entanto, maior índice de adiposidade,

As estatísticas provam-nos que os perigos da hysterectomia augmentam á medida que nos ap- proximamos da região cervical; o tratamento ex- tra-peritoneal é por vezes impossível

Sete dias após o procedimento cirúrgico, a bandagem protetora foi retirada e os bovinos pertencentes ao GIII foram conduzidos, diariamente, a um pedilúvio contendo apenas água trocada