Gestão da Qualidade de Software - Introdução
Software de qualidade refere-se a um software que é razoavelmente livre de bugs ou defeitos, é entregue no prazo e dentro do orçamento especificado, atende aos requisitos e / ou expectativas e pode ser mantido. No contexto da engenharia de software, a qualidade do software reflete tantofunctional quality assim como structural quality.
Software Functional Quality - Reflete o quão bem ele atende a um determinado projeto, com base nos requisitos ou especificações funcionais.
Software Structural Quality - Trata do tratamento de requisitos não funcionais que suportam a entrega dos requisitos funcionais, como robustez ou facilidade de manutenção, e o grau em que o software foi produzido corretamente.
Software Quality Assurance- Software Quality Assurance (SQA) é um conjunto de atividades para garantir a qualidade nos processos de engenharia de software que resultam em produtos de software de qualidade. As atividades estabelecem e avaliam os processos que produzem os produtos. Envolve ação focada no processo.
Software Quality Control- O Controle de Qualidade de Software (SQC) é um conjunto de atividades para garantir a qualidade em produtos de software. Essas atividades se concentram em determinar os defeitos nos produtos reais produzidos. Envolve ação focada no produto.
O desafio da qualidade do software
Na indústria de software, os desenvolvedores nunca declararão que o software está livre de defeitos, ao contrário do que outros fabricantes de produtos industriais costumam fazer. Essa diferença se deve aos seguintes motivos.
Complexidade do Produto
É o número de modos operacionais que o produto permite. Normalmente, um produto industrial permite apenas menos do que alguns milhares de modos de operação com diferentes combinações de configurações de sua máquina. No entanto, os pacotes de software permitem milhões de possibilidades operacionais. Portanto, garantir todas essas possibilidades operacionais corretamente é um grande desafio para a indústria de software.
Visibilidade do Produto
Como os produtos industriais são visíveis, muitos de seus defeitos podem ser detectados durante o processo de fabricação. Além disso, a ausência de uma peça em um produto industrial pode ser facilmente detectada no produto. No entanto, os defeitos nos produtos de software armazenados em disquetes ou CDs são invisíveis.
Desenvolvimento de Produto e Processo de Produção
Em um produto industrial, os defeitos podem ser detectados durante as seguintes fases -
Product development - Nesta fase, os designers e a equipe de Garantia de Qualidade (QA) verificam e testam o protótipo do produto para detectar seus defeitos.
Product production planning- Nesta fase, o processo de produção e as ferramentas são projetados e preparados. Esta fase também oferece oportunidades de inspecionar o produto para detectar os defeitos que passaram despercebidos durante a fase de desenvolvimento.
Manufacturing- Nesta fase, os procedimentos de QA são aplicados para detectar falhas dos próprios produtos. Defeitos no produto detectados no primeiro período de fabricação geralmente podem ser corrigidos por uma mudança no design do produto ou nos materiais ou nas ferramentas de produção, de forma a eliminar tais defeitos em produtos fabricados no futuro.
Porém, no caso do software, a única fase em que os defeitos podem ser detectados é a fase de desenvolvimento. No caso do software, o planejamento da produção do produto e as fases de fabricação não são necessários, pois a fabricação das cópias do software e a impressão dos manuais do software são realizadas automaticamente.
Os fatores que afetam a detecção de defeitos em produtos de software em comparação com outros produtos industriais são mostrados na tabela a seguir.
Característica | Produtos de Software | Outros Produtos Industriais |
---|---|---|
Complexidade | Milhões de opções operacionais | mil opções operacionais |
visibilidade do produto | Produto invisível, difícil de detectar defeitos à vista | Produto Visível Detecção eficaz de defeitos à vista |
Natureza do processo de desenvolvimento e produção | pode corrigir defeitos em apenas uma fase | pode detectar defeitos em todas as fases seguintes
|
Essas características do software, como complexidade e invisibilidade, tornam o desenvolvimento da metodologia de garantia da qualidade do software e sua implementação bem-sucedida um desafio altamente profissional.