Uploaded by Lineu Mialaret

TSWI5-Aula4-1Sem-2023

advertisement
Instituto Federal de Educação, Ciência e
Tecnologia de São Paulo - IFSP
Câmpus Jacareí
Tecnologia em Análise e Desenvolvimento de Sistemas ADS
10 Semestre de 2023
Teste de Software – TSWI5
Prof. Lineu Mialaret
Aula 4: Teste no Processo de Desenvolvimento
de Software
©Prof. Lineu
TSWI5 - Aula 4 - 1/18
Desenvolvimento de Software e Teste
 Um
processo (modelo de ciclo de vida) de
desenvolvimento de software descreve os tipos de
atividades realizadas em cada estágio de um projeto de
desenvolvimento de software e como as atividades se
relacionam umas com as outras de forma lógica e
cronológica.
• Há vários modelos de processos de desenvolvimento de
software, cada um dos quais requer abordagens diferentes
para o teste.
©Prof. Lineu
TSWI5 - Aula 4 - 2/18
Desenvolvimento de Software e Teste (cont.)
 Em qualquer processo de desenvolvimento de software,
existem várias características para um bom teste:
• Para cada atividade de desenvolvimento, existe uma
atividade de teste correspondente.
• Cada nível de teste tem objetivos específicos.
• A análise e a modelagem de teste para um determinado
nível de teste começam durante
desenvolvimento correspondente.
a
atividade
de
• Os testadores participam de discussões para definir e
refinar os requisitos e a modelagem, e estão envolvidos na
revisão dos produtos de trabalho (requisitos, modelagem,
estórias de usuários, etc.) assim que os rascunhos
estiverem disponíveis.
©Prof. Lineu
TSWI5 - Aula 4 - 3/18
Desenvolvimento de Software e Teste (cont.)
 Independentemente do processo de desenvolvimento de
software escolhido, as atividades de teste devem
começar nos estágios iniciais do ciclo de vida, aderindo
ao princípio de testar do início.
©Prof. Lineu
TSWI5 - Aula 4 - 4/18
Desenvolvimento de Software e Teste (cont.)
 Um modelo de desenvolvimento sequencial descreve o
processo de desenvolvimento de software como um fluxo
sequencial e linear de atividades.
• Isso significa que qualquer fase do processo de
desenvolvimento deve começar quando a fase anterior
estiver concluída.
• Em teoria, não há sobreposição de fases, mas, na prática,
é benéfico ter antecipadamente o feedback da fase
seguinte.
©Prof. Lineu
TSWI5 - Aula 4 - 5/18
Desenvolvimento de Software e Teste (cont.)
 No
Modelo Cascata (Waterfall), as atividades de
desenvolvimento (análise de requisitos, projeto,
codificação, teste) são concluídas uma após a outra.
• Nesse modelo, as atividades de teste só ocorrem após
todas as outras atividades de desenvolvimento terem sido
concluídas.
©Prof. Lineu
TSWI5 - Aula 4 - 6/18
Desenvolvimento de Software e Teste (cont.)
 Ao contrário do Modelo Cascata, o
Modelo V integra o processo de teste
ao
longo
do
processo
de
desenvolvimento, implementando o
princípio de testar do início.
• Além disso, o Modelo V inclui níveis
de teste associados a cada fase de
desenvolvimento
correspondente,
suportando o princípio de testar do
início, e a execução dos testes
associados a cada nível de teste
ocorre sequencialmente, mas em
alguns casos pode ocorrer a
sobreposição.
©Prof. Lineu
TSWI5 - Aula 4 - 7/18
Desenvolvimento de Software e Teste (cont.)
 Os modelos de desenvolvimento sequencial fornecem
software que contêm o conjunto completo de
funcionalidades, mas normalmente exigem meses ou
anos para serem entregues aos stakeholders e aos
usuários.
©Prof. Lineu
TSWI5 - Aula 4 - 8/18
Desenvolvimento de Software e Teste (cont.)
 O
Desenvolvimento Incremental
envolve o estabelecimento de
requisitos,
a
modelagem,
a
construção e o teste de um sistema
em partes, o que significa que o
software
cresce
de
forma
incremental.
• Os incrementos de software podem
ser tão pequenos quanto uma única
alteração para uma tela de interface
do usuário ou uma nova opção de
consulta
ou
uma
nova
funcionalidade.
©Prof. Lineu
TSWI5 - Aula 4 - 9/18
Desenvolvimento de Software e Teste (cont.)
 O Desenvolvimento Iterativo ocorre
quando
funcionalidades
são
especificadas,
projetadas,
construídas e testadas juntas em
uma série de ciclos, geralmente com
duração fixa.
• Iterações podem envolver mudanças
em funcionalidades desenvolvidas
em iterações anteriores, juntamente
com mudanças no escopo do
projeto.
• Cada iteração fornece software
funcional que é um subconjunto
crescente do sistema concebido até
que o software final seja entregue ou
o desenvolvimento seja interrompido.
©Prof. Lineu
TSWI5 - Aula 4 - 10/18
Desenvolvimento de Software e Teste (cont.)
 Há uma junção de Desenvolvimento Incremental e
Desenvolvimento Iterativo.
©Prof. Lineu
TSWI5 - Aula 4 - 11/18
Desenvolvimento de Software e Teste (cont.)
 Exemplos:
• Rational Unified Process - cada iteração
tende a ser relativamente longa (dois a três
meses) e os incrementos de funcionalidades
são correspondentemente grandes, como
dois ou três grupos de funcionalidades
relacionadas.
• Scrum - cada iteração tende a ser
relativamente curta (horas, dias ou algumas
semanas)
e
os
incrementos
de
funcionalidades são correspondentemente
pequenos, como alguns aprimoramentos e /
ou dois ou três novos recursos.
• Espiral (ou prototipagem) - envolve a criação
de incrementos experimentais, alguns dos
quais podem ser muito retrabalhados ou até
mesmo
abandonados
em
trabalhos
subsequentes de desenvolvimento.
©Prof. Lineu
TSWI5 - Aula 4 - 12/18
Desenvolvimento de Software e Teste (cont.)
 Componentes ou sistemas desenvolvidos usando esses
métodos geralmente envolvem a sobreposição e a
interação dos níveis de teste ao longo do
desenvolvimento.
 Idealmente, cada funcionalidade é testada em vários
níveis de teste à medida que se aproxima da entrega.
• Em alguns casos, as equipes usam entrega contínua ou
implantação contínua, as quais envolvem automação
significativa de vários níveis de teste como parte de seus
canais de entrega.
• Muitos esforços
©Prof. Lineu
de desenvolvimento usando esses
modelos de desenvolvimento também incluem o conceito
de equipes auto-organizadas, que podem mudar a maneira
como o trabalho de teste é organizado, bem como a
relação entre testadores e desenvolvedores.
TSWI5 - Aula 4 - 13/18
Desenvolvimento de Software e Teste (cont.)
 Todos esses modelos formam um sistema crescente,
que pode ser liberado para os usuários finais em uma
base de funcionalidade por funcionalidade, em uma
iteração por iteração, ou em um modelo de liberação
principal mais tradicional.
• Independentemente de os incrementos de software serem
liberados para os usuários finais, o Teste de Regressão é
cada vez mais importante à medida que o sistema cresce.
©Prof. Lineu
TSWI5 - Aula 4 - 14/18
Desenvolvimento de Software e Teste (cont.)
 Os processos de desenvolvimento de software devem
ser selecionados e adaptados ao
características do projeto e do produto.
contexto
das
• Um processo de desenvolvimento de software apropriado
deve ser selecionado e adaptado com base na meta do
projeto, no tipo de produto que está sendo desenvolvido, nas
prioridades de negócios e nos riscos identificados de produto
e projeto.
 Exemplo:
• O desenvolvimento e teste de um pequeno sistema
administrativo interno deve diferir do desenvolvimento e teste
de um sistema crítico de segurança, como o sistema de
controle de freio de um automóvel.
• Em alguns casos, questões organizacionais e culturais podem
inibir a comunicação entre os membros da equipe, impedindo
o desenvolvimento iterativo.
©Prof. Lineu
TSWI5 - Aula 4 - 15/18
Desenvolvimento de Software e Teste (cont.)
 Dependendo do contexto do projeto, pode ser necessário
combinar ou reorganizar os níveis e/ou as atividades de
teste.
 Exemplo:
• Na integração de um produto de software comercial de
prateleira (COTS) em um sistema maior, o comprador pode
realizar testes de interoperabilidade no nível de teste de
integração do sistema (integração à infraestrutura e outros
sistemas) e nível de teste de aceitação (funcional e não
funcional, juntamente com os testes de aceitação do
usuário e operacional).
©Prof. Lineu
TSWI5 - Aula 4 - 16/18
Desenvolvimento de Software e Teste (cont.)
 Além disso, os próprios processos de desenvolvimento
de software podem ser combinados.
 Exemplo:
• Um Modelo de Desenvolvimento V pode ser usado para o
desenvolvimento e teste dos sistemas de apoio e suas
integrações, enquanto um modelo de desenvolvimento ágil
pode ser usado para desenvolver e testar a interface do
usuário e a funcionalidade.
• A prototipagem pode ser usada no início de um projeto,
com um modelo de desenvolvimento incremental adotado
uma vez que a fase experimental esteja completa.
©Prof. Lineu
TSWI5 - Aula 4 - 17/18
Desenvolvimento de Software e Teste (cont.)
 Os motivos pelos quais os modelos de desenvolvimento
de software devem ser adaptados ao contexto das
características do projeto e do produto podem ser:
• Diferença nos riscos de produto dos sistemas (projeto
complexo ou simples).
• Muitas unidades de negócios podem fazer parte de um
projeto ou programa (combinação de desenvolvimento
sequencial e ágil).
• Pouco tempo para entregar um produto ao mercado
(mesclagem de níveis de teste ou integração de tipos de
teste nos níveis de teste).
©Prof. Lineu
TSWI5 - Aula 4 - 18/18
Download