Académique Documents
Professionnel Documents
Culture Documents
(TEST MANAGEMENT)
Joo Antnio Nico Neto da Costa Alves
CGI Portugal
joao.alves@cgi.com
j_alves12@netcabo.pt
O desenvolvimento de sistemas de informao cada vez mais complexo. A
necessidade de tornar este processo cada vez mais eficiente, com vista reduo de
custos e a um melhor time-to-market, traz uma nova perspectiva necessidade de se
ter um melhor e mais eficiente processo de testes, que deve ser cada vez mais
entendido como uma fase crucial da gesto da qualidade do trabalho desenvolvido.
Assim sendo, a importncia de planear, executar e documentar testes das aplicaes
desenvolvidas crucial para os departamentos de desenvolvimento e para a
qualidade dos produtos criados.
Surge ento o conceito de gesto de testes, que consiste em quatro aspectos fundamentais: Gesto de Requisitos, Planeamento de Testes, Agendamento e Realizao
de Testes, e Gesto de Defeitos/Incidentes.
Neste artigo apresentado o trabalho realizado no mbito do projecto de final de
curso de IGE, que consistiu no desenvolvimento de uma metodologia de testes a
adoptar pela CGI, de forma a esta alargar o seu leque de oferta no mercado.
Palavras-chave: gesto de testes; testes de software; test cases; V-Model; Rational
Unified Process (RUP)
Software development has become more and more complex. The need to make this
process more and more efficient, aiming cost reduction and a better time-to-market,
brings a new perspective to the need of having a better and more efficient testing
process, which must be perceived as a crucial stage in managing the quality of the
work made. Thus, the importance of plan, execute and document software testing is
crucial for development departments, as well as for the products quality.
With this, rises the concept of test management, which consists of four fundamental
aspects: Requirements Management, Test Planning, Test Scheduling and Execution,
and Defects/Issues Management.
This article intends to present the work made within the scope of the final project of
the Computer Science and Business Administration degree at ISCTE (Portugal).
This project consisted on developing a testing methodology for CGI, which the
company would include in its services portfolio.
Keywords: test management; software testing; test cases; V-Model; Rational
Unified Process (RUP)
O Projecto
O projecto teve como principal objectivo a criao de uma metodologia de realizao de
testes, para posteriormente a CGI utilizar nos seus projectos quando no existir uma
orientao concreta determinada pelo(s) cliente(s). Esta metodologia no pretende
definir um procedimento rgido, mas sim fornecer aos seus destinatrios uma orientao
no sentido de melhorar o processo de testes na CGI.
Inicialmente foi feito um levantamento do estado da arte que consistiu na compilao de
vrias metodologias de testes existentes dentro e fora da CGI a nvel mundial, de forma
a definir um procedimento de testes adaptado nossa realidade. Aps este levantamento
seria feita uma consulta aos colaboradores da CGI de forma a obter as suas opinies
acerca deste novo procedimento bem como da sua aplicabilidade na vida real. Ao
mesmo tempo foi feito um benchmarking das vrias ferramentas de testes disponveis
no mercado, de forma a identificar a(s) que melhor podero implementar o
procedimento de testes.
Numa segunda fase do projecto foi feita uma aplicao real da nova soluo, sendo que
para tal recorreu-se a um dos outros projectos que foram desenvolvidos na CGI, o
Project Management Toolkit. Tal serviu para criar a Prova de Conceito, bem como para
validar toda a soluo desenvolvida ao longo do projecto.
De uma forma mais esquematizada temos:
A. Criao de uma metodologia
1. Definio de um procedimento de testes para a CGI Portugal
i. Compilao de metodologias
ii. Levantamento das ferramentas apropriadas
iii. Consulta aos colaboradores
2. Aplicao e validao da soluo
Os Conceitos
Antes de definir a metodologia, foi necessrio ainda esclarecer alguns conceitos
relacionados com testes, comeando exactamente por definir o que so testes de
software.
O teste de software uma das fases do processo de engenharia de software que visa
atingir um elevado nvel de qualidade da aplicao desenvolvida. O objectivo, por
paradoxal que parea, mesmo o de encontrar defeitos no produto, para que estes
possam ser corrigidos pela equipa de desenvolvimento, antes da entrega final. A maioria
das pessoas pensa que o teste de software serve para demonstrar o correcto
funcionamento de uma aplicao, quando na verdade ele utilizado como um processo
para encontrar defeitos. O conceito de teste de software pode ser compreendido atravs
de uma viso intuitiva ou mesmo de uma maneira formal. Existem actualmente vrias
definies para esse conceito. De uma forma simples, testar software significa verificar
atravs de uma execuo controlada se o seu comportamento ocorre de acordo com o
especificado. O objectivo principal desta tarefa encontrar o maior nmero de erros
2
8. Obter visibilidade organizacional atravs da qualidade, que por sua vez apenas
se obtm com um processo de gesto bem estruturado e presente em toda a
organizao.
Independentemente daquilo que a aplicao faz, de como foi escrito, ou da plataforma
em que est a correr, os princpios bsicos da gesto de testes so os mesmos. Inicia-se
com a compilao e documentao dos requisitos de teste e prossegue atravs do
desenho e do desenvolvimento de testes, da execuo de testes, e da anlise dos
defeitos. O processo de testes no linear, e naturalmente difere dependendo das
prticas e metodologias de cada organizao. No entanto, os princpios que esto por
detrs de todos os processos de teste so os mesmos.
A Metodologia
A metodologia desenvolvida suporta a premissa de que os testes devem ser geridos
como um projecto dentro do projecto.
Deste modo, as tarefas de gesto de testes inerentes metodologia abordam:
1. Preparao da estratgia e do plano de testes, que so criados antes do incio da
construo. So dois documentos que andam lado a lado. Enquanto a estratgia
define a abordagem a adoptar para que os objectivos dos testes sejam atingidos,
o plano quantifica a estratgia em termos de tipo, quantidade e tempo dos
recursos (humanos ou mquinas) necessrios.
2. Anlise de risco, para que sejam identificadas as aplicaes com maior risco, de
modo a que seja planeado e executado um processo de testes mais extenso para
estas aplicaes, e para identificar quais as componentes crticas e/ou as reas de
foco mais importantes do sistema do ponto de vista do cliente.
3. Procedimentos de escalamento de problemas, ou seja, a definio de linhas
gerais acerca de como proceder ao longo de todo o esforo de teste, e acerca dos
processos de reporting.
4. Organizao da equipa de testes, nomeadamente a definio dos papis que cada
membro tem dentro da equipa.
5. Mtricas de teste, que permitem ao gestor do projecto avaliar os nveis de
qualidade, bem como saber o que necessrio para que se atinja um
determinado nvel de qualidade. As mtricas permitem ainda ao gestor de
projecto que este possa tomar decises acerca de continuar ou no com as
actividades de teste.
6. Seguimento de defeitos e nveis de severidade, que devem ser descritos clara e
precisamente. Um defeito pode existir num de trs estados: aberto (descoberto,
mas ainda no corrigido), resolvido (aberto e corrigido, mas ainda no retestado), e fechado (aberto, corrigido e re-testado). Os nveis de severidade so
trs: severidade 1 (problema que tem de ser corrigido e para o qual no existe
alternativa), severidade 2 (problema que tem de ser resolvido rapidamente e para
o qual existe uma alternativa), severidade 3 (todos os outros problemas)
7. Verificao de critrios de entrada/sada dos vrios nveis e sub-nveis de teste.
Critrios de entrada so utilizados para determinar quando que um componente
do sistema est pronto a ser testado. Critrios de sada so utilizados para
Testes
Requisitos
Estratgia de Testes
Testes de
Aceitao
Especificao
do Sistema
Testes de
Sistema
Desenho do
Sistema
Testes de
Integrao
Desenho
Detalhado
Testes
Unitrios
Relatrio de
Testes de
Aceitao
Relatrio de Testes
de Sistema
Relatrio de Testes de
Integrao
Programao
Figura 1 V-Model
Tal como a figura mostra, o ciclo de desenvolvimento est lado a lado com o ciclo de
testes. Isto possibilita que as actividades de testes tenham o seu comeo numa fase mais
inicial de todo o processo de desenvolvimento da aplicao.
Do lado do desenvolvimento, o fluxo de trabalho tipicamente baseado no modelo
Waterfall, no qual cada passo se segue ao anterior.
Do lado dos testes, medida que vamos dos Testes Unitrios at aos Testes de
Aceitao, o nvel de detalhe cada vez menor, tornando-se mais orientado a uma viso
de negcio.
Tambm na figura 1 temos, para cada uma das fases do processo, o(s) documento(s) a
ser(em) elaborado(s) nessa mesma fase.
Fases
Requisitos
Desenho Detalhado
Programao
Testes Unitrios
Testes de Integrao
Actividades de Teste
Elaborar Plano de Testes de Aceitao
(Especificar Test Cases de Aceitao)
Elaborar Estratgia de Testes
Elaborar Plano de Testes de Sistema
(Especificar Test Cases de Sistema)
Elaborar Plano Geral de Testes
Elaborar Plano de Testes de Aceitao
(Rever test cases e executar todas as
outras tarefas)
Elaborar Plano de Testes de Sistema
(Rever test cases e executar todas as
outras tarefas)
Elaborar Plano de Testes de Integrao
Elaborar Plano de Testes Unitrios
N/A
Executar Testes Unitrios
Executar Testes de Integrao
Testes de Sistema
Testes de Aceitao
Especificao de Sistema
Desenho de Sistema
No entanto, e tendo em conta a tabela acima, vemos que para o Plano de Testes de
Aceitao e para o Plano de Testes de Sistema, a sua elaborao divide-se em duas
partes.
Deste modo, temos que durante a fase de Requisitos executada a primeira tarefa da
elaborao do Plano de Testes de Aceitao Especificar Test Cases de Aceitao. Esta
servir de input a todas as outras tarefas, bem como aumentar a qualidade do
documento a produzir durante a fase de Especificao de Sistema.
Do mesmo modo temos tambm que a elaborao do Plano de Testes de Sistema est
dividido pela fase de Especificao de Sistema, na qual so especificados os test cases,
e pela fase de Desenho de Sistema, onde so executadas todas as outras tarefas.
No que diz respeito ao modelo evolutivo, a opo recaiu sobre o Rational Unified
Process (RUP), que um modelo de desenvolvimento de software bastante aceite em
todo o mundo. O RUP utiliza uma abordagem orientada a objectos na sua concepo,
sendo projectado e documentado recorrendo notao UML (Unified Modelling
Language) para ilustrar os processos em aco.
um processo considerado pesado e, como tal, preferencialmente aplicvel a grande
equipas de desenvolvimento e a projectos de larga escala. No entanto, o facto de ser
amplamente costumizvel torna possvel a sua adaptao a projectos de dimenso mais
reduzida.
A figura 2 d-nos uma viso geral de todo o processo. O grfico identifica as disciplinas
que esto mais activas durante cada fase do processo. Por exemplo, a disciplina
Modelao do Negcio (Business Modelling), a vermelho, demonstra grande actividade
apenas nas fases de Concepo (Inception) e Elaborao (Elaboration), enquanto a
Gesto do Projecto (Project Management), a azul, mostra uma actividade mais
acentuada ao longo de todo o processo, do tempo e dos aspectos dinmicos do RUP.
Deste ponto de vista o processo descrito em ciclos, fases, iteraes e milestones.
O RUP divide-se em quatro fases, sendo estas compostas por iteraes. Enquanto as
iteraes tm prazos finais, as fases tm objectivos. As fases do RUP so:
1. Concepo (Inception), durante a qual definido o business case, ao nvel do
negcio, que complementado por um modelo bsico de use cases, pelo plano
de projecto, e pela anlise de riscos.
2. Elaborao (Elaboration), onde o projecto comea a ganhar forma. Nesta fase
feita a anlise ao sistema, e a arquitectura base do projecto feita uma forma
bsica.
3. Construo (Construction). Nesta fase o foco vai para o desenvolvimento das
componentes e de outras funcionalidades do sistema. nesta fase que o grosso
da programao feita.
4. Transio (Transition). Nesta fase o produto entregue ao utilizador final. Nas
actividades desta fase incluem-se a formao dos utilizadores e a execuo de
testes para validar
Uma das grandes vantagens do RUP est relacionada com a existncia de iteraes.
Dividindo o projecto deste modo proporciona, por exemplo, a mitigao do risco, mas
tambm necessita de um maior acompanhamento e esforo do que a tradicional
abordagem sequencial. O RUP define uma disciplina de Gesto do Projecto (Project
Management) que guia o gestor de projecto atravs da gesto de iteraes. Utilizando
iteraes um projecto ter uma fase de planificao geral, mas ter vrios planos de
iterao.
Utilizando um modelo evolutivo, como o RUP, as actividades de teste sero executadas
de acordo com as vrias iteraes em cada uma das fases do processo.
Deste modo, e tendo em conta a figura 2, as actividades de teste para o RUP so as
seguintes:
Fases
Concepo
Elaborao
Construo
Transio
Actividades de Teste
N/A
Elaborar Estratgia de Testes
Elaborar Plano Geral de Testes
Elaborar Plano de Testes Unitrios
Elaborar Plano de Testes de Integrao
Elaborar Plano de Testes de Sistema
Elaborar Plano de Testes de Aceitao
Executar Testes Unitrios
Executar Testes de Integrao
Executar Testes de Sistema
Executar Testes de Aceitao
Actividades
Entrando mais em detalhe em cada uma das actividades acima mencionadas, temos:
1. Elaborar Estratgia de Testes: tem como objectivo estabelecer uma estratgia
genrica e que indique como o sistema vai ser testado. O documento da
Estratgia de Testes elaborado de forma a minimizar o risco, reduzir os custos
relacionados com as actividades de teste, e garantir uma implementao com
sucesso. As tarefas que so executadas no mbito desta actividade so: priorar
reas de foco, estabelecer nveis alvo de qualidade, escolher sub-nveis de teste,
estimar actividades de teste.
2. Elaborar Plano Geral de Testes: tem como objectivo fornecer um plano geral
para a gesto das actividades de cada sub-nvel de teste (unitrio, integrao,
sistema e aceitao). As tarefas a executar no mbito desta actividade so:
definir critrios de entrada e de sada para cada nvel de teste, estimar nmero de
test cases necessrios, definir procedimentos de escalamento de problemas,
identificar os requisitos do ambiente de testes, rever a organizao da equipa de
testes, elaborar calendarizao genrica.
3. Elaborar Plano de Testes Unitrios: tem como objectivo fornecer um plano
detalhado para a execuo dos sub-nveis de testes unitrios. O propsito dos
sub-nveis de testes unitrios o de identificar e corrigir erros e omisses no
cdigo das componentes, como mdulos ou rotinas, antes de estas serem
integradas com outras componentes, formando todo o pacote. O Plano de Testes
Unitrios deve estar alinhado com todos os outros planos. As tarefas a executar
no mbito desta actividade so: especificar test cases unitrios, actualizar
requisitos de ambiente de testes, rever organizao da equipa de testes, elaborar
calendarizao detalhada.
8
O Benchmark
O documento de benchmarking elaborado no mbito do projecto Test Management teve
como principal objectivo fazer uma anlise profunda de vrias solues de software de
testes disponveis no mercado. No entanto, o resultado desta anlise no pretendia ser
uma recomendao final, mas sim oferecer empresa um documento que sirva de
referncia para futuras decises no que diz respeito a software de testes.
De modo a fazer a escolha de quais os vendors que iriam ser alvo de anlise, foi
utilizada a regra 80/20, que nos diz que 80% do mercado absorvido por 20% da oferta.
Assim sendo, foram 5 os vendors escolhidos para figurarem na avaliao: Compuware,
IBM/Rational Software, Mercury, Empirix, e Segue.
Para analisar as ferramentas, foram seleccionados seis critrios base:
1. Caractersticas das ferramentas: facilidade de utilizao, costumizao, suporte a
plataformas, linguagem de scripting, base de dados.
2. Capacidades de execuo: controlo, execuo distribuda, lgica de recuperao
da suite, gesto de testes.
3. Capacidades de integrao
10
A Prova de Conceito
Para a prova de conceito do projecto foi feita uma parceria com um dos outros projectos
desenvolvidos na CGI simultaneamente a este. Esse outro projecto foi o Project
Management Toolkit (PMT), que consistia no desenvolvimento de uma aplicao que
suportasse todos os processos de gesto interna da empresa.
Deste modo, foi possvel ento aplicar toda a metodologia acima descrita a um projecto
de desenvolvimento, como era o do sub-sistema de Recursos Humanos do PMT.
Antes que o esforo de teste tivesse incio, deparou-se com uma especificidade da
aplicao, que se prendia com o facto de esta ser desenvolvida sobre a ferramenta
Microsoft SharePoint, a qual no possibilita qualquer desenvolvimento de cdigo.
Assim sendo, deixou de fazer sentido a execuo de testes unitrios, pelo que foram
apenas realizados testes de integrao, de sistema e de aceitao. Este pormenor
permitiu ainda demonstrar alguma flexibilidade por parte da metodologia em se adaptar
s contingncias de cada projecto.
Os principais actores presentes ao longo de todo o processo de testes so trs: o cliente,
a equipa de testes e o gestor de projecto. Os dois primeiros ocupam posies
antagnicas dentro da estrutura da equipa: enquanto o cliente ocupa uma posio mais
orientada para o negcio, a equipa de testes, ou o tester, est numa posio mais
operacional. O gestor do projecto est numa posio vertical a todo o esforo de teste,
estando presente ao longo de todas as actividades.
Tendo sido a aplicao PMT desenvolvida mediante uma metodologia no evolutiva
Waterfall utilizou-se a abordagem ao V-Model como fio condutor de todas as
actividades de teste.
Assim sendo, o primeiro documento a ser produzido foi o da Estratgia de Testes. Este
documento tinha como destinatrios: o cliente, que tem de assegurar que os seus
requisitos foram levados em linha de conta; o gestor de projecto, que tem de
documentar todos os requisitos de teste e monitorizar a adeso estratgia de testes; a
equipa de testes, que tem de saber a sua distribuio pelas diferentes actividades, bem
como os mtodos, meios e ferramentas a utilizar. Um dos itens da estratgia de testes
passava pela definio dos sub-nveis de teste a executar. Assim, tnhamos que dentro
dos testes de integrao iriam ser realizados testes funcionais, dentro dos testes de
sistemas, os sub-nveis seriam testes das funes existentes e regresso, testes de
usabilidade e testes de documentao, e dentro dos testes de aceitao, seriam realizados
testes de documentao e testes de regresso.
O segundo documento foi o do Plano Geral de Testes, que tinha como destinatrios, e tal
como a Estratgia: o cliente, que tem de garantir que todas as milestones cumpridas e
que a aplicao foi bem testada; o gestor de projecto, que tem de documentar todos os
requisitos de planeamento de testes, e monitorizar a adeso estratgia e ao plano de
testes; a equipa de testes, que tem de saber as suas responsabilidades nas diferentes
11
12
O Futuro do Projecto
Aps a concluso da prova de conceito, deu-se como concludo todo o trabalho relativo
ao projecto Test Management.
Deste modo, ser agora feito o handover da metodologia s vrias equipas de teste da
empresa, para que estas possam agora fazer a adaptao dos processos j existentes a
este novo procedimento standard para a execuo de testes.
Concluso
Tal como foi dito no incio deste artigo, tem vindo a ganhar um cada vez maior
protagonismo a necessidade das empresas em diferenciarem-se das outras atravs da
qualidade dos seus produtos, e uma das formas de obter maiores nveis de qualidade
passa por um melhor e mais eficiente procedimento de testes.
Com as duas ferramentas apresentadas neste artigo a metodologia e o benchmark a
CGI fica na posse de algo que permite desde j investir na oferta de um novo e melhor
servio, na medida em que pode dar aos seus clientes a possibilidade de investir num
procedimento que feito com base em regras predefinidas (mas suficientemente
flexveis s necessidades de cada projecto), substituindo assim os actuais mtodos
utilizados para testar as aplicaes (ad-hoc e muito pouco eficientes).
13
Referncias
Alves, Joo, Testing Methodology, CGI, 22-Jun-2006
Alves, Joo, Testing Software Benchmark, CGI, 5-Abr-2006
Implementing an Effective Test Management Process, Mercury, 2005
Rational Unified Process Base Plug-in, Version 7.0, CD-ROM, IBM, 2005
Types of testing in the development process including the V model, Coley Consulting,
<http://www.coleyconsulting.co.uk/testtype.htm>
Wikipedia contributors, Teste de Software, Wikipdia, a enciclopdia livre, 20-Jun-2006,
<http://pt.wikipedia.org/w/index.php?title=Teste_de_software&oldid=2377989>
Wikipedia contributors, Rational Unified Process, Wikipdia, a enciclopdia livre, 22Jun-2006,
<http://pt.wikipedia.org/w/index.php?
title=Rational_Unified_Process&oldid=2389364>
14