Вы находитесь на странице: 1из 16

Uma Metodologia para Teste de Software no Contexto da Melhoria de Processo

Adalberto Nobiato Crespo2, Odair Jacinto da Silva1, Carlos Alberto Borges1, Clnio Figueiredo Salviano2, Miguel de Teive e Argollo Junior2, Mario Jino3
1 2

Ampla Consultoria em Informao Campinas SP Brasil


3

Centro de Pesquisas Renato Archer (CenPRA) Campinas SP Brasil UNICAMP Campinas SP Brasil

{odair, carlos}@amplaconsultoria.com.br, {clenio.salviano, adalberto.crespo, miguel.argollo}@cenpra.gov.br, jino@dca.fee.unicamp.br

Abstract. A methodology for the implementation or improvement of the test process in software development organization was developed by CenPRA in order to make feasible the utilization of test practices by the organizations. As an experimentation and validation of this methodology, it was applied in a small software organization as part of a software process improvement project. In this organization, the test process was executed in the last seven projects. This paper describes considerations about test in the software quality context, the methodology, a practical application and conclusions about the methodology. Key words: software quality, test process, methodology and process improvement Resumo Uma metodologia para implantao ou melhoria do processo de teste em empresas desenvolvedoras de software foi desenvolvida pelo CenPRA com o objetivo de viabilizar a utilizao das prticas de teste pelas empresas. Para experimentao e validao desta metodologia, ela foi aplicada em uma micro empresas de software como parte de um projeto de melhoria de processo. Nesta empresa o processo de teste foi executado nos ltimos sete projetos realizados. Este artigo apresenta consideraes sobre teste no contexto da qualidade de software, a metodologia desenvolvida, uma aplicao prtica e concluses sobre a metodologia. palavras chave: Qualidade do Processo, Implantao de Programas de Qualidade, e Verificao,Validao e Testes.

Uma Metodologia para Teste de Software no Contexto da Melhoria de Processo


Abstract. A methodology for the implementation or improvement of the test process in software development organizations was developed by CenPRA in order to make feasible the utilization of test practices by the organizations. As an experimentation and validation of this methodology, it was applied in a small software organization as part of a software process improvement project. In this organization, the test process was executed in the last seven projects. This paper describes considerations about test in the software quality context, the methodology, a practical application and conclusions about the methodology. Key words: software quality, test process, methodology and process improvement Resumo Uma metodologia para implantao ou melhoria do processo de teste em empresas desenvolvedoras de software foi desenvolvida pelo CenPRA com o objetivo de viabilizar a utilizao das prticas de teste pelas empresas. Para experimentao e validao desta metodologia, ela foi aplicada em uma micro empresas de software como parte de um projeto de melhoria de processo. Nesta empresa o processo de teste foi executado nos ltimos sete projetos realizados. Este artigo apresenta consideraes sobre teste no contexto da qualidade de software, a metodologia desenvolvida, uma aplicao prtica e concluses sobre a metodologia. palavras chave: Qualidade do Processo, Implantao de Programas de Qualidade, e Verificao,Validao e Testes. tipo do artigo: trabalho tcnico. Justificativa: Descreve uma metodologia que contribui para o campo de estudos da Qualidade de Software, por consolidar conceitos em uma abordagem vivel para implantao de teste. O artigo descreve tambm uma aplicao desta metodologia, como experimentao e validao da mesma, constatando um trabalho tcnico e no um relato de experincia. 1. Introduo No mundo atual existe uma demanda no satisfeita por software de qualidade. Organizaes esto sofrendo fortes presses para desenvolver sistemas de informao em curtos espaos de tempo. Tais sistemas precisam ser escalonveis e integrados com outros sistemas existentes ou em desenvolvimento. Os ambientes tecnolgicos nos quais estes sistemas so desenvolvidos esto em constante evoluo. Na medida em que o emprego de sistemas de informao pela sociedade cresce ao ponto em que boa parte dos negcios depende cada vez mais de software e computadores, passa a ser de vital

importncia contar com software de qualidade software que fornece resultado correto quando alimentado com dados vlidos e que identifica corretamente dados de entrada invlidos. Para o desenvolvimento de software com qualidade, dentro de prazos e custos controlados e compatveis com o mercado, fundamental a melhoria dos processos da engenharia de software. Para tanto abordagens e experincias para a melhoria de processo de software baseadas em modelos tm sido utilizadas com sucesso pelas organizaes de software. Os modelos mais utilizados tm sido o SW-CMM, ISO/IEC 12207, ISO/IEC 15504 e CMMI. Estes modelos identificam processos fundamentais para a engenharia de software. Todos eles identificam, direta ou indiretamente, teste de software com um destes processos. Teste fundamental para a avaliao do software desenvolvido. Entretanto, testar software no uma atividade trivial, e exige conhecimentos, habilidades e infra-estrutura especficos. A metodologia do teste de software se reflete atualmente no comportamento das empresas na busca em implantar ou mesmo melhorar o processo de teste utilizado. Ainda que as tcnicas de teste de software mais utilizadas foram criadas por volta dos anos 70, as empresas tm uma grande dificuldade com a atividade de teste. Isto pode ser um reflexo da falta de profissionais especializados na rea de teste de software ou mesmo da dificuldade em implantar um processo de teste utilizando as tcnicas existentes na literatura. Neste contexto, o CenPRA desenvolveu uma metodologia para implantao ou melhoria do processo de teste em empresas desenvolvedoras de software. Este artigo apresenta consideraes sobre teste no contexto da qualidade de software, uma viso geral e resumida da metodologia desenvolvida, uma aplicao prtica desta metodologia e concluses. 2. Teste e Qualidade de Software Existem vrias tentativas no sentido de definir a atividade de teste, desde a viso intuitiva sobre teste at uma definio formal [Hetzel,1988], [Myers,1979], [ Beizer,1995]. Todas as afirmaes, sejam intuitivas ou formais, generalizam uma idia sobre o que teste de software e essencialmente conduzem ao mesmo conceito: Teste de software o processo de executar o software de uma maneira controlada com o objetivo de avaliar se o mesmo se comporta conforme o especificado. Devido a algumas caractersticas prprias do software como flexibilidade para mudanas, complexidade e intangibilidade, o teste no uma tarefa trivial. A dificuldade em testar software caracterizada por alguns pontos importantes como: o teste de software um processo caro; existe uma falta de conhecimento sobre a relao custo/benefcio do teste; h falta de profissionais especializados na rea de teste; existem dificuldades em implantar um processo de teste; h o desconhecimento de um procedimento de teste adequado; h o desconhecimento de tcnicas de teste adequadas; h o desconhecimento sobre como planejar a atividade de teste; e finalmente, a preocupao com a atividade de teste somente na fase final do projeto. Deve ser ressaltado que a atividade de teste exige conhecimento, planejamento, projeto, execuo, acompanhamento, recursos e tambm uma grande interao com as outras equipes. Na elaborao do planejamento do teste, uma das etapas a elaborao da estratgia de teste. A estratgia de teste compreende a definio dos seguintes itens: O nvel de teste, isto , a definio da fase do desenvolvimento do software em que o teste ser aplicado; A tcnica de teste a ser utilizada; O critrio de teste a ser adotado; O tipo de teste a ser aplicado no software.
3

O nvel de teste depende da fase do desenvolvimento do software em que o teste poder ser aplicado, compreendendo a codificao dos mdulos do sistema Teste de Unidade; a integrao dos mdulos do sistema - Teste de Integrao; atendimento aos requisitos funcionais e no funcionais do sistema Teste de Sistema; aceitao do sistema pelo usurio Teste de Aceitao ; e, finalmente, o Teste de Regresso que aplicado na fase de manuteno do sistema. Geralmente a definio da fase do desenvolvimento do sistema em que sero aplicados os testes depende da poltica de teste da empresa. Por exemplo, uma empresa poder adotar a poltica de fazer somente o teste de sistema, ou seja, aplicar o Teste de Sistema depois que os mdulos estiverem todos j integrados e no aplicar o Teste de Unidade e Teste de Integrao. A escolha da tcnica de teste depende tambm da fase de desenvolvimento em que o teste ser aplicado. Uma tcnica de teste direciona a escolha de critrios para gerao de casos de teste que, ao serem executados, vo exercitar os elementos requeridos pela abordagem do teste. Existem, basicamente duas tcnicas de teste: Teste Estrutural - tcnica de teste que adota critrios para a gerao dos casos de teste com a finalidade de identificar defeitos nas estruturas internas do software, atravs de situaes que exercitem adequadamente todas as estruturas utilizadas na codificao; Teste Funcional - tcnica de teste que adota critrios para a gerao dos casos de teste com a finalidade de garantir que os requisitos do software que foi construdo sejam plenamente atendidos. Ao se adotar uma tcnica de teste (Funcional ou Estrutural) necessrio escolher um critrio para a elaborao dos casos de teste com a finalidade de testar os elementos do software. Normalmente os elementos de um software que podem ser testados so: as linhas de comando; as funes implementadas; as variveis definidas no software; os loops existentes no software; todos os ramos de uma deciso; e os requisitos do software. O critrio de teste serve para orientar o testador na gerao dos casos de teste. Os elementos requeridos de um critrio de teste so os elementos ou as caractersticas do software que devero ser exercitados quando o software for testado. Os casos de teste gerados devem exercitar os elementos ou as caractersticas do software definidos por aquele critrio. Os tipos de teste referem-se s caractersticas do software que podem ser testadas, e compreende: Teste de Funcionalidade; Teste de Interface; Teste de Desempenho; Teste de Carga (Stress); Teste de Usabilidade; Teste de Volume; Teste de Segurana. A Figura 1 ilustra graficamente a ligao existente entre os nveis de teste, as tcnicas de teste, os tipos de teste e os critrios de teste que podem ser adotados ao se definir uma estratgia de teste. 3. Metodologia de Teste O Centro de Pesquisas Renato Archer CenPRA, tem sido procurado por empresas desenvolvedoras de software e mesmo rgos do governo para realizar projetos dentre os quais a atividade de teste tem seu lugar de destaque. Visando atender as necessidades dessas empresas o CenPRA, atravs do grupo de teste da Diviso de Melhoria de Processos de Software - DMPS, desenvolveu um projeto que teve como objetivo criar uma metodologia para a introduo ou melhoria do processo de teste de software em empresas produtoras de software, englobando tcnicas, procedimentos e ferramentas, capacitando-as a desenvolver produtos de melhor qualidade[Crespo,2002], [Crespo, 2003]. A
4

metodologia est fundamentada na adoo de um processo de teste e nos artefatos sugeridos pela Norma IEEE 829-1998 [IEEE,1998], que descreve os documentos que devem ser gerados na atividade de gerncia do teste de software. A metodologia de teste foi projetada e desenvolvida de uma forma que as empresas pudessem instanciar o processo de teste de acordo com as suas necessidades e disponibilidade de recursos. Alm disso, a metodologia de teste pode ser aplicada a qualquer tipo de software, seja ele sistema de informaes ou software cientfico. Nesta metodologia, a implantao do processo de teste envolve um conjunto de atividades que vai desde o levantamento das necessidades da empresa, passa pela realizao de treinamentos da equipe tcnica e vai at ao acompanhamento dos trabalhos realizados, constituindo assim, um completo ciclo de implantao da atividade de teste dentro da empresa.
T e s te T e s te T e s te T e s te T e s te T e s te T e s te de de de de de de de F u n c io n a lid a d e In te r f a c e D esem penho C a r g a (S t r e s s ) U s a b ilid a d e V o lu m e S eg urana

O q u e te s ta r T ip o d e T e s t e 2a.

P a r tic io n . d e E q u iv a le n c ia A n lis e d e V a lo r e s L im it e s B aseado em C asos de U so

3a. Q u a n d o te s ta r

C o m o te s ta r
T e s te F u n c io n a l T e s te E s tr u tu r a l

T c n ic a d e T e s t e
N v e is d e T e s te T e s t e d e U n id a d e T e s t e d e In t e g r a o T e s t e d e S is t e m a T e s t e d e A c e ita o T e s te d e R e g re s s o

C r it r io s

1a. Fase do D e s e n v o lv im e n to d e S o ftw a re

T e s te T e s te T e s te T e s te T e s te

de de de de de

C a m in h o s C om andos R am os C o n d i e s C o n d . M lt ip la s

Figura 1 Relao entre nveis, tipos e tcnicas de teste A metodologia, que preconiza a realizao de testes sistemticos, pode ser empregada tanto por empresas que desenvolvem quanto por empresas que adquirem software, e est dividida em 3 componentes: Treinamento, Processo de Teste e Suporte para Gerao de Documentos: 1. Treinamento: Atravs de cursos, consiste da capacitao em conceitos bsicos sobre teste de software, tcnicas de teste, documentao de teste e processo de teste. Estes cursos esto divididos em mdulos e sua aplicao pode ser adaptada s necessidades especficas de cada empresa. 2. Processo de Teste: A metodologia define um processo genrico de teste que prev a realizao das atividades de planejamento, projeto, execuo e acompanhamento dos testes de unidade, integrao, sistemas e aceitao. A partir deste processo genrico cada empresa deve instanciar um processo especfico que melhor atenda suas necessidades. 3. Suporte para Gerao de Documentos: Consiste da aplicao de uma tcnica para a criao de documentos que sero utilizados para a gerncia do processo de teste, tanto na fase de preparao para a atividade de teste quanto na fase de registro dos resultados do teste. Este componente da metodologia est baseado na Norma IEEE 829-1998, que descreve um conjunto de 8 documentos que cobrem as tarefas de planejamento, especificao e registro das atividades de teste de um produto de software. Esta Norma pode ser usada para o teste de qualquer tipo de software, seja ele comercial, cientfico ou militar, sendo definida de forma independente de tcnicas, mtodos, estratgias, recursos e ferramentas de teste.

O processo de teste instanciado pode ser considerado como o processo de teste empregado de forma global para todos os projetos da organizao ou especificamente para cada um de seus projetos. A seo do Plano de Teste que trata a estratgia a ser empregada em cada projeto deve fazer referncia ao processo empregado. O processo de teste proposto na metodologia est baseado em alguns pressupostos bsicos: Os testes de sistema e aceitao so projetados e executados sob a responsabilidade da equipe de teste. Os testes de sistema, e eventualmente tambm o de aceitao, so realizados de forma iterativa, havendo, antes do incio de cada ciclo de teste, uma avaliao rpida do produto.

O processo de teste no contempla automao do teste, medida tomada para manter a descrio inicial do processo simples. Uma organizao pode adotar outros pressupostos, devendo realizar as alteraes necessrias no processo de teste instanciado. Uma premissa bsica da metodologia de teste proposta que o processo de teste, quando adequadamente definido, pode ter um impacto positivo nos resultados de diversas outras atividades de desenvolvimento. Desta forma, o enfoque das atividades de teste no somente identificar problemas, mas principalmente prevenir problemas. Estas premissas esto presentes em diversas referncias sobre teste preventivo [Beiser,1995], [Craig,2002]. O fato do processo genrico proposto no contemplar a automao de teste reflete a viso de que um processo s deve ser suportado por ferramentas quando estiver convenientemente definido e consistentemente adotado. Zallar afirma que o processo de automao de teste tem maior probabilidade de ser bem sucedido para organizaes que possuam uma equipe de teste bem definida e com um processo padro de documentao seguido, [Zallar,2001] 3.1 Viso Geral da Norma IEEE 829 A Norma IEEE 829 descreve um conjunto de documentos para as atividades de teste de um produto de software. Os 8 documentos definidos pela norma, que cobrem as tarefas de planejamento, especificao e relato de testes, so apresentados a seguir: Plano de Teste Apresenta o planejamento para execuo do teste, incluindo a abrangncia, abordagem, recursos e cronograma das atividades de teste. Identifica os itens e as funcionalidades a serem testados, as tarefas a serem realizadas e os riscos associados com a atividade de teste. A tarefa de especificao de testes coberta por 3 documentos: Especificao de Projeto de Teste Refina a abordagem apresentada no Plano de Teste e identifica as funcionalidades e caractersticas a serem testadas pelo projeto e por seus testes associados. Este documento tambm identifica os casos e os procedimentos de teste, se existirem, e apresenta os critrios de aprovao. Especificao de Caso de Teste Define os casos de teste, incluindo dados de entrada, resultados esperados, aes e condies gerais para a execuo do teste.

Especificao de Procedimento de Teste Especifica os passos para executar um conjunto de casos de teste. Os relatrios de teste so cobertos por 4 documentos: Dirio de Teste - Apresenta registros cronolgicos dos detalhes relevantes relacionados com a execuo dos testes. Relatrio de Incidente de Teste - Documenta qualquer evento que ocorra durante a atividade de teste e que requeira anlise posterior. Relatrio-Resumo de Teste Apresenta de forma resumida os resultados das atividades de teste associadas com uma ou mais especificaes de projeto de teste e prov avaliaes baseadas nesses resultados Relatrio de Encaminhamento de Item de Teste Identifica os itens encaminhados para teste no caso de equipes distintas serem responsveis pelas tarefas de desenvolvimento e de teste. A norma separa as atividades de teste em trs etapas: preparao do teste, execuo do teste e registro do teste. A Figura 2 - Relacionamento entre os Documentos de Teste - mostra os documentos que so produtos da execuo de cada uma das fases e os relacionamentos entre eles. Embora a norma possa ser utilizada para o teste de produtos de software de qualquer tamanho ou complexidade, projetos pequenos ou de baixa complexidade podem agrupar alguns documentos propostos, diminuindo o gerenciamento e os custos de produo dos documentos. Alm disso, o contedo dos documentos tambm pode ser abreviado. Adicionalmente, a equipe responsvel pelo teste dever tomar outras decises em relao aplicao da norma em projetos especficos, decidindo, por exemplo, se mais conveniente elaborar um nico plano que englobe os testes de unidade, integrao e aceitao, ou um plano para cada uma das fases de teste citadas. Mais do que apresentar um conjunto de documentos, que deve ser utilizado ou adaptado para determinadas empresas ou projetos, a norma apresenta um conjunto de informaes necessrias para o teste de produtos de software. Sua correta utilizao auxiliar a gerncia a se concentrar tanto com as fases de planejamento e projeto quanto com a fase de realizao de testes propriamente dita, evitando a perigosa armadilha de s iniciar a pensar no teste de um produto de software aps a concluso da fase de codificao. 3.2 Suporte Implantao do Processo de Teste de Software As normas de engenharia de software normalmente so genricas e demandam um esforo adicional para serem utilizadas com sucesso. Para facilitar a utilizao da norma IEEE-829 a metodologia de teste prope um mtodo para a implantao do processo de teste de software. Os documentos descritos nesta seo: Guia para Elaborao de Documentos de Teste de Software [CenPRA,2001a] e Processos para Elaborao de Documentos de Teste de Software [CenPRA,2001b], formam a base da metodologia proposta.

P la n o de T e s te

P re p a ra o d o T e s te

E s p e c ific a o d e P ro je to d e T e s te

E s p e c ific a o d e C a s o s d e T e s te

E s p e c ific a o d e P ro je to d e T e s te

R e la t rio d e E n c a m in h a m e n to d e Ite m d e T e s te

Execuo d o T e s te

EXECU O DO TESTE

D i rio de T e s te

R e g is tro d o T e s te

R e la t rio d e In c id e n te s d e T e s te

R e la t rio -R e s u m o d e T e s te

F ig u ra 1 : R e la c io n a m e n to e n tre o s D o c u m e n to s d e T e ste

3.2.1 - Guia para Elaborao de Documentos de Teste de Software Esse documento tem o propsito de servir como referncia para a criao dos documentos de teste baseados na Norma IEEE 829, tanto na fase de preparao para a atividade de teste quanto na fase de registro dos resultados do teste. O enfoque principal deste guia situa-se na obteno do contedo de cada documento de teste. 3.2.2 - Processos para a Elaborao de Documentos de Teste de Software Este documento apresenta os processos para a elaborao dos documentos de teste de Software baseados na norma IEEE 829. Os processos abrangem a preparao, a execuo e o registro dos resultados do teste e esto descritos segundo o Handbook for Process Management, [SEPO,1998]. Esses processos estabelecem uma orientao geral e, se necessrio, podem ser modificados para adequar-se s situaes particulares de organizaes envolvidas nas atividades de teste. Um processo definido para cada documento da Norma, segundo a seguinte estrutura: 1. Funes e responsabilidades no processo participantes na execuo das tarefas; 2. Critrios para o incio do processo elementos e/ou condies necessrios para iniciar a execuo das tarefas; 3. Entradas do processo dados, recursos ou ferramentas necessrios para a execuo das tarefas; 4. Tarefas do processo aes necessrias para produzir as sadas do processo. Para cada tarefa so identificadas suas entradas, com indicao de possveis fontes, e as sadas produzidas. A

ordem de apresentao das tarefas no reflete necessariamente a seqncia em que devem ser executadas; 5. Sadas do processo dados ou produtos gerados pela execuo das tarefas; 6. Critrios para trmino do processo elementos e/ou condies necessrios para encerrar a execuo das tarefas; e 7. Medies do processo medidas a serem coletadas como parte da execuo das tarefas. Dependendo do domnio da aplicao, da estratgia ou da fase de teste, os processos podem ser adaptados de modo a produzir um conjunto maior ou menor de documentos. Contudo, os documentos de preparao para o teste devem incluir: o planejamento do teste, o projeto do teste, os casos de teste e os procedimentos de teste. Alm disso, os resultados do teste bem como os incidentes ocorridos durante a execuo do teste devem ser adequadamente registrados e condensados num relatrio final. Se necessrio, as tarefas ou passos dos processos podem ser estendidos para incluir aes adicionais que podem, eventualmente, resultar em novos documentos e/ou formulrios. Os documentos e os processos neles descritos podem ser aplicados a diversos domnios de aplicao (comercial, cientfico, etc.), no estando restrita a sua utilizao a tamanho, complexidade ou criticalidade do software; podem ser usados para todas as fases de teste, desde o teste de unidade at os testes de aceitao e de regresso. 4 Aplicao da Metodologia de Teste Como parte da experimentao e validao da metodologia de teste, foi realizado um projeto de melhoria de processo em uma micro empresa desenvolvedora de software. 4.1. Contexto A empresa na qual a metodologia foi aplicada uma pequena empresa de desenvolvimento de projetos de software, fundada em 1995 e instalada em Campinas, SP, nas proximidades da Universidade de Campinas (UNICAMP), no distrito de Baro Geraldo. Esta empresa tem, desde o incio de suas atividades, como foco principal o desenvolvimento de projetos de software. Esta rea representa cerca de 90% de seu faturamento mensal. Os seus clientes so, em sua maioria, grandes empresas, multinacionais em muitos casos. Os projetos tm entre 2 e 6 meses de durao e envolvem entre 2 e 4 profissionais. Neste projeto de melhoria foram tratados vrios processos, incluindo o processo de teste. O projeto de melhoria seguiu a Abordagem de Melhoria de Processo do CenPRA [Salviano, 2003]. Esta abordagem suporta a escolha de diferentes modelos de referncias e diferentes metodologias para a melhoria de processos especficos. Neste projeto, por exemplo, foi utilizado o modelo de processo da ISO/IEC TR 15504-5 [ISO/IEC 1998] como referncia e duas metodologias para dois processos especficos: a metodologia baseada no ProGer para o processo de gerncia de projeto e a metodologia de teste do CenPRA para o processo de teste. ProGer um modelo de processo para gerenciamento de projetos para organizaes de desenvolvimento de software de pequeno porte [Roullier, 2001]. O projeto foi iniciado em Janeiro de 2002. Seguindo a Abordagem de Melhoria de Processo do CenPRA, o projeto foi executado em seis fases seqenciais: (1) Incio dos Trabalhos e Definio
9

de Metas, (2) Avaliao das Prticas Correntes, (3) Planejamento das Aes de Melhoria, (4) Implantao das Aes de Melhoria, (5) Verificao dos Resultados e Aprendizado, e (6) Institucionalizao da Melhoria. A primeira fase foi composta pela elicitao do negcio da empresa, estratgias e objetivos. A escolha da ISO/IEC TR 15504 se deu devido flexibilidade para adaptaes s necessidades da empresa. Decidiu-se utilizar cinco processos da futura norma, para o nvel 2 de capacidade. Os processo escolhidos foram: CUS.2 Supply (Fornecimento), CUS.3 Requirement Elicitation, (Elicitao de Requisitos) MAN.2 Project Management (Gerncia de Projeto), ENG.1.6 Software Test (Teste de Software) e ORG.5 Measurement (Medio). Estes processos foram selecionados de forma a cobrir as necessidades de melhoria de processo da empresa. Uma equipe do CenPRA realizou a avaliao para estes cinco processos, at o nvel 3 de capacidade, para descobrir as prticas utilizadas. A avaliao foi feita de acordo com o mtodo de avaliao criado pelo CenPRA. Os resultados indicaram nvel 2 de capacidade para ORG.5 Measurement e nvel 1 para os outros. Aps a avaliao foram realizadas as outras fazes do projeto. Uma descrio mais detalhada deste projeto de melhoria e de resultados preliminares foram apresentados e discutidos em outras conferncias da rea [Silva 2003a, Silva 2003b]. Este artigo foca apenas a experimentao e validao da metodologia de teste. 4.2. Situao Atual Atualmente (maro de 2004), existe uma prtica institucionalizada na Empresa de planejamento e execuo sistemtica de teste de sistema, como parte do processo de desenvolvimento de software da empresa. O fluxograma da Figura 3 descreve uma representao dos elementos principais do processo de teste e seu relacionamento com o processo de desenvolvimento de software, conforme a sua execuo na Empresa. O processo de teste parte de uma proposta tcnica (PPT) bastante detalhada, que associada a um plano de projeto (PP) previamente elaborado, permitem a criao de um plano de teste (PLT). Dependendo do projeto e nvel de exigncia do cliente, este deve aprovar o plano de teste. Alm de aprovar o plano, o cliente deve se envolver tambm em sua elaborao, por exemplo atravs da identificao de critrios de teste. Aps a elaborao do plano de teste (a partir de definio tambm deste plano), opta-se, em funo do tamanho e riscos associados ao projeto, pela elaborao ou no do documento projeto de teste (PRT), que pode iniciar em paralelo ou aps a criao do documento de detalhamento de requisitos (DR). Com o detalhamento de requisitos (DR) finalizado, elabora-se um documento condensando informaes sobre casos e procedimentos de teste (CPT), e eventualmente (na ausncia de um PRT), questes gerais do projeto de teste, como abordagem do teste por funcionalidade, critrios de aprovao e rejeio, entre outros. Neste ponto o teste est pronto para ser executado.

10

Fluxograma das tarefas de implementao e teste, no tempo de vida de um projeto na Ampla Consultoria - Fevereiro /2004
Proposta Comercial (PPC) Proposta Tcnica (PPT)

Planej amento do Projeto

Plano de Projeto (PP)

Planejamento do Teste

Detal hamento de Requisitos

Pl ano de Teste (PLT)

Detalhamento de Requisitos (DR) T empo de Execuo de um Projeto de Softwar e na Ampla Consultoria

Elaborao do Projeto de Teste

Projeto de Teste (PRT)

Implementao de nova verso de produto de software

Detal hamento dos Casos e Procedimentos de Teste Casos e Procedimentos de Teste (CPT)

Software: verso(es) para teste

Execuo do Teste

Relatrio de Incidentes de Teste (RIT) NO Revi ses no software a partir do RIT Produto ok?

Dirio de Teste (DIT)

Software: Verso para instalao

SIM

Acei tao do Produto (Cliente) Elaborao de Resumo e anl ise dos dos resul tados do Teste

Relatrio de Aceitao (RA)

Relatrio Resumo de Teste (RRT)

Figura 3: Processo de teste e seu relacionamento com o processo de desenvolvimento


11

As tarefas de detalhamento de teste correm simultaneamente com a implementao (codificao) do novo produto de software gerado ou da nova verso contendo melhorias em um software prexistente. Assim que uma verso do software liberada pela equipe de programao, a equipe de teste executa os casos de teste previstos e retorna, via relatrio de incidentes de teste (RIT), os problemas detectados equipe de programao, que dever corrigi-los. As novas verses, possivelmente geradas a partir do relatrio de incidentes de teste, retornam etapa anterior, com definio do gerente de teste sobre os casos de teste que devero ser reexecutados at que se tenha um produto considerado adequado para a instalao, conforme deciso do lder do projeto. Ainda, durante a execuo do teste a equipe de teste gera um documento detalhado sobre a execuo do teste, denominado dirio de teste (DIT). Este documento, permite a gerao de anlises bem fundamentadas no momento da criao do resumo do teste (RRT), gerado normalmente aps a instalao do software aprovado no cliente. Este documento mostra o esforo necessrio para preparao e execuo do teste, anlises das falhas apontadas, dados gerais do projeto (de teste e de implementao) e as concluses obtidas. Na entrega para o cliente, dispara-se um processo de aceitao do produto gerado, realizado pelos usurios do software aps a visita de instalao, com a utilizao de um relatrio de aceitao (RA), que vai validar no somente o teste do software, mas tambm a qualidade do produto entregue no sentido da adequao s necessidades especficas de uso. 4.3. Consideraes e dados sobre a utilizao do processo Este processo j foi utilizado em todos os sete projetos executados aps sua implantao. A Tabela 1 mostra um conjunto de dados sobre estes sete projetos, e particularmente, das atividades de teste. Os dados desta tabela indicam que existe uma prtica da execuo e gerenciamento de teste e uma base inicial para comparaes com projetos futuros buscando identificar problemas e oportunidades de melhoria. Tambm indicam uma boa execuo do processo de medio. 4.4. Resultados da melhoria A melhoria do processo de teste, associada melhoria do processo de desenvolvimento de software como um todo, permitiu observar os seguintes aspectos, dentre outros: Maior controle durante a execuo do projeto, devido principalmente ao planejamento prvio e aos pontos de medio, sendo etapas do teste de software alguns dos principais pontos existentes atualmente. Este controle permite ainda que os lderes de projeto nos clientes sejam acionados imediatamente, sempre que houver qualquer desvio em relao ao previsto. Estudos e anlises, realizadas aps o encerramento do projeto e entrega do produto gerado, reforando os pontos positivos e criando aes corretivas para os pontos negativos detectados no processo como um todo.

12

Tabela 1 Dados sobre os projetos realizados primeira parte


Funcionalidades Envolvidas no Teste (#) Razo CTs com incidentes x Total de CTs Incidentes com Falhas (#) Planejamento do teste (h) Participao do Teste no total Hh. Correo de Defeitos (h) Razo Incidentes x CTs

Execuo do teste (h)

Casos de Teste com Incidentes (#)

Casos de Teste (#)

Implementao (h)

Projeto Proj.01 Proj.02 Proj.03 Proj.04 Proj.05 Proj.06 Proj.07

176 7 85 4 17 10 90

10 7 18 3 3 5 3

170 70 35 10 10 30 25

90 61 25 6 9 17 32

80 14 38 4 13 10 150

50,4% 220 86,2% 113 32,8% 42 66,7% 19 38,8% 26 70,1% 25 19,2% 31

40 18,2% 7 6,2% 23 54,8% 9 47,4% 8 30,8% 3 12,0% 75 241,9%

75 14 20 9 17 10 25

34,1% 23 5 5 7 12,4% 4 2 1 0 47,6% 7 11 3 2 47,4% 6 2 0 1 65,4% 5 1 1 1 40,0% 1 0 2 0 80,6% 29 9 10 27

Qualidade do produto final gerado, no sentido da verificao (requisitos definidos implementados corretamente). No sentido da aceitao, a documentao de projeto completa ajuda a fornecer subsdios para que o usurio possa verificar o aspecto da adequao s necessidades. Outro ponto quanto qualidade que a documentao gerada permite perceber mais claramente as falhas relacionadas a detalhamentos incorretos ou incompletos de requisitos. Os clientes parecem compreender melhor as dificuldades inerentes produo de software, aumentando o respeito pelas informaes transmitidas, documentao apresentada, necessidades explicitadas, aceitando at maiores prazos para entrega de produtos com maior qualidade. A questo de maiores custos associados ainda uma varivel a ser medida. H um aumento nos custos gerais de produo de software, esperados certamente no incio da implementao dos novos processos, mas que podero ser diludos apenas no longo prazo.

O objetivo da empresa , a partir dos dados gerados pelo processo de teste, medir sistematicamente cada projeto de software corrigindo desvios e modificando consequentemente as prioridades e aes corretivas a serem tomadas; em outras palavras, aprimorando os processos com o aprendizado. Aps a implantao do processo de teste na empresa, as seguintes melhorias foram observadas: Existe um menor nmero de defeitos descobertos aps instalao do software, diminuindo de forma significativa os custos e problemas associados a correes urgentes de um sistema em produo. A equipe de programao est mais atenta: s tarefas de verificao, antes da liberao de uma verso para teste, causando inclusive uma melhoria no produto, trazendo alm de menor desgaste da equipe, menores custos para a empresa. Os clientes, verificando os resultados iniciais obtidos, tm dado mostras significativas que esto dispostos a esperar mais pelo produto final. Mesmo assim, nem sempre aceitam
13

Falhas Crticas (#)

Falhas Graves (#)

Falhas Leves (#)

Falhas Mdias (#)

aumento nos custos. Em seguida, eles passam a exigir tal comportamento, em projetos posteriores ao primeiro onde tiveram contato com o processo interno em implantao, ou seja, passam a no querer mais verses do software no devidamente testadas. Os testes sistemticos tm fornecido dados e informaes relevantes melhoria tanto do prprio processo de teste quanto do processo de desenvolvimento como um todo, aumentando sua eficincia e/ou abrangncia, e permitindo a criao de pessoal capacitado para as prticas necessrias. Os testes sistemticos tm se mostrado, ainda, um bom ponto de partida para medies, relacionadas ao processo geral de desenvolvimento, ao processo de teste, e ainda a outros processos internos da empresa. Pelo lado do investimento, os testes sistemticos tendem a se pagar somente num horizonte de mdio e longo prazo. Espera-se que o processo de teste continue em evoluo, tanto para seu contnuo aperfeioamento quanto, em um prazo mais longo, para a incorporao de ferramentas.

4.4. Avaliao do processo de teste Aps a implantao do processo, foi realizada uma avaliao superficial das atividades de teste segundo o processo de teste do modelo exemplo de avaliao de processo da ISO/IEC 15504, chamado de ISO/IEC 15504-5. O resultado desta avaliao foi comparado com uma avaliao realizada em 2001, antes da realizao deste ciclo de melhoria. Tambm foi realizada uma avaliao em relao rea de processo de Verificao do CMMI, que a rea de processo mais prxima do escopo do trabalho em teste. O resultado da avaliao realizada em 2001 mostrou que a empresa executa o processo de teste no nvel 1 de capacidade. Existiam algumas atividades de teste, sem nenhuma sistemtica, nem planejamento. Na avaliao de 2004, existe uma indicao do atendimento do nvel 2 de capacidade , com alguns elementos do nvel 3. Como a avaliao foi superficial, o mximo que se pode dizer que existem indicadores. O processo de teste de software da ISO/IEC TR 15504 tem como objetivo garantir que a implementao de cada requisito do sistema seja testada em conformidade com o requisito e que o sistema esteja pronto para ser liberado. Como resultado de uma implementao com sucesso do processo de teste de sistema em uma organizao, a 15504-4 requer que evidncias dos seguintes quatro elementos sejam identificados durante uma avaliao: um critrio para o sistema desenvolvido que demonstre a conformidade com os requisitos; sistema verificado utilizando o critrio definido; os resultados do teste so registrados; e uma estratgia de regresso desenvolvida e aplicada para retestar o sistema quando mudanas forem feitas em elementos do sistema.

Para que o processo de teste da organizao esteja no nvel 1 de capacidade, o objetivo do processo e os quatro resultados estejam sendo atingidos. Para que este processo tambm esteja no nvel 2, a execuo do teste tem que ser planejada e acompanhada, exigindo uma boa gerncia do teste, e os principais produtos de trabalho do teste tm que ser identificados, definidos,
14

produzidos e verificados. Para um processo estar no nvel 3 ele deve estar bem definido e ser seguido em cada uma de suas execues. Na avaliao superficial foi verificado que: os objetivos do processo de teste estavam sendo atingidos (portanto satisfaz o nvel 1 de capacidade); a execuo planejada e acompanhada, e os principais produtos de trabalho (no caso: Plano de Teste PLP, Projeto de Teste PRT, Casos e Procedimentos de Teste CPT, Relatrio de Incidentes de Teste RIT, Dirio de Teste DIT, e Relatrio Resumo de Teste RRT) so identificados, definidos, produzidos e verificados (a verificao no muito sistematizada, porm sendo uma micro empresa, foi entendido que isto no compromete, neste caso, o nvel 2 de capacidade) (portanto satisfaz o nvel 2 de capacidade); e existe alguns aspectos do processo j bem definidos (como por exemplo, fluxo de execuo), mas ele ainda no completo (portanto ainda no satisfaz o nvel 3 de capacidade).

Com isto, o processo de teste de software foi considerado com o nvel 2 de capacidade, em relao ISO/IEC 15504-5. Para a rea de processo de verificao da representao contnua CMMI-SE/SW as indicaes tambm sinalizam o nvel 2 de capacidade. Est previsto no programa de melhoria da empresa, para 2004, uma avaliao detalhada, seguindo todos os requisitos da ISO/IEC 15504, de um conjunto de processos relevantes da empresa, incluindo o processo de teste. 5. Concluso Com a aplicao da metodologia em uma micro empresa de desenvolvimento de software, resultando em um processo de teste que foi utilizado com bons resultados em sete projetos e atingiu o nvel 2 de capacidade de processo segundo a Norma ISO/IEC 15504, pode ser concludo que: a metodologia vivel de ser aplicada em uma micro empresa, como parte de um programa de melhoria de processo; e o processo de teste implantado pela metodologia gera melhorias visveis aos clientes e aos desenvolvedores, melhorando a qualidade do software e o relacionamento entre a empresa e os clientes.

A metodologia do CenPRA ajuda a estruturar as atividades de teste desde o incio de um projeto de desenvolvimento de software, tornando claro para todas as partes envolvidas o relacionamento entre o processo de desenvolvimento de software e as atividades de teste. A definio pela metodologia dos principais artefatos do processo de teste, baseado na Norma IEEE STD 829, o principal orientador das atividades de teste.

Agradecimentos
O desenvolvimento e experimentao da metodologia de teste parte do programa de pesquisa tecnolgica do CenPRA em melhoria e avaliao de processo de software. A aplicao da melhoria de processo e da metodologia de teste na empresa foi parcialmente financiado pelo programa SEBRAE/FINEP PATME e teve apoio do Ncleo SOFTEX Campinas.
15

Referencias
[Beizer, 1995] Beizer, Boris. Black-Box Testing: techniques for funcional testing of software and systems,. Wiley, New York, 1995. [CenPRA,2001a] Centro de Pesquisas Renato Archer CenPRA, Diviso de Melhoria de Processos de Software - DMPS, RT Guia para Elaborao de Documentos de Teste de Software, Relatrio Tcnico, 2001. [CenPRA,2001b] Centro de Pesquisas Renato Archer CenPRA, Diviso de Melhoria de Processos de Software - DMPS, RT Processos para Elaborao de Documentos de Teste de Software, Relatrio Tcnico, 2001. [Craig, 2002] Craig, Rick D, Jaskiel, Stefan P. Systematic Software Testing. Artech House Publishers, 2002. [Crespo, 2002] Crespo, A. N., Martinez, M. R., Jino, M., Argolo, M. T. Application of the IEEE 829 Standard as a Basis for Structuring the Testing Process. The Jounal of Software Testing Professionals, Vol. 3, Issue 3, December 2002. [Crespo, 2003] Crespo, A. N., Martinez, M. R., Jino, M., Argolo, M. T. Acceptance Testing of na Outsourced Application: Approach and Documentation Issues. The Jounal of Software Testing Professionals, Vol. 4, Issue 1, March 2003. [Hetzel, 1988] Hetzel, Bill. The Complete Guide to Software Testing - Second Edition, John Wiley & Sons, 1988. [IEEE, 1998] The Institute of Electrical and Electronics Engineers. IEEE Std 829: Standard for Software Test Documentation. New York: IEEE Computer Society, September, 1998. [ISO/IEC 1998] The International Organization for Standardization and The International Electrotechnical Commission, ISO/IEC TR 15504 Software Process Assessment.1998. [Myers, 1995] Myers, Glenford J. The Art of Software Testing,. Wiley, New York, 1979. [Roullier, 2001] Ana Cristina Roullier, Gerenciamento de Projetos de Software para Empresas de Pequeno Porte, Tese de Doutorado, UFPE [Salviano, 2003] Clnio F. Salviano, Melhoria e Avaliao de Processo de Software com a ISO/IEC 15504 e CMMI, publicao do curso de ps-graduao Lato Sensu / (Especializao) a distncia em melhoria de processo de software, UFLA/FAEPE, 2003. [SEPO,1998] Space and Naval Warfare Systems Center San Diego, Software Engineering Process Office, D12. Handbook for Process Management, version 1.0. San Diego. September, 1998. [Silva 2003a] Odair J. da Silva, Carlos A. Borges, Clenio F. Salviano, A. L. Sampaio, A. N. Crespo, e Ana C. Roullier, An ISO/IEC 15504-Based Software Process Improvement Project in a Small Brazilian Software Organization, in Proceedings of SPICE2003: The Joint ESA - Third International SPICE Conference on Process Assessment and Improvement, Noordwijk, The Netherlands, p. 137-139, March 2003 [Silva 2003b] Odair Jacinto da Silva; Carlos Alberto Borges; Clnio F. Salviano; Adalberto N. Crespo; Ana Cristina Roullier, Aplicao da ISO/IEC TR 15504 na Melhoria do Processo de Desenvolvimento de Software de uma Pequena Empresa, em Anais do Simpros 2003: Simpsio Internacional de Melhoria de Processo de Software, ISBN 85-7359-326-1, Recife, Brasil, p. 287288, Novembro 2003. [Zallar, 2001] Zallar, Kerry. Are You Ready for Test Automation Game ?. STQE Software Testing and Quality Engineering Magazine, vol.3, Issue 6, Nov/Dec 2001.

16

Оценить