Engenharia de Software. Ficha T. Prática nº 6

Documentos relacionados
APOSTILAS: NORMAS; ABNT NBR ISO; MPS BR

Garantia de qualidade do software. Aula 8

Qualidade de Software: Visão Geral. SSC 121-Engenharia de Software 1 Profa. Dra. Elisa Yumi Nakagawa

Engenharia de Software

Plano de testes. Norma ANSI/IEEE para Documentação de Teste de Software define plano de testes como:

Estratégias de Testes Parte I

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

ICET CURSO: Ciência da Computação e Sistemas de Informação (Engenharia de Software) Campus: Data: / / Nome:

Qualidade de Software: Visão Geral. Engenharia de Software Profa. Dra. Elisa Yumi Nakagawa

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

ISO/IEC 12207: Manutenção

Qualidade de Software

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

Diego Azevedo José Thiago Moutinho Sérgio Chaves Thiago Bemerguy William Sampaio

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

Engenharia de Software. Matéria para os Testes

ENGENHARIA DE SOFTWARE

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

Análise e Projeto Orientado a Objetos

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

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

Projecto Test Management Apresentação 1º Semestre

Escopo: PROCESSOS FUNDAMENTAIS

Documento de Requisitos*

Verificação e Validação

TESTES DE SOFTWARE 1. Fundamentos sobre testes de software

Professor Emiliano S. Monteiro

4/14/11. Processos de Engenharia de Requisitos. Engenharia de requisitos. Elicitação e análise. A espiral de requisitos

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:

Analista de Sistemas S. J. Rio Preto

Por Constantino W. Nassel

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

Escolhendo um Modelo de Ciclo de Vida

Jornal Oficial da União Europeia L 146/7

Gerência e Planejamento de Projeto. Engenharia de Software Profa. Elisa Yumi Nakagawa 1 o semestre de 2016

Gerenciamento de Projetos

Engenharia de Software II

Engenharia de Software

FATORES E MÉTRICAS DE QUALIDADE

ISO/IEC Processo de ciclo de vida

Engenharia de Software Aula 2.1 Introdução à Engenharia de Requisitos. Prof. Bruno Moreno

Processos de software

QUALIDADE DE SOFTWARE

Instituto Federal Sul-rio-grandense. Placa universal para controle de máquinas de lavar roupa Plano de Projeto - versão 1.0

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

PSP Personal Software Process. Maria Cláudia F. P. Emer

Engenharia Software. Ení Berbert Camilo Contaiffer

Engenharia de Software 2006/2007

DIAGNÓSTICO DA CERCIPENICHE PARA A QUALIDADE.

Projecto e Desenvolvimento de Programas

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini /

Gerência e Planejamento de Projeto. Engenharia de Software I Profa. Elisa Yumi Nakagawa 1 o semestre de 2015

10) Implementação de um Sistema de Gestão Alimentar

Estágio II. Aula 01 Qualidade de Software. Prof. MSc. Fred Viana

Verificação e Validação. Ewelton Yoshio Fabrício Araújo

2. Processos em Engenharia de Software

Fábrica de Software Instituto de Informática Universidade Federal de Goiás. Plano de Medição

Engenharia de Software II

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

Áreas de Conhecimento, Técnicas de Análise de Negócio e Conceitos-Chave

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

Diretrizes de Comunicação de Projetos Sistema de Gestão da Qualidade

GARANTIA DA QUALIDADE REVISÕES

Engenharia de Software II

Processo de desenvolvimento de sistema de informação - DSI

Engenharia de Requisitos

ELABORADO VERIFICADO APROVADO

Engenharia de Software II

CONTPATRI Plano de Garantia de Qualidade. Versão 1.1

Qualidade de Software Aula 8 / 2010

ISO 9000:2005 Sistemas de Gestão da Qualidade Fundamentos e Vocabulário. As Normas da família ISO As Normas da família ISO 9000

INTRODUÇÃO A ENGENHARIA DE SOFTWARE

PDS. Aula 1.4 Modelos de Processo. Prof. Dr. Bruno Moreno

Qualidade. Ana Madureira

Trabalho apresentado para obtenção do Título de Especialista (Desp. N.º 8590/2010 de 20 de Maio)

Introdução ao RUP Rational Unified Process

Engenharia de Software Aula 2.1 Introdução à Engenharia de Requisitos. Prof. Bruno Moreno

VVTeste: Ambiente de geração e gerenciamento de testes e de defeitos como apoio aos processos de Verificação e Validação do MPS.br

Especificação Formal de Software

Visão Geral da Norma ISO/IEC 12207

Normas ISO:

INF014 Análise e Projeto de Sistemas Processos Unificado -RUP

ENGENHARIA DE REQUISITOS

ENGENHARIA DE SOFTWARE/ SISTEMAS DE SOFTWARE

CMM Capability Maturity Model. O que é isto???

Engenharia de Software

Grupos de Processos na Gestão de Projectos e Áreas de Conhecimentos associadas

Introdução aos Testes de Software

Computação e Programação

Metodologia de Gestão de Desenvolvimento de Sistemas da UFVJM

Introdução a Teste de Software

7. Gerenciamento dos Custos do Projeto. Bruno Hott

Engenharia de Software

ESPECIFICAÇÃO DE PROJETO AUTOR(ES) : João

Gerenciamento Do Escopo Do Projeto

1 Diretoria de Gestão de Tecnologia da Informação (DGTI) - Universidade Federal de Lavras

Engenharia de Software II

Transcrição:

Engenharia de Software Ficha T. Prática nº 6 Fonte: Eng. De Software, Colecção Schaum Objectivo: Garantia da qualidade do software 1. Introdução Existem muitas maneiras de definir a qualidade. Nenhuma é perfeita. Uma definição é qualidade é a totalidade das características dum produto ou serviço que se baseia na sua habilidade de satisfazer uma dada necessidade. Outra definição é que software de qualidade é aquele que faz o que se espera que ele faça. Outras definições baseiam-se na satisfação do utilizador, etc. A técnica principal para alcançar a qualidade é a revisão de software que tem por objecto encontrar erros no software. As abordagens formais têm demonstrado ser mais eficientes do que as abordagens informais. A métrica mais usada para avaliar a inspecção é erros encontrados/kloc. A eficiência pode ser medida em termos dos erros encontrados/nº horas trabalhadas. 2. Inspecção formal e técnicas de revisão A inspecção formal é uma actividade agendada na qual um projectista apresenta um material sobre um projecto e um selecto grupo de pares avalia os aspectos técnicos. Os detalhes de como a inspecção formal ou revisão técnica é feita podem variasr muito. Os seguintes aspectos são geralmente aceites como os que distinguem a inspecção formal de outras revisões: Pares conhecedores do assunto são usados O desenvolvedor é um participante activo Um produto explícito, completo, é inspeccionado O propósito principal é encontrar defeitos A inspecção formal é usada rotinaeriamente no desenvolvimento de software Papéis específicos são designados A inspecção usa passos específicos da inspecção formal Pelo menos três pessoas estão envolvidas na inspecção Papéis da inspecção Moderador o moderador selecciona a equipa, conduz a inspecção e relata os resultados Leitor o leitor é geralmente o não desenvolvedor do produto; entretanto, ele irá dirigir a equipa pelo trabalho do desenvolvedor durante o encontro da inspecção. Arquivista O arquivista mentém os arquivos da inspecção e relata minuciosamente cada defeito Desenvolvedor o desenvolvedor é quem originalmente produz o produto. O papel dele é responder a perguntas durante a inspecção. O desenvolvedor é também o responsável por corrigir qualquer problema identificado e relatar as correcções para o moderador

Passos da inspecção Revisão Quando o desenvolvedor satisfaz os critérios de entrada, a inspecção é agendada. O desenvolvedor, então, conduz uma revisão, o que contempla o restante da equipa de inspecção com o produto a ser inspeccionado Preparação Os membros da equipa de inspecção estudam o produto. O tempo gasto na preparação é controlado, baseado no tamanho do produto em KLOC. Os membros podem usar uma checklist para focar em questões significativas. Encontro de inspecção O moderador supervisiona o encontro de inspecção. Algumas abordagens usam o leitor em vez do desenvolvedor para, eventualmente, conduzir a inspecção. O arquivista elabora um arquivo completo com as questões levantadas. Todos os membros da equipa de inspecção assinam o relatório. Qualquer membro da equipa pode gerar um relatório da minoria, se houver alguma discordância Retrabalho O desenvolvedor revê o relatório e corrige o produto Próximos passos O moderador revê o relatório e correcção. Se satisfaz o critério de saída, a inspecção é finalizada; se não, o revisor pode exigir que o desenvolvedor refaça o produto ou uma inspecção pode ser agendada. Cheklists Uma lista de verificação (checklist) é uma lista de itens que devem ser verificados durante a revisão. Algumas vezes os itens são colocados como perguntas para seresm respondidas. A vantagem duma checklist é que ela foca a atenção do revisor nos problemas potenciais. Qualquer falha encontrada deve ser analisada para verificar se o item da lista garante o foco neste problema. (Lembro-me dum processo longo de detectar erro causado por um ponto-e-vírgula imediatamente após uma condição num comando IF em C++. Agora, qualquer checklist para programas em C++ que eu escrevo inclui a verificação de ponto-evirgula ao final das condições de decisão) Itens da checklist que não são eficientes em encontrar erros durante a ispecção devem ser removidos, pois uma quantidade grande de itens na checklist irá prejudicar a ficiência da inspecção 3. Confiabilidade do software Confiabilidade é a probabilidade do software não falhar num período de tempo específico. Geralmente é denominada por R(n), onde n é um número de unidades de tempo. Se a unidade de tempo é dias, então R(1) é a probabilidade de não falhar 1 dia. A probabilidade de falha no período de tempo específico é 1 menos a confiabilidade para o período (F(n) = 1 R(n)).

Média de erros Se um erro ocorre cada 2 dias, então a média de erros instantânea seria de 0,5 erros por dia. A média de erros é o inverso do tempo entre erros. A média de erros pode ser usada como uma estimativa da probabilidade de falha, F(1). A menos que conheçamos alguma tendência a melhor estimativa para o comportamento do futuro próximo é o comportamento corrente. Então, se encontramos 20 erros num dia, a melhor estimativa para o próximo dia é 20 erros. Exemplo: Se um erro ocorre após 2 dias, qual a probabilidade de que o sistema não irá falhar em 1,2,3 ou 4 dias? Se um erro ocorre cada 2 dias, podemos usar 0,5 como a média de erros instantânea, que pode também ser usada para estimar a probabilidade para 1 dia. Então, F(1) = 0,5. Então R(1)= 1 F(1) = 0,5; R(2) = 0,25; R(3) = 0,125. R(4) = 0,0625. 4. Padrões IEEE para o plano de SQA Uma parte importante na obtenção da qualidade é planear para a qualidade, isto é, planear as actividades que irão auxiliar na obtenção da qualidade. A IEEE desenvolveu um padrão para planos de garantia da qualidade de software. A seguir estão parte das secções especificadas no IEEE Propósito Esta secção deverá listar o software e as partes contempladas do seu ciclo de vida Documentos de referência Esta secção deverá listar todos os documentos referenciados no plano Gestão Organização Esta secção deverá descrever a estrutura da organização e as responsabilidades e geralmente inclui um organograma Tarefas esta secção deverá listar todas as tarefas a serem executadas, os relacionamentos entre tarefas e os pontos de verificação e a sequencia de tarefas Responsabilidades esta secção deverá listar as responsabilidades de cada unidade organizacional Documentação Propósito esta secção deverá listar todos os documentos necessários a estabelecer como os documentos serão avaliados Documentos mínimos Esta secção deverá descrever a documentação mínima necessária, geralmente incluíndo: Especificação de requisitos Descrição do projecto Plano de verficação e validação de software Relatório de verificação e validação de software Documentação do utilizador Plano de gestão da configuração do software Padrões, práticas, convenções e métricas esta secção deverá identificar padrões, práticas, convenções e métricas a serem aplicadas e como serão monitorizadas e

garantidas. O conteúdo mínimo deverá incluir padrões de documentação, de estrutura lógica, de codificação, de teste, produtos de SQA seleccionados e métricas do processo Revisões e auditoria esta secção deverá definir quais revisões/auditorias serão feitas, como serão acompanhadas e quais acções serão realizadas após Testes esta secção deverá incluir todos os testes não incluídos no plano de verificação e validação do software Relatório do problema Esta secção deverá definitr práticas e procedimentos para relatar, acompanhar e resolver, incluindo responsabilidades organizacionais Ferramentas, técnicas e metodologias esta secção deverá identificar as ferramentas, técnicas e metodologias especiais do software e descrever os seus usos Controlo de código esta secção deverá definir os métodos e facilidades para manter o controlo de versões do softtware Controlo dos meios esta secção deverá definir os métodos e facilidades para identificar, armazear e proteger os meios físicos Controlo de fornecedor esta secção deverá estabelecer providências para garantir que o software entregue pelos fornecedores atenda aos padrões Registos esta secção deverá identificar a documentação a ser retida e os metodos para recolher, manter e salvaguardar essa documentação Treino Esta secção deverá identificar as actividades de treino necessárias Gestão de risco esta secção deverá especificar métodos e procedimentos para a gestão de risco Exemplo: Desenvolva a secção 3 e a secção 8 dum plano SQA para um projecto de desenvolvimento de software. Considere um gerente de projecto chamado Carlos; uma equipa externa de teste composta por Tina a líder, Dora e Helena; uma equipa de gestão da configuração composta por Marcos (líder), Paulo e Lucas e uma equipa de garantia da qualidade composta por Jorge (líder) e Bruno Secção 3 Organização Tarefas Todos os documentos serão revistos. Uma ferramenta de gerência de configuração irá gerir todos os documentos e módulos do código fonte. Todos os planos de teste serão feitos durante a fase de requisitos e incluirão um número adequado de casos de teste. Inspecções formais serão conduzidas no final de cada fase. Responsabilidades A equipa do projecto é responsável por todo o desenvolvimento, incluindo requisitos, projecto e implementação e produz o plano de teste como parte dos requisitos. Eles também são responsáveis por toda a documentação, incluindo o manual do utilizador e documentos de acompanhamento A equipa de teste é responsável por testar a versão básica do código fonte. A equipa de teste irá usar o plano de teste desenvolvido durante os requisitos. Casos adicionais de teste serão desenvolvidos para satisfazer cada comando do código. Quaisquer discrepâncias no plano de teste e/ou requisitos ou nos testes serão relatados para o gerente geral.

A equipa de gerência de configuração será resposável por aceitar os itens de configuração do software e atribuir números as versões. A equipa de garantia da qualidade será responsável por supervisionar as revisões e inspecções e irá acompanhar os problemas relatados. Secção 8 Relatório do problema Todos os problemas identificados fora da unidade de desenvolvimento devem ser relatados para a equipa de garantia da qualidade, que designará um número para o problema. O gerente de cada equipa irá aprovar as correcções dos problemas mencionados e designados para esta equipa. A equipa de garantia da qualidade será responsável por acompanhar todos os problemas e semanalmente relatar para o gerente geral. Problemas: 1. Construa uma checklist para a revisão de programas escritos em código C 2. Construa uma checklist para a revisão dum projecto de software 3. Calcule a confiabilidade dum software que teve 10 erros em 200 casos de teste. 4. Assuma que uma técnica ABC requer 2 horas/kloc de preparação e que tenha sido alocada 1 hora/kloc para revisão e a técnica XYZ requer 1 hora/kloc de preparação e 4 horas para a revisão. Também assuma que a técnica ABC encontra 12 erros/kloc e a técnica XYZ encontra 14 erros/kloc. Compare a eficiência de ambas técnicas. 5. Se o software teve 5 falhas em 100 testes durante 10 dias, o que seria uma boa estimativa duma boa confiabilidade para os próximos 5 dias? 2 semanas? 6. Desenvolva um plano de SQA para o problema da pousada, eleja as secções que apliquem ao problema 7. Um erro 1 ocorre após 4 dias e o erro 2 ocorre 5 dias depois. Desenhe um gráfico de média de erros versus o número de erros e a média de erros versus o tempo e estime o número de erros no sistema e o tempo para remover todos os erros.