Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Aula12 TEES UFS Testes de SW

847 views

Published on

Aula12 TEES UFS Testes de SW

  • Be the first to comment

  • Be the first to like this

Aula12 TEES UFS Testes de SW

  1. 1. Testes de SW Aula 12
  2. 2. Sumário <ul><li>Objectivos e Responsáveis </li></ul><ul><li>Princípios dos Testes </li></ul><ul><li>Software fácil de testar </li></ul><ul><li>Desenho de casos de teste </li></ul><ul><li>Testes </li></ul><ul><ul><li>Caixa Branca </li></ul></ul><ul><ul><li>Caminho básico </li></ul></ul><ul><ul><li>Estrutura de controlo </li></ul></ul><ul><ul><li>Caixa preta </li></ul></ul><ul><ul><li>Ambiente, arquitectura e aplicações </li></ul></ul><ul><ul><li>OO </li></ul></ul>
  3. 3. Objectivos e Responsáveis <ul><li>Descobrir erros </li></ul><ul><ul><li>Um bom teste tem uma alta probabilidade de detectar erros não descobertos </li></ul></ul><ul><ul><li>Um teste tem sucesso SE descobrir um erro não detectado </li></ul></ul><ul><li>Quem faz </li></ul><ul><ul><li>Engenheiros de SW </li></ul></ul><ul><ul><li>Testadores </li></ul></ul><ul><ul><ul><li>Engenheiros de SW especialistas em testes </li></ul></ul></ul>
  4. 4. Princípios <ul><li>Os testes deviam detectar desde erros de código até a satisfação de requisitos </li></ul><ul><li>Devem ser planificadas </li></ul><ul><li>Isolar módulos “suspeitos” e testá-los aprofundadamente </li></ul><ul><li>Começar pelos módulos e terminar no sistema inteiro </li></ul><ul><li>Não é possível fazer testes exaustivos </li></ul><ul><li>Realizados por equipas independentes </li></ul>
  5. 5. Software fácil de testar - características <ul><li>Observabilidade (o que você vê é o que você testa) </li></ul><ul><ul><li>Saída diferente para cada entrada </li></ul></ul><ul><ul><li>Estados e variáveis do sistema podem ser consultados durante a execução </li></ul></ul><ul><ul><li>Estados e variáveis do sistema antigos podem ser consultados (registos de transacção) </li></ul></ul><ul><ul><li>Todos os factores que afectam os resultados são visíveis </li></ul></ul><ul><ul><li>Um resultado incorrecto identifica-se com facilidade </li></ul></ul><ul><ul><li>Os erros internos detectam-se automaticamente </li></ul></ul><ul><ul><li>O código fonte é acessível </li></ul></ul>
  6. 6. <ul><li>Controlabilidade (quanto + controlável, + automatizável e optimizável) </li></ul><ul><ul><li>Todos os resultados possíveis gerados através da combinação de entradas </li></ul></ul><ul><ul><li>Estados e variáveis do sistema são controláveis pelo programador </li></ul></ul><ul><ul><li>Formatos de E/S são estruturados e consistentes </li></ul></ul><ul><ul><li>Os testes podem especificar-se, automatizar-se e reproduzir-se convenientemente </li></ul></ul><ul><li>Modularidade (controlando o âmbito dos testes, os problemas podem ser isolados) </li></ul><ul><ul><li>O sistema está construído em módulos independentes </li></ul></ul><ul><ul><li>Os módulos podem ser testados independentemente </li></ul></ul>Software fácil de testar - características
  7. 7. <ul><li>Simplicidade (há menos que testar) </li></ul><ul><ul><li>Simplicidade funcional (características mínimas) </li></ul></ul><ul><ul><li>Simplicidade estrutural (que impede propagação de falhas) </li></ul></ul><ul><ul><li>Simplicidade do código (selecção de standards, boas práticas de programação) </li></ul></ul><ul><li>Estabilidade (menos mudanças) </li></ul><ul><ul><li>Mudanças não frequentes </li></ul></ul><ul><ul><li>Mudanças controladas </li></ul></ul><ul><ul><li>Mudanças não invalidam testes </li></ul></ul><ul><ul><li>O software lida bem com as falhas </li></ul></ul>Software fácil de testar - características
  8. 8. <ul><li>Facilidade de compreensão (+informação, melhores testes) </li></ul><ul><ul><li>O Desenho foi compreendido </li></ul></ul><ul><ul><li>Dependências entre componentes internos foi compreendida </li></ul></ul><ul><ul><li>Mudanças ao desenho foram comunicadas </li></ul></ul><ul><ul><li>Documentação técnica acessível instantaneamente, está bem organizada, é exacta, específica e detalhada. </li></ul></ul><ul><li>Operatividade (quanto melhor funcionar, + eficientemente se pode testar) </li></ul><ul><ul><li>Tem poucos erros </li></ul></ul><ul><ul><li>Os erros não bloqueiam a execução dos testes </li></ul></ul><ul><ul><li>O produto evolui em fases </li></ul></ul>Software fácil de testar - características
  9. 9. Desenho de casos de teste <ul><li>Caixa preta </li></ul><ul><ul><li>Testes sobre as interfaces do Produto de SW </li></ul></ul><ul><li>Caixa branca </li></ul><ul><ul><li>Testes sobre os detalhes dos procedimentos de cada função </li></ul></ul>Conhecemos a função específica para a qual foi desenhado o produto. Podemos levar a cabo Testes que demonstram que cada função está completamente operacional. Conhecemos o funcionamento do produto. Podemos desenvolver testes que asseguram que “todas as peças se encaixam”. Ou seja, que a operação interna se ajusta às especificações e que todos os componentes internos foram comprovados de maneira adequada.
  10. 10. casos de teste de Caixa Branca <ul><li>garantem o exercício de: </li></ul><ul><ul><li>Todos os caminhos independentes são utilizados </li></ul></ul><ul><ul><li>Todas as vertentes falsas e verdadeiras das decisões lógicas </li></ul></ul><ul><ul><li>Todos os ciclos nos seus limites </li></ul></ul><ul><ul><li>Todas as estruturas internas de dados </li></ul></ul><ul><li>Permitem ver </li></ul><ul><ul><li>Erros lógicos e supostos incorrectos </li></ul></ul><ul><ul><li>Fluxo lógico real dum programa </li></ul></ul><ul><ul><li>Erros tipográficos </li></ul></ul><ul><li>Porém </li></ul><ul><ul><li>os testes exaustivos apresentam problemas logísticos tornando estes testes impossíveis para grandes sistemas de SW </li></ul></ul><ul><li>Devemos, então, seleccionar quais são os caminhos lógicos mais importantes </li></ul>
  11. 11. Teste do caminho básico <ul><li>É uma técnica de teste de caixa branca </li></ul><ul><li>Medida da complexidade lógica </li></ul><ul><li>Mede o nº de caminhos independentes </li></ul><ul><li>Os casos de teste obtidos por este método garantem que cada instrução seja executada pelo menos 1 vez </li></ul><ul><li>Pode tornar-se impossível, se o sistema for muito grande.. </li></ul>
  12. 12. Testes da estrutura de controlo <ul><li>Auxiliam as técnicas de Testes de Caixa Branca </li></ul><ul><li>Teste da condição </li></ul><ul><li>Teste de fluxos de dados </li></ul><ul><ul><li>caminhos de teste segundo a localização das definições e usos das variáveis </li></ul></ul><ul><li>Testes de ciclos </li></ul><ul><ul><li>Passar por alto </li></ul></ul><ul><ul><li>Passar 1 vez </li></ul></ul><ul><ul><li>Passar 2 vezes </li></ul></ul><ul><ul><li>Fazer m passos com m<n </li></ul></ul><ul><ul><ul><li>exemplo: se o ciclo executa 10 laços, testamos até o laço 3.. </li></ul></ul></ul><ul><ul><li>Fazer n-1, n e n+1 </li></ul></ul><ul><ul><ul><li>exemplo: se o ciclo executa 10 laços, testamos 9, 10 e forçamos 11 laços .. </li></ul></ul></ul>
  13. 13. casos de testes de Caixa Preta - várias técnicas <ul><li>Métodos baseados em grafos </li></ul><ul><ul><li>Entender os objectos de dados modelados e as suas relações </li></ul></ul><ul><ul><li>Definir uma série de testes que verifiquem “que todos os objectos possuem as relações esperadas entre eles” </li></ul></ul><ul><ul><li>Criar um grafo </li></ul></ul><ul><ul><ul><li>uma colecção de nós que representa os objectos </li></ul></ul></ul><ul><li>Método da Partição equivalente </li></ul><ul><li>Método da Análise de valores limites </li></ul><ul><li>Testes de comparação </li></ul><ul><li>Testes da tábua ortogonal </li></ul><ul><ul><li>Domínos de problemas pequenos </li></ul></ul><ul><ul><li>Mas que exigem muitas provas exaustivas </li></ul></ul>
  14. 14. E ainda: Testes de ambientes, arquitecturas e aplicações <ul><li>Testes de interfaces </li></ul><ul><li>Testes de arquitectura cliente/servidor </li></ul><ul><li>Testes da documentação e facilidades de ajuda </li></ul><ul><li>Testes de sistemas a tempo-real </li></ul>
  15. 15. próxima aula teórica
  16. 16. Testes OO <ul><li>Processos de SW OO: </li></ul><ul><ul><li>quando concluir uma iteração de AOO, DOO e Testes OO? </li></ul></ul><ul><li>Testes OO para a Lacertae SW </li></ul>

×