Falta de um exception handler A excepo era suposta nunca acontecer no caso de Ariane 4 Mdulo de software foi reutilizado do Ariane 4 No se tomou conscincia das diferenas entre os dois sistemas
Universidade Portucalense
Qualidade de Software
QS_1
2011-2012
Universidade Portucalense
Qualidade de Software
QS_1
2011-2012
Universidade Portucalense
Qualidade de Software
QS_1
2011-2012
Universidade Portucalense
Qualidade de Software
QS_1
2011-2012
Universidade Portucalense
Qualidade de Software
QS_1
2011-2012
Universidade Portucalense
Qualidade de Software
QS_1
2011-2012
Software
Software como produto = programas de computador + respectiva documentao Produtos de Software podem ser:
medida (custom) desenvolvidos para um cliente, de acordo com as suas especificaes Genricos (packages) desenvolvidos para um mercado, para ser vendidos a vrios clientes
Universidade Portucalense
Qualidade de Software
QS_1
2011-2012
Caractersticas funcionais Funo Confiabilidade Durabilidade Desempenho Consumo Tamanho Flexibilidade Configurabilidade
Universidade Portucalense
Qualidade de Software
QS_1
2011-2012
Dependabilidade
Fiabilidade, disponibilidade, segurana, isto , tem que ser confivel
Universidade Portucalense
Qualidade de Software
QS_1
2011-2012
Atributos do fornecedor:
estvel e saudvel
Universidade Portucalense
Qualidade de Software
QS_1
2011-2012
10
Dificuldade de especificao
utilizador no compreende suficientemente a organizao / negcio utilizador no tem conhecimentos suficientes de informtica
Universidade Portucalense
Qualidade de Software
QS_1
2011-2012
11
Qualidade de software
Interesses no coincidentes, mas compatveis:
Cliente: eficincia, fiabilidade, Fornecedor: manutibilidade, reutilizao,
Dificuldade em especificar sem ambiguidades Especificaes frequentemente incompletas e inconsistentes Conflito entre nvel de qualidade e custos associados Compromisso:
software adequado utilizao, que representa um valor para o utilizador
Universidade Portucalense
Qualidade de Software
QS_1
2011-2012
12
Definies
Erro
Engano, omisso, concepo errada, ou m compreenso da parte de um desenvolvedor de software
Falha (failure)
Incapacidade do software desempenhar as funes requeridas dentro dos limites definidos pelos requisitos de desempenho
Universidade Portucalense
Qualidade de Software
QS_1
2011-2012
13
Falhas
Um defeito no cdigo nem sempre provoca uma falha De facto, software com defeitos pode funcionar longos perodos sem exibir qualquer comportamento incorrecto. No entanto, quando se verificarem as condies adequadas, o defeito dar origem a uma falha. As condies, segundo Voas, so:
As entradas do programa devem fazer com que a instruo incorrecta seja executada. A instruo incorrecta tem que produzir um valor diferente do correcto. Esta ocorrncia produz um estado incorrecto do programa. O estado interno incorrecto tem que afectar uma sada, de forma que a falha seja observvel.
O software que mais facilmente revela os defeitos sob a forma de falhas diz-se ser mais testvel.
Universidade Portucalense
Qualidade de Software
QS_1
2011-2012
14
Exemplo
public static int numZero (int[] x) { // Effects: if x == null throw NullPointerException // else return the number of occurrences of 0 in x int count = 0; for (int i = 1; i < x.length; i++) { if (x[i] == 0) { count++; } } return count; }
Falha:
No segundo caso, o erro propaga-se para o valor de retorno e d origem a uma falha
Universidade Portucalense
Qualidade de Software
QS_1
2011-2012
15
Universidade Portucalense
Qualidade de Software
QS_1
2011-2012
16
Universidade Portucalense
Qualidade de Software
QS_1
2011-2012
17
A funo do testador de software A funo do testador de software encontrar defeitos A funo do testador de software encontrar defeitos, e faz-lo o mais cedo possvel A funo do testador de software encontrar defeitos, faz-lo o mais cedo possvel, e garantir que so corrigidos
Universidade Portucalense
Qualidade de Software
QS_1
2011-2012
18
Universidade Portucalense
Qualidade de Software
QS_1
2011-2012
19
Universidade Portucalense
Qualidade de Software
QS_1
2011-2012
20
Objectivos e limites dos testes (2) H quem reclame que possvel testar completamente os programas
Alguns textos chegam a dizer coisas como: testar todas as entradas possveis, ou todos os caminhos de execuo.
Com programas complexos, isto impossvel
Alguns gestores acreditam que isso possvel, do instrues para que isso seja feito, e asseguram que est a ser feito Algumas empresas de teste de software propem-se fornecer esse servio Algumas ferramentas de teste reivindicam que verificam se so feitos teste exaustivos etc...
Universidade Portucalense Qualidade de Software QS_1 2011-2012 21
Objectivos e limites dos testes (3) No possvel testar a resposta do programa a todas as entradas
Seria necessrio testar todas as entradas vlidas Seria necessrio testar todas as entradas no vlidas
Isto inclui tudo que pode ser introduzido pelo teclado
Se o programa permite editar o texto de entrada, seria necessrio testar todas as possibilidades de edio do texto Seria necessrio testar todas as variaes na temporizao das entradas
Universidade Portucalense
Qualidade de Software
QS_1
2011-2012
22
Objectivos e limites dos testes (4) No possvel testar todos os caminhos de execuo
Pode ser traado um caminho atravs do cdigo desde o incio at ao fim. Dois caminhos so diferentes se as instrues executadas so diferentes, ou se so executadas por uma ordem diferente
Est relacionado com os dados de entrada
Um autor (Myers) em 1976 descreveu um programa com apenas 100 linhas de cdigo que tinha 1018 caminhos
Universidade Portucalense
Qualidade de Software
QS_1
2011-2012
23
Objectivos e limites dos testes (5) Qual o objectivo do testador de programas? Verificar que o programa funciona correctamente?
No faz sentido: no possvel fazer o teste exaustivo enganador: se o programa no est correcto, no podemos verificar que funciona correctamente Leva concluso de que o testador falha, dado que no consegue verificar que o programa funciona correctamente Fomenta uma atitude pouco eficiente, dado que se parte com um objectivo irrealista, e podem no se detectar problemas existentes, que poderiam ser encontrados se se trabalhasse na expectativa de que o programa pode falhar
Universidade Portucalense Qualidade de Software QS_1 2011-2012 24
Universidade Portucalense
Qualidade de Software
QS_1
2011-2012
25
Nveis de testes
De acordo com a maturidade do processo, segundo Beizer
Nvel 0 No h distino entre teste e debugging Nvel 1 O objectivo do teste mostrar que o software funciona Nvel 2 O objectivo do teste mostrar que o software no funciona Nvel 3 O objectivo do teste no mostrar nada em especial, mas sim reduzir os riscos de usar o sftware Nvel 4 O teste de software uma disciplina mental que ajuda os profissionais de informtica a desenvolverem melhores programas
Universidade Portucalense
Qualidade de Software
QS_1
2011-2012
26
Week
Fonte: Cem Kaner
Universidade Portucalense Qualidade de Software QS_1 2011-2012 27
Universidade Portucalense
Qualidade de Software
QS_1
2011-2012
28
Universidade Portucalense
Qualidade de Software
QS_1
2011-2012
29
Testes iniciais alargados, no profundos O objectivo dos testes iniciais limpar rapidamente os grandes problemas medida que for ficando mais estvel, o programa ser explorado com mais profundidade No interessa testar exaustivamente um programa que vai ser alterado. Deve-se reportar o maior nmero possvel de problemas que se acha que provocaro uma alterao do programa, e depois deve-se avanar
Universidade Portucalense
Qualidade de Software
QS_1
2011-2012
30
Segunda fase de testes (1) Antes de continuar com os testes, rever as respostas aos relatrios de problemas para verificar o que necessita ou no de ser feito Rever comentrios aos problemas que no vo ser corrigidos. Podem sugerir outros testes
A tctica mais efectiva para forar um programador a aceitar corrigir um defeito encontrar casos de teste que faam com que o problema surja em condies simples Exemplo: o programa falha quando se primem teclas no numricas; o programador diz que essas teclas no deviam ser premidas; o programa deveria recusar essas teclas sem problemas; se se encontrarem teclas inocentes que provocam a falha do programa, o programador ser obrigado a intervir
Universidade Portucalense
Qualidade de Software
QS_1
2011-2012
31
Segunda fase de testes (2) Pegar nas notas usadas na ltima fase de testes, juntar novas notas, e comear a nova ronda de testes
Deve-se comear por testes simples No cair no erro de testar de imediato situaes complicadas
Universidade Portucalense
Qualidade de Software
QS_1
2011-2012
32