Professional Documents
Culture Documents
rodrigo.devmedia@gmail.com
Doutor e Mestre em Engenharia de Software pela COPPE/UFRJ. Realizou seu Ps-Doutorado na
University of Maryland Baltimore County e Centro Fraunhofer nos Estados Unidos. Atualmente
Professor Titular do Programa de Ps-Graduao em Sistemas e Computao da Universidade
Salvador - UNIFACS.
67 Edio - 2014
Corpo Editorial
Editor
Rodrigo Oliveira Spnola
Colaboradores
Marco Antnio Pereira Arajo
Eduardo Oliveira Spnola
Nicolli Souza Rios
Colaborador das revistas Engenharia de Software Magazine, Java Magazine e SQL Magazine.
bacharel em Cincia da Computao pela Universidade Salvador (UNIFACS).
Consultor Tcnico
Daniella Costa
Jornalista Responsvel
Kaline Dolabella - JP24185
Na Web
http://www.devmedia.com.br/revista-engenharia-de-software-magazine
Atendimento ao Leitor
A DevMedia conta com um departamento exclusivo para o atendimento ao leitor.
Se voc tiver algum problema no recebimento do seu exemplar ou precisar de algum
esclarecimento sobre assinaturas, exemplares anteriores, endereo de bancas de
jornal, entre outros, entre em contato com:
www.devmedia.com.br/central
(21) 3382-5038
Publicidade
Para informaes sobre veiculao de anncio na revista ou no site entre em
contato com:
publicidade@devmedia.com.br
Sumrio
38 Mtricas de Software
D
s
Feedback
eu
edio
ta
sobre e
s
www.devmedia.com.br/esmag/feedback
Planejamento e Gerncia
Nesta seo voc encontra artigos voltados para o planejamento
e gerncia de seus projetos de software.
Ronlio Oliveira
ronelio.oliveira@gmail.com
planejamento
O que ?
Plataformas
Banco de dados
Forma de desenvolvimento
Recursos Extras
Webrun
O Webrun o framework responsvel por obter todos os
objetos desenvolvidos no Maker e compil-los para exibir
ao usurio final ou ao desenvolvedor durante o processo de
desenvolvimento.
Como todos objetos desenvolvidos, sejam eles fluxos (regras
de negcio), formulrios ou relatrios, so armazenados no
banco de dados, estes precisam ser extrados, direcionados
(camada cliente/servidor) e compilados para uso posterior. Este
processo pode ser facilmente entendido conforme Figura 1.
O papel do Webrun est alm de compilar os objetos desenvolvidos para entregar ao usurio final. Todo o controle de persistncia de dados, gerenciamento de perfis de acesso, controle
de segurana de acesso aplicao e ainda prover Webservices
para consumo, so funcionalidades, tambm, do Webrun.
Para resumir o importante papel do Webrun, podemos compar-lo a uma JVM. Os formulrios e fluxos seriam os bytecodes e o Webrun seria a JVM responsvel por interpret-los.
API de Funes
Hoje o Maker possui aproximadamente 747 funes disponveis para o desenvolvedor. Dentre estas, temos funes disponveis para acesso a dados, chamada de DLLs, comunicao
com applets e consumo de Webservices.
Todas as funes so agrupadas por categoria para facilitar a
localizao das mesmas. Por exemplo, a categoria Banco de dados possui todas as funes relacionadas a operaes de banco
de dados como abrir consulta e executar atualizao. O nome
das funes intuitivo, por exemplo: Alterar valor do componente,
obter valor do componente, Abrir formulrio entre outras.
Alm das funes disponveis, o desenvolvedor poder
estender a API. Geralmente, o desenvolvedor estende a API
para atender algum projeto especfico visto que a API atual
atende a aproximadamente 95% dos projetos desenvolvidos.
Para estender a API o desenvolvedor dever ter conhecimento
de JavaScript para funes na camada cliente ou Java para
funes na camada servidor.
planejamento
10
planejamento
11
Conhecemos nesse artigo a praticidade e ganho em produtividade proporcionado pelo Maker. possvel observar tambm
a abstrao de muitas etapas durante o desenvolvimento, visto
que a ideia do Maker manter o desenvolvedor focado nas
regras de negcio de sua aplicao trazendo ganhos reais no
prazo e facilitando a manuteno do projeto futuramente.
Links:
HotSite do Maker 3
http://maker3.softwell.com.br/
Figura 12. Fluxo com nota 0 devido falta de descrio em um dos objetos
12
Frum
http://forum.softwell.com.br
Mais informaes sobre o editor de fluxos
http://suporte.softwell.com.br/maker/manual2_7/pt/maker_2/fluxos_e_acoes/editor_de_
fluxo_de_acoes.htm
planejamento
13
Planejamento e Gerncia
Nesta seo voc encontra artigos voltados para o planejamento
e gerncia de seus projetos de software.
Wilson Vendramel
wilson.vendramel@fatec.sp.gov.br
14
planejamento
Nvel Inicial
No nvel inicial de Maturidade, os processos so caticos e
no h um gerenciamento eficaz do projeto. H problemas com
o cronograma e custo, alm da falta de padres no cumprimento de requisitos, e a organizao dependem frequentemente de
CM
15
Nvel Definido
No nvel definido, os processos so bem caracterizados e
compreendidos. Isso se deve ao fato de existir uma preocupao maior com a padronizao do processo em toda a organizao, e a customizao deste para cada projeto. A existncia
de um processo definido possibilita maior consistncia nos
produtos desenvolvidos pela organizao. Processos padronizados geram produtos facilmente identificados, alm de
apresentarem caractersticas em comum de um produto para
outro e contriburem significativamente para a melhoria da
produtividade e qualidade.
A organizao nesse nvel tambm capaz de gerar uma
infraestrutura de processos que permite a adaptao a diversos
tipos de mudanas. Observe na Tabela 2 as reas de processo
desse nvel.
Sigla
Descrio
OPP
QPM
Nvel em Otimizao
Nesse nvel, a organizao est empenhada na melhoria contnua dos processos, planejando e gerenciando suas mudanas
de forma a no causar impacto na qualidade do produto final. A
melhoria nesse caso parte essencial dos procedimentos adotados
na organizao, e as inovaes esto previstas juntamente com a
implantao de novas tecnologias. Os efeitos dessa implantao
so medidos e avaliaes constantes so realizadas.
O planejamento das melhorias essencial para que a organizao mantenha o nvel otimizado do CMMI, e as tarefas
associadas a essas melhorias sejam desempenhadas por todos
os envolvidos no projeto, e no apenas pelos profissionais de
alto nvel hierrquico. Observe na Tabela 4 as reas de processo desse nvel.
Sigla
Descrio
RD
TS
PI
VER
Verification (Verificao)
VAL
Validation (Validao)
OID
OPF
CAR
OPD
OT
IPM
Representao Contnua
RM
DAR
A representao contnua composta por seis nveis de capacitao, onde as reas de processo so reunidas em grupos
anlogos. Por exemplo, somente pertencero ao grupo de gerncia de projeto as reas de processo que tratam de projeto, da
mesma forma ocorre com gerncia de processos, engenharia e
suporte. Observe na Tabela 5 como esto organizadas as reas
de processo nesta representao.
O grupo de gerncia de processos contm atividades para
definir, planejar, implantar, implementar, monitorar, controlar,
avaliar, medir e melhorar os processos da organizao. As
PA referentes gerncia de projeto suportam as atividades
de planejamento, monitorao e controle do projeto. O grupo
de engenharia trata de atividades pertinentes a engenharias
como a de sistema e a de software. O suporte contm reas de
processo para assistncia ao desenvolvimento e manuteno
de produtos.
Assim como na representao por estgio, a representao
contnua classificada em nveis, totalizando seis nesse caso.
A principal diferena entre as duas que a ltima baseia-se
na capacidade dos processos, enquanto a representao por
estgio mede a maturidade da organizao como um todo.
16
Sigla
Descrio
Nvel Incompleto
Este o nvel zero, momento em que a empresa no utiliza qualquer processo de melhoria. comum empresas que
iniciam as suas atividades pertencerem a esse nvel, at o
momento em que utilizam as recomendaes do CMMI.
planejamento
Gerncia
De
Processos
Gerncia
De
Projeto
Engenharia
Suporte
Nvel Realizado
A organizao que pertence a esse nvel no tem apenas uma
rea de processo atendida, mas tambm todos os objetivos
especficos dessa rea satisfeitos. A realizao de todas as
atividades pertinentes a essa rea pode ser comprovada pelo
correto funcionamento do processo, questionando se ele efetua
a entrada, o processamento e a sada (por sada entende-se
a concluso do produto ou servio pretendido) conforme as
recomendaes do CMMI.
Nvel Gerenciado
Nesse nvel, alm do correto funcionamento de uma rea
de processo, verificado se essa rea planejada e executada
atravs de polticas determinadas. Os profissionais envolvidos
so habilitados e a organizao possui os recursos necessrios
para monitorar, controlar e revisar a rea de processo e seu
produto gerado. Alm disso, aes corretivas so tomadas,
requisitos e objetivos so estabelecidos, e os produtos so
revisados contra os requisitos descritos.
Nvel Definido
O processo, para pertencer ao nvel definido, deve atender s
recomendaes do nvel realizado e gerenciado. Os padres
passam a vigorar com maior frequncia nesse nvel, fazendo
parte da rotina da organizao. No nvel definido, os processos
so determinados de maneira mais rigorosa do que no nvel
gerenciado, pois neste ainda pode haver distino em processos utilizados entre dois ou mais projetos desenvolvidos.
Os processos tratam da entrada, processamento e sada; entretanto, no processamento deve haver as medidas e verificaes
recomendadas para a sua execuo.
Nvel Otimizado
O nvel otimizado engloba as reas de processo que alcanaram o nvel quatro e os anteriores da representao contnua.
Assim como no nvel cinco da representao por estgio, essa
representao pressupe que o nvel otimizado cumpre todos
os requisitos de qualidade conforme o CMMI.
O processo otimizado deve cumprir com os objetivos de
negcio da organizao e atender s inovaes tecnolgicas
que influenciam na qualidade da rea de processo, causam
impacto e geram custos para a organizao. Embora o nvel
gerenciado quantitativamente seja previsvel, as suas variaes de desempenho podem gerar falhas durante o processo,
e a funo do nvel otimizado implementar mudanas que
estabilizem essas variaes.
17
rea de Processo
Planejamento do Projeto
Monitoramento e Controle do Projeto
Gerenciamento de Configurao
Desenvolvimento de Requisitos
Gerenciamento de Requisitos
Definio do Processo Organizacional
Gerenciamento Quantitativo do Projeto
18
Essa meta especfica tem por objetivo especificar as anlises fundamentais que sero feitas, antes de colocar em
prtica os detalhes da especificao de medies, coleta e
armazenamento de dados.
A prtica especfica Estabelecer Objetivos de Medies
documenta o propsito das medies e anlises, e especifica
as aes a serem tomadas suportadas pelos dados obtidos.
Esse propsito pode ser a necessidade de gerenciamento,
por exemplo.
O refinamento dos objetivos de medies em medidas
precisas e quantificveis realizado pela prtica especfica
Especificar Medidas. Essas medidas podem ser bsicas,
quando obtidas por medio direta, ou derivadas, se provm
de outros dados, podendo combinar duas ou mais medidas
bsicas.
Um exemplo de medida bsica a quantidade de horas
homem (tambm chamado de esforo), ou a quantidade de
pginas codificadas; exemplos de medidas derivadas so os
ndices de desempenho do cronograma, ou o resultado da diviso ou outra operao matemtica entre duas medidas.
A prtica especfica Especificar Procedimentos de Coleta
e Armazenamento de Dados responsvel por garantir que
os dados corretos so coletados de modo adequado, possibilitando o seu uso futuro, alm de contribuir para esclarecer
as necessidades de informaes e objetivos das medies.
Definir como ser feita a anlise e comunicao dos dados
planejamento
19
Caractersticas
Comuns
Compromisso
Habilitao
Implementao
Verificao da
Implementao
Prticas Genricas
Descrio
Documenta e coloca em prtica uma poltica organizacional para o planejamento e execuo do processo.
Planejar o Processo
Fornecer Recursos
Fornece recursos necessrios para executar o processo de medies e anlises, desenvolver produtos de trabalho e servios
associados.
Atribuir Responsabilidades
Atribui responsabilidades para executar o processo, desenvolver produtos de trabalho e servios do processo de medies e anlises.
Treinar as Pessoas
Gerenciar Configuraes
Revisar o Status com o Nvel Mais Alto de Gerncia Revisa a situao atual e os resultados da medio e anlise com os nveis gerenciais superiores, e adota aes corretivas.
20
O Modelo de Referncia composto por sete nveis de maturidade, que estabelecem as condies para a evoluo dos
processos, iniciando pelo tipo A (Em Otimizao) at o tipo G
(Parcialmente Gerenciado), evoluindo medida que itens do
processo determinados pelo MPS.BR so atendidos.
Cada processo do nvel de maturidade deve atender a um
conjunto de atributos exigveis para o seu refinamento e determinao da sua capacidade, e estes atributos so descritos
pelo Guia Geral do MPS.BR (ver Tabela 8).
Com exceo dos nveis de maturidade F (Gerenciado) e
G (Parcialmente Gerenciado), todos os demais requerem os atributos de processo 3.1 e 3.2. O atributo 3.1 requer um processo
planejamento
21
gerncia de configurao e aquisio, a adequao do processo de medio. A finalidade desse processo, caracterizado
como de apoio, a de orientar a coleta e anlise dos dados
Processo de Medio no Nvel Gerenciado
referentes aos produtos e processos envolvidos no projeto,
A organizao que deseja obter o nvel F de maturidade,
incluindo o prprio projeto, que daro suporte tomada
correspondente ao nvel gerenciado, deve conter, alm da
de decises.
Os atributos de processo associados
medio so 1.1, 2.1 e 2.2. No
Atributos de Processo
Nvel
Sigla
Processos
primeiro,
o processo executado e
1.1
2.1
2.2
3.1
3.2
verificado a extenso com a qual
IIO
Implantao de Inovaes na organizao
C
monitorada, e os recursos para sua
GRI
Gerncia de Riscos
E
Para o atributo 2.2, os produtos
DFP
Definio do Processo Organizacional
processo de medio:
GRE
Gerncia de Requisitos
G
As necessidades de informao e
GPR
Gerncia de Projeto
22
planejamento
Processo de Avaliao
Links:
23
Planejamento e Gerncia
Nesta seo voc encontra artigos voltados para o planejamento
e gerncia de seus projetos de software.
Wilson Vendramel
wilson.vendramel@fatec.sp.gov.br
24
planejamento
25
A descrio dos casos de uso pode ser dada de forma contnua, numerada e particionada, conforme a necessidade de
entendimento e narrativa. No formato de descrio contnua,
o texto decorre em frases sequenciais, de acordo com a ordem
em que as aes so executadas. Na descrio numerada, cada
ao numerada em ordem crescente, representada por uma
frase. Na descrio particionada, as aes so separadas em
duas colunas; em uma das colunas so descritas todas as interaes do ator, e na outra coluna, as reaes do sistema.
Os casos de uso tambm contam com colaboraes, que so
sociedades de classes cuja finalidade implementar os casos
de uso. A Figura 3 mostra como uma colaborao contribui
para a realizao do caso de uso. O foco da arquitetura de um
sistema consiste em encontrar o conjunto mnimo de colaboraes bem estruturadas para cada caso de uso.
Os atores tambm so classificados em primrios e secundrios. Os atores primrios so aqueles que do incio ao caso de
uso, enquanto os demais atores apenas participam dos casos
de uso j existentes.
Casos de Uso
Um caso de uso a descrio do que um sistema deve fazer,
sem especificar como ser feito. Por essa definio, entendese que qualquer usurio que interaja como ator nos casos de
uso no precisa saber como o sistema mantm os casos de
uso em processo de execuo das tarefas, apenas deve saber a
responsabilidade de cada caso de uso.
Um caso de uso a especificao de uma sequncia de interaes entre um sistema e os agentes que utilizam esse sistema.
Essas interaes permitem que o agente (ator) tenha apenas a
viso externa do sistema, ao invs do comportamento interno
dos casos de uso.
26
Entre os casos de uso pode haver os relacionamentos de incluso, extenso e generalizao. A incluso refere-se a rotinas
obrigatrias durante a execuo de um caso de uso, gerando
outro caso de uso. Por exemplo, o pagamento de uma compra a
prazo realizado pelo ator Consumidor ir gerar no sistema da
loja vendedora a necessidade de validar os seus dados pessoais
para cadastro; ou seja, uma ao secundria foi acionada por
uma ao primria.
No caso do relacionamento de extenso, a ao de um caso
de uso pode gerar casos de uso opcionais, ou estendidos. Adotando o exemplo anterior, se o Consumidor fizer o pagamento
vista, ele ter 10% de desconto nas compras.
Diferente do relacionamento de incluso, a modificao do
caso de uso estendido no altera o extensor. Isso significa que,
mesmo que no haja o desconto de 10% no valor das compras,
o pagamento ser efetuado. Por outro lado, no relacionamento
de incluso o caso de uso principal alterado conforme o caso
de uso includo executado. Considerando o exemplo anterior,
se o caso de uso validar dados pessoais no for executado, a
compra no poder ser efetuada.
No relacionamento de generalizao todas as sequncias de
comportamento do caso de uso genrico so vlidas para o caso
de uso especfico. O Consumidor que efetua a compra a prazo
tem as opes de pagamento com cheque, carto de crdito ou
boleto bancrio. Cada forma de pagamento representada atravs de um caso de uso, pois todas as trs aes foram geradas
a partir da ao pagamento a prazo (ver Figura 4).
planejamento
27
Ps-condies: O aluno foi inscrito em uma das turmas de cada uma das disciplinas desejadas, ou
foi adicionado a uma ou mais listas de espera.
Descrio
Descrio
Um aluno no pode se inscrever em uma disciplina para a qual no possua os prrequisitos necessrios.
28
planejamento
Esses valores, assim como na contagem dos atores, so multiplicados pela quantidade de elementos localizados em cada
nvel de complexidade, e o resultado o peso total dos casos
de uso no ajustados:
UUCW = 5 x quantidade (caso de uso simples) + 10 x quantidade (caso de uso mdio) + 15 x quantidade (caso de uso
complexo).
Fatores Tcnicos
Assim como na anlise de pontos de funo, os casos de uso
no dependem da tecnologia aplicada para serem definidos.
Entretanto, para realizar uma estimativa coerente com as condies tcnicas da empresa, importante considerar uma srie
de requisitos funcionais relevantes que certamente interferem
no custo e no tempo de durao do projeto.
Existem treze questes relativas complexidade tcnica do
projeto e da equipe que o integra, e cada fator deve ser pontuado com valores de zero a cinco, ou seja, quanto mais relevante
for o fator para o projeto, maior ser a sua pontuao. Fatores
com pontuao zero so considerados irrelevantes, enquanto
os de valor cinco so fundamentais (observar Tabela 3).
Fator (F i)
Peso (P i)
F1
Sistema distribudo
F2
Tempo de resposta
mesma regra adotada pelos fatores tcnicos, e da mesma forma, deve ser avaliada por um especialista ou lder de projetos
(ver Tabela 4).
Fator (F i)
Peso (P i)
F1
1,5
F2
Experincia na aplicao
0,5
F3
F4
Capacidade do analista
0,5
F5
Motivao
F6
F7
-1
F8
-1
E
F = 1,4 + (0,03 Fi x Pi )
i =1
ambiental.
F3
Eficincia
F4
Complexidade do processamento
F5
F6
Facilidade de instalao
0,5
F7
Facilidade de uso
0,5
F8
Portabilidade
F9
Facilidade de alteraes
F 10
Uso concorrente
F 11
Recursos de segurana
F 12
F 13
Necessidade de treinamento
TCF = 0,0
6 + (0,01 Fi x Pi )
i=1
tcnica.
Fatores Ambientais
Os fatores ambientais, ou Environmental Factor (EF), so
compostos por 8 questes referentes a requisitos no funcionais, sendo em sua maioria voltados experincia da equipe
envolvida no projeto. A pontuao (de zero a cinco) segue a
Clculo de Produtividade
O ndice de produtividade determina o esforo necessrio
para o desenvolvimento do sistema, estipulado pelo nmero
de pessoas alocadas no projeto para gerar o produto final.
Carroll [5] adota o valor padro de homem-horas para o
clculo de produtividade, onde um ponto de caso de uso corresponde a vinte homem-horas. Desse modo, supondo que o
valor encontrado no clculo do UCP seja 70, calcula-se o valor
ajustado de homem-horas (HH) da seguinte forma:
Total Homem-Horas = UCP x 20 = 1400 HH
Karner [6] constata que, uma vez que o projeto conta com
um nmero determinado de pessoas, e obtido o valor do UCP,
29
Links:
[1] BEZERRA, E. Princpios de Anlise e Projeto de Sistemas com UML. Rio de
Janeiro: Elsevier, 2002.
[2] CARROLL, E.R. Estimating Software Based on Use Case Point. In: Conference on Object Oriented Programming Systems Languages and Applications,
20., San Diego, 2005. Practitioner report. Nova Iorque: ACM Press, 2005.
p.257-265.
[3] ROCHA, A.R.C.; MALDONADO, J.C.; WEBER, K.C. Qualidade de Software:
Teoria e Prtica. So Paulo: Pearson Education do Brasil/Makron Books
Ltda, 2001.
[4] TONSIG, S.L. Engenharia de Software: anlise e projeto de sistemas. So
Paulo: Futura, 2003.
[5] CARROLL, E.R. Estimating Software Based on Use Case Point. In: CONFERENCE ON OBJECT ORIENTED PROGRAMMING SYSTEMS LANGUAGES AND
APPLICATIONS, 20., San Diego, 2005. Practitioner report. Nova Iorque: ACM
Press, 2005. p.257-265.
[6] KARNER, G. Resource Estimation for Objectory Projects. Kista: Objective
Systems SF AB, 1993.
30
Engenharia
Nesta seo voc encontra artigos voltados para testes, processo,
modelos, documentao, entre outros
31
32
A aplicao de uma estratgia de teste uma aliada na garantia de qualidade, mas somente ter sucesso se os testadores
de software realizarem as seguintes atividades [5]:
Especificarem o software de maneira quantificvel, muito
antes de comearem os testes: alm de encontrar erros, uma
boa estratgia de teste tambm avalia outras caractersticas
de qualidade, como: portabilidade, manuteno, confiabilidade, usabilidade, entre outros. O objetivo de mensurar
esses requisitos que no ocorra ambiguidade nos resultados dos testes;
Definirem explicitamente os objetivos do teste: Os objetivos especficos dos testes devero ser definidos em termos
mensurveis no plano de testes. Por exemplo: eficincia e
abrangncia do teste, tempo mdio de falhas e custo para
corrigir defeitos;
Desenvolverem um plano de teste que enfatizem o teste
do ciclo rpido: recomenda-se que existam ciclos rpidos,
em torno de 2% do trabalho de projeto de incrementos de
funcionalidades. O retorno gerado por esses testes de ciclo
rpido pode ser usado para controlar os nveis e qualidade e
as correspondentes estratgias de teste;
Criarem software robusto que sejam projetados para testar o
prprio software: Criao de software que diagnostique certas
classes de erros, alm de testes automatizados;
Utilizarem revises tcnicas eficazes com filtro antes do teste:
As revises tcnicas podem ser to eficazes como testes para
descobrir erros, pois podem antecipar erros, reduzir o trabalho
e produzir software de alta qualidade;
Executarem revises tcnicas para avaliar a estratgia
de teste e os prprios casos de testes: As revises tcnicas
podem descobrir inconsistncias, omisses e erros na abordagem de testes;
Desenvolverem abordagem de melhoria contnua para o
processo de teste: A estratgia de teste dever ser medida,
para que haja um controle estatstico de processo para o teste
de software.
en gen haria
Modelo de rastreabilidade
Os requisitos de um sistema de software esto sempre mudando. Durante o processo de desenvolvimento de software
o entendimento dos envolvidos sobre o problema que est
sendo solucionado muda constantemente. Esses requisitos
devem evoluir para refletir essas novas vises do problema. O
gerenciamento de requisitos um processo para compreender
e controlar as mudanas dos requisitos de sistema. Existem vrios relacionamentos entre os requisitos e o projeto do sistema.
Quando as mudanas so propostas, deve-se estabelecer meios
para rastrear seu impacto em outros requisitos e no projeto do
sistema, a chamada hierarquia de rastreabilidade.
A rastreabilidade a propriedade de uma especificao de
requisitos que reflete a facilidade de encontrar os requisitos
relacionados. Os elementos do projeto envolvidos em rastreabilidade so chamados de itens de rastreabilidade. Os itens
tpicos de rastreabilidade incluem diferentes tipos de requisitos - funcionais e no funcionais, elementos de modelo de
projeto e de anlise, artefatos de testes (conjuntos de testes,
casos de teste, etc.), material de treinamento e documentao
de suporte a usurio final.
Em qualquer processo de desenvolvimento de software existe
algum mecanismo de rastreabilidade implcito. Geralmente a
rastreabilidade estabelecida pelas relaes formais entre os
artefatos do processo. Um exemplo deste tipo de rastreabilidade implcita a conveno de nomenclatura, ou seja, a classe
no modelo de projeto chamada Cliente implementada pela
classe no modelo de implementao chamada Cliente.
Trs tipos de informaes de rastreabilidade podem ser
mantidos:
1. Informaes de rastreabilidade da origem: elos de rastreamento (link) ligam requisitos aos envolvidos que propuseram
os requisitos e a necessidade desses requisitos. Quando uma
mudana proposta pode-se utilizar essas informaes para
encontrar e consultar os envolvidos sobre a mudana.
2. Informaes de rastreabilidade de requisitos: elos de rastreamento (link) ligam os requisitos dependentes dentro do documento de requisitos. Permite avaliar quantos requisitos sero
afetados pela mudana proposta e a extenso das mudanas.
3. Informaes de rastreabilidade de projeto: elos de rastreamento (link) ligam os requisitos aos mdulos de projeto, nos
Cada tabela de rastreabilidade relaciona os requisitos identificados a um ou mais aspectos do sistema ou de seu ambiente.
Entre as muitas tabelas de rastreamento possveis esto as
seguintes:
Tabela de rastreabilidade de caracterstica: mostra como
os requisitos se relacionam a caractersticas importantes do
sistema/produto.
Tabela de rastreabilidade de fontes: identifica a fonte de
cada requisito.
Tabela de rastreabilidade de dependncia: indica como os
requisitos esto relacionados uns aos outros.
Tabela de rastreabilidade de subsistemas: caracteriza os
requisitos pelo subsistema que ele governa.
Tabela de rastreabilidade de interface: mostra como os requisitos se relacionam com as interfaces internas e externas
do sistema.
A estratgia de rastreabilidade apresentada na Figura 3
relaciona os requisitos de usurio (Requisitos do Produto Req A), os requisitos de sistema (Requisitos detalhados
(Casos de Uso) - Req B), com artefatos de projeto, casos de teste
e documentos de usurio.
O Rational Unified Process (RUP) um processo de engenharia de software que oferece uma abordagem baseada em
disciplinas para atribuir tarefas e responsabilidades dentro
de uma organizao de desenvolvimento. Sua meta garantir
a produo de software de alta qualidade que atenda s necessidades dos usurios dentro de um cronograma e de um
oramento previsveis.
33
O RUP considera entre as melhores prticas de desenvolvimento de software o gerenciamento de requisitos (enfoque na
rastreabilidade de requisitos em todo o processo de desenvolvimento de software, conforme apresentado na Figura 4). Essas
melhores prticas devem ser apoiadas por ferramentas para
automatizar o processo de engenharia de software.
A finalidade de estabelecer rastreabilidade ajudar a:
Compreender a origem dos requisitos;
Gerenciar o escopo do projeto;
Gerenciar mudanas nos requisitos;
Avaliar o impacto no projeto da mudana em um
requisito;
Avaliar o impacto da falha de um teste nos requisitos (isto ,
se o teste falhar, talvez o requisito no seja atendido);
Verificar se todos os requisitos do sistema so atendidos
pela implementao;
Verificar se o aplicativo faz apenas o que era esperado que
ele fizesse.
De acordo com os artefatos do RUP, as informaes fornecidas
sobre os requisitos como Regras de Negcios e Solicitaes dos
34
en gen haria
35
Script de Teste
UC05
UC05LiberacaoDeAcesso.java
CT01UC05FBLiberacaoDeAcesso_com_sucesso ( )
UC05
UC05LiberacaoDeAcesso.java
CT02UC05A1LiberacaoDeAcesso_senha_invalida ( )
...
...
...
Desta forma, de acordo com o critrio de aceitao estabelecido, pode-se avaliar se o resultado da execuo dos testes est
aderente aos objetivos de qualidade planejados.
A estratgia pode ser adaptada de acordo com as necessidades do projeto. O modelo pode ser aplicado para os testes de
unidade, integrao ou de sistema.
36
en gen haria
A rastreabilidade de requisitos tem sido identificada na literatura como fator de qualidade do processo de desenvolvimento
de software, apesar disto, ainda existe um desconhecimento
sobre os benefcios da utilizao de modelos de rastreabilidade
em organizaes de desenvolvimento de software. A efetiva
aplicao da rastreabilidade no processo de desenvolvimento
de software depende da definio de um modelo de rastreabilidade. Neste artigo abordamos a rastreabilidade de requisitos
considerando aspectos de rastreabilidade entre requisitos e
casos de teste.
O planejamento da rastreabilidade deve adotar uma abordagem que permita facilitar o processo de desenvolvimento
de software e no restringi-lo. A existncia dos mecanismos
de rastreabilidade permite identificar as origens de cada
funcionalidade de um sistema. Estes mecanismos podem ser
usados em procedimentos de verificao e validao para garantir que o sistema foi adequadamente testado e que atende
s necessidades dos usurios. Mecanismos de rastreabilidade
37
Engenharia
Nesta seo voc encontra artigos voltados para testes, processo,
modelos, documentao, entre outros
Mtricas de Software
Problema ou Soluo?
38
en gen haria
Mtricas de software medem diferentes aspectos da complexidade do software e, portanto, desempenham um papel
importante na anlise e melhoria da qualidade do software.
Tais aspectos abrangem rea de qualidade, estimativa, custos,
processos e assim por diante. Uma outra definio para mtrica
de software a referencia como sendo a medida - geralmente
usando classificaes numricas - para quantificar algumas
caractersticas ou atributos de uma entidade de software.
Medies tpicas incluem a qualidade dos cdigos de fonte, o
processo de desenvolvimento e as aplicaes realizadas.
Alm dessas, pode-se afirmar tambm que mtricas de software a contnua aplicao de tcnicas baseadas na medio
para o processo de desenvolvimento de software e para os
seus produtos fornecendo informao de gesto relevante e,
a utilizao dessas tcnicas visa melhorar o processo e os seus
produtos [4]. As mtricas de software so agrupadas em dois
tipos, as mtricas de produto e as mtricas de processos.
Mtricas de Produto, tambm conhecidas como as mtricas de
qualidade, so usadas para medir as propriedades do software
e ajudam a melhorar a qualidade dos diferentes componentes
e existentes do sistema. Pode-se destacar como exemplos de
mtricas de produto: esforo, tamanho, volume, complexidade,
contagem de pontos de funo, contagem de Tokens, mtricas de
funcionalidades, desempenho, usabilidade, custo e tamanho
e mtricas de estilo.
J as mtricas de processo so conhecidos como mtricas de
gesto e so utilizadas para medir as propriedades do processo que usado para se obter o software. Mtricas de processo
incluem as mtricas de custo e esforos, mtricas de progresso
e mtricas de reutilizao. Mtricas de processo ajudam na
previso do tamanho do sistema final e a determinar se um
projeto em execuo se encontra de acordo com o cronograma. Como mtricas de processos, podemos citar: mtricas de
reusabilidade, mtricas de produtividade, mdia de ponto de
estria por desenvolvedor por dia/ms, mtricas de recursos,
dentre outros.
Comparar e avaliar as capacidades e produtividade das pessoas envolvidas no desenvolvimento de software, elaborao
das especificaes de qualidade de software, verificao do
cumprimento de requisitos de sistemas de software e especificaes, so algumas das caractersticas que a aplicao de
mtricas proporcionam e que so consideradas vantagens para
quem as usam. Alm disso, pode-se citar tambm a tomada de
decises sobre outra diviso do mdulo complexo que deve
ser feito ou no e obteno de uma ideia sobre a complexidade
do software
Ao mesmo tempo em que as mtricas de software proporcionam diversas vantagens que ajudam no auxlio de algumas
atividades dentro do processo de desenvolvimento do produto de software elas tambm apresentam certas limitaes
em relao ao seu uso. A maioria dessas desvantagens esto
vinculadas ao uso incorreto por parte dos profissionais de TI.
No processo de utilizao de mtricas de software, deve-se
garantir algumas propriedades para que as mesmas sejam
utilizadas da maneira mais eficiente possvel.
39
40
Tcnico
Requisitos Imprecisos
Falta de Conhecimento
Evoluo da TI
en gen haria
representa cerca de nove respostas. J 11% das respostas recebidas, cerca de seis respondentes, apontam a fator relacionado
a falta de histrico de mtricas de projetos j finalizados.
9% dos respondentes confirmam que muitas vezes a interpretao incorreta de dados contribui para esse gap relacionado
da engenharia software. Entretanto, cerca de 7% de participantes indica que o fator tempo importante e contribui
de forma negativa na criao de mtricas. O fato de ser uma
atividade considerada difcil de aplicar e a inexperincia em
projetos similares foram apontados por 5% cada uma, como
sendo fatores motivadores para esse problema em relao ao
uso de mtricas. Por fim, cerca de 2% apontaram a questo
da falta de uma anlise estrutural do cdigo e falta de comprometimento da gerncia como sendo atributos importantes
para o uso ineficiente de mtricas de
software. 2% dos respondentes apontaram a opo Outros, porm no
especificaram quais seriam esses
outros motivos.
Reflexo
Ser que podemos responder ao
questionamento central de artigo
baseado nos dados apresentados at
o momento? Mtricas de Software
podem ser consideradas um problema ou uma soluo para quem
as usam?
De acordo com os dados obtidos
na literatura e confirmados com o
estudo de campo realizado na indstria de TI, percebe-se que mtricas
de software uma soluo vivel e
organizada de se ter em um projeto,
pois ajuda na avaliao da capacidade produtiva dos envolvidos no
projeto, na elaborao de especificaes de qualidade de software,
validao e verificao de requisitos,
tomada de deciso e em uma das
atividades mais importantes dentro
do gerenciamento de projetos - o
planejamento.
Entretanto, sabe-se que as atividades de medio e estimativas
no so realizadas corretamente
pela indstria de TI e isso contribui
para que a aplicao de mtricas de
software deixem de ser soluo para
passar a ser um problema, pois estimativas mal sucedidas contribuem
para atrasos no cronograma, o que
culminam em excessos oramentais
e que no final termina em estresse e
insatisfao por parte do cliente.
41
Links:
[1] BOUWERS, Eric; DEURSEN, Arie Van; VISSER, Joost. Evaluating Usefulness
of Software Metrics - an Industrial Experience Report -.Software Engineering
Research Group, Department of Software Technology, Faculty of Electrical
Engineering, Mathematics and Computer Science, Delft University of
Technology, 2013.
[2] CURTIS, Bill; SAPPIDI, Jay; SUBRAMANYAM, Jitendra. Measuring the Structural Quality of Business Applications. 2011 Agile Conference, 2011b.
[3] FENTON, Norman E; NEIL, Martin. Software Metrics: A roadmap. ICSE
00Proceedings of the Conference on The Future of Software Engineering,
2000.
[4] GOODMAN, Paul. Practical Implementation of Software Metrics, McGraw
Hill, London, 1993.
[5] JOHARI, Kalpana; KAUR, Arvinder. Effect of software evolution on software metrics: An open source case study. ACM SIGSOFT Software Engineering
Notes, 2011.
[6] MOLKKEN, Kjetil; JRGENSEN, Magne; A Review of Surveys on Software
Effort Estimation. Proceedings of the 2003 International Symposium on
Empirical Software Engineering, ISESE 03, IEEE Computer Society, pp.223230, 2003..
[7] SINGH, Gurdev; SINGH, Dilbag; SINGH, Vkram. A Study of Software Metrics.
IJCEM International Journal of Computational Engineering & Management,
Vol. 11, January 2011.
[8] SINGH, Ram; BHAGAT, Avinash; KUMAR, Navdeep. Generalization of
Software Metrics on Software as a Service (SaaS). International Conference
on Computing Sciences, 2012.
42
Engenharia
Nesta seo voc encontra artigos voltados para testes, processo,
modelos, documentao, entre outros
Este artigo do
tipo mentoring
saiba mais: www.devmedia.com.br/
mentoring-saibamais
Q
Arilo Claudio Dias Neto
arilo@icomp.ufam.edu.br
43
Cenrio utilizado
Para ilustrar o uso de boas prticas na descrio de casos e
procedimentos de teste, partiremos do caso de uso Comprar
Produto, apresentado na Tabela 1. Ele est especificado de
acordo com o formato de descrio de casos de uso apresentado
no artigo Especificando casos de uso eficazes publicado na
edio 66 da ES Magazine.
A partir deste caso de uso, testes funcionais podem ser realizados. O processo para construo de testes funcionais a partir
de casos de uso j foi explorado no artigo Automatizando a
gerao e execuo de testes a partir de casos de uso publicado na edio 80 da SQL Magazine.
44
Objetivo:
Atores:
Condio de
Entrada
Engenharia de Software Magazine - Casos de Teste: Aprimore seus casos e procedimentos de teste
planejamento
Item
Descrio
ID do Caso de Teste
Descrio
Indicao do item (funcionalidade, unidade, mdulo, componente) do sistema a ser testado pelo caso de teste.
Indicao dos atributos de qualidade do sistema que sero avaliados pelo caso de teste (ex: funcionalidade, desempenho, segurana, portabilidade, dentre outros).
Entradas requeridas para a execuo do caso de teste, incluindo no apenas elementos de interface, mas entradas providas internamente pelo sistema. Devem ser
especificados a varivel, seu tipo e valor a ser usado na execuo do caso de teste.
Sadas esperadas aps a execuo do caso de teste, incluindo resultados de interface ou internos do sistema (ex: mensagens ou atualizao de valores) e
comportamentos (ex: tempos de resposta, estado atual do sistema).
Necessidades do Ambiente de teste Especificar as necessidades de hardware, software, configurao do sistema ou outras relevantes para a execuo do caso de teste.
Tabela 2. Roteiro de Caso de Teste segundo o padro IEEE-Std-829 (2008)
Item
ID do Procedimento de Teste
Objetivo
Descrio
Identificador que caracteriza unicamente o procedimento de teste.
Descrever o objetivo deste procedimento de teste em relao aos casos de teste que so executados por ele.
Requisitos
Identificar qualquer requisito especial que necessrio para a execuo deste procedimento de teste. Isso pode incluir procedimentos pr-requisitos, requisitos de
habilidade/perfil necessrio para o responsvel pela sua execuo e requisitos especiais do ambiente.
Passos
Descrever, de forma ordenada, os passos a serem seguidos durante a execuo dos testes, indicando em cada passo qual o caso de teste associado, quando pertinente.
45
46
Engenharia de Software Magazine - Casos de Teste: Aprimore seus casos e procedimentos de teste
planejamento
Item
Descrio
ID do Caso de Teste
CT01
Descriao
Funcionalidade
Entradas
Item
Descrio
ID do Caso de Teste
CT02
Descrio
Funcionalidade
Entradas
Resultados e Comportamentos esperados
Cdigo do Produto:PR7872
Quantidade: 3
Mensagem na tela: Compra Invlida
Cdigo de Produto Inexistente;
Hardware: PC com SO Windows 7
Software: Browser Firefox
Banco de Dados: no deve existir um produto com cdigo PR7872.
Item
Descrio
ID do Caso de Teste
CT03
Descrio
Funcionalidade
Entradas
Resultados e Comportamentos esperados
Item
Descrio
ID do Caso de Teste
CT04
Descrio
Funcionalidade
Entradas
Resultados e Comportamentos esperados
47
Item
Descrio
ID do Caso de Teste
CT05
Descrio
Funcionalidade
Entradas
Descrio
ID do Procedimento de Teste
PT01
Objetivo
Requisitos
Passos
Tabela 5. Procedimento de Teste para o caso de uso Comprar Produto
48
Engenharia de Software Magazine - Casos de Teste: Aprimore seus casos e procedimentos de teste
Desenvolvimento
Nesta seo voc encontra artigos voltados para diferentes
abordagens de apoio ao desenvolvimento de projetos de software
L
Edson A. Oliveira Junior
edson@din.uem.br
49
Inspeo de Software
A inspeo uma tcnica que contribui para garantir a qualidade do produto de software. Todas as etapas do processo de
desenvolvimento de software so suscetveis incorporao de
defeitos, que podem ser detectados previamente pela inspeo
e posteriormente removidos.
importante destacar que quanto mais cedo esses defeitos
forem removidos, menor ser o custo de desenvolvimento e
manuteno do produto. Experincias tm comprovado que a
inspeo, quando realizada no incio do desenvolvimento do
software, leva deteco de 60% a 90% dos defeitos potenciais
em um projeto de software.
Para isso, o processo de Garantia da Qualidade utiliza-se de
atividades de verificao, validao com o intuito de encontrar
defeitos em todas as etapas do desenvolvimento. Essas atividades so muito importantes, pois cuidam de analisar diversos
pontos do processo de desenvolvimento, impedindo que
um defeito se propague para as fases posteriores do projeto.
A Figura 1 mostra que a inspeo de software pode ser aplicada
em diferentes artefatos.
50
en gen haria
A abordagem SMarty
A abordagem Stereotype-based Management of Variability (SMarty) apoiada por um perfil UML, o SMartyProfile e um processo
sistemtico para o gerenciamento de variabilidades, o SMartyProcess. Os principais conceitos envolvidos no gerenciamento
de variabilidades em LPS adotados por SMarty so:
Variabilidade, que permite distinguir os diversos membros
de uma linha de produto. No SMartyProfile esse conceito representado pelo esteretipo <<variability>> que uma extenso
da metaclasse Comment;
Ponto de Variao, que indica um local especfico de um
artefato onde ocorre a variao. No SMartyProfile esse conceito
representado pelo esteretipo <<variationPoint>>;
Variante, que um artefato que sofre a variao. No
SMartyProfile esse conceito representado pelo esteretipo
<<variant>>;
A tcnica SMartyCheck
A princpio, SMartyCheck concentra-se em modelos SMarty
de casos de uso, por serem os modelos mais abstratos de uma
LPS baseada em UML. SMartyCheck aplicada para cada
51
Item do Checklist
Redundncia
R.1 Existem dois ou mais casos de uso que representam exatamente a mesma
especificao?
I.1 Existe algum caso de uso na LPS com <<mandatory>> que no esteja
presente no produto especfico?
I.2 Existe algum caso de uso na LPS com <<variationPoint>> cujo nmero
de variantes presentes no produto especfico maior que o definido em
maxSelection da variabilidade associada?
I.3 Existe algum caso de uso na LPS com <<variationPoint>> cujo nmero
de variantes presentes no produto especfico menor que o definido em
minSelection da variabilidade associada?
I.4 Existe algum caso de uso no produto especfico que no foi definido no
modelo de casos de uso da LPS?
I.5 Existe algum caso de uso na LPS que exige a seleo de outro
(<<requires>>) e esse outro no est presente no produto especfico?
Inconsistncia I.6 Existe algum caso de uso na LPS que exige a no seleo de outro
(<<mutex>>) e esse outro est presente no produto especfico?
I.7 Existe alguma variabilidade (<<variability>>) presente no produto
especfico cujo meta-atributo bindingTime seja DESIGN_TIME (tempo de
projeto)?
Tabela 1. Checklist da Tcnica SMartyCheck
52
en gen haria
Tipo de
Defeito
Redundncia
Inconsistncia
Item do Checklist
Defeitos Encontrados
R.1 Existem dois ou mais casos de uso que representam exatamente a mesma especificao?
[ X ] No
[ ] Sim
I.1 Existe algum caso de uso estereotipado como <<mandatory>> no modelo de casos uso da LPS que no esteja no produto
O caso de uso Exit Game no est presente no
especfico?
produto.
[ ] No
[ X ] Sim
I.2 Existe algum caso de uso com <<variationPoint>> cujo nmero de variantes no produto especfico maior que o definido em
maxSelection da variabilidade associada?
[ X ] No
[ ] Sim
I.3 Existe algum caso de uso com <<variationPoint>> cujo nmero de variantes no produto especfico menor que o definido
em minSelection da variabilidade associada?
[ X ] No
[ ] Sim
I.4 Existe algum caso de uso no produto especfico que no foi definido no modelo de casos de uso da LPS?
[ X ] No
[ ] Sim
I.5 Existe algum caso de uso que exige a seleo de outro (<<requires>>) e esse outro no est presente no produto especfico?
[ X ] No
[ ] Sim
I.6 Existe algum caso de uso que exige a no seleo de outro (<<mutex>>) e esse outro est presente no produto especfico?
[ X ] No
[ ] Sim
I.7 Existe alguma variabilidade (<<variability>>) presente no modelo de caso de uso do produto especfico cujo meta-atributo
bindingTime seja DESIGN_TIME?
[ X ] No
[ ] Sim
53
Tipo de Defeito
Redundncia
Inconsistncia
Item do Checklist
R.1 Existem dois ou mais casos de uso que representam exatamente a mesma especificao?
[ X ] No
[ ] Sim
I.1 Existe algum caso de uso estereotipado como <<mandatory>> no modelo de casos uso da LPS que no esteja no
produto especfico?
[ X ] No
[ ] Sim
I.2 Existe algum caso de uso com <<variationPoint>> cujo nmero de variantes no produto especfico maior que o
definido em maxSelection da variabilidade associada?
[ X ] No
[ ] Sim
I.3 Existe algum caso de uso com <<variationPoint>> cujo nmero de variantes no produto especfico menor que o
definido em minSelection da variabilidade associada?
[ ] No
[ X ] Sim
I.4 Existe algum caso de uso no produto especfico que no foi definido no modelo de casos de uso da LPS?
[ X ] No
[ ] Sim
I.5 Existe algum caso de uso que exige a seleo de outro (<<requires>>) e esse outro no est presente no produto
especfico?
[ ] No
[ X ] Sim
I.6 Existe algum caso de uso que exige a no seleo de outro (<<mutex>>) e esse outro est presente no produto
especfico?
[ X ] No
[ ] Sim
I.7 Existe alguma variabilidade (<<variability>>) presente no modelo de caso de uso do produto especfico cujo metaatributo bindingTime seja DESIGN_TIME?
[ X ] No
[ ] Sim
Defeitos Encontrados
Item do Checklist
R.1 Existem dois ou mais casos de uso que representam exatamente a mesma especificao?
[ X ] No
[ ] Sim
I.1 Existe algum caso de uso estereotipado como <<mandatory>> no modelo de casos uso da LPS que no esteja no produto
especfico?
[ ] No
[ X ] Sim
I.2 Existe algum caso de uso com <<variationPoint>> cujo nmero de variantes no produto especfico maior que o definido
em maxSelection da variabilidade associada?
[ X ] No
[ ] Sim
I.3 Existe algum caso de uso com <<variationPoint>> cujo nmero de variantes no produto especfico menor que o
definido em minSelection da variabilidade associada?
[ X ] No
[ ] Sim
I.4 Existe algum caso de uso no produto especfico que no foi definido no modelo de casos de uso da LPS?
[ X ] No
[ ] Sim
Inconsistncia
I.5 Existe algum caso de uso que exige a seleo de outro (<<requires>>) e esse outro no est presente no produto
especfico?
[ X ] No
[ ] Sim
I.6 Existe algum caso de uso que exige a no seleo de outro (<<mutex>>) e esse outro est presente no produto
especfico?
[ X ] No
[ ] Sim
I.7 Existe alguma variabilidade (<<variability>>) presente no modelo de caso de uso do produto especfico cujo metaatributo bindingTime seja DESIGN_TIME?
[ X ] No
[ ] Sim
54
Defeitos Encontrados
en gen haria
55
Desenvolvimento
Nesta seo voc encontra artigos voltados para diferentes
abordagens de apoio ao desenvolvimento de projetos de software
P
Anne Caroline Noronha
annepnoronha@gmail.com
56
desen volvimento
Testes Exploratrios
Para o melhor entendimento das tcnicas e resultados que
sero abordados nos prximos tpicos, faz-se necessrio o
conhecimento conceitual da abordagem e definio sobre
testes exploratrios.
Esta abordagem, por no ser orientada por script, muitas
vezes confundida com testes ad hoc, o qual comumente
definido como uma abordagem informal e improvisada, onde
no h nenhum planejamento das atividades exercidas.
Segundo James Bach, o teste exploratrio um processo onde
realizada a anlise e a elaborao do projeto, juntamente com
a execuo dos testes. Esta abordagem de teste no baseada
em testes orientados por scripts ou testes com roteiros. Na
verdade, nesse tipo teste o testador elabora seus casos de testes
no decorrer da execuo dos mesmos, ou seja, improvisa os
testes com o objetivo de buscar erros.
Com isso vemos que os testes exploratrios ultrapassam a
ideia de um simples teste ad hoc, pois so baseados em estruturas de aprendizagem contnua e possuem um planejamento
com tcnicas e mtodos para gerenciar esta abordagem durante
a sua execuo, o que gera o entendimento completo das atividades e defeitos gerados durante o processo de teste.
Um testador exploratrio qualificado pode explorar funcionalidades do aplicativo sem restries, podendo diversificar
seus testes de acordo com a resposta de sua execuo. Com base
nisto, podemos vislumbrar que os testes exploratrios no so
somente testes realizados sem nenhum propsito.
Esse tipo de teste exige uma abordagem sofisticada e pensativa no intuito de alcanar resultados e variaes de testes
que j foram implementados, uma vez que combina aprendizagem contnua com o estudo de heursticas e tcnicas que
contribuem para o sucesso na elaborao e execuo dos testes
exploratrios.
57
Domnio tcnico com o aplicativo: O domnio das funcionalidades existentes no aplicativo muito importante para
detectar a lgica correta de um determinado erro encontrado. Caso o testador no tenha esse tipo de experincia,
o mesmo pode realizar uma sesso de testes exploratrios
com casos de testes sobre a aplicao no intuito de adquirir
tal conhecimento.
Fatores Negativos:
Pouco tempo para anlise: No contexto de execuo dos
testes exploratrios, quase sempre no se reserva tempo
hbil para o planejamento e execuo dos testes, sejam
eles para ser aplicados na plataforma ou aplicativos.
Inexperincia do profissional: Para esta abordagem
de teste o profissional de teste que no tenha experincia, seja com aplicao, seja com plataforma, ter certa
dificuldade em estruturar testes exploratrios mais
detalhados.
Explorao limitada: Apesar de ter planejamento, alguns testes exploratrios ficam limitados, seja por causa
de erro na plataforma, seja pela inexperincia do testador
com o aplicativo ou outro fator externo. Assim, alguns
erros encontrados no so mais reproduzidos com a mesma lgica, sendo necessrio explorar um novo caminho
no qual o mesmo erro possa acontecer.
Estes fatores devem ser levantados previamente para a
abordagem ser utilizada com sucesso. Alm destes pontos,
deve-se observar as ferramentas e servios disponveis, o
status de outras partes do projeto para a mesma entrega
e os resultados de testes anteriormente executados, pois
tais percepes colaboram para o avano ou regresso dos
cenrios de testes que devem ser explorados.
58
Roles: Este grau demonstra o testador assumindo a explorao guiada por papis. Os testes so executados no
aplicativo com o testador assumindo uma funo de um
usurio especfico como, por exemplo, um perfil de gerente.
Neste grau o testador exploratrio guia a sua execuo com
um ponto de vista para os testes, focando os resultados na
estrutura do papel definido;
Tasks: O grau dos testes exploratrios guiado por uma
tarefa especfica, estreitando ainda mais a viso dos testes que
sero executados. Dentro deste grau o testador poder assumir
um papel de usurio e realizar uma tarefa que o aplicativo oferece, buscando o maior detalhamento desta funcionalidade;
Sporadically Specified / Loosely Specified / Fully Sprecified: Nos trs graus restantes o testador j estrutura, podendo ser usada pouca ou total especificao com o intuito
de realizar seus testes exploratrios de forma orientada e
obter o melhor desempenho das funcionalidades a serem
validadas.
desen volvimento
Design de Teste: Com base na avaliao do produto possvel determinar o que ser testado;
Execuo dos Testes: Execuo dos testes observando o
comportamento do produto durante este processo, para que
o testador tenha informaes que o ajudem na compreenso
de como funciona o produto;
Resultados de Reviso: Todos os resultados devem ser
avaliados de forma que atendam a hiptese criada. Todo o
resultado necessita de revises constantes para que o testador
sempre esteja preparado para explicar como foi realizado os
testes e explicar se o produto atende ou no ao resultado obtido, podendo ser necessrio, posteriormente, reproduzir os
testes novamente;
Heurstica: So diretrizes ou regras que ajudam a decidir
o que fazer, como por exemplo o que e como deve ser testado
o aplicativo ou plataforma.
Misso - SBTM
59
registradas durante as sesses, nas comparaes entre softwares, entre outros. A utilizao destes artefatos aperfeioa
as misses j criadas e tambm ajuda na idealizao de novas
misses durante o projeto.
Sesso - SBTM
A sesso compreende o perodo de tempo sem interrupes com durao entre uma ou duas horas. Esta sesso tem
como foco o cumprimento do objetivo da misso, garantindo,
assim, o sucesso dos resultados gerados durante os testes
exploratrios.
Esse autor separa esta sesso em trs tipos de tarefas: Setup
da Sesso, Modelagem /Execuo dos testes e Investigao /
Reportar Defeitos.
Setup da Sesso: consta na configurao do ambiente que
o testador ir executar, incluindo tarefas como equipamentos,
localizao de materiais, ler manuais ou escrever um relatrio
da sesso;
Modelagem / Execuo dos Testes: o testador analisa o objeto de testes em busca de informaes relevantes ou defeitos
relevantes;
Reportar Defeitos: Relatar os possveis erros que sero encontrados durante a execuo ou comportamentos
inesperados.
Resultados - SBTM
Durante o gerenciamento baseado em sesses, aps a avaliao e execuo das sesses, os testes so constitudos de
um conjunto de notas escritas que podem ser revisadas por
um gerente para o planejamento de posteriores sesses. Este
relatrio, alm de conter mtricas, deve possuir as seguintes
sees: descrio da misso, nome do testador, data e hora da
sesso, as mtricas, arquivo de dados, questes e os defeitos
encontrados.
As mtricas mostram s partes interessadas uma estatstica
do esforo de testes. Tais dados se relacionam a essas trs
seguintes tarefas:
Test Execution and Design (T): Tempo gasto para a elaborao, planejamento e execuo dos testes exploratrios;
Bug Investigation and Reporting (B): Tempo gasto para
encontrar e registrar os defeitos;
Setup (S): Percentual em tempo gasto para a preparao do
ambiente de testes ou atividades realizadas em paralelo.
Aps a realizao da sesso e mtricas, o testador apresenta
os resultados para os gerentes, lder de testes ou interessados
no produto, em uma reunio para mostrar as atividades executadas juntamente com os problemas encontrados durante
a sesso. Esta prestao de contas pode possuir o seguinte
formato:
Past (Passado): O que aconteceu durante a sesso?
Results (Resultados): Quais resultados foram atingidos
durante a sesso?
Obstacles (Obstculos): Quais obstculos atrapalharam a
explorao?
60
desen volvimento
61
Esta abordagem requer uma avaliao minuciosa das funcionalidades dos aplicativos e plataforma, pois, como foi relatado,
os testadores tm um ganho muito alto na qualidade do planejamento dos testes exploratrios durante a execuo destes,
desde que se absorvam os benefcios de testar um aplicativo
empregando previamente esta abordagem na anlise da plataforma. Esta anlise deixa o profissional de teste com maior
domnio e raciocnio lgico dos problemas encontrados.
62
Links e Referncias:
BACH, James. Exploratory Testing Explained
http://www.satisfice.com/articles/et-article.pdf
KANER, Cem. Learning Styles and Exploratory Testing
http://www.kaner.com/pdfs/ExploratoryTestingandLearningStyles(Final).pdf
LYNDSAY, James. Adventures in Session-Based Testing
http://www.workroom-productions.com/papers/AiSBTv1.2.pdf
ACRISPIN, Lisa. GREGORY, Janet. Agile Testing A Practical Guide for Testers
and Agile Teams, 1st ed, Addison-Wesley, 2009.
desen volvimento
63
64