Escolar Documentos
Profissional Documentos
Cultura Documentos
DCTI, ISCTE-IUL
Manuel.Sequeira@iscte.pt, D6.02
As apresentaes desta srie baseiam-se nas apresentaes disponibilizadas por Ian Sommerville, tendo
sido alteradas e adaptadas primeiro por Anders Lyhne Christensen e finalmente por Manuel Menezes de
Sequeira.
ENGENHARIA DO
SOFTWARE I
Na aula anterior
utilizador
Estilos de interaco
Processo de desenho de interfaces com o
utilizador
Anlise dos utilizadores
Prototipagem de interfaces com o utilizador
Avaliao de interfaces
2009/2010
Engenharia do Software I
Verificao e
validao
2009/2010
Engenharia do Software I
Sumrio
Verificao e validao
Planeamento da verificao e validao
Inspeces de software
Anlise esttica automtica
Desenvolvimento de software em sala limpa
2009/2010
Engenharia do Software I
Objectivos
2009/2010
Engenharia do Software I
Validao
2009/2010
Estamos a construir
o produto certo?
Engenharia do Software I
Processo de verificao e
validao
Principais objectivos
Descobrir defeitos no sistema
Aferir se o sistema til e usvel em
operao
2009/2010
Engenharia do Software I
Objectivos da verificao e
validao
utilizao pretendida
Tipo de utilizao determina grau de
confiana necessrio
2009/2010
Engenharia do Software I
Confiana
Depende de
Propsito do sistema
Expectativas do utilizador
Ambiente de marketing
2009/2010
Engenharia do Software I
Confiana
Funo do software
2009/2010
Engenharia do Software I
10
Exercitar sistema e
Sistema executado com
observar comportamento dados de teste e
do produto.
comportamento operacional
observado.
Verificao dinmica
2009/2010
Engenharia do Software I
11
Especificao
de requisitos
Desenho de
alto nvel
Especificao
formal
Programa
Teste de
software
Prottipo
2009/2010
Desenho
pormenorizado
Engenharia do Software I
12
Teste de software
2009/2010
Engenharia do Software I
13
Tipos de testes
Testes de defeitos
Captulo 23
defeito
Testes de validao
Mostram que software cumpre requisitos
Teste com sucesso mostrar que requisito foi
devidamente implementado
2009/2010
Engenharia do Software I
14
Teste e depurao
So processos distintos
Verificao e validao estabelecem
2009/2010
Engenharia do Software I
15
Processo de depurao
Resultados
do teste
Especificao
Localizar
erro
Desenhar
correco do erro
2009/2010
Casos
de teste
Corrigir
erro
Engenharia do Software I
Testar programa
de novo
16
Planeamento da verificao e
validao
2009/2010
Engenharia do Software I
17
Modelo em V
Especificao
de requisitos
Servio
Especificao
de sistema
Desenho
de sistema
Desenho de
pormenor
Plano de testes
de aceitao
Plano de testes
de integrao
de sistemas
Plano de testes
de integrao
de subsistemas
Testes de
aceitao
Testes de integrao
de sistema
Testes de integrao
de subsistemas
Codificao e teste de
mdulos e unidades
2009/2010
Engenharia do Software I
18
Processo de teste
Rastreabilidade de requisitos
Itens testados
Calendrio de testes
Procedimento de registo de testes
Requisitos de hardware e software
Restries
2009/2010
Engenharia do Software I
19
Plano de teste de
software
Processo de
teste
Calendrio de
testes
Procedimento
de registo de
testes
Requisitos de
hardware e
software
Restries
2009/2010
Engenharia do Software I
20
Inspeces de software
2009/2010
Engenharia do Software I
21
Sucesso da inspeco
2009/2010
Engenharia do Software I
22
Inspeces e testes
Inspeces
Podem verificar cumprimento de especificao
No podem verificar cumprimento dos requisitos reais
do cliente
No podem verificar caractersticas no funcionais
como desempenho ou usabilidade
2009/2010
Engenharia do Software I
23
Inspeces de programa
Defeitos
Erros lgicos
Anomalias no cdigo que podem indicar uma
2009/2010
Engenharia do Software I
24
Pr-condies da
inspeco
2009/2010
Engenharia do Software I
25
Pr-condies da
inspeco
2009/2010
Engenharia do Software I
26
Processo de inspeco
Planeamento
Viso
global
Preparao
individual
Reunio de
inspeco
Retrabalho
Seguimento
2009/2010
Engenharia do Software I
27
Procedimento de
inspeco
Reinspeccionar se necessrio
2009/2010
Engenharia do Software I
28
Papis na inspeco
Autor ou
proprietrio
Inspector
Leitor
Secretrio
Presidente ou
moderador
Moderador
chefe
2009/2010
Engenharia do Software I
29
Listas de verificao da
inspeco
Exemplos
Inicializao
Nomes de variveis e constantes
Terminao de ciclos
Limites de matrizes
2009/2010
Engenharia do Software I
30
Verificaes da
inspeco
1?
Deve atribuir-se explicitamente delimitador a cadeias de
caracteres?
Pode ocorrer transbordamento de memria?
2009/2010
Engenharia do Software I
31
Verificaes da
inspeco
Erros no controlo
Guardas de instrues condicionais correctas?
Terminao de ciclos assegurada?
Instrues compostas correctamente envolvidas?
Cobertura de instrues de seleco de casos correcta?
Se necessria, foi includa quebra depois de cada caso?
Erros de interface
Invocaes com nmero correcto de argumentos?
Tipos de argumentos e parmetros correspondem?
Argumentos esto na ordem correcta?
Se componentes acedem a memria partilhada, tm o mesmo
2009/2010
Engenharia do Software I
32
Verificaes da
inspeco
atribudas?
Memria dinmica correctamente reservada?
Memria libertada quando deixa de ser necessria?
2009/2010
Engenharia do Software I
33
Taxa de inspeco
Ritmo
Viso global: 500 instrues/hora
Preparao individual: 125 instrues/hora
Inspeco: 90-125 instrues/hora
Custo
Processo de inspeco caro
Inspeco de 500 linhas exige esforo de 40
Engenharia do Software I
34
Anlise esttica
automtica
Analisadores estticos
Ferramentas de software
Analisam o cdigo fonte
Tentam descobrir potenciais condies de erro
Reportam equipa de verificao e validao
Eficazes como auxlio s inspeces
Suplementam inspeco, no a substituem
2009/2010
Engenharia do Software I
35
Verificao
Dados
Controlo
Cdigo inatingvel
Entradas incondicionais em ciclos
Memria
2009/2010
Engenharia do Software I
36
Etapas da anlise
esttica
Fluxo de
controlo
Utilizao
de dados
Interface
Fluxo de
informao
Caminhos
2009/2010
Engenharia do Software I
37
lint
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// test.c
#include <stdio.h>
printarray (Anarray)
int Anarray;
{
printf("%d", Anarray);
}
main()
{
int Anarray[5]; int i; char c;
printarray(Anarray, i, c);
printarray(Anarray) ;
}
2009/2010
> cc test.c
> lint test.c
test.c(13): warning: c may be used before
set
test.c(13): warning: i may be used before
set
printarray: variable # of args.
test.c(4) :: test.c(13)
printarray, arg. 1 used inconsistently
test.c(4) :: test.c(13)
printarray, arg. 1 used inconsistently
test.c(4) :: test.c(14)
printf returns value which is always
ignored
Engenharia do Software I
38
Utilizao da anlise
esttica
2009/2010
Engenharia do Software I
39
2009/2010
Engenharia do Software I
40
2009/2010
Engenharia do Software I
41
2009/2010
Engenharia do Software I
42
Desenvolvimento de software
em sala limpa
2009/2010
Engenharia do Software I
43
Desenhar
testes
estatsticos
Testar
sistema
integrado
Definir
incrementos
do software
Desenvolver
perfil
operacional
Construir
programa
estruturado
retrabalho
Verificar
formalmente
cdigo
Integrar
incremento
2009/2010
Engenharia do Software I
44
Caractersticas do processo de
sala limpa
2009/2010
Engenharia do Software I
Captulo 24
45
Especificao formal e
inspeces
2009/2010
Engenharia do Software I
46
Desenvolvimento
Certificao
2009/2010
Engenharia do Software I
47
2009/2010
Engenharia do Software I
48
A reter
2009/2010
Engenharia do Software I
49
A reter
2009/2010
Engenharia do Software I
50
A ler
2009/2010
Engenharia do Software I
51