O GoConqr está de visual novo! Conte para nós o que você achou.

Mapa mental

Engenharia de software

pcbsytem Português 5,0Avaliação média 5,0 de 5 (1 avaliação)

Mapa mental sobre engenharia de software: testes de software, verificação e validação e gerenciamento de qualidade

Mapa mental: Engenharia de software: testes e validação

Conteúdo do mapa

Engenharia de software

  1. Testes de Software

    • Qual é a importância dos testes de software?
      • Certificar que o software esta funcionando corretamente.
    • As atividades fundamentais para testes são:
      • Testes de componentes (teste de partes do sistema).
        • Os testes de componentes objetivam descobrir defeitos, testando componentes individuais do programa (funções, objetos, componentes reusáveis).
      • Teste de sistema (teste do sistema como um todo)
        • O teste de sistema integra esses componentes, para formar subsistemas ou sistemas completos, com o objetivo de verificar se o sistema atende aos requisitos funcionais e não funcionais, além de verificar, também, se o sistema não se comporta de maneira inesperada.
    • Metas do processo de testes de software
      • Demonstrar ao desenvolvedor e ao cliente que o software atende aos requisitos (testar cada requisito nos documentos de usuário e de sistema).
      • Descobrir falhas ou defeitos no software que apresenta comportamento incorreto, não desejável ou em não conformidade com sua especificação.
        • O teste de defeitos está relacionado à remoção de todos os tipos de comportamentos indesejáveis de sistema, como travamentos, interações indesejáveis com outros sistemas, cálculos incorretos e corrompimento de dados.
      • Para o teste de validação: um teste bem sucedido é aquele em que o sistema funciona corretamente.
      • Para o teste de dPara o teste de defeitos: um teste bem sucedido é o que expõe um defeito que causa o funcionamento incorreto do sistema.
      • Os testes não podem demonstrar que um software é livre de defeitos ou que se comportará conforme o especificado, em todas as circunstâncias.
      • -A meta do teste de software é convencer os desenvolvedores e clientes do sistema de que o software é bom o suficiente para o uso operacional.
      • -O teste é um processo com o objetivo de se atingir a confiabilidade do software.
    • Quem realiza os testes
      • Os programadores têm a responsabilidade de testar os componentes que desenvolveram.
      • Na próxima etapa, uma equipe é responsável por integrar os módulos de diferentes desenvolvedores e testar o sistema como um todo.
      • Para sistemas críticos, pode-se utilizar um processo mais formal, onde testadores independentes são responsáveis por todos os estágios do processo de teste.
    • Tipos de testes
      • 1.Integração
      • 2.Componentes
      • 3.Projeto de casos de teste
      • 4.Automação de testes
    • Os testes podem mostrar somente a presença de erros em um programa. Eles não podem demonstrar que não existam defeitos remanescentes.
    • O teste de componentes é de responsabilidade do desenvolvedor de componentes. Outra equipe de testes geralmente executa os testes do sistema.
    • Ao testar sistemas, deve-se tentar “quebrar” o sistema usando experiência e diretrizes para escolher os tipos de casos de teste eficazes na descoberta de defeitos em outros sistemas.
    • O teste de interfaces tenta descobrir defeitos nas interfaces dos componentes compostos. Defeitos de interface podem surgir devido a erros de leitura da especificação, má interpretação da especificação ou erros ou suposições inválidas de timming.
    • O teste estrutural baseia-se na análise de um programa para determinar seus caminhos, e no uso dessa análise para ajudar na seleção dos casos de teste.
    • A automação reduz os custos de teste pelo apoio ao processo de teste com uma variedade de ferramentas de software.
  2. Verificação e Validação

    • Qual é a importância dos processos de Verificação e Validação?
    • É o nome dado aos processos de verificação e análise, a fim de assegurar que o software cumpra com suas especificações e atenda às necessidades dos clientes que estão pagando por ele.
    • Incluem as tarefas:
      • 1.revisões dos requisitos;
      • 2.revisões de projeto;
      • 3.inspeções de código;
      • 4.testes de produto.
    • Valição:
      • Assegurar que o software atenda às expectativas do cliente, garantindo que ele faça o que o cliente espera que faça.
    • Verificação:
      • Checar se o software cumpre com suas especificações, ou seja, se o sistema cumpre com seus requisitos funcionais e não funcionais.
    • Nível de confiabilidade depende de:
      • Função do software: o quão crítico o software é para a organização (objetivo para o qual ele foi desenvolvido).
      • Expectativas do usuário: usuário vem se tornando mais exigente e, hoje, é menos aceitável entregar sistemas não confiáveis, o que implica em maior dedicação aos processos.
      • Ambiente de mercado: o esforço a ser empregado neste processo depende de vários fatores, tais como: concorrência, preço que o cliente está disposto a pagar, cronograma.
    • Abordagens para a verificação e análise de sistemas neste processo
      • Inspeções de software ou revisões por pares: analisam e verificam as representações do sistema (documento de requisitos, diagramas de projeto, código-fonte do programa). Podem ser aplicadas em todos os estágios do processo. São técnicas estáticas, pois não requerem que o sistema seja executado.
      • •Testes de software: executam uma implementação do software com os dados de teste, a fim de examinar as saídas e o comportamento operacional, verificando-se, assim, se o sistema se comporta conforme o esperado. São técnicas dinâmicas.
    • Estrutura do plano de testes
      • 1.Processo de teste: descrição das fases principais do processo de teste.
      • 2.Rastreabilidadede requisitos: todos os requisitos devem ser individualmente testados.
      • 3.Itens testados: especificação dos produtos do processo de software.
      • 4. Cronograma de testes: apresentar um cronograma geral de testes e alocação de recursos para ele.
      • 5. Procedimentos de registro de testes: trata-se do registro dos resultados dos testes. O processo de teste deve ser auditado para verificar que foi conduzido corretamente.
      • 6.Requisitos de hardware e de software: ferramentas de software necessárias e a utilização estimada de hardware.
      • 7.Restrições: o que afeta o processo de teste (por exemplo: falta de pessoal, falta de recursos).
    • Principais vantagens da Verificação e Validação em relação aos testes:
      • 1.Inspeções
      • 2.Revisões
    • Análise estática automatizada
      • 12Análise estática automatizadaAnalisadores estáticos de programa são ferramentas de software que analisam o código-fonte de um programa e detectam possíveis defeitos e anomalias.
      • Não requerem que o programa seja executado.Percorrem o texto do programa e reconhecem os diferentes tipos de declarações.
      • Detecção de anomalias no programa (variáveis sem iniciação, varáveis não utilizadas, dados com valores excedidos, etc.), podendo resultar em erros de programação e de omissões).
      • Análise estática automatizada é mais bem utilizada com as inspeções de software.
    • Os estágios envolvidos incluem:
      • Análise do fluxo de controle: destaca loops com múltiplos pontos de saída ou de entrada e código inacessível.
      • Análise da utilização de dados: detecta variáveis que são utilizadas sem prévia iniciação, variáveis declaradas mas nunca utilizadas, etc.
      • Análise de interface: verifica a consistência das declarações de rotinas e procedimentos e seu uso; funções e procedimentos que são declarados e nunca chamados ou resultados de funções que nunca são utilizados.
      • Análise do fluxo de informações: identifica as dependências entre as variáveis de entrada e as de saída.
      • Análise de caminho: identifica todos os caminhos possíveis no programa, e exibe as declarações executadas nesse caminho.
  3. Gerenciamento de Qualidade

    • Por que a qualidade de software é tão importante?
    • Qualidade de Software
      • Aprimoramento nos último anos (adoção de novas técnicas e tecnologias).
      • Conscientização da importância do gerenciamento de qualidade de software.
      • Adoção de técnicas de gerenciamento de qualidade provenientes da manufatura de software.
      • Noção de qualidade é diferente em produtos manufaturados e em sistemas de software.
    • Por que a qualidade de software é diferente da qualidade de produtos manufaturados?
      • A especificação deve ser orientada para as características do produto que o cliente deseja. Mas, o desenvolvedor também pode ter requisitos que não são incluídos na especificação.
      • Dificuldade em especificar determinadas características de qualidade de maneira não ambígua.
      • A dificuldade em escrever especificações de software completas pode fazer com que um produto não seja considerado de alta qualidade, por não corresponder às expectativas do cliente.
      • Alguns atributos de software como facilidade de manutenção, proteção ou eficiência não podem ser especificados explicitamente, mas são percebidos no sistema
      • “Cultura de qualidade”: desenvolvida pelos gerentes de qualidade.
      • A criação de padrões e procedimentos são a base do gerenciamento de qualidade. Entretanto, é reconhecido que existem aspectos que não podem ser incorporados em padrões (aspectos intangíveis –elegância do software, capacidade de leitura).
    • Documentação de qualidade
      • Documentar o gerenciamento da qualidade significa registrar o que cada equipe dentro do projeto faz.
      • Técnica utilizada principalmente no desenvolvimento de sistemas de grande porte e complexos.
      • Ajuda a verificar se tarefas não foram “esquecidas”.
      • É um meio de comunicação ao longo da existência de um sistema.
      • Permite que os responsáveis pela evolução do sistema acompanhem o que a equipe de desenvolvimento está fazendo.
    • O que é qualidade?
      • “Grau de conformidade de um sistema, componente ou processo com os respectivos requisitos.” (Glossário do IEEE).
      • “Grau de conformidade de um sistema, componente ou processo com as necessidades e expectativas de clientes ou usuários.”
      • A qualidade é definida por uma coleção de atributos, tais como funcionalidade, confiabilidade, satisfação do usuário e desempenho, considerados importantes, mas parciais.
    • Garantia de qualidade
      • “Conjunto planejado e sistemático de ações necessárias para estabelecer um nível adequado de confiança de que um item ou produto está em conformidade com seus requisitos técnicos.” (Glossário do IEEE).
      • “Conjunto planejado e sistemático de meios para garantir à gerência que os padrões, métodos, práticas e procedimentos definidos por um processo são aplicados.” (definição constante do CMMI).
    • Gerenciamento de qualidade de software
      • Garantia de qualidade: estabelecimento de um framework de procedimentos organizacionais e padrões que conduzem a um software de alta qualidade.
      • Planejamento de qualidade: seleção de procedimentos e padrões apropriados deste framework, adaptados para um projeto de software específico.
      • Controle de qualidade: definição e aprovação de processos que assegurem que a equipe de desenvolvimento de software tenha seguido os procedimentos e os padrões de qualidade de projeto.
    • Gerenciamento de qualidade de processo envolve...
      • 1.Definição de padrões de processo (como e quando as revisões devem ser conduzidas).
      • 2.Monitoração do processo de desenvolvimento para assegurar que os padrões estão sendo seguidos.
      • 3.Relato do processo de software para a gerência de projeto e para o comprador do software.
    • 15Importância dos padrões de software
      • São baseados no conhecimento sobre as melhores e as mais apropriadas práticas para a empresa.
      • Eles provêem um framework para a implementação do processo de garantia de qualidade.
      • Eles ajudam na continuidade (adoção das mesmas práticas), reduzindo o esforço do aprendizado quando se inicia um novo trabalho.
      • Principais instituições nacionais e internacionais que desenvolvem padrões de projetos:
      • US DoD (United States Department of Defense).
      • ANSI (American National Standards Institute).
      • BSI (British Standards Institution).
      • NATO (North Atlantic Treaty Organization).
      • IEEE (Institute of Electrical and Eletronic Engineers).
      • MPS-BR (Melhoria de Processo de Software Brasileiro)
      • As equipes de garantia de qualidade que desenvolvem padrões para uma empresa devem tomar como base os padrões nacionais e internacionais. Prover ferramentas de software para apoiar os padrões.
      • Conjunto internacional de padrões que pode ser usado no desenvolvimento de um sistema de gerenciamento de qualidade em todas as indústrias.
      • Prover ferramentas de software para apoiar os padrões.

Informações

Descrição
Mapa Mental sobre Engenharia de software, criado por pcbsytem em 04-06-2014.
Criado por
pcbsytem
Visualizações
455
Avaliação
Avaliação média 5,0 de 5 (1 avaliação)

Fale Conosco

Sobre o que é sua mensagem?

O que você acha do novo visual?

Você gostou?