Você está na página 1de 42

Projeto,

Implementação e
Teste de Software
Aula de Hoje

Prof.ª Esp. Janaína Freitas


Aula de Hoje

Plano de Estudo:
• Revisão do Conteúdo

Pré-requisitos:
• Unidade: I, II, III, IV e V

Projeto, Implementação e Teste de Software


Revisão do Conteúdo

Prof.ª Esp. Janaína Freitas


O Que é um Processo de Software?

É considerado um conjunto de atividades necessárias para


definir, desenvolver, testar e manter um produto de software
de alta qualidade

Quais os objetivos de um Processo de Software?

• Definir quais as atividades a serem executadas ao longo


do projeto;
• Quando, como e por quem tais atividades serão
executadas.

Projeto, Implementação e Teste de Software


Processo de Software
Existem vários processos de desenvolvimento de software
diferentes, mas todos envolvem 4 Atividades fundamentais:

Especificação

• Especificação de Software;
• Projeto e Implementação de Projeto

Software; Implementação

• Validação de Software;
• Evolução de Software. Verificação

Evolução

Projeto, Implementação e Teste de Software


O que é o Projeto de Software?

O Projeto de Software cria um modelo ou uma representação


onde é definido o “como fazer”, fornecendo todos os detalhes
sobre a arquitetura, a estrutura de dados, a interface e os
componentes essenciais para implementar o sistema.

Na fase de projeto, decidimos como o sistema se comportará:


• Software e Hardware, Infraestrutura de rede, Interface de
usuário, Formulários, Relatórios, Outros programas, Bancos
de Dados e Arquivos.

Projeto, Implementação e Teste de Software


Projeto de Software

O modelo de projeto possui quatro elementos principais:

• Projeto de Arquitetura;
• Projeto de Dados;
• Projeto de Interfaces;
• Projeto de Componentes.

Projeto, Implementação e Teste de Software


Projeto de Software

Quais os principais conceitos relacionados ao Projeto?


• Abstração;
• Refinamento;
• Modularidade;
• Padrões;
• Arquitetura;
• Hierarquia de Controle;
• Encapsulamento;
• Estrutura de Dados;
• Procedimentos de Software;
• Ocultação de Informação;
• Independência Funcional (coesão e acoplamento).

Projeto, Implementação e Teste de Software


O que é o Projeto de Arquitetura de Software?

O Projeto de Arquitetura representa a estrutura de dados e


os componentes de programas necessários para construir um
sistema.

O que Envolve?
• Identificação dos componentes principais do sistema;
• Definição das interfaces de comunicação entre os
componentes.

Projeto, Implementação e Teste de Software


Projeto de Arquitetura de Software

A arquitetura de software pode ser representada por visões


de arquitetura. Cada visão trata de uma necessidade
específica.

Quais as visões de arquitetura?

• Visão de Casos de Uso;


• Visão Lógica;
• Visão de Implementação.

Projeto, Implementação e Teste de Software


Projeto de Arquitetura de Software

Quais os padrões de arquitetura mais conhecidos?


• Modelo-Visão-Controlador;
• Arquitetura em camadas;
• Repositório;
• Cliente-Servidor;
• Duto e Filtro.

Projeto, Implementação e Teste de Software


Projeto de Componentes de Software

O que é um Componente? É uma unidade de software


independente utilizada na construção de vários sistemas e
que pode ser substituída por outra unidade que tenha a
mesma funcionalidade.

• Componentes são independentes;


• Componentes são reutilizáveis;
• Componentes podem ser compartilhados;
• Componentes reduzem os custos de desenvolvimento.

Projeto, Implementação e Teste de Software


Projeto de Componentes de Software

O que é um Componente Reutilizável? Qualquer parte de


trabalho que possa ser utilizado em mais de um projeto.

Como: Código compilado, Objetos executáveis, Código fonte,


Classes e métodos, Casos de testes, Modelos e projetos:
Frameworks, Padrões, Interface de Usuário e Planos,
Estratégias e Regras arquiteturais.

Projeto, Implementação e Teste de Software


Projeto de Componentes de Software

Quais as atividades essenciais para o desenvolvimento com


componentes?

• Encontrar componentes com potencial de serem usados no


desenvolvimento da aplicação;
• Selecionar componentes que atendam aos requisitos de
uma aplicação específica;
• Realizar adaptações;
• Realizar a composição dos componentes;
• Atualizar os componentes.

Projeto, Implementação e Teste de Software


Projeto de Interface de Software

• O que é o Projeto de interface do usuário? Ele cria um meio de


comunicação efetiva entre o ser humano e o computador.
• Ele é usado para descrever como um software se comunica com
outros sistemas e com as pessoas que o utilizam.

Por que a interface do usuário é a parte mais importante de


qualquer sistema computacional?

• Ela é o sistema para a maioria dos usuários;


• Ela pode ser vista, ouvida e também pode ser tocada.

Projeto, Implementação e Teste de Software


Projeto de Interface de Software

Quais as Regras de ouro que foram publicadas sobre Projeto


de Interfaces do usuário?

• O usuário deve estar no comando;


• Procure reduzir a carga de memória do usuário;
• Procure tornar a interface do sistema mais consistente.

Projeto, Implementação e Teste de Software


Projeto de Interface de Software

Como os usuários podem ser classificados?


• Novatos: nenhum conhecimento sintático do sistema e
pouco conhecimento semântico da aplicação ou uso do
computador em geral.
• Usuários intermitentes e com conhecimento: razoável
conhecimento semântico da aplicação, mas lembrança
relativamente baixa das informações sintáticas necessárias
para usar a interface.
• Usuários frequentes e com conhecimento: bom
conhecimento semântico e sintático que, muitas vezes,
levam à “síndrome do usuário poderoso”.

Projeto, Implementação e Teste de Software


Projeto de Interface de Software

Quais os elementos da análise de interfaces?

• Análise de Usuários: devemos entender os usuários, para isso


invista um tempo conversando com eles, entrevistando e
colhendo o maior número de informações possíveis.
• Análise e Modelagem de tarefas: devemos identificar as tarefas
que os usuários irão desempenhar via interface do usuário.
• Análise do Conteúdo exibido: devemos considerar o formato e a
estética do conteúdo que será exibido aos usuários.
• Análise do Ambiente de trabalho: devemos analisar o ambiente
de trabalho dos usuários, como ambientes físicos e a cultura do
local.

Projeto, Implementação e Teste de Software


Projeto de Dados

O que o Projeto de Dados define?


• Como os dados são organizados, como serão os métodos de acesso,
como será o processamento das informações e como serão
armazenados os dados no sistema.

Quais aspectos devemos considerar?

• De que forma os dados serão organizados?


• Qual a sua estrutura?
• Que operações podem ser realizadas sobre estes dados?
• Que tipos de dados serão utilizados?
• Que informações estes dados irão armazenar?

Projeto, Implementação e Teste de Software


Projeto de Dados

Quais as possíveis Estruturas de dados que podem ser utilizadas no


Projeto de Dados?

• Listas;
• Pilha;
• Vetor sequencial;
• Item escalar;
• Árvores;
• Grafos.

Estrutura de dados é uma representação das relações lógicas existentes


entre cada elemento individual de um dado.

Projeto, Implementação e Teste de Software


Implementação de Software

O que ocorre na fase de Implementação de Software?

• Codificação (programação dos requisitos do sistema);


• Detalhamento dos componentes previstos no projeto;
• Descrição do código fonte e do código binário;
• Escolha da Linguagem de programação.

Projeto, Implementação e Teste de Software


Implementação de Software

Quais atividades são envolvidas na Implementação de Software?


• Codificação;
• Depuração;
• Compilação;
• Integração;
• Testes.

O que são os comentários? Eles são muito importantes? Podem


ajudar ou prejudicar significativamente a legibilidade e a
mantenabilidade.

Projeto, Implementação e Teste de Software


Implementação de Software

Existem alguns aspectos de implementação que são importantes.

1. Reuso: quando se está desenvolvendo um sistema, devemos


fazer o maior uso possível de códigos já existentes.
2. Gerenciamento de configuração: quando se está desenvolvendo
um sistema, são geradas muitas versões diferentes, sendo
interessante usar um gerenciamento de configuração para o
controle.
3. Desenvolvimento host-target: o desenvolvimento de um sistema
ocorre em um computador (sistema host) e é executado em outro
(sistema target), podendo ser do mesmo tipo ou, muitas vezes,
diferentes.

Projeto, Implementação e Teste de Software


Implementação de Software

As características que devem ser encontradas em uma boa


implementação:
• Legibilidade: o código deve ser facilmente lido e entendido.
• Mantenabilidade: o código deve ser facilmente modificado e mantido.
• Desempenho: códigos em que a execução seja a mais rápida possível.
• Rastreabilidade: todos os elementos do código devem corresponder a
um elemento do projeto.
• Exatidão: a implementação deve fazer aquilo que foi definido no
levantamento de requisitos e no projeto.
• Integridade: todos os requisitos levantados devem ser atendidos.

Projeto, Implementação e Teste de Software


Implementação de Software

• O que é Depuração? É o ato de localizar e corrigir erros no


código. É uma ferramenta essencial em qualquer projeto
de software.

• O que é Otimização? É o processo de modificar, fazer


algum aspecto do sistema trabalhar com mais eficiência ou
que utilize menos recursos.

• Por que otimizar o código? Porque temos muitos sistemas


de tempo real, são altamente sensíveis a custos, o consumo
de energia deve ser minimizado e espaço físico é restrito.
Projeto, Implementação e Teste de Software
Implementação de Software

O que é Refatoração? É o ato de alterar um código


sem afetar a sua funcionalidade e o seu
comportamento.

Refatorar X Reescrever
Não altera a Altera a
funcionalidade funcionalidade do
ou conteúdo do sistema
sistema

Projeto, Implementação e Teste de Software


Teste de Software

O que é Teste de software? É o processo que visa


executar o sistema de forma controlada, com o
objetivo de avaliar o seu comportamento, baseado no
que foi especificado.

O Teste de software é destinado a mostrar o quê?


Que um programa faz o que é proposto a fazer e para
descobrir os defeitos do programa antes do uso.

Projeto, Implementação e Teste de Software


Teste de Software

Conceitos que envolvem o Teste de Software?


• Erro: resultado de uma falha humana.
• Defeito: resultado de um erro existente num código ou
num documento.

Conforme a terminologia padrão do IEEE, o que são defeitos?


• Defeitos são considerados parte do universo físico,
provocados por pessoas e que podem ocasionar erros em
um software, fazendo com que ele fique diferente do que
foi especificado.

Projeto, Implementação e Teste de Software


Teste de Software

Quais as etapas do Ciclo de Vida de Teste de Software são:


1. Planejamento;
2. Preparação;
3. Especificação;
4. Execução;
5. Entrega.

Projeto, Implementação e Teste de Software


Teste de Software

Como a fase de testes de software é dividida? É dividida em dois tipos:


• Os testes funcionais garantem o atendimento aos requisitos, ou seja,
que os requisitos estão corretamente codificados. São conhecidos
como testes de Caixa Preta.
• Os testes estruturais garantem que os softwares e os programas sejam
estruturalmente sólidos e que funcionem no contexto técnico em que
serão instalados. São conhecidos como testes de Caixa Branca.

Técnica de Teste Funcional Técnica de Teste Estrutural

Projeto, Implementação e Teste de Software


Teste de Software
Matriz de Responsabilidade com as funções que cada um
deve desenvolver na fase de testes:

Projeto, Implementação e Teste de Software


Teste de Software

A distribuição da preparação do ambiente pode se dar em


fases, estágios ou níveis de teste:

• Teste unitário: estágio mais baixo da escala de testes e


aplicado aos menores componentes de código.
• Teste de integração: aplicado à combinação das unidades
de componentes.
• Teste de sistema: aplicado ao sistema como um todo.
• Teste de aceitação: teste final do sistema de
funcionalidade e usabilidade.

Projeto, Implementação e Teste de Software


Teste de Software

Conforme a Norma IEEE 829, quais os documentos mínimos que devem


ser usados no Teste de Software?

• Plano de Teste
• Especificação de Projeto de Teste
- Projeto de teste
- Casos de teste
- Procedimentos de teste
• Relatórios de Teste
- Relatório de Passagem de Itens de Teste
- Relatório de Log de Teste
- Relatório de Incidentes de Teste
- Relatório de Sumário de Teste

Projeto, Implementação e Teste de Software


Teste de Software

O que é o Plano de Teste?


• Documento básico para a gerência do projeto;
• Documento que permite fazer o planejamento do teste;
• Inclui a abrangência, a abordagem, os recursos e o cronograma das
atividades de teste;
• Identifica os itens e as funcionalidades a serem testadas.

• O que é o Projeto de Teste? Refina o Plano de Teste para identificar os


requisitos e as funcionalidades que serão testadas e quais os tipos de
teste deverão ser usados.
• Qual o objetivo principal do Projeto de Teste? É dar um detalhamento
da abordagem do Plano de Teste para facilitar o seu entendimento e
acompanhamento.

Projeto, Implementação e Teste de Software


Teste de Software

• O que é o Caso de Testes? É um conjunto de condições usadas para:


encontrar defeitos na estrutura interna do software e garantir que os
requisitos do sistema que foi construído sejam plenamente atendidos.

• O que são os Relatórios de Teste? Eles registram os dados relativos à


execução dos tipos de testes.

Quais os relatórios necessários conforme a norma IEEE 829?


• Relatório de Passagem de Itens;
• Relatório de Log de Teste;
• Relatório de Incidentes de Teste;
• Relatório de Sumário de Teste.

Projeto, Implementação e Teste de Software


Teste de Software
Automação de testes é
testar um sistema com outro sistema

• São robôs ou scripts construídos para usar o sistema no lugar dos


usuários.
• São mais rápidos na execução dos testes.

Objetivos da Automação de testes:

• Aumenta a consistência e abrangência dos testes;


• Reduz o tempo ou esforço de teste;
• Diminui o custo dos testes;
• Aumenta a qualidade do produto final.
Projeto, Implementação e Teste de Software
Métricas e Medição

• O que é a Medição? Elemento chave de qualquer


processo de engenharia, é usada para melhorar o
entendimento dos atributos dos modelos criados e para
avaliar a qualidade dos sistemas.

Por que medimos e avaliamos?


• Medimos para obter um controle de um projeto e, assim,
poder gerenciá-lo.
• Medimos e avaliamos para estimar se estamos perto ou
longe dos objetivos definidos.

Projeto, Implementação e Teste de Software


Métricas e Medição

Definição Exemplo
Medida Valor quantitativo da extensão, nº de erros detectados na
quantidade, dimensões, revisão de um módulo de sw,
capacidade ou tamanho de algum quantidade de classes-chave
atributo do processo ou produto
de software
Medição Ato de determinar uma medida investigação de um nº de
revisões de módulos para
recompilar medidas do nº de
erros encontrados em cada
revisão
Métrica Medida quantitativa do grau de Média de erros detectados por
posse de um atributo dado por revisão ou nº de erros
parte de um sistema, componente encontrados por pessoa e hora
ou processo em revisões

Projeto, Implementação e Teste de Software


Gerência de Risco em Teste de Software

O que é um Risco? É a probabilidade de insucesso, de malogro de


determinada coisa, em função de acontecimento eventual, incerto,
cuja ocorrência não depende, exclusivamente, da vontade dos
interessados.

Quais as formas que um Risco pode ser determinado?


• Intuição ou julgamento: usar a intuição, aliada a experiência,
para determinar a ocorrência de um risco.
• Consenso: consenso da equipe de que aquele risco tem um grau
alto de severidade.
• Fórmula do risco: a magnitude do risco é calculada, por
exemplo, com as métricas de medição estimando uma perda.

Projeto, Implementação e Teste de Software

Você também pode gostar