sábado, 9 de janeiro de 2010

Garantia da Qualidade de Software

Conforme o QAI - Quality Assurance Institute, o processo de Garantia da Qualidade é formado por um conjunto planejado e sistemático de atividades, que tem por objetivo prover confiança sobre a conformidade de produtos e serviços a requisitos especificados e que venham ao encontro das necessidades dos usuários. Já para o MPS-br - Melhoria do Processo de Software Brasileiro, o propósito do processo Garantia da Qualidade é assegurar que os produtos de trabalho e a execução dos processos estão em conformidade com os planos e recursos predefinidos.

Estas duas visões normalmente conduzem a uma confusão muito comum, ao compararmos os processos de Controle e de Garantia de Qualidade de Software. Notamos que o conceito de Garantia da Qualidade é muito próximo daquele que já discutimos sobre o Controle da Qualidade, principalmente pelo fato de os dois processos definirem atividades que tratam da qualidade do software.

Entretanto, a Garantia da Qualidade tem seu foco na prevenção de inconformidades e na melhoria contínua de processos, enquanto o Controle da Qualidade busca identificar e corrigir estas inconformidades, num processo muito mais reativo. Esses dois processos são complementares e muitas vezes são executados através de atividades semelhantes, como na aplicação de Listas de Verificação ou checklists. A grande diferença é o foco em prevenção ou em detecção.

Assim, se você estiver verificando um documento com a intenção de identificar e corrigir eventuais inconformidades, certamente estará trabalhando em uma atividade de Controle da Qualidade. Mas se o seu objetivo é avaliar o processo que gerou este documento, procurando analisar suas fragilidades e otimizar a execução das atividades previstas, estará trabalhando na Garantia da Qualidade deste processo.

Então, como diferenciar esses dois processos no dia-a-dia? Não parece muito fácil, mas uma forma bem simples é lembrarmos das palavras Prevenção e Detecção.
    • Prevenção refere-se à Garantia da Qualidade
    • Detecção refere-se ao Controle da Qualidade
Esta diferenciação é válida, principalmente no contexto do Teste de Software e das certificações como a CSTE. Entretanto, observando a definição de Garantia da Qualidade feita pelo MPS-br, percebemos que é importante termos o cuidado de avaliar o contexto onde os termos Controle e Garantia são utilizados, para construirmos o entendimento mais adequado a cada caso.


Referências

Guia de Implementação - Parte 2 - Fundamentação para Implementação Nível F do MR-MPS
Disponível em: http://www.softex.br/mpsbr/...

Guide to the CSTE COMMON BODY OF KNOWLEDGE - Version 6.2 - 2006
QAI - Quality Assurance Institute

    domingo, 3 de janeiro de 2010

    Controle da Qualidade de Software

    Controle da Qualidade, no contexto de software, é o processo que compara um produto com normas, padrões e requisitos estabelecidos, procurando identificar inconformidades, para que estas possam ser corrigidas antes que o produto chegue ao seu ambiente de uso. Tendo seu foco na detecção de defeitos, trata-se de um processo essencial na indústria de software atual, cada vez mais competitiva e exigente. Nessa indústria, qualidade não é mais diferencial competitivo, mas requisito básico para que os produtos desenvolvidos sejam bem recebidos pelo mercado.

    Ao contrário do que se pode imaginar de um processo que busca por defeitos em produtos, o Controle da Qualidade não ocorre apenas ao final de um processo produtivo, principalmente quando falamos de desenvolvimento de software. O Controle da Qualidade pode ser aplicado sobre os produtos do processo de desenvolvimento desde suas fases iniciais, permitindo que produtos intermediários sejam verificados e que os defeitos identificados sejam corrigidos antes que se propaguem às fases seguintes da construção do software.

    Dessa forma, podemos controlar a qualidade de um Documento de Especificação de Requisitos ou de um Modelo de Dados por exemplo, identificando precocemente defeitos que poderiam causar grandes prejuízos  no futuro. Isso é possível, dentre outras formas, através da aplicação de Listas de Verificação sobre os documentos gerados durante a construção do software ou pela aplicação de Testes de Software. Quando as inconformidades identificadas são corrigidas, as fases seguintes do processo de desenvolvimento recebem insumos de maior qualidade, o que contribui substancialmente para a qualidade final do software.

    Investir na detecção de defeitos, através de um Controle da Qualidade sistemático, é muito mais que uma forma eficiente de se reduzir o custo total do software, ao evitar prejuízos decorrentes de falhas em produção. Envolve a satisfação do cliente final, que espera receber um software com qualidade superior e que atenda satisfatoriamente as suas expectativas.