Você está na página 1de 8

A Importncia do Controle da Qualidade na Melhoria de Processos de Software

Ana Liddy Cenni de Castro Magalhes1


1

SWQuality Consultoria e Sistemas


analiddy@swquality.com.br

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.

2. As Diversas Interpretaes da Qualidade nas Organizaes


Segundo o IEEE, o termo "qualidade" pode ser entendido no contexto da Engenharia de Software como o grau no qual um sistema, componente ou processo satisfaz os requisitos especificados e as necessidades e expectativas do cliente/usurio [3]. Engloba tanto a qualidade do produto (conformidade com os requisitos) quanto a qualidade do processo (grau em que o processo garante a qualidade do produto). Sua definio e aplicao, porm, se modifica em funo do domnio no qual tratada. Por esta razo, no fcil tratar todas as interpretaes da qualidade, mesmo se restringindo ao domnio da engenharia de software.

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.

Tabela 1 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.

3. Importncia do Controle e da Garantia da Qualidade de Software


A obteno de um software de qualidade no uma tarefa simples, necessitando de uma srie de cuidados. Inicialmente, deve-se identificar o que considerado qualidade no mbito do produto de software em questo. Pela dificuldade de se atender diversas caractersticas de qualidade simultaneamente, torna-se necessrio priorizar aquelas que iro determinar a qualidade do produto, o que faz parte do planejamento da qualidade. Para se obter um software que atenda a qualidade planejada, deve-se avaliar no apenas o produto final, mas acompanhar todo o processo utilizado em sua obteno, alm dos produtos intermedirios gerados ao longo deste processo. Cada etapa do ciclo de vida do produto pode acabar introduzindo erros. Como ilustrado na Figura 1, um conjunto inicial de requisitos poder possuir parte correta e parte com algum tipo de defeito (inconsistncia, ambigidade, etc). Ao passar para a fase de projeto, alm de eventuais problemas inerentes a esta fase que podero desencadear um projeto defeituoso, erros advindos da fase anterior podem ser no s transmitidos para esta fase, mas tambm amplificados. Se nada for feito, a ocorrncia sucessiva desta situao nas diversas fases de desenvolvimento do produto pode acabar comprometendo em muito a qualidade do produto resultante. Torna-se necessrio, portanto, seguir processos que possibilitem melhorar a qualidade dentro das restries de imperfeio impostas. Neste contexto, a realizao em cada fase de revises e/ou testes atividades relacionadas ao controle da qualidade e de auditorias que verifiquem objetivamente a aderncia de produtos e atividades a padres e processos definidos atividades relacionadas garantia da qualidade constituem um meio efetivo de se aperfeioar a qualidade do produto resultante.

Figura 1 - A inevitvel introduo de erros ao longo do ciclo de vida

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.

4. Estabelecendo e Evoluindo o Controle da Qualidade em uma Organizao


importante notar que as atividades de controle da qualidade evoluem junto com a organizao, de forma acumulativa, paralelamente ao seu amadurecimento. Em uma organizao imatura, que ainda no despertou para a necessidade de definir e cuidar de seus processos produtivos, o comprometimento e a responsabilidade pelo controle da qualidade constituem um desafio pessoal. Neste estgio, testes e revises de software, quando existentes, so realizados sem planejamento e de forma ad hoc. Em estgios iniciais de maturidade, em geral a mesma equipe que constri o produto realiza tambm o controle da qualidade. Idealmente, porm, uma equipe de controle da qualidade bem estruturada deve ter independncia e autonomia: ser uma equipe separada, com livre acesso gerncia snior e possuir processos, laboratrios e ferramentas prprias. Esta equipe deve executar seu trabalho com transparncia e ser treinada no s nas ferramentas e procedimentos de reviso, inspeo e testes, mas tambm nas tecnologias aplicadas no desenvolvimento dos produtos. Alm das ferramentas para a realizao das atividades de reviso, inspeo e testes, o controle da qualidade deve contar com uma ferramenta para acompanhamento e controle de defeitos e problemas detectados, mais conhecida como ferramenta de bug tracking, de forma a possibilitar seu registro, monitoramento e efetivo tratamento. 4.1. O Controle da Qualidade e as Atividades de Nvel G O Nvel G d incio ao amadurecimento organizacional, disciplinando atividades de Gerncia de Projetos no tocante a esforo, custos, cronograma, equipe, dados e riscos, entre outros. O ciclo de vida escolhido deve ser capaz de gerar os produtos de trabalho especificados, porm sem nenhum controle formal da qualidade, apesar de em geral incluir atividades bsicas de teste do produto em construo. Estas atividades devem ser estimadas e integradas ao plano do projeto, que revisado por todos os interessados e utilizado ao longo do projeto como referncia para acompanhamento das atividades. Paralelamente, na Gerncia de Requisitos, o entendimento obtido junto a fornecedores autorizados de requisitos transformado em requisitos de software. Estes devem ser aprovados segundo critrios objetivos (ex: ser claro, consistente, completo, implementvel, testvel e rastrevel). Alm disso, planos e produtos de trabalho gerados devem ser revisados visando identificar e corrigir inconsistncias em relao aos requisitos, o que tambm pode ser entendido como uma ao de controle de qualidade. 4.2. O Controle da Qualidade e as Atividades de Nvel F O Nvel F implementa a Garantia da Qualidade, assegurando a aderncia das atividades realizadas ao processo documentado, bem como a conformidade dos produtos de trabalho gerados aos padres, procedimentos e requisitos aplicveis, o que fornece ao controle da qualidade evidncia e confiana na habilidade do processo utilizado em gerar um produto que atenda aos requisitos definidos. No mbito da Gerncia de Configurao, o controle da qualidade do produto est presente na avaliao e reviso da configurao, por meio das auditorias de baselines, que incluem a verificao funcional (se correta) e fsica (se completa). Todos os problemas detectados em uma auditoria de configurao devem ser tratados como itens de ao da auditoria e acompanhados at a sua efetiva concluso.

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.

Você também pode gostar