Buscar

Aula 2 IMP

Prévia do material em texto

AVALIAÇÃO DE SOFTWARE
Professor Albertino Peres
Aula 2
Qualidade do software e processo
Todas as decisões tomadas durante o processo de desenvolvimento do software pode comprometer sua qualidade final.
Se desejarmos produzir software com qualidade, é necessário investir em qualidade em todos os pontos do processo. 
A qualidade de software é um processo sistemático que focaliza todas as etapas e artefatos gerados com objetivo de garantir a conformidade e uniformidade de processos e produtos, prevenindo e eliminado defeitos.
Qualidade do software e processo
A partir de processos uniformes e consistentes a tendência é que o produto final gerado, ou seja, o software seja eficiente. Softwares mal testados geram prejuízos as empresas, como:
Re-trabalho, aumentando o custo do projeto.
Informações erradas que podem originar decisões equivocadas. 
Insatisfação dos usuários.
	Assim, podemos concluir que é impossível obter um software com qualidade com processos de desenvolvimento ineficientes. Não é possível estabelecer um processo de garantia de qualidade que não enfoque simultaneamente o produto tecnológico e o processo de desenvolvimento desse software. Desta forma podemos estabelecer duas dimensões para obtenção da qualidade:
Qualidade do processo
Na dimensão da qualidade do processo, a qualidade deve existir desde o início, ou seja, já na fase de análise de requisitos, quando acontece o levantamento de requisitos. O quanto antes detectarmos problemas, mas facilmente e com menos custo eles serão resolvidos. Entretanto poucas empresas percebem com clareza e implementam atividades para essa dimensão. É importante salientar que a qualidade nos processos é primordial e será aplicada em documentos e modelos gerados por cada fase que compõe o processo de desenvolvimento usado pela empresa. Este é o desafio, garantir a qualidade de um software, ou seja, estabelecendo uma cultura de não tolerância a erros através de processos estruturados por mecanismos de inibição e impedimentos de falhas. Desta forma os diversos artefatos gerados durante o ciclo de desenvolvimento tenham procedimentos que avaliam sua qualidade, possibilitando a identificação prematura de defeitos nesses artefatos. Nesta dimensão de qualidade, ou seja a qualidade do processo pode ser medida através de testes aplicados nos documentos gerados em cada fase do ciclo de desenvolvimento do software através de testes chamados de testes de verificação ou testes estáticos.
Qualidade do produto
	Nesta dimensão o objetivo principal é a garantia da qualidade do produto tecnológico gerado durante o ciclo de desenvolvimento. Esta dimensão é muitas vezes negligenciada por parte das empresas devido a problemas de cronogramas com o cliente. Apesar de empregada nas organizações, o grau de eficiência das atividades relacionadas a esta dimensão ainda é baixa. Para o teste do produto, obviamente, existe a necessidade de uma instância do sistema implementada, em parte ou na totalidade. 
	Assim a qualidade do produto é garantida com a aplicação de testes sistemáticos nos vários estágios de desenvolvimento. Nesta dimensão a qualidade pode ser medida através da aplicação de testes chamados de  testes de software ou testes de validação ou ainda testes dinâmicos.
O conceito de testes
De uma maneira geral os testes são vistos como forma de provar que tudo está bem e funcionando conforme o estabelecido. Existem várias definições para o conceito de testes: 
	O objetivo real do teste de software é mostrar que um software está de acordo com suas especificações e que ele atende as expectativas do cliente. 
O conceito de testes
Por conta desta definição de teste é importante ressaltar que a equipe de qualidade, ou de testes, deve ser o mais independente possível da equipe de desenvolvimento de forma a não estar envolvida emocionalmente nem politicamente com o projeto, tendo um comportamento mais objetivo e direto. Esta equipe terá mais facilidade em focar nos pontos que inicialmente o projeto deveria atender e por motivos desconhecidos foram abandonados ou não atendidos corretamente.
Devemos levar em consideração que os testes podem ser usados para mostrar a presença de erros, porém não conseguirá cobrir todas as infinitas combinações existentes em um ambiente de execução real. 
 
 A qualidade de software trabalha com o conceito de zero-defeito, ou seja, representa a não tolerância a erros. O objetivo é definir um processo que contenha mecanismos de inibição de defeitos, impedimento de que falhas sejam criadas e propagadas para as fases seguintes. Todo o processo é desenhado para minimizar a incidência de problemas.
O conceito de testes
Você sabia que...
Myers concluiu que zero-defeito é algo inatingível? Ou seja, pela complexidade envolvida e pelo número altíssimo de situações existentes, torna-se impossível imaginar um produto de software “livre de erros”. Sempre existirão erros a serem descobertos. 
Os Pilares da qualidade de software
	Para compreender melhor o processo de qualidade de software e sua implementação, podemos fazer uma referência ao processo de gerenciamento de qualidade do PMBOK que estrutura o processo de qualidade em três subprocessos complementares:
Project Management Body of Knowledge (PMBOK - Gerenciamento de Projetos de Conhecimento) é um conjunto de práticas na gestão de projetos organizado pelo instituto PMI e é considerado a base do conhecimento sobre gestão de projetos por profissionais da área.
Processo de Garantia de Qualidade de Software
Identifica quais padrões de qualidade são relevantes para o projeto.
Tem como objetivo garantir o adequado desempenho de cada etapa do desenvolvimento, satisfazendo os padrões qualidade definidos no processo. 
Avaliará sistematicamente a qualidade do processo em execução e a qualidade do produto tecnológico que está sendo desenvolvido.
11
Os Pilares da qualidade de software
Todo erro custa dinheiro. Podemos entender que o custo da qualidade é todo o investimento realizado com a finalidade de um produto ou serviço atingir a qualidade desejada. Estes custos estão relacionado aos: 
Custos da Conformidade 
Significa o esforço para garantir a qualidade. São todos os investimentos realizados para planejar e manter toda uma infra-estrutra de pessoas, processos e ferramentas cujo objetivo seja prevenir e detectar. 
Custos da Não-Conformidade 
Está relacionado aos defeitos e suas correções. São todos os custos de atividades ligadas ao esforço de reparar falhas de produtos originados no decorrer do processo de desenvolvimento.
A Busca pela Qualidade
	A implantação de um processo de qualidade tanto no processo, como no produto tem um custo, porém é vantajosa, pois quanto mais tardiamente os erros forem descobertos, mais cara custa a solução. 
Para Myers quanto mais tardiamente descobrimos os erros, mais caros eles ficam. Segundo a regra 10 de Myers, significa que quando um erro não é identificado, os custos de sua correção multiplicam-se por 10 para cada fase do processo de desenvolvimento de software em que o erro migra, conforme podemos observar no gráfico ao lado.

Continue navegando