Fundamentos de Engenharia de SW

Slides:



Advertisements
Apresentações semelhantes
Gerenciamento de Projetos
Advertisements

Introdução a Algoritmos
Metodologia de testes Nome: Gustavo G. Quintão
Gerenciamento do escopo
Adélia Barros Testes de Software Adélia Barros
Estratégias de Teste de Software
Rational Unified Process
Débora da Silva Orientadora: Maria Inés Castiñeira
Engenharia de Software
Teste de Software.
Projeto conceitual Mostra ao cliente exatamente o que o sistema fará
Testando o sistema Teste funcional: o sistema integrado realiza as funções especificadas nos requisitos? Teste de desempenho: os requisitos não-funcionais.
Prentice Hall Engenharia de Software: Teoria e Prática Shari Lawrence Pfleeger Capítulo 8 Defeitos e falhas de software Especificação errada: pode não.
Engenharia de Software
Tópicos Motivação para teste Por que algumas empresas não testam
Rational Unified Process(RUP)
INTRODUÇÃO A INFORMÁTICA
FACULDADE DOS GUARARAPES
Processos de Desenvolvimento de Software
Qualidade de Software Aula 2
Processo Desenvolvimento de Software Tradicional
SISTEMA DE INFORMAÇÕES DESENVOLVIMENTO DE SISTEMAS
PHD 5729 SIMULAÇÃO HIDROLÓGICA
Abordagem Estratégica ao Teste de Software
TIPOS DE TESTES APLICÁVEIS E NÃO APLICÁVEIS AO PROJETO
TSDD Teste de segurança durante o desenvolvimento.
Testes – visão geral Vanilson Burégio.
Introdução aos conceitos de Teste de Software
José Roberto Blaschek Gerência do Escopo José Roberto Blaschek.
REDUNDÂNCIA POR SOFTWARE
Desafios do desenvolvimento de software
Fundamentos de Engenharia de SW
IEEE Std IEEE Melhores Práticas para Especificações de Requisitos de Software (ERS)
Engenharia de Software com o RUP - Workflow de Testes Parte I
Introdução e Fundamentos Engenharia de Requisitos
Modelos de Processo de Software
Engenharia de Software
PSBD II Projeto de Sistemas de Banco de Dados II
Processo de Aquisição Adilson de Almeida Cezar Meriguetti
Etapas do Projeto DC.IC.15 Data Revisão: 07/04/2017 Início Fim
Marcio de Carvalho Victorino Processo Unificado. Unidade VI: Teste.
GESTÃO DE PROJETOS DE MANUTENÇÃO
Teste de Software Técnicas para a validação de sistemas de software
Teste de Software Conceitos iniciais.
Análise e Projeto de Sistemas UNIVERSIDADE DE CRUZ ALTA Ciência da Computação 2010/1.
Qualidade de Software Aula 4
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.
Engenharia de Software II
Gestão de defeitos.
Introdução a Teste de Software
Processos de Software.
Processos de Software.
Teste de Integração, Sistema e Aceitação
PROCESSO DE DESENVOLVIMENTO DE SOFTWARE AULA 5
Gestão de projetos de Software GTI-16
1/29 Teste de Integração, Sistema e Aceitação Alexandre Vasconcelos
Engenharia de Software
Profa. Reane Franco Goulart. É uma representação de engenharia de algo que vai ser construído. Para a engenharia de software o projeto foca em quatro.
Qualidade de Produtos de Software
Engenharia de Software
APSI II Análise e Projeto de Sistemas de Banco de Dados II.
RUP – Rational Unified Process Márcia Seabra Cabral Prof. Augusto Sampaio Centro de Informática - UFPE.
Engenharia de Software
ISO9001:2000 para Software Professor: Alexandre Vasconcelos Equipe: Amanda Pimentel Börje Karlsson Danielly Karine Erika Pessoa Jorge Cavalcanti Jose Edson.
Estimativa, Teste e Inspeção de Software
Processos de Software Ludimila Monjardim Casagrande 1º Semestre Desenvolvimento e Qualidade.
TESTES DE SOFTWARE – AULA 1 Prof. Me. Ronnison Reges Vidal
Testes de Unidade. 2 Pauta Testes de Unidade; Testes de Unidade; Desenvolvimento orientado a testes; Desenvolvimento orientado a testes; Testes unitários.
CMMI Capability Maturity Model Integration
Transcrição da apresentação:

Fundamentos de Engenharia de SW Estratégias de Teste de SW

Características genéricas Desde nível de componentes até o sistema; Técnicas distintas para momentos diferentes; Executados tanto pelo desenvolvedor como por grupo independente; depuração deve fazer parte de qualquer estratégia de teste.

Verificação e validação Teste faz parte de uma atividade mais ampla conhecida como V & V; V & V trata de: atividades de controle de qualidade do software revisões formais, simulação, análise de algoritmo, testes de desenvolvimento, etc.); Testes constituem o último mecanismo para garantir a qualidade ; A qualidade é incorporada ao longo de um processo certificada durante os testes.

Verificação e validação Estamos produzindo o produto de forma correta? “Are we building the product right?” Validação: Estamos produzindo o produto correto? “Are we building the right product ?”

Organizando os testes Conflito de interesses: desenvolvedores testam para mostrar que o programa funciona e não para encontrar erros. Psicologicamente: desenvolver é construtivo e testar é destrutivo; O desenvolvedor deve ser o responsável pelos testes individuais dos componentes; A função do grupo independente de teste (ITG) é eliminar o conflito de interesses. São pagos para encontrar erros; O ITG deve trabalhar em conjunto com a equipe desenvolvimento do projeto.

Uma Estratégia 4 etapas executadas sequencialmente: Testes de unidade: Foco em cada componente individual, garantindo que a função apropriada de cada componente está sendo realizada; Testes de integração: Foco na verificação e construção do programa, resultado da integração dos componentes; Testes de validação: Foco na validação dos requisitos funcionais, de comportamento, e de desempenho; Testes de sistema: Uma vez validado, o software deve ser combinado com outros elementos (hardware, pessoas, dados). Verifica que a função/desempenho do sistema como um todo é alcançada.

Critério de finalização dos testes Como saber que os testes executados foram suficientes? Algumas respostas: Os testes nunca terminam. Apenas ocorre uma transferência do ônus de testar, do desenvolvedor para o usuário; Os testes terminam quando acaba o prazo e/ou o dinheiro; Aproximações empíricas buscam modelar falhas como uma função do tempo de execução. A idéia é prever o tempo total necessário para a execução de testes, de modo a atingir um nível de confiabilidade aceitável.

Questões fundamentais Quantificar os requisitos do produto antes do início dos testes; Explicitar os objetivos dos testes; Desenvolver um perfil para cada categoria de usuário; Desenvolver um plano de testes que enfatize ciclos curtos; Construir software robusto que seja capaz de se auto-testar; Utilizar revisões formais como um filtro antes dos testes; Realizar revisões formais de modo a garantir a própria estratégia de teste; Aplicar melhorias contínuas ao processo de testes.

Testes de Unidade (1) Tem como foco a menor unidade do software (componente ou módulo); testes caixa branca podem ser executados em paralelo para vários módulos; Tipos de testes: Interface do módulo (fluxo de informação que entra e sai da unidade); Dados locais devem manter a sua integridade durante toda a execução do algoritmo; Condições de contorno são testadas para garantir a operação do módulo dentro dos limites e restrições estabelecidas; Todos os caminhos possíveis na estrutura de controle devem ser executados ao menos uma vez; Os tratamentos de erros devem ser testados.

Testes de Unidade (2) Procedimentos Criação dos casos de teste e feita após codificacao. caso de teste deve especificar os resultados esperados; Módulos não são programas stand-alone desenvolver “drivers” e “stubs”; O teste de unidade é simplificado quando um componente possui alta coesão.

Testes de Integração (1) construir a estrutura de uma programa, ao mesmo tempo que são executados testes de interface; integração incremental. testar em pequenos incrementos torna mais fácil isolar e corrigir erros.

Integração top-down Módulos são integrados a partir de um programa principal, em direção aos sub-módulos. O processo de integração: O módulo principal é utilizado como um Driver e stubs são substituídos para todos os componentes diretamente subordinados Stubs subordinados são substituídos, um por vez, pelos componentes reais; Testes são realizados em cada componente integrado; Testes de regressão garantir que novos erros não tenham sido introduzidos.

Integração top-down (2) Problema: processamento em níveis inferiores é necessário para testar níveis superiores. 3 escolhas: Postergar os testes, até que os stubs possam ser substituídos pelos módulos reais (dificulta identificação das causas de erros); Desenvolver stubs que simulem o módulo real (trabalhoso); Passar para estratégia Bottom-up.

Integração bottom-up Inicia com os módulos atômicos. elimina a necessidade dos stubs; Etapas: Componentes de baixo nível são agrupados; Driver é desenvolvido para testar entrada/saída; O agrupamento é testado; Drivers são removidos e os agrupamentos combinados.

Regressão Repetição de um conjunto de testes já realizado visa garantir que mudanças no software não introduzam efeitos indesejados ou erros adicionais; 3 categorias: Um conjunto representativo para testar todas as funções do software; Testes para as funções mais afetadas pelas alterações Testes para os componentes que sofreram modificações.

Smoke Testing Estratégia para o teste de integração muito usada em projetos com prazos críticos. atividades: Componentes codificados são integrados em um “pacote”. O pacote inclui todos os componentes necessários para implementar uma ou mais funções do produto; Testes são criados para identificar erros que vão impedir os “pacotes” de executarem as suas funções; Pacotes são integrado a outros “pacotes” e o produto é testado diariamente. Benefícios: Mnimiza riscos de Integração; Melhora a qualidade do produto final; Facilita o diagnóstico e a correção de erros ; Facilta estimativa de progresso.

Documentação Plano de testes Procedimento de testes Histórico descreve a estratégia de integração como um todo, incluindo o cronograma de integração, a descrição de overhead (stubs e drivers), o ambiente de testes, recursos envolvidos, bem como ferramentas e técnicas utilizadas Procedimento de testes a sequência de integração e os testes correspondentes a cada fase da integração são descritos. Uma lista de todos os casos de teste e os resultados esperados deve ser incluída; Histórico resultados dos testes, problemas, ou peculiaridades devem ser registrados

Testes de Validação Objetivo: demonstrar a conformidade com os requisitos. Após validação: Existe conformidade com a especificação; Desvios são descobertos e uma lista de defeitos é criada. Erros nesta fase raramente são corrigidos antes da entrega do produto. É necessário negociar com o cliente um método para resolver os problemas. Testes Alfa e Beta: usados para identificar erros que apenas os usuários estão aptos a descobrir.

Testes de Sistema Recuperação; Segurança; Carga; Desempenho. Após validação software deve ser combinado com outros elementos: hardware, pessoas, dados. Verifica que a função/desempenho do sistema como um todo é alcançada. Tipos de testes de Sistema: Recuperação; Segurança; Carga; Desempenho.

Depuração A depuração tem como objetivo encontrar e corrigir as causas dos erros de um software. Depurar não é testar, mas sim uma consequência dos mesmos. Formas de depuração: Força bruta; “Backtracking”; Eliminação da causa.