Qualidade de software. Prof. Emiliano Monteiro

Documentos relacionados
Teste de Software. Competência: Entender as técnicas e estratégias de testes de Software

Organização para Realização de Teste de Software

Engenharia de Software

Desenvolvimento de Software. Testes de Software. Tópicos da Aula. Onde estamos... Verificação x Validação. Testes de Software

TESTES DE SOFTWARE. Profa. Maria Auxiliadora

Engenharia de Software

Documento de Requisitos*

Introdução aos Testes de Software

CONTPATRI Plano de Garantia de Qualidade. Versão 1.1

Medições e métricas de software

Manutenção de Software. Engenharia de Software Profa. Dra. Elisa Yumi Nakagawa 1º semestre de 2015

Engenharia de Software I Processos de desenvolvimento de SW. profa. Denise Neves

ISO/IEC Prof. Alexandre Luís Franco

Manutenção de Software. Engenharia de Software Profa. Dra. Elisa Yumi Nakagawa 1º semestre de 2016

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE

TESTES DE SOFTWARE Lista de Exercício 01. Luiz Leão

1. Quando algo visível para os usuário finais é um desvio em relação ao especificado ou um comportamento não esperado, isso é chamado de:

Processos de software

Normas ISO:

Engenharia de Software

Teste de Software Básico

Teste de Software. Prof. Camila. Pedro de Assis Sobreira Jr.

Professor Emiliano S. Monteiro

Introdução a Teste de Software

Organização para Realização de Teste de Software Quando o teste se inicia há um conflito de interesses:

Verificação e Validação

Verificação e Validação (V & V)

QUALIDADE DE SOFTWARE. Prof. Emiliano Monteiro

Estratégias de Testes Parte I

SSC-546 Avaliação de Sistemas Computacionais

Teste de Software. Karen Frigo Busolin Novembro / 2010

Requisitos de Sistemas

Engenharia de Software.

TESTES DE SOFTWARE Unidade 1 Importância do Teste de Software. Luiz Leão

Análise e Projeto de Sistemas

ENGENHARIA DE SOFTWARE

FATORES E MÉTRICAS DE QUALIDADE

Segurança e Controle em Sistemas de Informação. Profa. Ellen Francine ICMC-USP

ISO/IEC 12207: Verificação, Validação e Testes

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE

QUALIDADE DE SOFTWARE DEFINIÇÕES / RESUMO. Apostilas de NORMAS, disponíveis no site do professor. Prof. Celso Candido ADS / REDES / ENGENHARIA

Princípios da Engenharia de Software aula 03

Componentes de SIs. Pessoas Organiz. Tecnologia

Confiabilidade de software. Qualidade de Software. Confiança: Funcionalidade. Falhas provocam custos

Engenharia de Software 1

Teste de Software. Professor Maurício Archanjo Nunes Coelho

Engenharia de Software

7. Gerenciamento dos Custos do Projeto. Bruno Hott

Engenharia de Software II

Engenharia de Software II

Gerência de Projetos e Qualidade de Software. Prof. Walter Gima

Introdução à Ciência da Computação

Engenharia de Confiança. Helena Macedo Reis Luis Fernando de Souza Moro

ENGENHARIA DE SOFTWARE

Qualidade de Software QUALIDADE DE SOFTWARE PRODUTO

Métricas de processo e projeto de software

Linguagens de Programação

VERIFICAÇÃO & VALIDAÇÃO

QUALIDADE DE SOFTWARE

Infra-estrutura de Informática e formas de acesso às redes de informação

1. A principal razão de dividir o processo de teste em tarefas distintas é:

Engenharia de Software

SISTEMAS DE MANUTENÇÃO E CONFIABILIDADE TP077

3ª Aula. Processo de Projeto em SE Exemplo de projeto: Sistema de Mapa GPS. Introdução. PSI3441 Arquitetura de Sistemas Embarcados

INTRODUÇÃO A ENGENHARIA DE SOFTWARE

Computação Distribuída

DESENHO DE CARGOS E TAREFAS

Estágio II. Aula 02 Conceitos de Teste de Software. Prof. MSc. Fred Viana

TS04. Teste de Software PLANOS DE TESTE. COTI Informática Escola de Nerds

Guia do Processo de Teste Metodologia Celepar

Visão Geral de Engenharia de Software

TESTES DE SOFTWARE 1. Fundamentos sobre testes de software

AVALIAÇÃO DE PRODUTOS DE SOFTWARE

Gerenciamento de Projetos

Análise e projeto de sistemas

Processos de Validação e Verificação do MPS-Br

Agenda. Componentes genéricos de uma fábrica de. Implantar ou melhorar uma fábrica, é um. Outras novidades que merecem atenção

Engenharia de Requisitos

Transcrição:

Qualidade de software Prof. Emiliano Monteiro

Por que realizar revisões por pares? 1. Para melhorar a qualidade. 2. Captura 80% de todos os erros se feito corretamente. 3. Captura erros de codificação e erros de design. 4. Aplicar o espírito de qualquer organização e padrões. 5. Implica em treinamento.

Confiabilidade de Software Definido como: a probabilidade de falha operação livre de um programa de computador em um ambiente especificado para um período de tempo especificado. Pode ser medido diretamente e estimado usando dados históricos e de desenvolvimento (ao contrário de muitos outros fatores de qualidade de software). Problemas de confiabilidade de software geralmente podem ser rastreados até erros de design ou implementação. Usando sistemas de bug trackers!

Métricas de confiabilidade 1. Probabilidade de Falha na Demanda (POFOD) POFOD = 0,001 Para uma em cada 1000 solicitações, o serviço falha por unidade de tempo. 2. Taxa de Ocorrência de Falha (ROCOF) ROCOF = 0,02 Duas falhas para cada 100 unidades operacionais de tempo de operação.

Métricas de confiabilidade 3. Tempo médio de falha (MTTF) Tempo médio entre falhas observadas (ou MTBF) 4. Disponibilidade = MTBF / (MTBF + MTTR) MTBF = tempo médio entre falhas MTTR = tempo médio de reparo 5. Confiabilidade = MTBF / (1 + MTBF)

Unidades de tempo Tempo de execução bruto de um sistema sem interrupção. Hora (no calendário)... se o sistema tiver padrões de uso regulares. Número de transações do sistemas transacional por tipo de operação.

O que é um produto de software? Produto de software = programas de computador (fontes e executáveis) + documentação associada. Os produtos de software podem ser: 1. Personalizado - desenvolvido para um cliente específico, de acordo com suas especificações. 2. Genérico ("pacote") - desenvolvido para um mercado geral, para ser vendido a uma gama de clientes diferentes. Off the shelf Software de prateleira.

O que é um produto de software? Tipos de produtos de software: 1. Software de suporte empresarial: Software utilizado para manter um determinado negócio operando. 2. Software de desenvolvimento: ferramentas de engenharia de software bem como IDE e compiladores para a produção de artefatos de software. 3. Software de produtividade pessoal: Planilhas, ferramentas de processamento de texto,... Software embutido

A importância do software 1. As economias de TODOS os países desenvolvidos dependem do software. 2. Cada vez mais sistemas são controlados por software Incluindo um número crescente de sistemas críticos e de missão crítica, com altas exigências de confiabilidade. 3. Mais e mais empresas dependem do software para o seu sucesso. 4. Software e Sistemas de Informação são fatores críticos de sucesso em um número crescente de empresas e organizações. 5. As despesas de engenharia de software (no desenvolvimento e manutenção de produtos de software) representam uma fração significativa do PIB (Produto Interno Bruto) em todos os países desenvolvidos

Software rodando por longo período perde a qualidade? 1. Um programa executando continuamente por um longo período de tempo (sem desligar) pode funcionar cada vez mais lento ou mesmo falhar, por exemplo. 2. Devido a problemas de memória ou fragmentação de memória. 3. A qualidade original é restaurada desligando e reiniciando.

Software rodando por longo período perde a qualidade? Você conhece produtos antigos com problemas de execução? 1. O desempenho diminui com o número de usuários simultâneos e o tamanho dos dados. 2. Pode requerer atualização de hardware e, consequentemente, atualização de software. 3. A manutenção diminui com o tempo. 4. Pode requerer manutenção preventiva (migração para tecnologias conhecidas). 5. O software torna-se obsoleto muito rapidamente: Devido à rápida evolução da tecnologia, requisitos ou conhecimentos. 6. Às vezes o software é usado por mais tempo do que o esperado (bug Y2K) Requer inovação e evolução contínuas.

Principais fatores de qualidade do produto Qualidade do processo: 1. Um bom processo é geralmente necessário para produzir um bom produto! 2. Para os bens manufaturados, o processo é o principal determinante da qualidade. 3. Para a atividade baseada em projeto (como o desenvolvimento de software), outros fatores também estão envolvidos especialmente as capacidades dos projetistas.

Principais fatores de qualidade do produto Para projetos de grande porte com capacidades 'médias', o processo de desenvolvimento determina a qualidade do produto. Qualidade das pessoas: 1. Para projetos pequenos, as capacidades dos desenvolvedores são o principal determinante. 2. Corolário: você precisa de pessoas de qualidade inferior (e processo de qualidade superior) em projetos maiores? 3. Tamanho do Projeto x Pessoas Qualidade = Constante?

Principais fatores de qualidade do produto Tamanho do Projeto x Pessoas Qualidade = Constante? Tecnologia de desenvolvimento: 1. É particularmente importante para pequenos projetos. Orçamento e cronograma: 1. Em todos os projetos, se um cronograma irreal é imposto, a qualidade do produto sofrerá.

Importância das normas Encapsulamento das melhores práticas - evita a repetição de erros passados. Estrutura para o processo de garantia de qualidade - envolve a verificação da conformidade padrão. Fornecer continuidade - o novo pessoal pode entender a organização por entender os padrões aplicados.

Black-box Teste de caixa preta: 1. Uma abordagem para testar onde o programa é considerado como uma "caixa-preta. 2. Os casos de teste do programa são baseados na especificação do sistema. 3. O planejamento de testes pode começar cedo no processo de software.

White-box Teste de caixa branca: 1. Algum tempo chamado teste estrutural. 2. Derivação de casos de teste de acordo com a estrutura do programa. 3. O conhecimento do programa é usado para identificar casos de teste adicionais. 4. O objetivo é executar todas as instruções do programa (nem todas as combinações de caminho). 5. As medidas de cobertura de teste garantem que todas as declarações tenham sido executadas pelo menos uma vez.

Teste de componentes e integração Teste de componentes: 1. Testes de componentes individuais do programa. 2. Geralmente a responsabilidade é do desenvolvedor do componente. 3. Os testes são derivados da experiência do desenvolvedor. Teste de integração: 1. Testes de grupos de componentes integrados para criar um sistema ou subsistema. 2. A responsabilidade de uma equipe de testes independente. 3. Os testes são baseados em uma especificação do sistema (caixa-preta)

Métrica de software Uma métrica de software é uma propriedade de um produto de software, processo ou documentação relacionada que leva um valor numérico que pode ser medido em Linhas de código (LOC) em um programa, número de dias-pessoa necessários para desenvolver um componente, etc. É importante medir (quantificar) a qualidade de um produto de software. Dificuldade principal: distância entre o que queremos saber (geralmente um atributo de qualidade externo) e o que podemos medir (normalmente um atributo interno).

Tipos de métricas do produto Métricas dinâmicas: 1. São coletadas por medições feitas de um programa em execução. 2. Estão intimamente relacionados com atributos de qualidade de software, como eficiência e confiabilidade. 3. É relativamente fácil medir o tempo de resposta de um sistema (atributo de desempenho) ou o número de falhas (atributo de fiabilidade).

Tipos de métricas do produto Métricas estáticas: 1. São coletados por medições feitas das representações do sistema (arquivos de origem, documentação, etc.). 2. Tem uma relação indireta (e difícil de estabelecer) com atributos de qualidade, tais como complexidade, compreensão e manutenção.