Você está na página 1de 7

See discussions, stats, and author profiles for this publication at: https://www.researchgate.

net/publication/221359881

Aplicação de um Checklist de Pré-Teste.

Conference Paper · January 2008


Source: DBLP

CITATIONS READS

0 1,300

3 authors:

Odair Silva Adalberto Crespo


Fundação de Apoio à Capacitação em Tecnologia da Informação Centro de Tecnologia da Informação Renato Archer
7 PUBLICATIONS 25 CITATIONS 20 PUBLICATIONS 201 CITATIONS

SEE PROFILE SEE PROFILE

Mario Jino
University of Campinas
108 PUBLICATIONS 960 CITATIONS

SEE PROFILE

Some of the authors of this publication are also working on these related projects:

Security Assessment View project

All content following this page was uploaded by Adalberto Crespo on 02 March 2015.

The user has requested enhancement of the downloaded file.


Aplicação de um Checklist de Pré-Teste

Odair Jacinto da Silva Adalberto Nobiato Crespo


Ampla Consultoria em Informação, Faculdades Centro de Pesquisas Renato Archer (CenPRA) –
Integradas Metropolitanas de Campinas - Campinas – SP – Brasil
METROCAMP Campinas – SP – Brasil. adalberto.crespo@cenpra.gov.br
odair@amplaconsultoria.com.br
Mario Jino
UNICAMP – Campinas – SP – Brasil
jino@dca.fee.unicamp.br

Resumo
O uso de checklists é considerado uma boa prática pela indústria de software. Um experimento foi
desenvolvido em uma organização de desenvolvimento de software para avaliar o impacto do uso de
checklists para inspecionar e realizar testes básicos de software. Este artigo apresenta a metodologia
utilizada e os resultados deste experimento.
Palavras Chaves: teste de software, checklist de inspeção.
Abstract
The use of checklists is considered a best practice in software industry. An experiment was developed by
a software organization to evaluate the impact of using a checklist to inspect and perform basic testing of
software. This article presents the methodology and the results achieved.
Keywords: software testing, inspection checklist.

1. Introdução Cheklists têm como objetivo garantir que uma


tarefa seja executada de uma forma objetiva,
Nos anos 90 a indústria de software começou eficiente e padronizada. Objetiva porque não se
a perseguir a qualidade como foi feito por outras deve desperdiçar tempo com atividades que não
indústrias mais antigas, como a automobilística. contribuem diretamente com o produto ou
Diversos frameworks, metodologias e normas serviço. Eficiente porque é uma forma de
têm sido produzidos desde então com o objetivo garantir que todos os passos em um
de atender às exigências cada vez maiores do procedimento sejam realizados sem que o seu
mercado que compra e depende de software executor tenha que confiar em sua memória.
para seus negócios, empregos e, por que não, Padronizada porque estabelecemos como padrão
suas vidas. as melhores práticas e deseja-se que elas sejam
Todos os modelos, normas e frameworks realizadas por todos os envolvidos na criação do
servem como um guia para o estabelecimento de produto ou serviço.
padrões para processos de desenvolvimento de Além disso, procedimentos padronizados
software. De maneira geral deseja-se criar nas constituem uma forma de uniformizar a coleta
empresas uma cultura de utilização de processos de dados, permitindo que um determinado
e práticas com o objetivo de melhorar a processo possa ser medido e sua qualidade
qualidade dos software produzidos. avaliada [1]. Sem um padrão de comparação é
Checklists ou listas de verificação são muito mais difícil obter dados confiáveis e determinar
utilizadas em diversos tipos de indústrias. Na a eficiência de um processo. Vários tipos de
indústria metalúrgica, um torneiro mecânico, checklist têm sido propostos para utilização nas
por exemplo, utiliza diversos checklists no seu diversas fases de desenvolvimento de software
dia-a-dia. O procedimento de limpeza de um [1].
torno no início e término de seu turno é Serão apresentados os resultados de um
realizado por meio de uma seqüência de passos experimento com a utilização de checklist de
que devem ser executados, ou seja, um liberação para teste de software, realizados na
checklist. Ampla Consultoria em Informação, uma

1
empresa de desenvolvimento de sistemas de Segundo Fagan [3] o custo de correção
informação para Web. de defeitos em programas torna-se maior quanto
mais tarde eles forem encontrados, portanto
2. A necessidade de se utilizar um torna-se necessário fazer de tudo para encontrá-
checklist los o quanto antes no processo. Para evitar este
problema o uso de práticas de inspeções deve
ser adotado. Fagan [3] ainda ressalta que
Organizações de pequeno porte que
inspeções são métodos formais, eficientes e
desenvolvem projetos de software possuem um
econômicos de encontrar defeitos em projeto e
quadro de profissionais muito heterogêneo do
código.
ponto de vista da experiência. Tais organizações
precisam atender as expectativas de seus
O checklist é um artefato utilizado pelo
clientes com relação ao prazo, custo e
processo. Ele pode atender a práticas genéricas
qualidade. Como resolver o problema da
do Capability Maturity Model Integration for
produtividade e qualidade quando se trabalha
Development 1.2 [4], Collect Improvement
com profissionais pouco experientes?
Information, na medida em que os dados por ele
Empresas desenvolvem frameworks de
coletados podem ser utilizados para avaliação
construção de software como forma de
de um produto gerado pelo processo.
padronizar e acelerar a criação de seus projetos.
Ao utilizar um framework um desenvolvedor
inexperiente toma contato com as boas práticas 3. O checklist
de desenvolvimento de software da empresa em
Uma versão do checklist foi desenvolvida e
que atua. Com o contato contínuo ele acaba
inserida no processo de desenvolvimento de
assimilando tais práticas e as utiliza mesmo em
software da Ampla em 1999. O novo artefato foi
projetos que não são baseados no framework.
inserido com o objetivo de melhorar o produto
Esta é uma ótima solução para a construção
liberado para teste. Conforme Hebert [5], isso
do software, mas será que o desenvolvedor
contribui para o aumento da cooperação entre
inexperiente integrou os módulos corretamente?
desenvolvedores e testadores. A Figura 1 exibe
Será que ele tomou o cuidado de verificar se a
os processos da fase de construção de software
rotina de alteração do cadastro de clientes
da empresa.
realmente altera os dados do cliente
selecionado? Será que ele verificou se foram
utilizados termos corretos do ponto de vista do
idioma utilizado? E a questão das barras de
rolagem nas aplicações Web? Será que ele
verificou a possibilidade de eliminá-las? Uma
coisa simples, mas que aumenta a usabilidade Figura 1 – Processos da fase de construção
da interface. Os processos de codificação e pré-teste
Um checklist de inspeção para liberação de (inspeção e testes básicos) são realizados pelo
versões para o teste atende a estas necessidades. desenvolvedor, ou seja, logo após a codificação
Na empresa onde o experimento foi realizado o de uma unidade sob sua responsabilidade, ele
checklist faz parte do processo de deve realizar o pré-teste da unidade antes de
desenvolvimento, ou seja, nenhum software é liberá-la para a equipe de teste, que executa os
liberado sem que o desenvolvedor tenha antes casos de testes criados de acordo com as
aplicado o checklist. especificações do projeto do software. Na
O checklist ajuda a produzir uma unidade com empresa, o processo de teste está baseado na
melhor qualidade na medida em que apóia o norma IEEE Std. 829-1998 [6], [7].
desenvolvedor na realização de inspeções e Entre 1999 e 2001 a maioria dos projetos
testes básicos. Wiegers [2] afirma que checklists desenvolvidos foram sistemas de informação
proporcionam um crivo de avaliação da baseados em interface não-Web e o checklist
qualidade pelo qual os artefatos devem passar espelhava esta característica. A partir de 2002 a
antes de serem aceitos como concluídos. empresa passou a desenvolver projetos apenas
Defeitos básicos que anteriormente eram para a plataforma Web. Assim, o checklist
detectados pela equipe de teste passaram a ser precisou refletir esta nova realidade, isto é,
detectados e eliminados mais cedo no processo. percebe-se que existe uma relação entre a
Desta forma a equipe de teste se concentra na estrutura do checklist e o tipo de software que
verificação da implementação das será inspecionado.
especificações do projeto de software.

2
O checklist deve ser construído de forma a parcial da seção de inspeção de usabilidade do
auxiliar na inspeção dos elementos tecnológicos checklist da Ampla Consultoria em Informação.
da aplicação sob inspeção ou teste. Se, por Outras características de software consideradas
exemplo, a usabilidade é fator fundamental nas importantes para o aumento da qualidade tais
aplicações desenvolvidas pela empresa o como segurança, padronização de termos,
checklist deve conter uma seção específica para utilização correta do idioma, operações de
tratar de questões relacionadas à usabilidade, banco de dados etc. também devem ser
tais como: idioma, utilização de termos consideradas.
técnicos, barra de rolagem, mensagens de
exceção etc. A Figura 2 mostra uma visão

Figura 2 – Visão parcial do checklist utilizado

Figura 3 - Visão parcial do checklist utilizado


também de executar o teste em mais de um
É importante também que o checklist inclua
perfil de usuário.
uma sessão de preparação do ambiente para sua
A Figura 3 mostra uma visão parcial da seção
execução. Isso aproximará o teste realizado pelo
do checklist que orienta o desenvolvedor a
desenvolvedor daquele que será realizado pela
realizar testes básicos de entrada de dados.
equipe de teste. Por exemplo, lembrá-lo de
testar uma versão compilada da aplicação, fora
do ambiente de desenvolvimento. Lembrá-lo

3
4. O experimento realizava testes baseados em sua experiência,
desenvolvida a partir do uso do checklist, e
Durante o período de treinamento na empresa, registrava os defeitos encontrados.
todos os novos contratados devem construir um
pequeno sistema de informação para a
plataforma Web utilizando o framework de
5. Análise dos resultados
desenvolvimento de software existente.
A Tabela 1 exibe os resultados do
Trata-se de um software para Internet, com
experimento realizado. A coluna “A” mostra a
uma arquitetura segundo o padrão Model-View-
quantidade de defeitos encontrados pelo
Controller (MVC) [8], contendo 150 pontos de
coordenador do projeto. A coluna “B” exibe a
função, acesso a uma base de dados relacional
quantidade de defeitos detectados pelo
padrão SQL e desenvolvido com tecnologia
desenvolvedor, sem uso do checklist. A coluna
.NET. O tempo de implementação variava entre
“C” exibe a quantidade de defeitos adicionais
uma e três semanas, dependendo das habilidades
detectados pelo desenvolvedor com uso do
do treinando. Em relação a este aspecto, apenas
checklist. A coluna “D” mostra quanto o
um entre os oito desenvolvedores envolvidos no
desenvolvedor conseguiu melhorar com o uso
experimento possuía alguma experiência como
do checklist. A coluna “E” exibe o desempenho
desenvolvedor, mas nunca havia trabalhado com
do desenvolvedor em relação ao coordenador.
um framework de desenvolvimento de software
No projeto 1, o coordenador encontrou 48
e nem com desenvolvimento baseado em MVC.
defeitos. O desenvolvedor encontrou 13, sem a
Com o objetivo de validar a eficiência de
utilização do checklist e 33 com o uso do
utilização de checklist para pré-teste de software
checklist. O uso do checklist melhorou em 72%
um experimento foi conduzido com oito
seu desempenho no teste e ele conseguiu 69%
desenvolvedores que passaram pelo treinamento
de eficiência em relação ao coordenador. A
da empresa.
Figura 4 mostra a distribuição dos defeitos
O experimento foi realizado na seguinte
encontrados nos oito projetos.
seqüência:
Sem o uso do checklist, as funcionalidades
1. Cada desenvolvedor foi orientado por um
implementadas seriam liberadas com muitos
profissional experiente que atuou como
defeitos básicos que poderiam impedir a
coordenador do projeto.
execução plena de todos os casos de testes pela
2. Todos os desenvolvedores receberam a
equipe de teste.
mesma especificação de projeto.
3. O prazo de desenvolvimento foi de três Consideram-se como defeitos básicos erros
semanas. ortográficos, problemas de layout e validações
4. Após o término do desenvolvimento todos de entrada de dados simples. Tais defeitos são
eram orientados a realizar inspeções e testes recorrentes por parte de desenvolvedores
na aplicação desenvolvida. Os defeitos inexperientes e o uso de um checklist aumenta a
encontrados foram registrados. possibilidade de eliminá-los. Esses tipos de
5. O coordenador fazia uma cópia do projeto defeitos básicos são independentes de
desenvolvido. especificações de requisitos, isto é, eles devem
6. O desenvolvedor em treinamento recebia ser considerados em qualquer tipo de sistemas
instruções sobre o uso do checklist. de informação desenvolvidos; são eles, portanto,
7. O desenvolvedor em treinamento realizava que devem ser o foco de um checklist.
novas inspeções e testes básicos no
software, desta vez utilizando o checklist A Tabela 2 compara a quantidade de defeitos
como roteiro. Este processo consumia, em encontrados na camada de interface dos projetos
média, dois dias. A quantidade de defeitos com o restante do software. Setenta e três por
encontrados pelo desenvolvedor foi cento (73%) dos defeitos detectados pelo
registrada. coordenador estavam localizados na camada de
8. Utilizando a cópia do projeto feita interface.
anteriormente (passo 5), o coordenador

4
Tabela 1 – Defeitos encontrados em cada projeto

100
90
80
70
60 sem checklist
Defeitos

50 com checklist
40 coordenador
30
20
10
0
1 2 3 4 5 6 7 8
Projetos

Figura 4 – Distribuição dos defeitos encontrados nos projetos

Tabela 2 – Comparação entre defeitos 6. Conclusões


encontrados na camada de interface e no
restante do software Com base nos resultados acima apresentados
pode-se concluir que:
• O checklist aumenta a capacidade de o
desenvolvedor inexperiente detectar
defeitos. No experimento realizado, a
capacidade de detectar defeitos foi
melhorada na ordem de 70% da capacidade
do coordenador.
• A relação entre o novo processo, que inclui
o checklist, e o processo anterior, sem o
checklist, não foi avaliada no experimento;
no entanto, não parece haver um aumento
no custo do processo de desenvolvimento
como um todo, uma vez que o checklist
ajuda a melhorar a qualidade do software
liberado para a equipe de testes. Os defeitos
encontrados na interface impediriam que a

5
equipe de teste executasse plenamente os 8. Referências
casos de testes, o que poderia causar atrasos
[1] Pressman, R. S. (2005), “Engenharia de
no projeto, aumentando seu custo..
Software”, Pearson, 5ª Edição.
• A eliminação de grande parte dos defeitos [2] Wiegers, K. E. (2003), “Software
existentes na interface das aplicações pode Requirements”, Microsoft Press, Second
colaborar com a equipe de teste no sentido Edition.
de liberar uma versão mais estável de [3] Fagan, M.E., Design and Code inspections
software. Problemas de interface dificultam to reduce errors in program development,
a execução dos casos de teste. 1976, IBM Systems Journal, Vol. 15, No 3,
Page 258-287.
• Não parece haver um aumento no custo do [4] Software Engineering Institute (2006),
processo de desenvolvimento uma vez que “Capability Maturity Model Integration for
o checklist é um artefato simples de ser Development”, Version 1.2.
utilizado e a quantidade de incidentes de [5] Hebert, J. S. (1999), “Aprimorando a
teste diminui, aumentando a produtividade Qualidade de Software através do Teste
da equipe de teste. No entanto este ponto Cooperativo”, X Conferência Internacional
merece mais investigações. de Tecnologia de Software (CITS), Curitiba.
• Existem evidências de que o checklist é um [6] IEEE Computer Society (1998), “IEEE Std.
instrumento de aprendizado para aqueles 829: Standard for Software Test
desenvolvedores que ainda não Documentation”.
desenvolveram suas habilidades para teste [7] Silva, O. J., Crespo, A. N., Salviano, C.,
de software. Ao entender como uma Borges, C. A., Jino, M. (2004), “Uma
aplicação será testada os desenvolvedores metodologia para teste de software no
passam a fazer uma “programação contexto de melhoria do processo”, III
defensiva”, pois passam a entender como o Simpósio Brasileiro de Qualidade de
teste será realizado. Software (SBQS), Brasília.
[8] Fowler, M., “GUI Architectures” (2006).
Uma limitação do estudo realizado é que os Disponível:
dados referem-se a um único experimento. http://www.martinfowler.com/eaaDev/uiArc
Outros experimentos devem ser realizados para hs.html. Acesso em 13 de abril de 2007.
confirmar as conclusões apresentadas e para
avaliar a efetividade da aplicação do checklist;
além disso, esses experimentos serviriam para
aprimorar as questões do checklist.

7. Agradecimentos
À equipe de desenvolvimento de software da
Ampla Consultoria em Informação pela sua
colaboração na realização deste experimento,
em especial a Flávio Fontes Nigra e Ana Paula
de Souza Dias.

View publication stats

Você também pode gostar