Beruflich Dokumente
Kultur Dokumente
DE PERNAMBUCO
i
Resumo
Superar as expectativas do cliente oferecendo software de alta qualidade tarefa
fundamental das empresas de TI. Para atingir o nvel de qualidade adequado e agregar valor ao
servio imprescindvel a realizao dos testes de software. Tradicionalmente as empresas do
ramo no apresentam condies de implantar um processo de teste, desta forma, utilizam a
tcnica de testar seus softwares atravs de seus desenvolvedores de modo informal, intuitivo e
baseados na experincia prtica de seus profissionais. Outras empresas optam por no realiz-las
pois observam a atividade como entediante e custosa. Desta forma, somente focam na atividade
aps o incio da produo do software quando comeam a surgir os mais variados erros.
Empresas que incorporam em seu processo atividades de teste em software oferecem um
diferencial competitivo em relao a empresas que no utilizam esta atividade. Este trabalho traz
uma boa viso sobre testes de software e prope um processo de teste, utilizando recursos
exploratrios com o intuito de promover resultados a custos reduzidos. A modelagem do processo
foi feito com o auxlio do SPEM para descrever as fases e as atividades do processo, sua
interao com os colaboradores e os artefatos de entrada e gerados. O processo abordado pode ser
adaptado e moldado para ser empregado em qualquer organizao. Garante que testes mnimos
so realizados. Quando necessrio, ele tambm trabalha de forma a encontrar o maior nmero
de erros possvel.
Superar as expectativas do cliente oferecendo software de alta qualidade tarefa fundamental das
empresas de TI. Para atingir o nvel de qualidade adequado e agregar valor ao servio
imprescindvel a realizao dos testes de software.
Tradicionalmente as empresas no apresentam condies de implantar um processo de teste, desta
forma, utilizam a tcnica de testar seus softwares atravs de seus desenvolvedores de modo
informal, intuitivo e baseados na experincia prtica de seus profissionais.
Empresas que incorporam em seu processo atividades de teste em software oferecem um
diferencial competitivo em relao a empresas que no utilizam esta atividade.
Este trabalho prope um processo de teste, utilizando recursos
exploratrios com o intuito de promover resultados a custos reduzidos.
Abstract
Overcoming the expectations of the client software offering high quality is fundamental task of
the IT industry. To get the appropriate level of quality and adding value to the service is essential
to carrying out the testing of software. Traditionally companies in the industry haven't able to
establish a process of testing this way, using the technique to test its software through its
developers so informal, intuitive and based on practical experience of its professionals. Other
companies choose to don't implement them because observe the activity as tedious and
expensive. Thus, only focusing on the activity after the start of production of software when they
start to emerge the most varied errors. Companies that incorporate activities in their process of
testing in software offer a competitive differential regarding companies that don't use this activity.
This work provides a good overview on testing of software and proposes a process of testing,
using resources exploration in order to promote results at reduced costs. The modeling of the
process was done with the SPEM help to describe the phases and activities of the process, its
interaction with the staff and the artifacts of entry and generated. The process can be discussed
and shaped adapted to be used in any organization. It ensures that minimum tests are conducted.
When necessary, he also works in order to find the largest possible number of errors.To surpass
clients expectations, offering high quality software is a fundamental task of IT companies. To
meet an adequate quality level, adding value to its services, is of utmost importance to perform
software tests.
In most cases, companies do not present the required conditions or resources to implement a
software testing process. These companies employ the technique of testing its software through
its developers, in an informal and intuitive way, based primarily in the practical experience of its
professionals.
Companies which incorporate in its process software testing activities, offer a competitive edge
when compared to companies which do not use this activity.
This work proposes an a test process, employing exploratory resources, aiming at improving
results, at with a low cost.
Sumrio
ndice de Figuras v
ndice de Tabelas vi
Tabela de Smbolos e Siglas vii
1 Introduo 9
1.1 Motivao 10
1.2 Objetivos 11
1.3 Metodologia 11
1.4 Contribuio 12
1.5 Estrutura da Monografia 13
2 Testes de Software 14
2.1 Histria da Atividade de Teste 14
2.2 Verificao e Validao 16
2.3 Estratgias Fundamentais dos Testes 17
2.4 Tipos de Testes de Software 18
2.5 Nveis de Testes 19
2.6 Formas de Testar 20
2.6.1 Testes Manuais 20
2.6.2 Testes Automticos 21
2.7 Conceito V de testes 22
2.8 Processo tradicional de teste 23
ndice de Figuras v
ndice de Tabelas vi
Tabela de Smbolos e Siglas vii
1 Introduo 9
1.1 Motivao 10
1.2 Objetivos 11
1.3 Metodologia 11
1.4 Contribuio 12
1.5 Estrutura da Monografia 13
2 Testes de Software 14
2.1 Histria da Atividade de Teste 14
2.2 Verificao e Validao 16
2.3 Estratgias Fundamentais dos Testes 17
2.4 Tipos de Testes de Software 18
2.5 Nveis de Testes 19
2.6 Formas de Testar 20
2.6.1 Testes Manuais 20
2.6.2 Testes Automticos 21
2.7 Conceito V de testes 22
2.8 Processo tradicional de teste 23
ndice de Figuras v
ndice de Tabelas vi
Tabela de Smbolos e Siglas vii
1 Introduo 9
1.1 Motivao 10
1.2 Objetivos 11
1.3 Metodologia 11
1.4 Contribuio 12
1.5 Estrutura da Monografia 13
2 Conceitos Bsicos 14
2.1 Teste 14
2.2 Metodologia gil 15
2.3 SPEM - Software Process Engineering Metamodel 16
2.3.1 Principais Elementos de Definio do Processo 17
3 Testes de Software 20
3.1 Histria da Atividade de Teste 20
3.2 Verificao e Validao 22
3.3 Estratgias Fundamentais dos Testes 23
3.4 Tipos de Testes de Software 24
3.5 Nveis de Testes 25
3.6 Formas de Testar 26
3.6.1 Testes Manuais 26
3.6.2 Testes Automticos 27
3.7 Conceito V de testes 28
3.8 Processo tradicional de teste 29
6 Concluso 53
6.1 Trabalhos Relacionados 54
6.1.1 Ambiente 54
6.1.2 Descrio do Processo 54
6.1.3 Benefcios do Processo para Organizao 55
6.2 Trabalhos Futuros 55
6.3 Dificuldades Encontradas 56
6.4 Contribuio 56
ESCOLA POLITCNICA
DE PERNAMBUCO
vii
ndice de ImagensFiguras
ndice de Tabelas
Agradecimentos
Este trabalho, desenvolvido durante aproximadamente quatro meses, fruto dos conhecimentos
adquirido durante cinco anos no curso de Engenharia da Computao, do Curso Seqencial de
Formao Complementar realizado pelo Centro de Informtica (CIN) em parceria com a Motorola
e da colaborao de amigos que estiveram ao lado durante esse perodo.
Agradeo a minha famlia pelo apoio e motivao que me incentivaram a ir sempre busca
de meus objetivos.
Agradecer tambm ao meu orientador Mrcio Lopes Cornlio pela disposio, ajuda
pacincia e orientaes.
ESCOLA POLITCNICA
DE PERNAMBUCO
11
Captulo
Introduo
A importncia do software tem crescido cada vez mais nas organizaes e na sociedade. A cada
dia ele desempenha atividades mais importantes, que trazem benefcios e agregam valor ao meio
no qual atua. Geralmente, essas atividades podem ser realizadas pelo homem. Porm, algumas
delas s podem ser executadas por computadores. A tendncia que o mundo se torne cada vez
mais dependente dos softwares.
Determinadas atividades desempenhadas por computadores tm impacto direto na sade
financeira de uma instituio. Outras delas esto extremamente relacionadas vida. Tornam-se
cada vez mais necessrios produtos com alto nvel de qualidade e que satisfaam o cliente. Por
outro lado, os softwares que esto disponveis no mercado, em sua grande maioria, apresentam
falhas, havendo a necessidade de disponibilizar verses novas do sistema apenas com correes
de erros que, enquanto no forem corrigidos, afetam a funcionalidade, o desempenho, a
segurana, a confiabilidade e a usabilidade do sistema, tendo impacto direto no ambiente no qual
ele atua e podendo trazer conseqncias graves.
ESCOLA POLITCNICA
DE PERNAMBUCO
12
Informaes de mercado dizem que mais de 90% dos sistemas so liberados com graves
defeitos [1]. Objetivando o controle da qualidade dos softwares torna-se necessrio a implantao
de um conjunto de atividades voltadas para encontrar defeitos nesses sistemas. Porm, em muitos
casos, as atividades de testes so informais, sem metodologia e responsabilidades definidas.
A insuficincia de testes um dos principais motivos de falhas nos Projetos de
Desenvolvimento de Software [2]. Um processo de teste bem definido e eficiente unido a uma
equipe de teste independente so fundamentais para garantir a qualidade do produto e encontrar
os erros antes que a aplicao entre em produo. O custo para corrigir os erros em um sistema j
implantado cem vezes maior que o custo que se teria para corrigir esses mesmos erros em fase
de desenvolvimento [3].
Atualmente, as metodologias geis [4] ganharam repercusso por serem boas no
gerenciamento do desenvolvimento de software, incorporando testes unitrios ao processo de
desenvolvimento, realizando testes caixa-branca em seu processo, no havendo uma ateno
maior em testes de sistema.
Um modelo de processo de software uma representao das atividades do mundo real de
um processo de produo de software [5]. A modelagem de processos de software atualmente
uma grande fonte de pesquisa na qual a comunidade acadmica e as empresas tm aplicado
diversos esforos, a fim de aprimorar a expressividade e a percepo do processo como um todo.
A modelagem de um processo deve ser conduzida de modo a possibilitar o entendimento e
a padronizao do mesmo. A notao escolhida, SPEM (Software Process Engineering
Metamodel), o meta-modelo mais difundido e aceito, proposto pela da OMG(Object
Management Group) para a descrio de um processo concreto de desenvolvimento de software
[6].
Este trabalho prope definir e modelar um processo gil de teste criando um processo para
suprir uma necessidade de mercado. Dentre as estratgias de testes existentes, ser abordada a
forma exploratria e baseada em caso de uso. Acreditamos, que para a equipe de teste ser uma
equipe de sucesso no deva depender da metodologia utilizada no processo de desenvolvimento
do software, para com isso atender a demanda de projetos que necessitam de teste . Pois , onde
est a referncia?
ESCOLA POLITCNICA
DE PERNAMBUCO
13
1.1Motivao
Empresas necessitam de equipe de testes para comprovar que seus produtos cheguem aos clientes
com nvel de qualidade adequado ao objetivo da empresa, porm uma equipe de teste que
trabalha com testes tradicionais, seguindo o RUP, que por ser detalhista na construo de artefatos
e na quantidade de papeis envolvidos no processo, pode deixar a equipe bastante custosa para a
empresa burocratizando atividades que poderiam ser feitas de forma gil focando no objetivo
principal. Encontrar erros e produzir relatrios de resultado de teste deve ser o foco de uma
equipe de teste funcional cobrindo assim uma deficincia dos testes unitrios das metodologias
geis de desenvolvimento e no sendo muito burocrticas como as metodologias mais
conservadoras.
1.2Objetivos
O objetivo deste trabalho de graduao apresentado neste documento definir e modelar um
Processo gil de Teste (PAT). Uma metodologiaUm processo que planeje e organize as atividades
a serem realizadas, que garanta que o sistema est de acordo com determinado padro, que
possibilite uma melhor distribuio dos recursos utilizados e um aumento na deteco dos erros.
Esse processo visa aumentar a garantia de qualidade, pois ser realizado ao longo do processo de
desenvolvimento, e o controle de qualidade, visto que far verificaes para comprovar que o
sistema est de acordo com o que foi especificado pelo cliente.
1.3Metodologia
O projeto ser iniciado com a reviso bibliogrfica, enfocando os pontos destacados na
abordagem proposta:
Contextualizar a rea de Testes de software apresentando tipos, estratgias, nveis
de teste, tcnicas e boas prticas na rea.
Introduzir conceitos de projetos geis.
Apresentao de modelagem de processo
ESCOLA POLITCNICA
DE PERNAMBUCO
14
Em seguida ser proposta o modelo de processo de teste de software. Essa etapa
compreende:
Apresentar uma metodologia gil para desenvolvimento de software.
Relatar a importncia dos testes exploratrios.
Definir testes em par. Dois conceitos devem ser abordados.
o Testes apenas com a equipe de teste, objetivando homogeneidade do
conhecimento
o Participao do lder de desenvolvimento para melhor entendimento da
viso do cliente e para definio, caso ainda no tenha, do escopo negativo
de teste.
Criao de checklist para testes exploratrios, guiando o testador na execuo dos
testes.
Definir estratgia para escolha por testes exploratrios ou criao de projetos de
teste.
Com base na abordagem, sero realizadas atividades, com iteraes de uma semana,
ilustrando a aplicao dos conceitos introduzidos, relatando as dificuldades e a importncia
processo de testes. As principais atividades so:
1. Reviso Bibliogrfica
2. Planejamento da monografia
3. Planejamento para o estudo do trabalho relacionado
4. Modelar o processo
5. Realizao do trabalho relacionado e coleta de resultados
6. Analise dos Resultados
7. Escrita da Monografia
1.4Contribuio
Este trabalho de graduao vai procurar desenvolver um processo de teste, com
caractersticas de processos geis, para suprir uma necessidade de mercado. Dentre as estratgias
de testes existentes, devemos abordas abordar a forma exploratria e baseada em caso de uso.
ESCOLA POLITCNICA
DE PERNAMBUCO
15
Ser feita uma modelagem do processo com o auxlio do SPEM (Software Process
Engineering Metamodel) para descrever as fases e as atividades, sua interao com os
colaboradores e os artefatos de entrada e sada.
Iremos fornecer uma boa viso de testes de software e tentaremos construir um processo
que garanta que testes bsicos sejam testados de forma rpida, possibilitando uma melhor
distribuio dos recursos e o aumento na deteco de erros. Um guia de cenrios de testes que
abrange testes de campo, negcio, usabilidade, segurana ser construdo. Uma planilha de
execuo que instancia o guia de cenrios de testes ser concebida. O guia ser genrico o
suficiente para suprir a necessidade de um projeto que seja apresentado a equipe de teste. O guia
tem por objetivo auxiliar na execuo e poder ser alterado para adaptar-se a qualquer requisito
ou projeto.
O processo deve ser flexvel o suficiente para ser adaptado e moldado para ser empregado
em qualquer organizao objetivando tornar a atividade de teste menos informais. Quando
necessrio, ele trabalha de forma a encontrar o maior nmero de erros possvel, mesmo que isto
signifique aumento no esforo.
1.5Estrutura da Monografia
Este documento foi estruturado em captulos da seguinte maneira, aps esta introduo:
Captulo 2 Apresenta uma viso geral dos conceitos bsicos necessrios para o
entendimento desta monografia. Neste captulo definimos: Teste, Metodologia gil e SPEM.
Captulo 32 Testes de Software -Coloque o nome do captulo - Apresenta uma viso
geral sobre teste de software, mostrando modelos de teste tradicionais, a evoluo das atividades
de testes, os conceitos, estratgias, tipos e nveis de testes e algumas formas de testar.
Captulo 43 Metodologias de Desenvolvimento de Software - Apresenta conceitos e
exemplos de algumas metodologias geis de desenvolvimento de software.
Captulo 54 O Processo gil de Teste - PAT - Com base no que foi apresentado nos
captulos anteriores, este captulo prope um processo para testes de forma gil.
Captulo 5 Consideraes Finais e Trabalhos Futuros - 65 Apresenta as consideraes
finais, relata um trabalho relacionado alm de propor trabalhos futuros.
ESCOLA POLITCNICA
DE PERNAMBUCO
16
Captulo
Conceitos Bsicos
Antnio, retire este captulo. Como falei, os conceitos j so abordados nos captulos seguintes. A
seo sobre SPEM pode ficar no captulo da proposta do processo.
Este captulo apresenta os conceitos bsicos necessrios para o entendimento desta monografia.
Vamos apresentar o conceito de Teste, Metodologia gil e SPEM.
2.1Teste
A atividade de teste nem sempre foi bem aceita pela indstria em geral, algumas empresas
querem construir seus produtos a custos reduzidos para obter altos lucros e esquecem da
importncia da qualidade. A concorrncia e a diversidade do mercado foram mudando com o
decorrer dos anos e seguindo este caminho houve mudanas na forma de pensar dos fabricantes.
Com o passar dos anos e da coleta de informaes descobriu-se a necessidade de se testar
o que produzido para garantir que o produto seja bem sucedido. Dependendo do foco do
produto devem ser realizados testes de grande, mdia e baixa granularidade.
ESCOLA POLITCNICA
DE PERNAMBUCO
17
Atualmente, em carros de corrida, como na frmula 1, o tempo de teste bem maior que o
tempo que os carros passam correndo, esta mesma proporo apresentada no lanamento de um
nibus espacial. Esta caracteristica de ter um grande tempo de testes em comparao ao tempo
que o produto ser efetivamente usado primordial para a execuo de um bom trabalho. Para
esses dois exemplos a atividade de testes no uma escolha, ela se tornou essencial para o
sucesso do produto. Quanto mais cedo s falhas forem encontradas menos tempo ser
desperdiado tendo como conseqncia maior satisfao de todos os entusiastas do projeto.
2.2Metodologia gil
Metodologias geis tm como caracterstica principal a diminuio da burocracia, em
comparao a metodologias tradicionais. Estas metodologias despertaram o interesse em toda a
extenso da indstria do software. Nesta seo iremos explorar os motivos para as metodologias
geis serem benquistas, focando no somente em sua agilidade, mas tambm em sua natureza
adaptvel e na sua tendncia em colocar as pessoas em primeiro lugar.
A prtica do desenvolvimento de software uma atividade catica em sua maior parte,
normalmente com foco em apenas duas atividades: codificar e consertar. [7] O software escrito
sem um plano definido e o projeto do sistema repleto de vrias decises de curto prazo. Isso
funciona muito bem se o sistema pequeno, mas medida que o sistema cresce, torna-se cada
vez mais difcil adicionar novos recursos a ele. Defeitos subseqentes se tornam cada vez mais
dominantes e cada vez mais difceis de serem eliminados. Um sinal tpico de um sistema desse
tipo uma longa fase de testes depois que o sistema est finalizado. Esta longa fase de testes
entra em confronto direto com o cronograma, pois testes e depurao so atividades cujos tempos
so impossveis de serem estimados.
Ns convivemos com este estilo de desenvolvimento, mas tambm temos a alternativa de
usar metodologias tradicionais. Metodologias impem um processo disciplinado no
desenvolvimento de software, com o objetivo de torn-lo mais previsvel e mais eficiente foca-se
mais no planejamento que no prprio desenvolvimento.
Metodologias tradicionais no tm sido percebidas como sendo particularmente bem-
sucedidas. Elas tm sido notadas menos ainda por serem populares. A crtica mais freqente que
estas metodologias so burocrticas. H tanta coisa a se fazer para seguir a metodologia que o
ritmo de desenvolvimento fica mais lento. [7]
ESCOLA POLITCNICA
DE PERNAMBUCO
18
Como uma reao a tais metodologias, um novo grupo surgiu nos ltimos anos. Durante
algum tempo elas foram conhecidas como Metodologias Leves, mas agora o termo mais aceito
Metodologia gil. Para muitas pessoas o apelo das metodologias geis a reao delas
burocracia das metodologias tradicionais. Estas novas metodologias tentam criar um equilbrio
entre nenhum processo e muito processo, provendo apenas o suficiente de processo para obter um
retorno razovel.
O resultado disso tudo que os mtodos geis tm algumas mudanas de nfase
significativas em relao aos mtodos tradicionais. A diferena mais evidente que metodologias
geis so menos centradas em documentao, normalmente enfatizando uma quantidade menor
de documentos para uma dada tarefa. De vrias maneiras, elas so mais voltadas ao cdigo-fonte
do programa: seguindo um caminho que diz que a parte-chave da documentao o prprio
cdigo-fonte.
Metodologias geis so adaptativas ao invs de predeterminantes. Metodologias de
engenharia tendem a tentar planejar uma grande parte do processo de desenvolvimento
detalhadamente por um longo perodo de tempo. Este mtodo tem um bom funcionamento at o
surgimento da necessidade de mudana. Ento a natureza de tais mtodos a de resistir
mudana. Para os mtodos geis, entretanto, mudanas so bem-vindas. Eles tentam ser processos
que se adaptam e se fortalecem com as mudanas, at mesmo ao ponto de se auto-modificarem.
Mtodos geis so orientados a pessoas ao invs de serem orientados a processos. O
objetivo dos mtodos tradicionais de definir um processo que ir funcionar bem,
independentemente de quem os estiverem utilizando. Mtodos geis afirmam que nenhum
processo jamais ser equivalente habilidade da equipe de desenvolvimento. Portanto, o papel do
processo dar suporte equipe de desenvolvimento e seu trabalho.
SPEM - Software Process Engineering Metamodel
O SPEM um metamodelo proposto pela OMG Object Management Group para a descrio de
um processo de software ou uma famlia relacionada de processos. Diferente da maioria das
Linguagens de Modelagem de Processos (PML- Process Modeling Language) o SPEM surge
como uma proposta de unificao entre as diferentes metodologias propostas para modelagem de
processos. O SPEM utiliza a orientao a objeto para modelar uma famlia relacionada de
processos de software e usa a Unified Modeling Language (UML) como notao. A Figura 1
mostra as quatro arquiteturas de modelagem definidas pelo OMG.
ESCOLA POLITCNICA
DE PERNAMBUCO
19
20
Um Lifecycle de processo definido como uma seqncia de fases que alcanam uma meta
especfica, definindo o comportamento completo de um processo que ser executado em um dado
projeto ou programa.
Um Workdefinition um tipo de Operation que descreve o trabalho executado no processo. Suas
subclasses so Activity, Phase, Iteration, e Lifecycle. Um WorkDefinition pode ser composto de
outros WorkDefinitions, estando diretamente relacionados aos WorkProducts que so usados
atravs da classe ActivityParameter, especificando se so usados como entrada ou como sada dos
elementos de trabalho.
O ProcessPerformer representa de forma abstrata o processo inteiro ou um de seus
componentes, e usado para WorkDefinitions prprias que no tm mais um proprietrio
especifico.
O ProcessPerformer tem uma subclasse, ProcessRole. Um ProcessRole define responsabilidades
sobre WorkProducts especficos, e sobre os papis que executam e auxiliam em atividades
especficas. Um ProcessPerformer o executor de WorkDefinitions agregadas de alto nvel que
no podem ser associadas com ProcessRoles individuais.
A cada WorkDefinition pode ser associada uma Precondition e uma Goal. As Preconditions e
Goals so Constraints, onde a Constraint expressa na forma de uma expresso booleana
seguindo sintaxe semelhante quela de uma condio de proteo na UML. A condio
expressa em termos dos estados dos WorkProducts que so os parmetros da WorkDefinition ou
de uma WorkDefinition inclusa.
Uma Activity a subclasse principal da WorkDefinition. Ela descreve uma parte do trabalho
executado por um ProcessRole: as tarefas, operaes, e aes que so executadas por um papel
ou com a qual o papel pode auxiliar. Uma atividade pode consistir de elementos atmicos
chamados Steps. Uma Activity podendo fazer uso dos ProcessRoles adicionais que so os
assistentes na Activity.
Alguns dos elementos do SPEM podem ser representados graficamente atravs de cones outros
existem como metainformao e no possuem representao grfica.
WorkDefinition
Guidance
Activity
ProcessRole
ProcessPackage
Process
ESCOLA POLITCNICA
DE PERNAMBUCO
21
Document
UMLModel
ESCOLA POLITCNICA
DE PERNAMBUCO
22
Captulo
Testes de Software
O mercado est cada vez mais competitivo e as empresas buscam estratgias para assumirem um
papel de destaque. Melhorar a qualidade do produto final e reduzir os custos do desenvolvimento
deste produto so importantes objetivos das organizaes. Visando aumentar a qualidade do
produto a atividade de teste de software visa reduzir os custos do desenvolvimento e
principalmente da manuteno, minimizando os defeitos do produto final tendo como premissa a
satisfao do cliente.
23
Em 1957, foi criado o conceito de Teste de Software para deteco de erros ao final do
processo de desenvolvimento. Antes deste conceito a atividade de teste em software era uma
simples tarefa de percorrer o cdigo e corrigir erros j conhecidos.
Em 1970, quando o conceito de Engenharia de Software passou a ser utilizado como
modelo para as organizaes o processo de desenvolvimento de software passou a ter mais
relevncia.
Em 1972 houve a primeira conferncia sobre teste na Universidade da Carolina do Norte.
Mas um trabalho mais completo s foi produzido em 1979 por Glenford Myers. Neste trabalho a
atividade de teste foi definida como um processo de trabalho com a inteno de encontrar erros.
At esse momento, o objetivo do teste era somente provar o bom funcionamento de uma
aplicao. Todos os esforos da atividade estavam voltados para a comprovao desse fato e
conseqentemente poucos defeitos eram encontrados. Myers props que se o objetivo do teste for
encontrar erros, uma quantidade maior de problemas ser encontrada. Uma vez que vrios
cenrios sero buscados para testar o comportamento do aplicativo em vrias circunstncias. Essa
nova viso revolucionou a forma de abordar o problema, no entanto, os testes continuavam a
serem executados no final do processo de desenvolvimento.
Os primeiros conceitos de qualidade de software surgiram no incio dos anos 1980. Nesses
novos conceitos, desenvolvedores e testadores trabalham juntos desde o incio do processo de
desenvolvimento. Agora a atividade de teste ocorre de forma paralela ao processo de
desenvolvimento com planejamento, analise anlise, implementao e execuo especficos.
As primeiras ferramentas para realizar as atividades teste s comearam a ser fabricadas
em 1990. Elas possibilitam a execuo de teste que no podiam ser feitos manualmente. Como
testes de carga, desempenho, entre outros.
Segundo a IEEE (Institute of Electrical and Electronics Engineers) Standard Glossary of
Software Engineering Terminlogy, teste de software um processo de exercitar um software ou
componente sobre condies especficas, observando ou gravando os resultados, e realizando
uma avaliao sobre algum aspecto.
impossvel ter um produto livre de erros devido ao nmero enorme de cenrios
possveis. Porm, aps uma bateria de testes a probabilidade de encontrar erros graves, que
inviabilizem uma entrega, mnima e muito pequena para os erros em geral. O momento certo de
parar de testar o momento em que o custo para testar e corrigir os erros mais caro que o custo
da falha ocorrer em produo [11]. A Figura 2.1 mostra o momento de interromper os testes.
ESCOLA POLITCNICA
DE PERNAMBUCO
24
A criticidade do sistema quem define a quantidade de testes. Quanto mais crtico for o
sistema mais testes tero que ser executados para garantir a qualidade dele. Um exemplo a
comparao do tempo de parar os testes entre um software de locadora e um software de
controlador de vo. Ocorrendo um erro em produo no software da locadora tem um custo muito
menor do que encontrar erro em produo no software de controlador de vo.
Segundo Myers, quanto mais tarde um erro descoberto mais caro ele . Ele aplica a
Regra de 10 aos custos de correo do erro. Ou seja, quando um erro no encontrado em uma
fase do processo de desenvolvimento, os custos de correo so multiplicados por 10 para cada
fase que ele se propaga. Isso significa dizer que erros encontrados em produo so
extremamente caros.
3.2Verificao e Validao
Existem muitas diferenas entre o que o cliente necessita, e o que o analista projeta. A
Figura 2.2 exemplifica bem o que acontece durante a construo de um sistema.
ESCOLA POLITCNICA
DE PERNAMBUCO
25
26
3.3Estratgias Fundamentais dos Testes
Para executar os testes de validao existem duas estratgias: estratgia caixa branca e a
estratgia caixa preta. A utilizao destas estratgias determinando para aumentar a
probabilidade de deteco de erros presentes no produto.
Essas estratgias no so complementares. Se as duas estratgias forem combinadas de
forma apropriada o resultado final ser um software de melhor qualidade.
Os testes caixa branca so baseados na arquitetura interna do software, por isso, so
conhecidos como caixa branca. Eles identificam defeitos nas estruturas internas do programas
atravs da simulao de situaes que exercitem adequadamente todas as estruturas utilizadas na
codificao. Logo, necessrio que o testador tenha conhecimento suficiente sobre a arquitetura
interna e conhea a tecnologia utilizada no software.
O objetivo desses testes garantir que todas as linhas de cdigo e condies foram
executadas pelo menos uma vez, e esto corretas. Alguns mtodos so aplicados nos testes de
caixa branca, exemplo: Mtodo de Cobertura de Linhas de Cdigo, Mtodo de Cobertura de
Caminhos, Mtodos de Cobertura de Desvios Condicionais e Mtodo de cobertura de Laos.
Esses testes so difceis de implementar e so altamente eficientes na deteco de
problemas. Uma caracterstica desse tipo de teste que ele pode ser modelado, estruturado e
executado pelos desenvolvedores.
Estratgia caixa preta utiliza tcnicas para garantir que o software atende os requisitos do
sistema. Esses testes no verificam os processamentos internos, se a soluo adotada foi a melhor,
mas verificam se o sistema produz o resultado esperado. Ela no se preocupa com o cdigo, testa
as entradas e as sadas da aplicao.
Para adoo da estratgia de teste caixa preta no necessrio conhecer a tecnologia
utilizada nem a arquitetura do sistema. Isso facilita a modelagem dos testes. O que necessrio
o conhecimento dos requisitos, o comportamento esperado do sistema para que se possa avaliar
se o resultado produzido o correto.
Eles so conhecidos como mais simples de implementar que os de caixa branca.
27
Existem os testes de interface que testam a interao do usurio com o sistema verificando
o posicionamento correto dos itens da tela e a facilidade de uso do sistema. Ex.: caso seja
necessrio executar vrios cliques no mouse para desempenhar alguma funcionalidade isto deve
ser reportado para o analista em busca de minimizar muitos cliques.
O teste mais reconhecido pelo cliente o teste funcional este teste se caracteriza pela
necessidade do conhecimento do negcio do sistema para que os cenrios das regras de negcio
sejam simulados. Este teste verifica se as funcionalidades se comportam de acordo com a
documentao de especificao funcional, ou seja, se no existe diferena entre os requisitos
funcionais e o comportamento da aplicao. Valores de entrada e sada so utilizados para a
avaliao do comportamento do software. Esses testes so caracterizados pelo foco em negcios.
Outro teste que deve ter uma especial ateno so os testes de desempenho, eles verificam
se o tempo de resposta de uma determinada situao condizente com tempo especificado nos
requisitos definidos. Eles analisam o sistema sob condies reais de acesso simultneo ou de
carga de dados. As situaes de pico mximo previstas so comparadas como os valores-limite
especificados nos requisitos. J os de carga verificam se o sistema suporta a quantidade de
usurios requeridos. Ele avalia o comportamento do sistema para um volume de usurios
simultneos que simule uma quantidade real. Em geral teste de desempenho e de carga se
confundem, mas podemos dizer que o de desempenho se refere medio de tempo.
O teste de estresse parecido com os testes de carga, porm levando o sistema alm do
seu limite, ele destinado a avaliar como o software se comporta em condies anormais, testa o
aplicativo em situaes inesperadas. O teste pode envolver cargas extremas de trabalho, memria
insuficiente, hardware e servios indisponveis ou recursos compartilhados limitados.
Testes de volume do enfoque a parmetros de sobrecarga. Ao ser testada a aplicao
submetida a grandes quantidades de dados. Nesse teste o volume de dados incrementado
sucessivamente at que o limite mximo que a infra-estrutura est preparada para processar seja
atingido. O objetivo conhecer os limites do software e comparar com os requisitos
especificados.
Teste de Configurao verificam se a aplicao funciona como esperado em diferentes
ambientes de software e hardware, ou seja, o aplicativo testado em vrias configuraes de
software e hardware. Esses diferentes ambientes so os ambientes previstos na fase de elicitao
de requisitos.
ESCOLA POLITCNICA
DE PERNAMBUCO
28
Os testes de instalao tm por objetivo garantir que a instalao do sistema ocorrer
corretamente em diferentes ambientes de software e hardware e em diversas condies (falta de
energia, falta de espao em disco). Recomenda-se que este teste seja executado pelo usurio.
Teste de Integridade um tipo de teste que verifica a robustez, a resistncia falhas do
objeto do teste e a integridade dos dados armazenados.
Teste de segurana focam em encontrar falhas na segurana do sistema que podem
provocar perdas de dados, interrupes de processamento, comprometimento do sigilo e
fidelidade das informaes.
Testes de Documento focam na documentao do sistema. Os testes analisam a
completude e a clareza dos documentos.
Os ataques segurana do sistema podem ter origens internas ou externas e podem ser
realizados por profissionais descontentes, quadrilhas especializadas, hackers.
3.5Nveis de Testes
H quatro nveis de teste e sua diviso se deve pela granularidade dos componentes
testados e indivduos responsveis por eles.
O primeiro nvel a ser discutido o teste de unidade. Seu objetivo testar um pedao do
cdigo. Os testes so aplicados nos menores componentes de cdigo e testam unidades
individuais como: funes, classes, componentes. Eles podem testar a estrutura interna,
funcionalidade, segurana dos componentes. Para a realizao desses testes requerido um
conhecimento da estrutura interna do software. Geralmente esses testes so realizados por
desenvolvedores.
Outro nvel seria os testes de integrao onde so avaliadas as interaes entre partes do
software. So realizados no final de cada iterao e comprovam que duas ou mais funes,
componentes juntos funcionam corretamente. Esse teste requer um conhecimento da arquitetura
interna do software. Eles podem testar interfaces e dependncias entre componentes.
Os testes de sistema so executados no sistema como um todo e em um ambiente teste,
mas esse ambiente tem que ser muito parecido com o de produo. No necessrio
conhecimento da arquitetura interna do software. Os testes devem ser executados por uma equipe
de testes independente. Nesses testes tanto os requisitos funcionais quanto os no funcionais
podem ser testados.
ESCOLA POLITCNICA
DE PERNAMBUCO
29
Por fim temos os testes de aceitao ou homologao que so feitos pelos usurios finais.
Os testes so realizados no sistema como um todo. O usurio valida se o sistema est pronto e
pode ser usado por usurios finais, se as funes do sistema esto funcionando corretamente. A
usabilidade e a segurana do software tambm podem ser testadas.
3.6Formas de Testar
A forma de testar pode ser dividida de duas, Testes Manuais e Testes Automticos.
30
Para que os testes exploratrios sejam eficientes necessrio a utilizao de um pequeno
processo de teste especifico para testes exploratrios.
Estudar a documentao do sistema e problemas de sistemas similares ajuda na deteco
de falhas. Toda informao do sistema serve para ganho de conhecimento e de elaborao de caso
de teste, logo um treinamento ministrado pelo lder do projeto pode esclarecer possveis dvidas.
aconselhvel a execuo do fluxo bsico da funcionalidade e a interao entre os
requisitos.
3.7Conceito V de testes
comum pressupor que testes so realizados em todo o processo de desenvolvimento. O
ciclo de vida de testes e o de desenvolvimento so totalmente interdependentes, sendo que o ciclo
de testes dependente da concluso dos produtos das atividades do ciclo de desenvolvimento. A
aplicao destes ciclos de vida e das suas interdependncias, na ordem de execuo das suas
atividades, gerando os produtos previstos um pr-requisito para viabilizar o processo de
desenvolvimento de software.
A experincia tem demonstrado que no foram alcanados bons resultados quando os
testes so feitos pelas pessoas do prprio grupo de desenvolvimento de um projeto, uma vez que
ESCOLA POLITCNICA
DE PERNAMBUCO
31
muito difcil fazer estas pessoas atuarem ao mesmo tempo como desenvolvedores e testadores,
de forma independente isenta e adotando metodologias diferentes para cada funo. Foi
constatado que os desenvolvedores tendem a encobrir os seus prprios enganos de forma que a
eficcia dos testes vai depender da capacidade destas pessoas de atuar com estas duas
metodologias de forma isenta e independente.
O conceito de ciclo de vida de testes ilustrado na Figura 42.3. A figura mostra que os
processos de desenvolvimento e testes iniciam simultaneamente. A equipe que desenvolve o
sistema inicia o processo de desenvolvimento do sistema e a equipe que est conduzindo os testes
comea o planejamento do processo de testes. Ambas as equipes comeam no mesmo ponto usam
as mesmas informaes. A equipe de desenvolvimento tem a responsabilidade de capturar e
documentar os requisitos para os propsitos do desenvolvimento do sistema e a equipe de testes
usa os mesmo requisitos para os propsitos de testar o sistema. Em apropriados pontos do
processo de desenvolvimento, a equipe de testes utilizar as tcnicas de testes, como base para
avaliar os produtos do processo de desenvolvimento com o objetivo de descobrir defeitos.
No conceito V de testes, os procedimentos de fazer e chegar convergem do inicio at o
fim do projeto. O grupo que EXECUTA, trabalha com o objetivo de implementar o sistema e a
equipe que CHECA, simultaneamente, executa procedimentos de testes visando minimizar ou
eliminar riscos. Com esse enfoque, se os grupos trabalharem juntos e de forma integrada, o alto
nvel de riscos que caracteriza os projetos de desenvolvimento de software, ir decrescer a um
nvel aceitvel que permita a concluso do projeto com sucesso.
Verificao
Validao
Correes
Completadas
32
3.8Processo tradicional de teste
O processo de teste de software tradicional segue o conceito V mencionado na seo
anterior e apresentado de forma mais detalhada na Figura 52.4. A parte esquerda do V
representa o ciclo de desenvolvimento de software e a parte da direita, alguns dos passos do
processo de teste de software.
Os primeiros cinco passos usam a tcnica de verificao como o principal meio para
avaliar a correo dos produtos do desenvolvimento de software. Por outro lado. A tcnica de
validao usada para testar o software durante as atividades de construo a implantao. Os
resultados de ambos devem ser registrados na documentao dos testes. Validao e verificao
devem ser usados usadas para desenvolvimento e manuteno de software.
1) Acesso ao Plano de Desenvolvimento pr- requisito para a construo do Plano
de Testes. Durante esse passo, os testadores verificaro a completeza e correo do
plano de desenvolvimento. Baseado neste plano ser possvel estimar a quantidade
de recursos necessrios para testar a soluo a ser implementada.
2) Desenvolvimento do Plano de Testes A preparao do Plano de Testes segue os
mesmo padres da preparao do plano de desenvolvimento. A estrutura dos
planos a mesma, mas o contedo ir variar em funo do grau de risco associado
com o software que est sendo desenvolvido.
3) Inspeo ou Teste dos Requisitos do Software Avaliao dos requisitos do
software atravs da tcnica de verificao. Requisitos incompletos, inexatos ou
inconsistentes conduzem a insucesso da maioria do desenvolvimento de software.
4) Inspeo ou Teste do Desenho do Software Avaliao do desenho do software
(interno e externo) atravs da tcnica de verificao. Os testadores estaro
interessados em verificar se o desenho atinge os objetivos dos requisitos, bem
como se eficaz e eficiente para operar no hardware previsto.
5) Inspeo ou Teste da Construo do Software O mtodo para construir o
software a partir do desenho do sistema determinar o tipo e a extenso dos testes
que sero necessrios. Quanto mais a construo se tornar automatizada, menos
testes sero requeridos durante esta fase.
6) Execuo dos testes Envolve testar o cdigo em estado dinmico. A abordagem,
mtodos e ferramentas que foram especificadas no Plano de Testes sero usadas
ESCOLA POLITCNICA
DE PERNAMBUCO
33
pra validar o atendimento dos cdigos executveis aos requisitos do software as
suas especificaes do desenho.
7) Teste de Aceitao Avaliao da aplicabilidade e usabilidade do software pelo
usurio. Alm dos requisitos documentados, os usurios geralmente testam outras
funes no documentadas e as suas expectativas.
8) Informao dos Resultados dos Testes Informao sobre os testes um processo
contnuo. importante que os defeitos sejam informados aos setores envolvidos o
mais rpido possvel, de foram que as correes sejam feitas com o menor custo
possvel.
9) Teste da Instalao do Software Visam verificar a interoperabilidade com o
sistema operacional, com outros softwares relacionados e com os procedimentos
operacionais.
10) Teste das Mudanas no Software Embora as atividades sejam consideradas como
o passo 10, estas cobrem as mudanas durante o processo de implementao e
aquelas que iro ocorrer aps o software estar implantado.
11) Avaliao da Eficcia dos Testes As melhorias no processo de testes podem ser
melhor verificadas pela avaliao da eficcia dos testes ao trmino de um projeto.
ESCOLA POLITCNICA
DE PERNAMBUCO
34
PASSO 2
Desenvolvimento
do Plano de Testes
PASSO 3
CONSTRUO Testes dos
DO SOFTWARE Requerimentos do
Software
PASSO 4
Tete do Desenho do
Software
PASSO 5
INSTALAO DO Teste da Construo
SOFTWARE do Software
PASSO 6
Execuo e Registro
dos Testes
PASSO 7
Teste de Aceitao
OPERAO E
MANUTENO
DO SOFTWARE PASSO 8
Informao dos
Resultados dos Testes
PASSO 9
Instalao do
Software
PASSO 10
Teste das
MudnasMudanas
do Software
PASSO 11
Avaliao da
Eficcia dos Testes
35
3.9Vale a pena ao final de cada captulo colocar uma
seo de Resumo do Captulo onde voc vai
mencionar o principal objetivo do captulo
finalizado.Resumo do Captulo
Este captulo explanou o tema testes de software objetivando introduzir o leitor aos
principais conceitos de teste. Apresentamos alm dos conceitos, caractersticas, tipos e
estratgias, formas de teste e o conceito V de teste assim como a forma tradicional de testar.
ESCOLA POLITCNICA
DE PERNAMBUCO
36
Captulo
Metodologias de Desenvolvimento de
Software
A inspirao comum para a maioria das metodologias so as reas da Engenharia Civil e/ou
Mecnica. Tais reas enfatizam o planejamento antes da construo. Engenheiros destas reas
trabalharo em uma srie de desenhos que indicam precisamente o que precisa ser construdo e
como todas as coisas devem se encaixar. Muitas das decises so tomadas antes do incio da
execuo. Um exemplo prtico que a deciso da forma com que o peso ira ser distribudo ao
passar um veculo em alta velocidade em uma ponte feita medida que os desenhos so
produzidos.
Previsibilidade uma propriedade muito desejvel. Entretanto, quando acreditamos que
podemos ser previsveis quando na verdade no podemos, leva a situaes de perda de controle
nas situao onde o plano falha. Voc v a realidade lentamente distanciando-se do plano. Por
muito tempo, voc pode fingir que o plano ainda vlido. Mas em algum ponto, o distanciamento
fica muito grande e o plano simplesmente cai em pedaos.
ESCOLA POLITCNICA
DE PERNAMBUCO
37
Ento, como controlamos um mundo imprevisvel? O mais importante, e ainda mais
difcil, saber com preciso onde estamos. Precisamos de um mecanismo honesto de feedback
que possa dizer-nos com preciso qual a situao em intervalos freqentes.
A chave para este feedback o desenvolvimento iterativo. Esta no uma idia nova.
Desenvolvimento iterativo j existe por algum tempo sob vrios nomes diferentes: incremental,
evolucionrio, em estgios, espiral. A chave para o desenvolvimento iterativo freqentemente
produzir verses que funcionam do sistema final, que contm um subconjunto dos recursos
requeridos. Estas verses so bastante limitadas em funcionalidade, mas devem ser fiis s
demandas do sistema final. Elas devem ser totalmente integradas e cuidadosamente testadas
como se fossem a entrega final.
O ponto que no existe nada como um sistema testado e integrado para trazer uma dose
de realidade a qualquer projeto. Documentos podem esconder todo tipo de falhas. Cdigo-fonte
no-testado pode esconder muitas falhas. Mas quando as pessoas sentam em frente a um sistema
e trabalham com ele, as falhas se tornam verdadeiramente aparentes: tanto em termos de defeitos
como em termos de requisitos mal-interpretados.
Desenvolvimento iterativo faz sentido em processos previsveis tambm. Mas essencial
em processos flexveis, pois um processo flexvel precisa ser capaz de lidar com mudanas nas
funcionalidades requisitadas. Isso leva a um estilo de planejamento onde os planos de longo
prazo so bastante fluidos, e os nicos planos estveis so os de curto prazo, feitos para uma
nica iterao. O desenvolvimento iterativo lhe d uma fundao firme em cada iterao onde
voc pode basear seus planos futuros.
Uma pergunta comum o quo longa uma iterao deve ser e qual o tamanho ideal para
cada iterao. Pessoas diferentes daro respostas diferentes. eXtreme Programming (XP) sugere
interaes entre uma e trs semanas. SCRUM sugere a durao de um ms. Em Crystal, vai ser
maior. A tendncia, entretanto, fazer cada iterao o to curta quanto possvel. Isso prov
feedback mais freqente, para que voc possa saber com mais freqncia onde est.
38
importante: no apenas a adaptatividade requer uma equipe mais forte, mas tambm a maioria
dos bons desenvolvedores prefere um processo adaptativo.
Um dos objetivos das metodologias tradicionais desenvolver um processo onde as
pessoas envolvidas so partes substituveis. Com tais processos, voc pode tratar pessoas como
recursos que esto disponveis de vrias formas. Voc tem um analista, alguns programadores,
alguns especialistas em testes, um gerente. Os indivduos no so to importantes, somente suas
funes. Desta forma se voc planeja um projeto, no importa qual analista ou quais especialistas
em testes voc vai ter, apenas que voc saiba quantos deles voc ter, para saber o quanto o
nmero de recursos afetar seu planejamento.
Mais isso levanta uma questo-chave: as pessoas envolvidas em um desenvolvimento de
software so peas substituveis? Uma das principais caractersticas das metodologias geis que
elas rejeitam tal premissa.
39
Uma das tcnicas mais notveis, pelo menos inicialmente atraente para mim, a forte
nfase nos testes. Enquanto todos os processos mencionam a verificao atravs de testes, a
maioria a faz de forma pouco enftica. Entretanto, XP a coloca na base do desenvolvimento, com
cada programador escrevendo testes medida que escrevem cdigo de produo. Os testes so
integrados em um processo de integrao contnua e construo (build), o que leva a uma
plataforma altamente estvel para desenvolvimento futuro.
XP desenvolveu uma liderana muito ampla, alguns destes lderes provenientes do projeto
C3 original. Como resultado, existem muitas fontes para mais informaes. Kent Beck escreveu
Extreme Programming Explained, o manifesto-chave para XP, que explica todo o raciocnio por
trs da metodologia e contm explicaes suficientes para que as pessoas saibam se esto
interessadas em seguir adiante. Nos ltimos anos houve um crescimento epidmico de livros de
XP, vrios deles muito similares, no sentido que descrevem todo o processo do ponto de vista dos
vrios pioneiros na adoo do XP.
4.3Scrum
Scrum divide um projeto em iteraes (chamadas de sprints) de 30 dias. Antes de iniciar
um sprint, voc define a funcionalidade requerida para o sprint e ento deixa a cargo do time para
implementar tais funcionalidades. O ponto estabilizar os requisitos durante o sprint.
Entretanto, a administrao no perde o envolvimento durante o sprint. Todo dia, a equipe
tem uma pequena reunio (15 minutos), chamada de scrum, onde ela passa por tudo que vai fazer
no prximo dia. Em particular, eles fazem transparecer os impedimentos administrativos:
impedimentos que dificultam o avano, e que a gerncia precisa resolver. Eles tambm reportam
o que est sendo feito para que a gerncia tenha uma atualizao diria sobre em que ponto o
projeto se encontra.
A literatura sobre Scrum foca principalmente no planejamento iterativo e em processos de
acompanhamento. muito parecida com outras metodologias geis em diversos aspectos, e deve
funcionar bem com as prticas de programao do XP.
ESCOLA POLITCNICA
DE PERNAMBUCO
40
4.4O Manifesto para Desenvolvimento gil de
Software
Com tantas similaridades entre essas metodologias, houve um razovel interesse em
alguma forma de trabalho coletivo. Dessa forma, os representantes de cada uma dessas
metodologias foram convidados para um workshop de dois dias em Snowbird, Utah em fevereiro
de 2001.
O resultado o Manifesto para Desenvolvimento gil de Software, uma declarao de
valores comuns e princpios de processos geis. H tambm um desejo de colaborar ainda mais
no futuro, para encorajar no somente tecnlogos, mas tambm pessoas de negcios para usar e
requerer abordagens geis para o desenvolvimento de software.
O manifesto era apenas isso, uma publicao que agia como um ponto de partida para
aqueles que compartilhavam as mesmas idias bsicas. Um dos frutos deste esforo foi a criao
de uma entidade mais permanente, a Aliana gil. A Aliana gil uma organizao sem fins
lucrativos que procura promover o conhecimento e discusso sobre todas as metodologias geis.
Muitos dos lderes do movimento gil que mencionei, so tambm membros da Aliana gil.
41
iterao de um ms com todo o time, usando UML para esboar o trabalho a ser feito durante a
iterao. Isso no um plano de projeto que no pode ser desviado, mas sim um esboo que d
perspectiva s pessoas de como fazer as coisas durante a iterao.
Outra abordagem ao RUP gil o processo dX, de Robert Martin. O processo dX uma
instncia totalmente conforme com RUP, que simplesmente idntica ao XP (vire dX de ponta-
cabea para entender a brincadeira). dX foi projetada para pessoas que tem que usar RUP, mas
gostariam de estar usando XP. Como tal, tanto XP como RUP e, portanto, um bom exemplo de
um uso gil do RUP.
4.6Resumo do Captulo
Este captulo abordou o tema de metodologias de desenvolvimento de software. Uma
introduo geral apresentada e em seguida alguns metodologias e suas caractersticas.
Faa a mesma coisa aqui coloque uma seo de Resumo do Captulo.
ESCOLA POLITCNICA
DE PERNAMBUCO
42
Captulo
Acreditamos que um processo de teste bem definido e eficiente unido a uma equipe de
teste independente so fundamentais para garantir a qualidade do produto e encontrar os erros
antes que o software entre em produo. O objetivo de um processo de testes com metodologia
prpria minimizar os riscos causados por defeitos provenientes do processo de desenvolvimento
[1].
Infelizmente, muitas organizaes no possuem um processo de teste bem definido e
eficiente, sendo as atividades de teste informais, sem uma metodologia e responsabilidades
definidas. Na maior parte das vezes essas atividades so realizadas de maneira ad-hoc. Embora
saibamos da importncia da atividade de testes, muitas empresas do ramo optam por no realiz-
las pois observam a atividade como entediante e consumidora de tempo. Desta forma, somente
focam na atividade aps o incio da produo do software quando comeam a surgir os mais
variados erros.
importante salientar que uma metodologia gil prev teste em software, porm em um
nvel diferente do proposto neste trabalho. Metodologias geis, em sua maioria, executam testes
do tipo caixa branca com viso do cdigo fonte, como testes unitrios, que so executados pela
ESCOLA POLITCNICA
DE PERNAMBUCO
43
equipe de desenvolvimento e no por uma equipe independente de teste. A utilizao desta
tcnica diminui a quantidade de erros em software, mas no os elimina. A utilizao de Testes do
tipo caixa preta executados por uma equipe especializada na deteco de erros complementa as
tcnicas de deteco de erro da equipe de desenvolvimento.
Para auxiliar na modelagem do processo usamos o SPEM (Software Process Engineering
Metamodel).
44
nivelada em M1. O SPEM pode ser usado para definir todos os tipos de processos, incluindo os
que estejam focalizados no uso especfico da UML. Instncias para orientar subclasses para
descrever prticas com a UML podem ser criadas com ferramentas para um processo UML
especfico. A UML definida por um metamodelo, que definido como uma instncia do
metamodelo MOF. Um subconjunto da notao grfica da UML usado para descrever este
metamodelo. O metamodelo SPEM foi elaborado similarmente, e formalmente definido como
uma extenso de um subconjunto da UML chamado SPEM-Foundation.
45
O ProcessPerformer representa de forma abstrata o processo inteiro ou um de seus
componentes, e usado para WorkDefinitions prprias que no tm mais um proprietrio
especifico.
O ProcessPerformer tem uma subclasse, ProcessRole. Um ProcessRole define
responsabilidades sobre WorkProducts especficos, e sobre os papis que executam e auxiliam em
atividades especficas. Um ProcessPerformer o executor de WorkDefinitions agregadas de alto
nvel que no podem ser associadas com ProcessRoles individuais.
A cada WorkDefinition pode ser associada uma Precondition e uma Goal. As
Preconditions e Goals so Constraints, onde a Constraint expressa na forma de uma expresso
booleana seguindo sintaxe semelhante quela de uma condio de proteo na UML. A condio
expressa em termos dos estados dos WorkProducts que so os parmetros da WorkDefinition ou
de uma WorkDefinition inclusa.
Uma Activity a subclasse principal da WorkDefinition. Ela descreve uma parte do
trabalho executado por um ProcessRole: as tarefas, operaes, e aes que so executadas por um
papel ou com a qual o papel pode auxiliar. Uma atividade pode consistir de elementos atmicos
chamados Steps. Uma Activity podendo fazer uso dos ProcessRoles adicionais que so os
assistentes na Activity.
Alguns dos elementos do SPEM podem ser representados graficamente atravs de cones
outros existem como metainformao e no possuem representao grfica. Onde est a chamada
desta tabela no texto?
WorkDefinition
Guidance
Activity
ProcessRole
ProcessPackage
Process
ESCOLA POLITCNICA
DE PERNAMBUCO
46
Document
UMLModel
ESCOLA POLITCNICA
DE PERNAMBUCO
47
5.2Definio de PAT
O PAT um processo desenvolvido para suprir uma necessidade do mercado. Ao iniciar
uma equipe independente de teste a empresa observa poucas opes para ter retornos positivos
rpidos. Isto acontece pelo fato da equipe ter a necessidade de colher dados para a gerao de
informao provando assim a necessidade do seu trabalho.
Propomos neste trabalho uma equipe de teste independente e eficiente, onde os valores do
sucesso no esto apenas no processo, mas tambm se encontram nas pessoas. A homogeneizao
da informao uma premissa deste processo.
Teste em par ideal para deixar a equipe de teste mais homognea em se tratando do
conhecimento do sistema. Esse tipo de teste foi baseado em uma das prticas de XP, a
programao em par. Os testes em par consistem na execuo do teste por dois testadores que
utilizam o mesmo computador. Como em XP, os pares no so fixos e podem mudar ao longo do
dia, essas mudanas so importantes para a disseminao do conhecimento. Os testes em par
contribuem para um espao de aprendizado contnuo dentro da equipe. Os mais experientes ou
quem tem mais conhecimento sobre um assunto termina passando informaes valiosas para seus
pares. Essa prtica procura potencializar o que existe de melhor em cada um e eliminar as falhas.
A idia que enquanto um testador executa o teste o outro presta ateno, faz perguntas,
sugere idias, toma nota, etc. Essa prtica pressupe uma comunicao contnua entre os
testadores que forma o par. Atravs da conversa eles analisam cenrios, discutem as melhores
alternativas.
Esse tipo de prtica ajuda o testador a se manter focado no teste. No necessrio
interrupes para se tomar nota, tirar dvidas, consultar manual ou documentao, replicar o erro
em outra mquina. Essas atividades podem ser realizadas pelo outro testador. Ela tambm
melhora a reportagem dos erros, pois facilita a reproduo e tudo que reportado revisado por
outra pessoa. Como o conhecimento transmitido de uma forma prtica, esta prtica um bom
treinamento para novatos. necessrio observar que um esforo maior deve ser estimado nesta
prtica j que duas pessoas esto alocadas em uma atividade. Existe pelo menos um
conhecimento tcnico e um conhecimento sobre as informaes do projeto. Testes em par
permitem que algum que acabou de entrar na equipe conhea rapidamente o sistema, pois o
conhecimento transmitido pelo parceiro medida que a atividade executada.
ESCOLA POLITCNICA
DE PERNAMBUCO
48
O A prtica de teste em par pode ser desenvolvida tendo como participantes um testador e
uma pessoa com conhecimento profundo do sistema, o lder do projeto por exemplo. Duas
pessoas com focos to diferentes tendem a somar qualidades no final do processo. Enquanto o
foco de um est em mostrar como a funcionalidade deve se comportar a do outro busca falhas e
caminhos alternativos. Esta prtica ajuda tanto no processo de teste como no processo de
desenvolvimento. Testadores absorvem a forma de pensar dos desenvolvedores e os
desenvolvedores absorvem a forma de pensar dos testadores, ocorrendo assim maior cuidado no
desenvolvimento das funcionalidades tendo o objetivo no apenas nos fluxos principais, mas
tambm nos fluxos alternativos e de exceo que podem levar a erros no sistema.
Outra forma de facilitar a execuo dos testes e de certa forma padronizar os testes que
so executados por diversos testadores a adoo de uma planilha de testes genricos. Nessa
planilha existir a maior parte dos cenrios de testes que podem ser executados por uma
determinada funcionalidade, campo para indicar se o cenrio passou ou falhou campos para os
registros abertos. Tambm importante ter informaes do sistema como: verso, funcionalidade,
executor, data de execuo, tempo total gasto, registros aberto s. Alm dos nmeros de registros
passados, falhos e bloqueados. Guardar essas informaes torna-se importante na execuo de
reteste, na gerao de relatrios e na deteco da localizao de falhas na execuo dos testes.
Documentar o erro encontrado e essencial para ajudar em regresses futuras e para
garantir que o erro no ocorre mais nas prximas verses.
5.3Composio
Em toda equipe organizada, existe uma diviso de tarefas entre os membros. Um papel
constitui um conjunto de responsabilidades que determina qual ser o comportamento de uma
pessoa em algum momento do processo. No PAT, recomenda-se a presena de sete papis:
Gerente de Teste, Lder de Teste, Gerente de Projeto, Lder de Projeto, Projetista de Teste,
Executor de Teste e Desenvolvedor.
A alocao dos papis deve ser feita de acordo com as necessidades e escopo do projeto,
levando-se em conta as habilidades e caractersticas de personalidade das pessoas envolvidas no
processo. A equipe de teste deve ser estruturada de forma a se obter a maior produtividade
possvel.
ESCOLA POLITCNICA
DE PERNAMBUCO
49
essencial que todos os papis estejam presentes na equipe, pois caso contrrio pode
ocorrer que algumas etapas importantes do processo sejam esquecidas ou no recebam a ateno
necessria.
Um papel no corresponde necessariamente a uma pessoa da equipe, ou seja, uma mesma
pessoa pode desempenhar vrios papis simultaneamente. A palavra mais importante da sigla PAT
talvez seja a palavra gil. Um indivduo que exerce o papel de projetista em um determinado
projeto, pode ser executor e lder em outro. Vrias combinaes so possveis. Tendo apenas o
cuidado de no haver sobrecarga de responsabilidades de algum membro da equipe.
5.3.1 Papis
50
Monitorar e ajudar na montagem do ambiente disponvel para teste o lder deve
ter o conhecimento necessrio para ajudar a equipe de infra a preparar o ambiente,
quando necessrio ou montar de fato o ambiente para teste quando no existe a
necessidade da equipe de infra.
Manter o lder de teste informado do andamento da execuo muito importante
o lder de teste estar devidamente informado do andamento do desenvolvimento de
de possveis desvios.
Lder de Teste o responsvel pela interface da equipe de teste com a equipe de
desenvolvimento. Muitas vezes, na execuo de teste do sistema, surgem dvidas e a pessoa
responsvel por eliminar as dvidas dos desenvolvedores o lder de teste. As principais
responsabilidades do lder de teste so:
Ajudar a elaborar o plano de teste ajuda o gerente de teste a elaborar o plano de
teste. Sendo o especialista no sistema na equipe de teste. O lder de teste deve
responder as dvidas da equipe de teste sobre o sistema, no sabendo responde-la
ele ser o encarregado de procurar as respostas com a equipe de desenvolvimento.
Manter equipe informada sobre desenvolvimento alteraes no cronograma e
possveis atrasos no ambiente para teste deve ser reportado a equipe.
Elaborar a estratgia de teste o lder o responsvel pela estratgia de teste. Ele
aloca e coordena os recursos para desenpenhardesempenhar determinado papel.
Contactar equipe de desenvolvimento quando necessrio quando um testador ou
projetista necessita de ajuda na execuo de sua tarefa seja por falta de informao
ou por problemas no ambiente, o lder o encarregado de analisar e procurar
solues para aquele problema.
Ajudar na gerao de relatrios o lder tem a responsabilidade de coletar dados
para o gerente quando solicitado.
Gerente de Teste o papel do gerente de teste gerenciar as sutes de teste a ser
realizado no produto. As principais responsabilidades do gerente de teste so:
Elaborar plano de teste o gerente o principal responsvel pela elaborao do
plano de teste. De posse deste artefato o lder de teste prepara a estratgia de teste
para sua equipe.
ESCOLA POLITCNICA
DE PERNAMBUCO
51
Monitorar a equipe de teste O gerente tem o papel de monitorar o andamento das
execues, no deixando margens para que nenhum recurso fiar ocioso nem
sobrecarregado.
Coletar e analisar mtricas As mtricas so informaes que permitem a anlise
do andamento do projeto pelo gerente. O gerente deve coletar mtricas
periodicamente junto ao lder e utiliz-las para melhorar o processo.
Presidir as reunies de acompanhamento dos projetos O gerente deve realizar
semanalmente reunies de acompanhamento com a equipe, onde deve garantir que
a equipe seja tenha um conhecimento macro mnimo de todos os projetos, para que
o custo de uma mudana de papeis e projetos no seja alto.
Desenvolvedor o papel do desenvolvedor consiste em criar scripts de testes para os
casos de teste verificando a existncia de falhas em seu cdigo e na sua correo. As principais
responsabilidades do desenvolvedor so:
Auxiliar o lder de teste na elaborao da estratgia de teste O desenvolvedor
deve participar da elaborao da estratgia de teste para identificar possveis
dificuldades na automao de algum requisito do ciclo.
Analisar e modelar o caso de teste - O desenvolvedor deve analisar o caso de
teste a ser implementado e model-lo da melhor forma possvel. Modularizando
comportamentos distintos e evitando retrabalhos.
Manter a integrao contnua de cdigo Em projetos onde h mais de um
desenvolvedor necessrio que o cdigo gerado por cada um seja integrado com o
cdigo produzido pelos demais, para identificar eventuais conflitos. Esta
integrao deve ocorrer de forma contnua para evitar a perpetuao de conflitos
entre partes do software at etapas posteriores, onde estes conflitos sero mais
difceis de serem resolvidos.
Projetista de teste o papel do projetista de analisar a documentao e construir o
projeto de teste. Artefato necessrio para a execuo dos testes. No projeto de teste esto contidos
os casos de testes que cobrem as funcionalidades testadas. As principais responsabilidades do
projetista de teste so:
Elaborar o projeto de teste O projetista deve elaborar o projeto de teste para ser
vivel a execuo de testes no sistema.
ESCOLA POLITCNICA
DE PERNAMBUCO
52
Correo do projeto de teste- Havendo alterao nos artefatos usados para a
elaborao do projeto de teste, o lder de teste deve avisar ao projetista para
efetuar as devidas correes, mantendo assim a integridade dos projetos de teste.
Executor de testes este papel deve ser considerado um dos mais importantes em uma
equipe de teste. Nele est empregado a responsabilidade de validar fluxos e regras de negcio. O
executor de testes o responsvel por executar os casos de testes criados pelo projetista de teste.
Tem o dever de registrar o status do testes e efetuar os retestes quando solicitado.
Executar o projeto de teste com o artefato de projeto de teste em mos o
executor deve efetuar seus testes com o olhar critico. Havendo qualquer quaisquer
duvidas dvidas sobre a elaborao do projeto de teste e do comportamento do
sistema deve ser reportado.
Manter lder do projeto informado do andamento do projeto O executor deve
manter o lder informado do status da execuo, caso o sistema esteja bastante
instvel os testes devem ser interrompidos e o lder do projeto deve ficar
encarregado de informar equipe de desenvolvimento e monitorar a resoluo dos
resultados.
5.3.2 Estrutura
O tamanho de uma iterao em processo gil motivo de discusso e divergncias.
Acreditamos que para o processo gil de teste ser positivo deva ser planejada a iterao de acordo
com a equipe de desenvolvimento. Caso o projeto tenha uma equipe de desenvolvimento madura,
com planejamento de curto, mdio e longo prazo, as iteraes devem ser planejadas em duas ou
trs semanas. Caso o projeto tenha uma equipe de desenvolvimento gil ou que necessite alterar o
cronograma constantemente o planejamento deve ser feito com iteraes de uma semana. Vale
salientar que a equipe de teste presta servios a vrios projetos e a alocao de recursos depende
da demanda de todo. Iteraes longas so inviveis a uma equipe de teste que deseja agradar seus
clientes. A equipe de teste trabalha sobre demanda, todos os projetos devem ter ateno especial,
sempre que requisitado.
No macro-fluxo esto representados os processos do PAT Processo gil de Teste:
Planejamento, Projeto de Teste, Preparao, Execuo De Teste, Finalizao e Acompanhamento
e Controle. Como descrito na Figura 6.
ESCOLA POLITCNICA
DE PERNAMBUCO
53
54
5.3.3 Planejamento
Observa-se que o objetivo principal desta fase o desenvolvimento do plano de projeto
de teste. O gerente de teste o princialprincipal responsvel pela elaborao deste artefato. Vrios
fatores podem influenciar na elaborao do plano de projeto de teste, a importncia dos
requisitos, a proximidade de uma entrega, a influncia de outros projetos na equipe so exemplos
de fatores que podem influenciar na deciso do gerente.
A Figura 7 esquematiza o fluxo da fase de planejamento, seu principal responsvel e
alguns dos artefatos que podem influenciar na construo do plano de projeto de teste.
55
Na atividade de classificar requisitos por complexidade e importncia interessante
salientar que dependendo do resultado desta classificao, da anlise dos artefatos fornecidos para
o requisito e da demanda que teste tem o Gerente de Teste junto com o Lder de Teste avaliam a
necessidade de criar casos de teste especficos para o requisito ou se vai usar casos de teste
genricos.
Para executar testes exploratrios o testador deve se basear em algum template, evitando
que esquea de testar alguma fluxo do sistema para isso uma boa prtica usar uma planilha de
testes genrica que contem alguns fluxos que podem ser apresentados durante o sistema. de
primordial importncia documentar os resultados dos testes tendo assim um caminho para a
execuo de retestes e de relatrios quando for solicitado. A Figura 8 apresenta um modelo de
como pode ser representada a planilha de testes genricas usada para guiar os testes exploratrios.
ESCOLA POLITCNICA
DE PERNAMBUCO
56
57
casos de teste deve ser considerado um custo ligeiramente mais alto na preparao do projeto de
teste, porm ter um resultado mais expressivo na execuo dos testes.
A ltima atividade do projeto de teste a identificao dos cenrios de testes. Esta
atividade se faz necessria para a criao de ciclos de teste e de regresso. Na fase de execuo o
lider de teste deve solicitar testes de tudo que foi projetado porm, havendo uma urgncia na
entrega dos resultados o ciclo pode ser populado contendo apenas os cenrios de negcio, cenrio
este que contm os casos de teste com os principais fluxos e regras de negcio da funcionalidade,
por exemplo.
A Figura 9 representa a fase de Projeto de Teste.
5.3.5 Preparao
Esta fase consiste nas atividades de criao de sutes de teste e na criao de ciclos de
teste. O lder de teste o responsvel por esta fase, ele pode agrupar os cenrios e criar sutes de
teste que podem ser executadas ou no pelos testadores. Os ciclos de teste so as sutes
preparadas para a execuo. Esta distino entre sute e ciclos de teste fez-se necessria para o
melhor aproveitamento e organizao dos ciclos de execuo.
A Figura 10 representa esta fase.
ESCOLA POLITCNICA
DE PERNAMBUCO
58
59
5.3.7 Automao
Nesta fase apresentada apresentado o papel do desenvolvedor. Este desenvolvedor no
deve ser confudidoconfundido com o desenvolvedor da equipe de desenvolvimento, ele
responsvel pela criao de scripts de teste para execuo de testes automticos. Apesar de ser
interessante, o desenvolvedor no necessariamente entende da arquitetura do sistema a ser
automatizado.
O gerente de teste executa nova avaliao com base no cronograma de teste e na planilha
de execuo. Caso a equipe esteja atrasada ou os testes iniciais obtiveram muitas falhas, o gerente
pode abolir a criao de scripts de teste para dado requisito.
O principal papel desta fase o desenvolvedor que vai traduzir os casos de teste em
scripts de automao.
A Figura 12 representa a fase.
5.3.8 Finalizao
Fase consiste na atividade de levantar lies aprendidas objetivando a melhoria contnua
do processo. Figura 13 exemplifica a fase.
ESCOLA POLITCNICA
DE PERNAMBUCO
60
61
5.4Vantagens e Desvantagens
O PAT no tem obrigatoriedade de documentos formais, apenas de documentao mnima
para gerar relatrios, estimar esforo e para execuo de retestes. Exemplificando o que foi dito
o fato que pode ser considerado como plano de projeto de teste a ata de reunio onde foi
estabelecido todo o escopo da equipe de teste. E-mails, e papis assinados pelos colaboradores
podem ser usados como artefato de entrada para uma atividade. Esta agilidade torna o processo
menos burocrtico, trazendo um retorno significativo mais rapidamente. No existe uma
documentao padro para a maioria dos artefatos do processo.
O PAT utiliza a flexibilidade das metodologias geis, bem como o processo iterativo e
fortemente baseado no feedback, se adaptando e moldando a cada iterao. Ele tambm d
prioridade a pessoas e no ao processo visto que um de seus focos so os testes exploratrios e
para serem bem executados necessitam de pessoas bem treinadas.
ESCOLA POLITCNICA
DE PERNAMBUCO
62
5.5Resumo do Captulo
Este captulo props e detalhou cada fase de um processo de teste que utiliza testes
exploratrios e tem caractersticas geis. Apresentou um guia de cenrios de testes de sistema que
pode ser utilizado para vrias funcionalidades de vrios projetos. E com base nesse guia montou
uma planilha de execuo que contm informaes relevantes para analisar a situao e
acompanhar a evoluo de um sistema. Alm de fornecer dados para estimativas de esforo. Foi
explanado neste capitulo um metamodelo para descrio de processo de software, o SPEM, que
foi utilizado para descrever o processo proposto bem como suas fases e atividades.
ESCOLA POLITCNICA
DE PERNAMBUCO
63
Captulo
64
pode ser usado em vrios projetos. Uma planilha de execuo que instancia o guia de cenrios de
testes foi concebida. A planilha fornece informaes bsicas para a medio e anlise dos testes.
O processo abordado pode ser adaptado e moldado para ser empregado em qualquer
organizao. Ele torna a atividade de teste menos informais. Garante que testes mnimos so
realizados e preserva as vantagens da utilizao da tcnica que so: resultados rpidos,
necessidade de pouco tempo e pouco recurso. Quando necessrio, ele tambm trabalha de forma
a encontrar o maior nmero de erros possvel, mesmo que isto signifique aumento no esforo.
6.1Trabalhos Relacionados
Um processo de Teste semelhante ao exposto neste trabalho foi aplicada aplicado em uma
empresa no inicio incio do ano de 2008. Nesta seo sero descritos o ambiente do estudo de
caso, o processo, anlise de resultados, benefcios para a organizao e a anlise crtica do
processo pelos usurios.
6.1.1 Ambiente
A organizao onde o processo foi aplicado uma empresa nacional de Tecnologia da
Informao. Os processos possuem certificado ISO 9001:2000 e o processo de desenvolvimento
tambm compatvel com o CMMI Nvel 2.
O processo de teste ocorre em paralelo ao processo de desenvolvimento e um processo
maduro e independente.
65
Com base nas estrias de uso deu-se incio ao desenvolvimento do software e ao incio
das atividades com a elaborao do projeto de teste com casos de testes genricos, baseando-se
no foco da estria.
Os primeiros requisitos foram simples, o fato de existirem apenas para dar suporte aos
requisitos principais do sistema logo, no foi necessrio detalhar seu funcionamento e estrias
foram suficientes para descrever sua importncia. Logo, foi usado usada a planilha de testes
genricos para a execuo de teste nesses requisitos.
A equipe de teste encontrou nesta fase inicial 166 registros de defeitos sendo 70 de
negocio apenas executando testes exploratrios, porm consultando a equipe de anlise e os
principais fluxos com base na planilha de testes genricos.
A fase 2 tiveram menos requisitos, mas com maior importncia para o sistema. Alguns
requisitos foram homologados atravs de documentos de caso de uso, que possui um
detalhamento maior da funcionalidade se comparado as estrias. A equipe de teste no projetou
casos de teste especficos para os requisitos, houve um atraso na entrega e foi solicitado que a
equipe a execuo de caso de teste genrico. O resultado dos testes foram satisfatrios, mesmo
no projetando caso de teste especfico foram encontrados 156 registros de defeitos sendo 79
registros de negcio, nmeros significativos para os principais requisitos do sistema.
O cliente encontrou 12 erros no sistema. Destes 6 foram erros encontrados por teste que
foi implementado e testado por teste mas que por um erro no processo de desenvolvimento
escapou para o cliente e 6 foram erros que a equipe de teste no encontrou. Este nmero foi
aceitvel pela baixa gravidade dos erros e por ter sido em fluxos de difcil previso.
Para este projeto no foi utilizado automao.
66
6.2Trabalhos Futuros
Ao elaborar este trabalho surgiu a necessidade de se utilizar uma ferramenta especfica
para armazenamento, controle e gerenciamento de caso de teste, com escopo em gerao de
relatrio e em automao. Isto aumentaria a velocidade com que os testes so executados e a
coleta de mtricas de teste.
Deve ser adicionado ao escopo do processo de teste proposto neste trabalho, testes de
suporte, carga, volume, estresse, configurao, instalao e integridade. Alm desses
imprescindvel que verses futuras aumentem o escopo dos testes de segurana.
Fornecer templates para todos os artefatos do processo. Por se tratar de um processo gil,
tais artefatos no necessitam seguir fielmente o template, porm tal padronizao torna o processo
mais robusto e mais organizados.
6.3Dificuldades Encontradas
As maiores dificuldades foram na utilizao do processo descrito na seo acima,
trabalhos relacionados, na empresa. Por a empresa possuir um processo de teste maduro, houve a
resistncia em se tentar algo com caractersticas geis.
Na elaborao do processo, a principio, no tnhamos conhecimento em como modelar e
apresentar esta modelagem. Depois de um estudo foi proposto o SPEM que foi aceito pelo
orientador. A ferramenta a qual foi criado o processo, Microsoft Office Visio tambm foi um
desafio para seu entendimento. Tivemos que pensar em uma forma de documentar os testes
exploratrios, pois no inicio incio os testes exploratrios criavam registros de defeitos, mas no
se tinha registros de quais funcionalidades o testador passou, com isso foi idealizado um checklist
para guiar os testes exploratrios.
6.4Contribuio
Criou-se uma modelagem de um processo de teste com o auxlio do SPEM para descrever
as fases e as atividades, sua interao com os colaboradores e os artefatos de entrada e gerados.
O trabalho trouxe uma boa viso sobre testes de software.
Um guia de cenrios de testes que abrange testes de campo, negcio, usabilidade,
segurana foi construdo.
ESCOLA POLITCNICA
DE PERNAMBUCO
67
Conceito de teste em par com sua particularidade no processo foi apresentado.
Apresentao de um processo que pode ser instanciado em uma empresa.
6.5Resumo do Captulo
Este captulo relata a o resultado de um processo com caractersticas geis em uma
empresa. Foi descrito o ambiente, o processo, anlise dos resultados, benefcios para a
organizao e a anlise crtica do processo pelos usurios.
.
ESCOLA POLITCNICA
DE PERNAMBUCO
68
Bibliografia
[1] POL M., et al. Software Testing - A Guide to the TMap, ed. Approach - Addison-Wesley,
2006. 592p
[2] JONES, T.Capers. Patterns of Software System Failure and Success,,ed. Intl Thomson
Computer Pr, 1995. 292p.
[3] RIOS, Emerson; MOREIRA, Trayah, Teste De Software, 2 ed. Alta Books, 2006. 768p
[4] SCHWABER, Ken; Agile Project Management with Scrum, ed. Microsoft Press, 2004. 163p
[5] ARAUJO, Rodrigo. Construo Grfica de Processos de Desenvolvimento e Gerao de uma
Ontologia de Processo de Software. 2005. 73f. Trabalho de Concluso de Curso
(Graduao) Curso de Cincia da Computao, Centro de Informtica UFPE, Recife,
2005. Disponvel em: < http://www.cin.ufpe.br/~tg/2005-1/rma.pdf>. Acesso em: mar.
2008.
[6] OMG - Software Process Engineering Metamodel Specification verso 1.1, Disponvel em:
http://www.omg.org/technology/documents/formal/spem.htm Acesso em: Maro de 2008
OMG - Software Process Engineering Metamodel Specification verso 1.1, Disponvel
em: http://www.omg.org/technology/documents/formal/spem.htm Acesso em: Maro de
2008
[7] Java Magazine edio 33, Desenvolvimento gil Um Guia sobre os Processos geis de
Desenvolvimento
[8] Pressman, R. Engenharia de Software McGraw-Hill, (2001)
[9] FILHO, Manoel. Um estudo comparativo entre SPEM e BPMN como padres para
modelagem de Processos de Software. 2007. 91f. Trabalho de Concluso de Curso
(Graduao) Curso de Cincia da Computao, Centro de Informtica UFPE, Recife,
2007. Disponvel em: < http://www.cin.ufpe.br/~tg/2007-1/mgcasf.pdf>. Acesso em: mar.
2008
ESCOLA POLITCNICA
DE PERNAMBUCO
69
[10] GENVIGIR, C. E., SANTANNA, N., FILHO, B.F.L. Modelagem de Processos de
Software Atravs do SPEM - Software Process Engineering Metamodel - Conceitos e
Aplicao. In: III WORCAP 2003
[11] GENVIGIR, C. E., SANTANNA, N., FILHO, B.F.L. Modelagem de Processos de
Software Atravs do SPEM - Software Process Engineering Metamodel -Conceitos e
Aplicao.
[12] JACINTO, Shirley. Modelagem dos processos de Gerenciamento de Tempo do PMBok
utilizando SPEM e BPMN. 2007. 93f. Trabalho de Concluso de Curso (Graduao)
Curso de Cincia da Computao, Centro de Informtica UFPE, Recife, 2007. Disponvel
em: < http://www.cin.ufpe.br/~tg/2007-2/ssj.doc>. Acesso em: mar. 2008
[13] MARAL, Ana; FREITAS, Bruno. Estendendo o SCRUM segundo as reas de Processo
de Gerenciamento de Projetos do CMMI, Publicado em: CLEI 2007: XXXIII Conferencia
Latinoamericana de Informtica, San Jose, Costa Rica
[14] MENDES, Rodrigo. MODELAGEM ODELAGEM E AVALIAO DO CMMI NO
SPEM PARA DEFINIO DE UM META-PROCESSO DE SOFTWARE. 2004. 83f.
Trabalho de Concluso de Curso (Graduao) Curso de Cincia da Computao, Centro
de Informtica UFPE, Recife, 2004. Disponvel em: < http://www.cin.ufpe.br/~tg/2004-
2/rcm2.pdf>. Acesso em: mar. 2008.
[15] TELES, Vinicius, Extreme Programming, ed. Novatec, 2004. 320p
[16] Mantis BugTracking System, Disponvel em: http://www.mantisbt.org/ Acesso em: julho
de 2008