Вы находитесь на странице: 1из 32

A importncia da qualidade do software (1)

4 de Junho de 1996 acidente do Ariane 5


Voo inaugural do novo fogueto falhou 40 segundos aps o lanamento Perdas de cerca de 400 milhes de euros
Provocado por uma falha de software Excepo no apanhada devido converso de um inteiro de 64 bits num inteiro de 16 bits, para um valor demasiado grande

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

A importncia da qualidade do software (2)


23 de Setembro de 1999 Mars Climate Orbiter
Desapareceu quando iniciou a rbita sobre Marte Perdas de cerca de 125 milhes de dlares Falha devida a transferncia de informao entre uma equipa no Colorado e uma equipa na Califrnia Uma das equipas usou unidades imperiais (polegadas, libras, ...) e a outra unidades mtricas (metros, quilos, ...

Universidade Portucalense

Qualidade de Software

QS_1

2011-2012

A importncia da qualidade do software (3)


1991 Mssil Patriot
Falhou a defesa contra msseis inimigos em diversas situaes A falha provocou dezenas de mortes, por exemplo 28 soldados em Dhahran Um pequeno erro no relgio de sistema acumulava-se e ao fim de 14 horas o sistema de seguimento de msseis inimigos deixava de ter preciso No caso de Dhahran, o sistema estava a funcionar h 100 horas

Universidade Portucalense

Qualidade de Software

QS_1

2011-2012

A importncia da qualidade do software (4)


O bug do ano 2000
Para poupar memria (RAM, fitas magnticas e discos), as datas eram representadas s com os dois ltimos dgitos do ano Conhecia-se o problema que surgiria no ano 2000 Pensava-se que pelo ano 2000 os programas escritos nos anos 60 e 70 teriam sido substitudos Muitos programas ainda estavam em funcionamento dezenas de anos depois de escritos; os programadores estavam reformados, no existiam os ficheiros com o cdigo fonte, etc.

Universidade Portucalense

Qualidade de Software

QS_1

2011-2012

A importncia da qualidade do software (5)


Lion King, da Disney (1994)
A Disney lanou um jogo para crianas no Natal de 1994 No dia de Natal o suporte a clientes foi afogado com chamadas e reclamaes de cliente insatisfeitos porque o jogo no funcionava O jogo s funcionava num nmero restrito de computadores, semelhantes aos usados no desenvolvimento e teste do programa O jogo no funcionava na maior parte dos computadores

Universidade Portucalense

Qualidade de Software

QS_1

2011-2012

Qualidade o que ? Capacidade de um produto ou servio


realizar as funes esperadas atender s expectativas do cliente

Depende do cliente e da aplicao Conceito alargado:


envolve outros atributos considerados importantes

Foco no cliente, a viso do cliente

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

Atributos de qualidade de software


Alguns atributos importantes de qualidade do software:
Eficincia
No desperdiar recursos do sistema (memria, disco, CPU, etc.) e ter tempos de resposta aceitveis Usabilidade ( facilidade de uso e aprendizagem) Ser utilizvel pelos utilizadores a que se destina

Dependabilidade
Fiabilidade, disponibilidade, segurana, isto , tem que ser confivel

Manutibilidade (facilidade de manuteno)


O software tem que evoluir para se manter adaptado a necessidades que evoluem

Universidade Portucalense

Qualidade de Software

QS_1

2011-2012

Outras caractersticas, no funcionais Preo Prazo Servios ps-venda Aspectos humanos:


explorao do trabalho respeito pelo meio ambiente posio quanto comunidade

Atributos do fornecedor:
estvel e saudvel

Universidade Portucalense

Qualidade de Software

QS_1

2011-2012

10

Problemas com software O utilizador espera demasiado do software


informatizao no substitui organizao

Dificuldade de especificao
utilizador no compreende suficientemente a organizao / negcio utilizador no tem conhecimentos suficientes de informtica

A descrio de um problema no uma especificao de uma soluo

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

Defeito (fault, defect, bug)


introduzido no sistema devido a um erro. uma anomalia do software que pode fazer com que se comporte de forma incorrecta, no de acordo com a especificao

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; }

Erro: o ndice do ciclo comea em 1 e no em 0 Defeito:


As execues de numZero ([2, 7, 0]) e numZero ([0, 7, 2]) ambas contm o erro, mas s a segunda origina uma falha

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

Excerto de Certificado de Garantia


Microsoft Windows XP End-User License Agreement: 11. LIMITED WARRANTY FOR PRODUCT ACQUIRED IN THE US AND CANADA.
Microsoft warrants that the Product will perform substantially in accordance with the accompanying materials for a period of ninety days from the date of receipt. () If an implied warranty or condition is created by your state/jurisdiction and federal or state/provincial law prohibits disclaimer of it, you also have an implied warranty or condition, BUT ONLY AS TO DEFECTS DISCOVERED DURING THE PERIOD OF THIS LIMITED WARRANTY (NINETY DAYS). () YOUR EXCLUSIVE REMEDY. Microsoft's and its suppliers' entire liability and your exclusive remedy shall be, at Microsoft's option from time to time exercised subject to applicable law, (a) return of the price paid (if any) for the Product, or (b) repair or replacement of the Product, that does not meet this Limited Warranty and that is returned to Microsoft with a copy of your receipt. (..)

Universidade Portucalense

Qualidade de Software

QS_1

2011-2012

16

Custo dos erros de software


Se o erro for detectado e corrigido nos requisitos, no necessrio corrigir o cdigo Se o programador detectar os seus prprios erros, corrige-os sem serem abertos relatrios de erro, e sem ter que explicar a situao a ningum O custo de corrigir erros em casa do cliente enorme

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

O testador de software Caractersticas de um bom testador de software


Conhecer a tecnologia Ser perfeccionista e realista Ser diplomata mas persuasivo Ser um explorador Ser organizado Ser objectivo e preciso Saber aprender com os erros

Universidade Portucalense

Qualidade de Software

QS_1

2011-2012

19

Objectivos e limites dos testes (1) O teste completo impossvel


O domnio de entradas possveis demasiado amplo para testar exaustivamente H demasiados caminhos possveis na execuo do programa para serem todos testados As questes de interface com o utilizador so demasiado complexas para serem exaustivamente testadas

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

No possvel encontrar todos os erros de concepo


Ser que basta um programa estar totalmente de acordo com a especificao para ser considerado correcto?
Se a especificao disser que 2 + 2 igual a 5, o que fazer?

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

Objectivos e limites dos testes (6) Os programas no funcionam correctamente


Estima-se que o custo dos testes fica entre 40% e 80% do custo total do desenvolvimento dos programas Estima-se que o nmero de bugs em programas enviados para teste fica entre 1 e 3 bugs por 100 linhas de cdigo

Os testes falham se os programas tm erros?


Se o objectivo verificar que os programas esto correctos, sim Se o objectivo encontrar os problemas que o programa ainda tem, no

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

Evoluo do nmero de erros detectados


Exemplo de evoluo do nmero de erros detectados (caso tpico)

Bugs Per Week

Week
Fonte: Cem Kaner
Universidade Portucalense Qualidade de Software QS_1 2011-2012 27

Evitar o excesso de testes


importante saber quando se devem parar os testes e dar o produto como pronto a ser utilizado S a experincia pode dar a resposta, da a importncia da criao e manuteno de registos para haver dados estatsticos objectivos que ajudem a tomar decises

Universidade Portucalense

Qualidade de Software

QS_1

2011-2012

28

Primeiros ciclos de teste Estratgia:


Comear os testes com valores simples e bvios Testar de forma alargada, mais do que em profundidade. Verificar todos os componentes do programa antes de entrar no detalhe Depois de suceder nos testes fceis, avanar sistematicamente para desafios difceis Seleccionar valores fronteira. H demasiados testes interessantes. necessrio definir uma estratgia de testes Repetir testes periodicamente, criando regularmente novos testes

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

A nica abordagem que garante sucesso uma abordagem sistemtica

Universidade Portucalense

Qualidade de Software

QS_1

2011-2012

32

Вам также может понравиться