Qualidade de Software Uma nova Abordagem Luis Duarte Consultor At Your Side Consulting Coimbra, Abril de 2004
ualidade de Software Software de Qualidade Software que combina baixos rácios de erros com elevada satisfação dos utilizadores Qualidade é medida em várias dimensões Disponibilidade Eficiência Flexibilidade Integridade Interoperável Fiabilidade Robustez Facilidade de utilização Fácil de manter Portável Reutilizável Testável (Wiegers, K. - 1997)
stado actual Software é o único produto onde um elevado número de defeitos é aceitável Rácio médio de defeitos nos EUA 5.9 a 7 defeitos por milhar de linhas de código (Jones, C. 2001 Média de defeitos aumentou 15% no biénio 1999-2000 comparado com 1997-1998 (Meta Group, Janeiro 2002) Utilizadores frequentes apanham crashes 2.5 vezes por semana (InfoWorld 17/09/2001)
mpacto da falta de Qualidade Intel gastou $475 m na correcção do erro da virgula flutuante do Pentium em 1994 (Computer Science, Springer Verlag 1995 PrimeCo Personal Communications cancelou contrato de $500M com Motorola por causa de falhas. (Wall Street Journal 24/02/98 Time Warner Communications gastou $1B em sistema de informação para tentar entrar no negócio residencial da rede telefónica. (Computerworld 05/05/97
mpacto da falta de Qualidade National Bank of Australia perdeu $1,75B devido a erro não detectado durante 2 anos. (New York Times Nov/01 Ariane 5 (10 anos de desenvolvimento no valor de $7B) com uma carga de $500M, explodiu 40 segundos após lançamento. Módulo de software gerou evento não tratado. (ESA 1996 Therac-25 ministrou doses incorrectas de Raios X em pacientes entre 1985 e 1987 6 mortes. (IEEE Computer 07/07/93
usto dos Erros de Software Custo directo dos defeitos (EUA) Desenvolvimento - $ 21.2B Utilizadores - $ 38.3B (National Institute of Standards and technology 28/06/2002) Consequências - cancelamentos e atrasos (EUA) $ 293B (Bender, Standish Group 2002)
azões de Insucesso Requisitos e Especificações incompletos Alterações aos Requisitos e às Especificações Insuficiente contribuição dos utilizadores Falta de apoio e empenhamento da hierarquia de topo (Standish Group e outros 2003)
esculpas... Desculpas Se não está bem pode-se sempre corrigir Equipas de teste reduzidas devido a downsizing Testes vistos como uma fase pouco interessante antes da produção Processos de teste pouco organizado Automatização incompleta e ineficaz Software hoje não se mede em milhares de linhas de código mas em milhões
rigem dos Erros Distribuição dos erros Distribuição do esforço para corrigir erros (James Martin e outros 2003)
usto relativo das Correcções Fase onde é detectado Relação de Custo Requisitos Design Programação Testes unitários Testes de Aceitação Operação 1 3-6 10 15-40 30-70 40-1000 (IBM, GTE e outros 2003)
equisitos são alvos em movimento Qualidade significa conformidade com Requisitos Requisitos contêm > 56% erros de software Requisitos crescem > 2%/mês (Bender e Jones, C. 2003 Procuramos conformidade com ERROS? Temos conformidade com os novos Requisitos? Que Requisitos temos de Satisfazer?
urgência O desenvolvimento é cada vez mais rápido Testes tem impacto na colocação em produção O desenvolvimento tem ferramentas cada vez mais produtivas Ferramentas de Testes não acompanham Cada vez mais aplicações Não há tempo para fazer testes...
necessidade Software é um Factor Crítico de Sucesso para quase todas as empresas Criação de riqueza Estratégia de mercado Operações diárias
Desafio Melhorar a Qualidade do Software: Com baixo volume de erros e elevada satisfação dos utilizadores Com o menor custo possível No menor tempo possível
Oportunidade Concentração de esforço onde o impacto é maior Requisitos com custo relativo mínimo Processo de Testes em paralelo com desenvolvimento Modelo em V quebrar dependências Automatizar o Processo de Testes Repetível a partir dos Requisitos Functional Driven
roblemas com os Testes Elaboração dos casos de testes: Como avaliar os requisitos? Quando parar de testar? Como avaliar o nível de Qualidade atingido? Identificação dos dados de teste: Geração de dados de teste insuficiente Dados de teste devem mapear as regras funcionais contidas nos casos de teste Tempo de execução: Grande quantidade de testes a executar Necessidade de re-executar após alterações ao software
odelo em V Ciclo de Vida Definição de Requisitos Análise Ambiguidades Desenvolvimento Not OK Definição de Casos de Teste Identificação de Dados de Teste Execução Aplicações Execução / Automatização dos Testes Funcionais e de Carga Análise dos Resultados OK Produção
este Automático Gestão de Testes Gestão de Requisitos Automated Test Designer TCG Test Case Generator TDG Test Data Generator TSG Test Script Generator Automatismo De Execução O Ciclo completo desde os Requisitos aos Testes
onsiderações Finais Maioria das organizações já implementou processos para garantir melhor qualidade Algumas mais de 1 vez Software Artesanal vs Industrial O que gostamos de fazer vs o que temos de fazer Web expõe todas as falhas Desde a identificação à urgência da correcção
Nova Abordagem Validar os Requisitos com Melhor Qualidade Mais rapidez Menores custos
Obrigado pela Vossa atenção. Perguntas e Respostas Contactos e Questões sobre o ATD: Luis.duarte@atyourside.pt