Buscar

Teste de Software

Prévia do material em texto

MATERIAL DO CURSO 
Teste de software 
APOSTILA 01 
 
 
Processo / Metodologia de 
Desenvolvimento de Software 
 
3 
Importância de Software 
• Dependência generalizada da vida moderna de 
sistemas de computação 
• O software é parte cada vez maior dos custos e 
do sucesso desses sistemas 
• Produzir software é um atividade inerentemente 
complexa 
– Independe de leis físicas, restrições de materiais e 
processos de manufatura 
• Não se trata de engenharia, stricto sensu 
– Requer disciplina  Observância de Preceitos e 
Normas, Aurélio  de desenvolvimento 
O que é Software? 
• Produto da Engenharia de Software, consiste em 
• Programas 
– Arquivos de código 
• Fonte 
• Objeto, ou Executável 
• Arquivos de Suporte 
– Configuração, instalação e reconstrução 
• Documentação 
– Manuais do usuário 
– Manuais do sistema 
– Web sites 
O que é Engenharia de Software? 
• Uma disciplina de ‘engenharia’ voltada para 
todos os aspectos da produção de software de 
qualidade 
– Processos, modelos e metodologias de 
desenvolvimento 
– Gerência de projeto 
– Uma linha de pesquisa 
• Investigação de novos métodos, ferramentas e teorias 
O que é Engenharia de Software? (2) 
• Envolve a escolha seletiva de metodologias e 
ferramentas adequadas ao contexto 
(restrições) de um sistema 
• Abrange desde a especificação inicial do 
sistema até sua operação e manutenção 
Atributos de Qualidade de um 
Software 
• Relacionados com o comportamento 
(execução do código) do sistema 
• Atributos essenciais 
– Manutenibilidade 
– Confiabilidade 
– Eficiência 
– Usabilidade 
 
Processo de Desenvolvimento de 
Software 
• Um processo de desenvolvimento de software 
é um conjunto estruturado de atividades 
necessárias à produção de software 
• Critérios de avaliação de um processo 
– Em que medida garante os atributos essenciais de 
um produto de software? 
• As atividades de um processo são distribuídas 
em fases do processo 
 
Atividade 
• Tipos de atividade 
– Análise 
– Projeto (“Design”) 
– Implementação 
– Testes 
– Manutenção / Evolução 
• Os tipos de atividade são organizados segundo 
diferentes Modelos de Desenvolvimento 
Modelo de Desenvolvimento 
• Representação abstrata das atividades de um 
processo de software e suas interdependências 
• Modelos genéricos 
– Cascata (ou Clássico) 
– Iterativo (ou Evolucionário) 
 
Fase 
• Fase 
– Unidade de decomposição de um processo 
• Engloba uma ou mais atividades 
– Ortogonal ao modelo de desenvolvimento 
• Nada impede que dois modelos diferentes consistam nas 
mesmas fases (ao menos sintaticamente) 
 
Atividades e Fases 
• Atividades e Fases 
– Fases nunca são entrelaçadas  seqüência 
– Atividades podem ser entrelaçadas, dependendo do 
modelo de desenvolvimento  interação 
Implementação 
O Modelo Cascata 
Manutenção 
Testes 
“Design” 
Análise 
Características do Modelo Cascata 
• Como todo processo, é organizado em fases 
(sequënciais) 
– Relacionamento 1:1 entre Atividade e Fase 
• Ex.: Fase Análise – Atividade Análise 
• Requer análise completa e bem entendida no 
início do desenvolvimento (ou primeira fase) 
• Requer “design” completo e bem entendido antes 
da implementação do software 
• Crítica do modelo 
– Dificulta a introdução de mudanças na análise e no 
“design” 
O Modelo Iterativo 
Análise 
“Design” / 
Implementação 
Testes 
Sumário 
Executivo 
Versões 
Intermediárias 
Versão 
Inicial 
Versão 
Final 
Atividades 
Interativas 
Iterações ou 
Incrementos 
Características Comuns a Modelos 
Iterativos 
• Iteração 
– Um ciclo completo de desenvolvimento, dentro de um 
intervalo de tempo. Ex: 2 a 4 semanas 
• Atividades  Análise, “Design”, Implementação e Testes  
entrelaçadas 
• Cada fase é composta de uma seqüência de 
iterações 
• Especificação  Análise e “Design”  evolui 
junto com o sistema 
• Aceita requisitos parcialmente definidos 
 
Características ... (2) 
• Cada iteração produz uma “release” do 
software  milestone 
• A última “release” de uma fase deve marcar 
um “tournant” no desenvolvimento do 
software  major milestone 
– Que “tournant” é esse? 
• Depende do processo de desenvolvimento escolhido. 
Veremos, em detalhes, o processo padrão (R)UP 
 
Distribuição das Atividades de 
Desenvolvimento nos Modelos Cascata e 
Iterativo 
Análise Implementação Testes Projeto 
Modelo Cascata Modelo Iterativo 
Exemplos de Processos de 
Desenvolvimento 
• Modelo Cascata 
– APE: Análise e Projeto Estruturados 
• DeMarco, Page-Jones, Gane-Sarson 
– APOD: Análise e Projeto Orientados a Dados 
• Jackson, Warnier-Orr 
• Modelo Iterativo 
– APOO: Análise e Projeto Orientados a Objeto 
• Booch, OMT, OOSE 
– (R)UP: (Rational) Unified Process (Padrão, de fato) 
• Rational Technology 
 
» 
 
Metodologia de Desenvolvimento 
• Metodologia = Processo + Linguagem Formal para 
os Artefatos do Processo 
• A Linguagem UML é Padrão 
– UML: Unified Modeling Language 
– UML é uma linguagem orientada a objeto e 
abrangente ou única 
• Cobre as atividades de análise, “design” e implementação 
• Unificação é uma grande vantagem 
– Evita problemas de “impedance mismatch” 
• Metodologia de Desenvolvimento Adotada na 
Disciplina 
– (R)UP + UML (Padrão, de fato) 
 
 
Produção, Edição, Elaboração e Revisão de Texto: 
ESCON - Escola de Cursos Online 
Proibida a reprodução total ou parcial sem permissão expressa da ESCON. (Lei 9.619/98)

Continue navegando