Resumo. Este trabalho visa elucidar o conceito e a importncia do controle da qualidade em um programa de melhoria de processos, diferenciando-o das atividades de planejamento e garantia da qualidade, bem como destacar as situaes no MR-MPS nas quais o controle da qualidade se mostra presente.
1. Introduo
Um dos grandes desafios para a Engenharia de Software tem sido desenvolver software de qualidade atendendo prazo, esforo e custos estabelecidos. Ao mesmo tempo em que requer software cada vez mais complexo, o mercado anseia por produtos de maior qualidade. Nesta direo, empresas desenvolvedoras de software tm se preocupado cada vez mais com a qualidade dos produtos de software que geram, sendo necessrio criar mecanismos por meio dos quais a qualidade possa ser planejada, controlada, avaliada e alcanada. Uma vez que a qualidade do processo interfere significativamente na qualidade do produto resultante [1], torna-se necessrio incluir, no processo de obteno do produto, meios de se avaliar as caractersticas da qualidade dos produtos gerados ao longo do ciclo de desenvolvimento, em pontos selecionados do processo. Este trabalho visa elucidar o conceito e a importncia do controle da qualidade em uma organizao, diferenciando-o das atividades de planejamento e garantia da qualidade, bem como destacar as situaes no MR-MPS nas quais o controle da qualidade se mostra presente. Ele complementa um trabalho anterior, que discutiu a importncia e a evoluo da garantia da qualidade em uma organizao, bem como o papel do SQA na institucionalizao de processos [2]. A seo 2 apresenta a distino entre os conceitos de planejamento, controle e garantia da qualidade. A seo 3 refora a importncia do controle e da garantia da qualidade em um projeto de software. A seo 4 descreve como o controle da qualidade participa dos processos do MR-MPS, considerando o caminho evolucionrio da maturidade organizacional segundo os nveis de maturidade. A seo 5 tece algumas concluses sobre o assunto.
Assegurar a qualidade do software resultante, porm, no uma tarefa trivial, uma vez que produtos de software so geralmente complexos, possuem requisitos implcitos e muitas vezes ambguos, utilizam representaes variadas e inexatas (linguagens textuais, grficas e de programao). Tais dificuldades podem acarretar a existncia de requisitos incompletos, ausentes ou no testveis, documentao incompleta ou inconsistente, identificao tardia de defeitos e o conseqente volume de retrabalho e testes, prejudicando no s a qualidade do produto, mas tambm seu custo e prazo de entrega. Para que a qualidade seja mais que um mero acaso, torna-se necessrio incorporar mtodos que aumentem as chances de sucesso do produto e conceitos como "planejamento", "controle" e "garantia" da qualidade. O "Planejamento da Qualidade" define as atividades de avaliao da qualidade que sero executadas ao longo do projeto, visando desenvolver produtos e processos para atender s necessidades dos clientes [4]. Inclui inicialmente entender essas necessidades, desenvolver caractersticas de produto a elas alinhadas e identificar processos e padres capazes de produzi-las. Este planejamento inclui todas as atividades de avaliao da qualidade de um projeto, que por sua vez devem especificar no apenas o que ser avaliado, mas tambm quando, como e por quem. Para concretizar o planejado, necessrio realizar atividades de "garantia" e de "controle" da qualidade. A "Garantia da Qualidade" visa avaliar a aderncia das atividades executadas e dos produtos de trabalho gerados a padres, processos, procedimentos e requisitos estabelecidos e aplicveis. Fornece uma viso objetiva e independente, tanto para atividades de processo quanto de produto, em relao a desvios e pontos de melhoria, de forma a assegurar que a qualidade planejada no ser comprometida. Alm de verificar se o processo est adequado, sendo seguido e trabalhando a favor da organizao (evitando retrabalho, melhorando custos e prazos), busca-se identificar desvios o quanto antes e acompanhar a sua resoluo at que sejam concludos [5]. Ferramentas e tcnicas utilizadas pela garantia da qualidade incluem auditorias (de produtos ou processos) e avaliaes (appraisals ou assessments) [5]. Apesar de no possuir atualmente um significado padro para a engenharia de software [3], o "Controle da Qualidade" pode ser entendido como um mtodo iterativo de comparao do produto em construo com os seus requisitos e tomada de aes caso existam diferenas. Visa verificar a qualidade dos produtos de trabalho gerados durante o ciclo de vida (intermedirios e finais), determinando se estes esto dentro de nveis de tolerncia aceitveis [5]. Ferramentas e tcnicas usadas para o controle da qualidade incluem revises por pares (inspeo e walkthrough) e diferentes nveis e tipos de teste, que so estabelecidos pelos processos Verificao e Validao [5]. Um conjunto bem definido de atividades de controle da qualidade fornece consistncia e fora aos esforos em busca de produtos com maior qualidade. A distino correta entre estes termos importante para auxiliar as organizaes na determinao do contedo e direcionamento de seus programas de melhoria. Apesar de possurem propsitos distintos, muitas pessoas e organizaes de software confundem e empregam erroneamente estes conceitos por exemplo, possuem reas denominadas garantia da qualidade que realizam basicamente testes em seus produtos de software. Visando elucidar estes dois conceitos, a Tabela 1 apresenta as principais diferenas entre garantia e controle da qualidade.
Garantia da Qualidade
Foco: garantir que o projeto emprega todos os processos e padres necessrios para atender aos requisitos Forma mais usual: auditorias de processo e de produto, orientadas por check-lists Utiliza mtodos, procedimentos e padres para comparar previsto com realizado Assegura que o processo empregado definido e apropriado orientada a processo, visando preveno de defeitos Cuida da monitorao e melhoria dos processos e padres empregados Assegura que se faz da maneira correta (diz o que faz e faz o que diz)
Controle da Qualidade
Foco: descobrir defeitos em produtos de trabalho gerados ao longo do projeto e eliminar suas causas Forma mais usual: testes diversos e revises por pares (simples, inspeo, walkthrough) Utiliza casos de teste, check-lists e revises para comparar o esperado com o obtido Assegura que os produtos de trabalho gerados esto consistentes e alinhados orientado a produto, visando deteco e correo de defeitos Cuida da monitorao e da consistncia dos produtos em relao aos requisitos e utilizao Assegura que se faz as coisas certas (faz certo o que atende a necessidades e uso pretendido)
A garantia da qualidade fornece suporte ao controle da qualidade por meio de evidncia e confiana na habilidade do processo empregado em produzir um produto de software que atenda aos requisitos especificados [1]. Desta forma, a realizao de testes parte do processo de controle da qualidade, enquanto a verificao da aderncia ao processo documentado de teste de responsabilidade da garantia da qualidade.
Auditorias, revises e testes constituem filtros aplicados ao processo, detectando erros e evitando sua propagao, como ilustrado na Figura 2. primeira vista, eles podem parecer retardar o fluxo de desenvolvimento, porm na realidade eles removem problemas que precisam ser tratados, que s seriam evidenciados mais adiante e poderiam ser amplificados. Da mesma forma que ocorre com o processo de filtragem, auditorias, revises e testes superficiais podem no ser eficientes, porm se realizados em excesso podem travar o processo, sendo necessrio buscar um ponto de equilbrio.
Figura 2 Auditorias, revises e testes atuam como filtro de defeitos nos projetos
Em suma, a garantia e o controle da qualidade aplicados em cada fase embutem mecanismos que possibilitam identificar e tratar mais cedo os defeitos inseridos ao longo do ciclo de vida, bem como reduzir o nmero de defeitos amplificados, colaborando efetivamente para a obteno de um produto com maior qualidade. Quanto mais cedo um defeito for encontrado, mais fcil e menos dispendioso ser corrigi-lo. Detalhes relacionados ao estabelecimento e evoluo da garantia da qualidade em uma organizao podem ser obtidos em [2], e ao controle da qualidade na seo 4 a seguir.
O Nvel F introduz tambm atividades de Medio, que geram uma base de dados objetiva para avaliao das atividades e do andamento do projeto como um todo, propiciando maior visibilidade e permitindo avaliar tendncias da qualidade nos processos, nos projetos e na organizao. Na Aquisio de produtos e servios de software, o controle da qualidade atua por meio de revises e testes, que devem estar alinhados aos critrios de aceitao do produto a ser adquirido segundo a estratgia de aquisio definida. Em geral, um plano de aquisio definido, incluindo testes de aceitao e, quando aplicvel, testes de integrao do produto adquirido ao projeto, treinamentos e suporte. Este plano deve ser revisado e aprovado pelos principais envolvidos, bem como seguido ao longo de toda a aquisio. Quando o produto disponibilizado, os testes devem ser conduzidos e seus resultados registrados e relatados. Caso necessrio, um plano de ao estabelecido para tratar pendncias na aceitao, visando a garantir o encerramento da aquisio. 4.3. O Controle da Qualidade e as Atividades de Nvel E No Nvel E, a organizao amplia sua estruturao. Est mais voltada para a integrao de seus processos em um processo padro, a ser adaptado para um projeto segundo critrios objetivos. Alm de realizar avaliaes de processo, a garantia da qualidade assegura que todos usam o que est definido e colaboram para a sua evoluo. Atividades de controle da qualidade ocorrem apenas para credenciar ativos de processo como integrantes da biblioteca de ativos reutilizveis da organizao. No caso do ativo ser um componente de software executvel, um dos critrios de aceitao utilizados sua aprovao aps execuo de planos de teste. Demais ativos so avaliados segundo um conjunto de atributos que, em geral, incluem seu propsito e alinhamento com o domnio no qual a organizao atua. Para se obter um tratamento adequado do controle da qualidade, necessrio treinar as pessoas para a execuo correta de suas atividades, o que est relacionado ao processo de Gerncia de Recursos Humanos. Alm disso, a eficcia do prprio treinamento deve ser verificada, o que pode ser realizado de diferentes formas, como testes pr e ps-treinamento, auto-avaliao dos participantes e/ou avaliao ao final do projeto para verificar se os conhecimentos adquiridos foram entendidos e utilizados. 4.4. O Controle da Qualidade e as Atividades de Nvel D medida que a maturidade aumenta, atividades de planejamento, garantia e controle da qualidade vo sendo formalizadas, at que, no Nvel D, as principais atividades de controle da qualidade passam a ser cobertas por Planos de Verificao e Validao que, integrados ao Plano de Projeto e ao Plano de Garantia da Qualidade, consolidam as aes cruciais para se obter um produto com qualidade, atendendo satisfatoriamente aos requisitos de cliente e usurios. O foco principal do controle da qualidade est nos processos de Verificao e Validao. Todos os resultados esperados destes processos esto diretamente relacionados ao controle da qualidade e atuam sobre os produtos de trabalho gerados pelos outros processos durante o projeto, segundo estratgias de verificao e validao definidas e implementadas. Estas estratgias estabelecem cronogramas, envolvidos, recursos e mtodos a serem utilizados, que incluem abordagens de teste (funcional/ estrutural), estgios de teste (de unidade, mdulo, sistema, aceitao) e tipos de teste (de
interface, aderncia ao contedo, segurana, robustez, desempenho, stress, entre outros), bem como as ferramentas a serem utilizadas (para gerao de massa de dados, inspeo de cdigo, anlise de memory leaks, bug-tracking e testes diversos). Alm das abordagens relacionadas a testes, a Verificao inclui tambm revises por pares (peer reviews), nas quais um grupo preferencialmente independente de pessoas com perfil tcnico semelhante ao de quem desenvolveu o material alvo da reviso (pares) avaliam produtos de trabalho visando assegurar que estejam completos e prontos para a prxima atividade planejada. Tambm verificam se eventuais alteraes foram implementadas adequadamente e s afetaram partes anteriormente identificadas. Dentre os tipos mais comuns de revises por pares destacam-se a inspeo e o walkthrough. As inspees so revises orientadas por check-list de possveis defeitos, sendo mais comuns as realizadas em projetos (desenhos) e programas (cdigo). O walkthrough uma reviso de apresentao, realizada em forma de reunio e sem check-list, na qual o autor apresenta o material em ordem lgica a um grupo, que o verifica durante a apresentao. A reviso por pares tambm pode ser implementada por uma reviso simples, realizada por uma nica pessoa, desde que esta seja um par do autor e que critrios objetivos sejam empregados [6]. A validao de um software desenvolvido sob medida para um cliente especfico realizada a partir de uma srie de testes de aceitao, sempre conduzidos com a participao do cliente, que avalia o sistema construdo em relao ao uso pretendido. Sua realizao pode variar de dias a meses. Quando o software obtido um produto para ser usado por diversos clientes, geralmente a estratgia empregada a de se realizar testes alfa e beta. Vale ressaltar que a realizao de testes de verificao e validao so complementares, pois ambos possuem natureza e objetivos distintos, fortalecendo o processo de deteco de erros e aumentando a qualidade final do produto [6]. O controle da qualidade no processo Desenvolvimento de Requisitos se faz presente na reviso dos requisitos obtidos, geralmente executada por pares ao final da anlise, visando garantir que estes so necessrios, corretos, testveis e suficientes. O controle da qualidade ocorre no Projeto e Construo do Produto pela verificao dos componentes do produto desenvolvidos e de sua documentao associada segundo o que foi especificado no projeto, o que pode ser realizado por meio de reviso por pares e/ou testes. Apesar de no estar explcito na documentao do MRMPS, tambm seria interessante aplicar o controle da qualidade na seleo da alternativa de soluo a partir de critrios de qualidade associados, bem como na reviso da documentao de projeto dos componentes de produto e suas interfaces. No caso da Integrao de Produto, o controle da qualidade acontece no s na verificao e validao de cada componente de produto, mas tambm ao assegurar a compatibilidade das interfaces entre componentes de produto a serem integrados e na avaliao dos resultados desta integrao. Aps o teste de integrao, outros tipos de teste podem ser realizados, como teste funcional, de desempenho, de aceitao e de instalao. Alm disso, uma estratgia de regresso deve ser desenvolvida e aplicada para uma nova verificao do produto caso ocorra mudana em seus componentes, seja nos requisitos, projeto ou cdigos associados. A identificao dos itens associados mudana pode ser realizada pelo mecanismo de rastreabilidade gerado desde o Nvel G.
4.5. O Controle da Qualidade e as Atividades de Nvel C No Nvel C, o controle da qualidade se faz presente no processo Desenvolvimento para Reutilizao pelo apoio fornecido na reviso dos ativos de domnio. Uma vez desenvolvidos ou adquiridos no mercado, os ativos de domnio devem ser verificados e disponibilizados em uma biblioteca de ativos reutilizveis. No tocante Gerncia de Riscos, partindo do ponto de vista de Lewis que afirma que o teste de software uma estratgia popular para o gerenciamento de risco [7], o controle da qualidade pode ser visto como uma forma de se mitigar riscos em projetos. 4.6. O Controle da Qualidade nas Atividades de Nveis B e A No Nvel B, o controle da qualidade passa tambm a ser responsvel por gerenciar quantitativamente os sub-processos selecionados, de forma a mant-los sob controle estatstico. Ao detectar problemas e/ou resultados insatisfatrios, cabe ao controle da qualidade atuar na identificao, eliminao e bloqueio de sua causa fundamental [4]. No Nvel A, a Anlise de Causas de Problemas e Resoluo apia o controle da qualidade na identificao e tratamento de questes relacionadas estabilidade dos processos, que dificultam alcanar objetivos de qualidade e desempenho estabelecidos [8]. Inovaes podem ser selecionadas para resolver problemas especficos nos processos e colaborar para a obteno de um maior controle da qualidade. No entanto, devem ser introduzidas com cautela, a fim de se evitar efeitos colaterais [8].
5. Concluso
De uma maneira geral, o controle da qualidade visa assegurar que o software representa o que foi especificado e projetado e atende s necessidades dos clientes. Caso existam problemas (defeitos, inconsistncias), estes devem ser identificados, registrados e tratados. Estas atividades devem ser contempladas em todo o ciclo de vida do software. O controle da qualidade de software no uma tarefa simples, uma vez que engloba vrias atividades ao longo do projeto, emprega tcnicas e ferramentas especficas e precisa estar integrado ao planejamento e acompanhamento ao longo de todo o projeto. Os benefcios obtidos com sua realizao efetiva podem ser percebidos rapidamente, desde a identificao de oportunidades de melhoria no processo de desenvolvimento at a satisfao de poder contar com um produto confivel e com baixo ndice de manuteno corretiva.
Referncias
[1] Rocha, Ana Regina, Maldonado, Jos, Weber, Kival. Qualidade de Software: teoria e prtica. Prentice Hall, 2001. [2] Magalhes, Ana Liddy. A Garantia da Qualidade e o SQA: Sujeito Que Ajuda e Sujeito Que Atrapalha. Revista Proqualiti, v.2, n.2, nov/2006. [3] IEEE. Standard Glossary of Software Engineering Terminology, Document Number: IEEE 610.12-1990. Institute of Electrical and Electronics Engineers, May/1990. [4] INDG. Glossrio do Instituto de Desenvolvimento Gerencial. Disponvel em http://www.indg.com.br/info/glossario, setembro/2008. [5] Kasse, Tim. Practical Insight into CMMI. Artech House Computing Library, 2004. [6] Softex. MPS.BR - Guia de Implementao - Parte 4, Nvel D, v. 1.1, 2007. [7] Lewis, William. Software Testing and Continuous Quality Improvement, Auerbach, 2005. [8] Softex. MPS.BR - Guia de Implementao - Parte 7, Nvel A, v. 1.0, 2007.