Benefícios da Implantação de uma Equipe de Teste de Software em uma
Empresa Desenvolvimento
Benefits of Implantation a Software Test Team in a Business Development
Beneficios de laImplementación de un equipo de prueba de
softwareenunDesarrollo de Negocio
Edivânia Melo de Moraes¹
Elisangela Pimenta da Silva²
Fabrício Pires Vasconcellos³
Resumo: O processo de desenvolvimento de software tem se mostrado a cada dia mais dependente
da equipe de teste. Na engenharia de software, bem como nas melhores práticas de mercado, um
ponto fundamental para se alcançar a qualidade nos produtos dependede um bom processo de
testes.Neste artigo pretende-se mostrar que uma empresa que tem uma equipe de teste de software
pode agregar diversos benefícios e valores aos seus produto, bem como a garantia de uma melhor
qualidadecom a diminuição do índice de falhas através de testes concisos e completos.
Palavras-chave:Teste de Software, Engenharia de Software, Qualidade.
Abstract:The process of software development has proven increasingly dependent on the test team.
In the software engineering, as well in the best business practices, an important point to achieve the
quality in the products depends on a good test process. In this article intend to show that a company
than has a team of software test can add many benefits and values to their products as well as the
guarantee of a better quality with decreasing failure rate through concise and thorough tests.
Keywords:SoftwareTesting, SoftwareEngineering, Quality.
Resumen:El proceso de desarrollo de software ha demostrado ser cada vez más dependientes del
equipo de pruebas. En la ingeniería de software, así como en las mejores prácticas de negocios, un
punto importante para lograr la calidad de los productos depende de un buen proceso de prueba. En
este artículo tiene la intención de demostrar que una empresa que cuenta con un equipo de prueba
de softwarepueden agregar muchas ventajas y valores para sus productos, así como la garantía de
una mejor calidad al disminuir la tasa de fallos a través de pruebas concisas y minuciosas.
Palavras clave:Pruebas de Software, Ingeniería de Software, de la Calidad.
1 - Introdução
Atualmente as empresas de desenvolvimento de software estão mais
preocupadas com a qualidade de seus produtos. São inúmeros softwares sendo
desenvolvidos e, muitas vezes, são liberados para os clientes com falhas que podem
afetar no desempenho, na qualidade e na segurança causando com isso, perda de
clientes e prejuízo financeiro e, pior ainda a não aceitação da empresa no mercado.
As empresas estão focando em atender de forma satisfatória as exigências
dos clientes, devido ao prazo determinado e a alta demanda os desenvolvedores
possuem pouco tempo para se dedicarem aos testes das aplicações, com isso
entregam softwares com pouca qualidade e ainda com erros, o que causa a
[Digite texto]
Revista Pensar Tecnologia, v. 3, n. 2, jul. 2014
insatisfação e perda de clientes pelas empresas, apontando que os testes feitos
pelos desenvolvedores não eram suficientes para detectar os defeitos e falhas
destes softwares.Assim sendo, para que estes defeitos sejam reduzidos, detectouse a necessidade de formação de uma equipe dedicada somente para testes e
validação das aplicações, com foco e habilidades para diminui-los ou erradicá-los.
Com a busca de melhores práticas nos processos de desenvolvimento de
software o mercado propõe dois principais modelos utilizados para melhoria de
qualidade que são o Capability Maturity Model Integration (CMMI) e a Melhoria de
processo do Software Brasileiro (mps.BR), que também podem ajudar na fase de
solução dos testes.
Segundo Bastos et al. (2012), testar aplicações não é uma tarefa simples e
requer um profundo conhecimento de suas técnicas. Para o autor, nem sempre
estas técnicas estão disponíveis para os desenvolvedores ou usuários. Com isso as
organizações de desenvolvimento de software precisam de pessoas especializadas
na função de Teste de Software. As empresas buscam esses profissionais
qualificados, principalmente os que têm mais conhecimento, certificações e
experiência em Teste de Software para seu quadro, na busca de maior qualidade
em seus produtos.Para que os softwares sejam testados com mais exatidão e de
acordo com os requisitos e documentação dos usuários, nesse artigo serão
apresentados os principais tipos de testes que as empresas de desenvolvimento
utilizam em seus processos.
O presente trabalho busca responder quais são os benefícios de se implantar
uma equipe Teste de Software em uma empresa de desenvolvimento. Conhecer
estes benefícios é essencial porque permite uma visão clara dos mesmos e
processos de teste de software e está informação poderá subsidiar decisões e
caminhos para organizações que buscam a qualidade de seus produtos.
Objetivo principal desse trabalho é descrever os benefícios de teste de
software em uma organização. Em seguida irá verificar por meio de um estudo de
caso se os benefícios apontados pela teoria podem ser aplicados em uma empresa
de implantação com uma equipe de teste de software.
2 - Teste de Software
Entre a década de 70 e 90 os testes de software eram efetuados pelos
próprios desenvolvedores e quando disponibilizados em produção eram testados
pelos próprios usuários. Devido essas dificuldades as aplicações não tinham
qualidade, causando um enorme prejuízo para as empresas,não era possível
detectar todos os defeitos e nem controlá-los. Com a falta de documentação e
requisitos os softwares eram testados de uma forma aleatória, ou seja, nem todas as
funcionalidades eram testadas corretamente (BASTOS et al. 2012).
Com a mesma ideia de Rios e Moreira (2013),os autores Bastos et al.(2012),
citam que foi preciso ter uma equipe destinado somente para testar softwares. Essa
equipe é composta por profissionais que tem a função de testadores, analistas e
arquitetos, para garantir a qualidade das aplicações de uma maneira planejada,
controlada e organizada é determinar se, a aplicação alcançou os resultados
esperados. Esses testes podem ser realizados a qualquer momento, ou seja, na
fase em desenvolvimento ou já desenvolvido.
Os softwares são testados constantemente com a finalidade de encontrar
falhas e ter a melhor qualidade, para que os resultados sejam alcançados de acordo
com os requisitos do cliente.Como afirma Rios e Moreira (2013), quando novas
versões são disponibilizadas pelos desenvolvedores é importante que comuniquem
a equipe de teste, para que o mesmo fique ciente das atualizações e que também
realizem novamente os testes, esse é o principal objetivo dos testadores. É
fundamental a qualidade do software quando este é disponibilizado em produção,
por isso é preciso testar e avaliar todo o comportamento do software baseado nos
requisitos e nas especificações.
Existem técnicas que servem como verificação e validação, e que, baseadas
nas especificações e reuniões, servem para identificar falhas na elaboração dos
testes e também a coerência destes com o resultado que sequer obter a partir de
funcionalidade executada. Antes da execução dos testes é importante ter elaborado
casos de teste de acordo com os requisitos,seguindo essas técnicas juntamente
com os desenvolvedores é possível, que a qualidade tenha sucesso e que os
clientes fiquem satisfeitos com os resultados finais dos softwares(MOLINARI, 2008).
Como podemos ver, as atividades de verificação e validação estão
distribuídas nas diversas etapas do processo de testes e, de uma maneira
genérica, a verificação é executada antes da validação. Ou seja, verificamos
a construção e validamos o software. (BASTOS et al.,2012, p.31).
Bastos et al.(2012), ressaltam que os usuários perceberam que seus sistemas
não tinham qualidade porque não eram testados corretamente. As aplicações
demoravam a chegar até o desenvolvimento final, visto que,os desenvolveres tinham
retrabalho ao testar e, corrigir os defeitos. Com o surgimento de novas tecnologias
os sistemas foram ficando cada vez mais difíceis de controlar, então era preciso ter
um processo para que, a qualidade do software pudesse melhorar.
Neste
cenário
foi preciso
obter um
processo
onde
teria
pessoas
especializadas e dedicada somente a testar software. Os testes começaram a ser
realizados por uma nova equipe onde a mesma teria artefatos e dados o suficiente
para realizar todos os testes e diminuir os prejuízos. Com processos e uma equipe
de testes de software os desenvolvedores não se preocupavam em testar as suas
aplicações. Com o tempo as empresas foram adotando esse processo de teste e
cada uma foi realizando as atividades e atendendo o cliente conforme requisitos prédefinidos. Com o sucesso das aplicações que eram entregues com mais qualidade e
segurança as empresas passaram adotar estes métodos e com isso obtiveram uma
redução de custos na manutenção dos softwares(BASTOSet al. 2012).
3 - Processo de teste
3.1 O surgimento do processo de teste
Com a necessidade de softwares cada vez mais complexos para atender, às
demandas do mercado, os clientes passaram a exigir uma maior qualidade em seus
produtos. A ocorrência de erros no produto final tornou-se inaceitável, com isso a
existência de um processo de testes de softwares bem estruturado e organizado
tornou-se requisito básico para se atingir estes objetivos de qualidade.
O objetivo de um processo de teste, com metodologia própria, é minimizar
os riscos causados por defeitos provenientes do processo de
desenvolvimento. Nessa nova situação, os testes passar a ser executados
por especialistas treinados para isso, e não mais por um analista de
sistemas que seja obrigado, muitas vezes contra a sua vontade, a executar
essa atividade.(BASTOS et al.,2012, p.17).
A representação do processo de testes é de etapas, atividades, artefatos,
papéis e responsabilidades, que é a padronização dos serviços, ampliados e
controlados. O processo de teste existe para aumentar os conhecimentos dos
profissionais e que eles tenham uma visibilidade e conhecimento maior dos projetos.
Com ele os resultados serão mais eficazes e controlados dentro do processo de
teste (BASTOS et al. 2012).
O principal objetivo do processo de teste é reduzir ou erradicar os erros
apresentados nos softwares.Para que, isso seja possível à documentação deve ser
criada com as melhores técnicas e ser objetiva como descrevendo todas as
funcionalidades e garantindo o atendimento conforme aos requisitos especificado
pelos usuários. É fundamental ter uma equipe de pessoas treinadas e qualificadas
para executar os testes e também apta para desempenhar seus papéis com
qualidade(BASTOS et al. 2012).
A equipe de testes faz os testes de softwares de acordo com o requisito
identificado na documentação que foi previamente construído junto ao cliente, são
testados níveis robustos da aplicação para atender o que foi solicitado pelo cliente. É
extremamente importante que os testes sejam executados juntamente com o
Processo de Desenvolvimento do Software, ou seja, desde o início do ciclo de vida
do software. É preciso estabelecer um padrão e segui-lo para que, o sistema tenha
qualidade e conformidade. Ter softwares com mais desempenho, é seguir requisitos
funcionais e as documentações(BASTOS et al. 2012).
Existem vários artefatos e tipos de testes que podem ser utilizados pela
equipe de testes durante o processo, porém é essencial ter toda uma documentação
com as especificações atualizadas. Para isto é primordial que se realizem reuniões
juntamente com a participação de todos os interessados no projeto como: gerentes,
desenvolvedores, clientes e usuários finais. Com todas essas atividades executadas
o sistema desenvolvido terá mais robustez e melhor qualidade, agregando maiores
valores ao negócio da instituição que utilizará aplicação em questão (BASTOS et al.
2012).
Segundo Rios e Moreira (apud Jones, 1986e Boehm, 1987, p. 5), 44% do
esforço de um projeto são dedicados ao retrabalho, o desafio é reduzi-lo, pois
impacta diretamente no resultado dos clientes, tornando os custos bem maiores.
Visto que, é importante identificar e corrigir os defeitos o mais cedo possível, para
que esse retrabalho seja evitado ou na pior hipótese minimizado.
Para que, se alcance sucesso é o resultado final do software seja satisfatório
é necessário realizar testes dentro das melhores práticas, o que pode contribuir na
melhoria da qualidade dos mesmos. Com a mesma ideia de Rios e Moreira (apud
Jones, 1986 e Boehm, 1987, p. 5) os autores Rios (2013) e Filho (2013) citam que é
importante diminuir o retrabalho, nos estágios posteriores de testes, durante a
implantação e na manutenção, ou seja, tais ações são de melhoria de qualidade.
3.2 Ciclo de vida do processo de teste
Segundo Bastos et al. (2012), os testes de software tem que ser realizados
desde o início do desenvolvimento das aplicações, com isso as empresas de
desenvolvimento terão mais lucros e qualidade em seus softwares.
O ciclo de vida consiste em uma série de etapas dependentes,
consideradas como o esqueleto do processo de teste, que visam estruturar
as atividades definindo como os testes serão conduzidos no projeto. (ELIZA;
LAGARES, 2012, p.70).
O ciclo de vida tem uma série de etapas que consiste em quatro principais
processos de teste: Planejar, Projetar, executar e entregar. Esses processos são
aplicados de acordo com a metodologia utilizada conforme a figura 1.
Figura 1. Ciclo de vida do Processo de Teste de Software
Fonte: ELIZA; LAGARES, 2012
Para essasetapas devem-se ter profissionais qualificados atividades e
documentos a criar. Para que, as empresas de desenvolvimento de software tenham
uma estimativa correta e com mais qualidade em seus softwares e que os riscos
sejam minimizados é recomendável que sigam essas etapas do ciclo de vida do
processo de teste. As empresas ficam mais organizadas devido aos documentos
básicos e as metodologias que são aplicadas (ELIZA; LAGARES, 2012).
Em seguida descreve-se cada uma das etapas e seus respectivos artefatos
do ciclo de vida do Processo de Teste de Software:
a) Planejar: é a etapa inicial do processo de teste, ela consiste em criar os Planos
de Teste, que é um artefato essencial para definir os objetivos. E também podem
ser aplicados vários tipos de testes e elaborar Estratégia de Teste nessa etapa.
O planejamento pode fornecer entradas para próxima etapa do projeto que está
sendo testado (BASTOS et al. 2012).
b) Projetar: após o planejamento a próxima etapa é colocar em prática tudo que foi
especificado pelo cliente. O objetivo dessa etapa é elaborar Casos de Teste,
Roteiros de Teste, Massa de Teste e execução dos testes de verificação da
documentação do software. Devem ser criados ao decorrer dos projetos, ou
seja, eles serão elaborados à medida que os desenvolvedores disponibilizarem
versões ou partes dos sistemas para a realização dos testes (ELIZA; LAGARES,
2012).
c) Executar: o principal objetivo dessa etapa é colocar em prática o que foi
planejado e projetado, agora é o momento de executar os testes e registrar
defeitos, ou seja, registrar os erros e falhas encontrados no sistema. É
fundamental que tenha uma ferramenta apropriada para registrar esses defeitos,
durante a execução dos testes. Com isso possibilitará o registro dos problemas
encontrados, com as suas respectivas descrições e prioridades. Com os defeitos
evidenciados é possível ter o controle total do que está acontecendo, e do que
precisa ser melhorado no projeto.São também evidenciadas todas as mudanças
que ocorrem no software ao longo do seu desenvolvimento. É fundamental que
sejam registrados todos os resultados negativos e positivos que foram obtidos
durante a fase de testes da aplicação. A execução dos testes deve acontecer
toda vez que uma nova versão do aplicativo for disponibilizada, e cada
modificação que ocorrer, no ambiente que o suportam. Para que, a execução do
teste seja feita com sucesso é indispensável verificar se o ambiente está estável
e apropriado(ELIZA, LAGARES; BASTOSet al. 2012).
d) Entregar: após a equipe de testes executar todas as etapas descritas acima, os
testes são finalizados e o projeto é entregue para o cliente no ambiente de
produção. No processo da entrega dos testes é importante ter arquivado e
documentado tudo o que foi feito durante os testes. É essencial ter todos os
registro de defeitos encontrados e as melhorias aplicadas. Nessa etapa é
fundamental ter um sumário de Teste, ou seja, será possível visualizar e
apresentar todos os resultados dos testes para o cliente. Juntamente com
melhorias do processo, revisão e avaliação do projeto. Dessa forma os testes
dos projetos serão finalizados e entregues com sucesso (ELIZA; LAGARES,
2012).
No teste de software a validação e a verificação, são dependentes e
importantes. A verificação serve para certificar se o software que foi desenvolvido
está de acordo com os requisitos funcionais e não funcionais especificados. Tem
também como objetivo determinar se o que foi planejado está sendo realizado e se
os requisitos, as funcionalidades e as documentações foram implementadas
corretamente.
No
desenvolvimento
do
software
as atividades
devem
ser
implementadas conforme o cliente solicitou, de forma a ocorrerem falhas ou
inconsistências nos projetos. A validação verifica se o sistema está de acordo com
as expectativas e necessidades dos clientes, se a construção do software está
correta. Tem como objetivo determinar se o que está sendo entregue, atende as
expectativas do cliente(MOLINARI, 2008).
“Como podemos ver, as atividades de verificação e validação estão
distribuídas nas diversas etapas do processo de testes e, de uma maneira
genérica, a verificação é executada antes da validação.” (BASTOS et al.
2012, p.31).
É verificada a construção do software e validado após ser desenvolvido, para
que, o mesmo seja disponibilizado em produção, é preciso ser finalizado com
sucesso juntamente com a aprovação dos usuários ou clientes e de acordo com os
requisitos(MOLINARI, 2008).
4 - Tipos de testes de software
Existem vários tipos de testes que podem ser aplicados dependendo da
situaçãodo software, que ajudam a encontrar falhas na realização dos testes.
Novas técnicas de testes, ou melhor, tipos de testes vão surgir. Nada na
vida é estático, porém sempre alguma técnica será mais útil do que outra na
maioria dos ambientes, em especial no seu ambiente de teste. Vamos tratar
aqui de uma seleção geral dos principais tipos de teste de software. É fatorchave de sucesso no processo de testes que se tenha conhecimento básico
dos tipos de testes e como vamos aplicá-los. (Molinari, 2013, p.157)
A seguir serão apresentados os principais tipos de testes e seus objetivos:
Quadro 1 - Principais tipos de testes de software:
Tipos de testes
Teste de estresse
segundo Bastos et
al. (2012)
Descrição
Identifica se o software suporta grande
números de usuários conectados
simultaneamente. Verifica se o sistema
vai ser capaz de suportar volumes de
dados acima das médias esperadas,
sem afetar no seu desempenho e tempo
de resposta. Também é avaliado o
comportamento do software ao estar on-
(continua)
Objetivo
Testar aplicações em situações
inesperadas, sem causar falhas.
Quanto mais o sistema estiver
sobrecarregado para realização do
teste de estresse, mais rápido pode
levá-lo a falhar.Para que o mesmo
seja corrigido o mais rápido possível,
antes
que
o
software
seja
Teste de
integração
segundo Molinari
(2008)
Teste de
recuperação
(contingência)
segundo Bastos et
al. (2012)
Teste funcional
segundo Molinari
(2008)
Teste de regressão
segundo Bastos et
al. (2012)
Teste de
segurança
segundo Bastos et
al. (2012)
Teste de
desempenho
segundo Rios;
Moreira (2013)
line e com volumes grandes de entradas
de dados.
disponibilizado em produção.
Garante que as interfaces das
aplicações
distintas
funcionam
corretamente. É feita a verificação dos
requisitos funcionais, do desempenho e
da compatibilidade do software com a
utilização de outros recursos.
Verificar se a integração dos
softwares
de
um
ou
mais
componentes de dados estão em
correto funcionamento, ou seja,
aplicações diferentes sendo testadas
em conjunto.
Tem a finalidade de reiniciar operações
após uma falha ou perda de integridade
no sistema. O teste de recuperação
garante que o sistema continue em
funcionamento
mesmo
após
a
ocorrência de falhas.
Manter e armazenar com segurança
o backup dos dados em um local
seguro, mesmo após um desastre.
Documentar todos os procedimentos
de recuperação.
Tem a finalidade de testar se as
funcionalidades que estão descritas na
documentação
estão
funcionando
corretamente.
Garantir que as funcionalidades do
software desenvolvido estejam de
acordo
com
as
funções
implementadas incluindo as regras
de negócio.
Quando nova versão é disponibilizada é
feito o teste de regressão. Para garantir
o funcionamento correto do software
todas as funcionalidades são testadas
novamente. Conclui-se então que o
teste de regressão é um dos mais
importantes.
É para garantir a segurança e a
confiabilidade do software e garantir a
proteção contra acessos indevidos. Faz
com que não hajaacessosaos dados
sem que seja autorizados.
Mostrar
que
quando
houver
mudanças
no
software,
é
fundamentala realização de testes
exploratórios. Testar todas as
funcionalidades mesmo as que não
sofreram alterações.
Testa o desempenho, ou seja, verifica
se o software atende os níveis de
desempenho e tempo de resposta de
acordo com o esperado. Atendendo o
que foi definido nas especificações e
requisitos dos clientes.
Garantir
tempo
de
resposta
satisfatório de acordo com o que
suporte ao volume de dados e acerto
com o SLA() definido junto ao cliente.
O teste de desempenho também
pode ser chamado de teste de
performance.
Proteger informações sigilosas do
software.Os riscos são minimizados
e as empresas não correm perigo ao
desenvolver
softwares
para
seusclientes e sem comprometer a
sua segurança.
Quadro 1 - Principais tipos de testes de software:
Teste de
verificação de
versão segundo
Molinari (2008)
Teste de carga
segundo Rios
Moreira (2013)
Teste interconexão
segundo Bastos et
al. (2012)
Teste de
usabilidade
segundo Bastos et
al. (2012)
(conclusão)
Verifica se o software não tem
ocorrências de falhas, toda vez que uma
nova versão é disponibilizada pelo
desenvolvedor. Valida se a versão
liberada está de acordo com o
esperado.
Garantir a disponibilização de novas
funcionalidades.
O
teste
de
verificação de versão pode ser feito
ao decorrer do desenvolvimento do
software ou após terminá-lo.
Testa se aplicação suporta grande
volume
de
usuários
conectados
simultaneamente. É para validar e
avaliar qual o limite máximo de carga de
usuários e de entrada de dados no
software.
Objetivo é garantir que o software
não fique instável por causa do
enorme fluxo de dados e consultas
inseridas na aplicação. O teste de
carga garante que não ocorram
falhas e que tenha tempo de
resposta seja satisfatório.
Testa se os softwares e suas
funcionalidades podem se conectar com
outras
aplicações,
que
envolve
operação de vários sistemas internos
em teste. Para que os softwares
funcionem corretamente pode ser feita a
interconexão
através
de
dados
recebidos e fornecidos pelos usuários.
Objetivo é para garantir e verificar se
a transferência de dados entre
diversos softwares foram realizados
com
sucesso,
ou
seja,
a
interconexão dos sistemas do
mesmo tipo devem ser integrados
para que funcione corretamente.
É para verificar se o software possui
facilidade de entendimento e manuseio
para o os usuários ou clientes, que os
mesmos
podem
utilizá-los
sem
nenhuma dificuldade. Testa se a
interface do aplicativo é amigável.
Garantir suporte ao volume de dados
e tempo de resposta satisfatório de
acordo com o SLA(System Level
Agreement) previamente definido
junto ao cliente.
Fonte: Elaborado pelo autor.
Os tipos de testes aqui citados são primordiais para garantir a qualidade do
software. Cada tipo de teste tem como objetivo identificar falhas nas diferentes
etapas de desenvolvimento. A seguir será detalhado cada artefato e sua respectiva
aplicação durante o ciclo de vida do processo de teste no desenvolvimento do
software.
4.1 Artefatos de teste
Os artefatos de teste são produzidos durante ciclo de vida do processo de teste
e no desenvolvimento do software.São documentos que podem ser elaborados e
seguidos,ajudam descrever a função dos testes como na execução e elaboração
das especificações e dos requisitos de acordo solicitado pelo cliente.Estes artefatos
podem ser manuais, arquivos executáveis e geração de relatórios que contém a
realização das verificações dos resultados alcançados, para certificar que os
mesmos estão de acordo com o que foi especificado. O quadro 2 irá descrever os
tipos de artefatos com suas respectivas descrições:
Quadro 2 – Artefatos de teste:
Artefatos
Plano de teste
Massa de Teste
Casos de testes
Roteiro de Teste
Registro de
defeitos
Resultado de
Teste
Sumário de Teste
Descrição
É um documento que contém definição de todo processo, ajuda a monitorar as
atividades dos testes. Tem como finalidade documentar o processo da empresa
e de fornecer uma visão geral e detalhada do projeto. Objetivo do plano de teste
é garantir que todas as funcionalidades serão testadas e documentadas. O
plano de teste representa o planejamento incluindo recursos, estratégias,
cronogramas das atividades do processo de teste. Possibilitando a equipe de
teste ter uma visão geral dos resultados alcançados para estabelecer e definir o
projeto de acordo com as necessidades apontadas pelo cliente.
É um conjunto de dados consolidados a partir da base de dados, através de
consultas com a utilização de scripts. A equipe de teste utiliza esses dados na
execução dos testes conforme descrito na especificação.
É um documento onde será descrito o passo a passo da execução dos testes e
para facilitar por onde a equipe iniciará os testes. Assim será possível a
identificação de erros no software. Possibilitando todo o controle das
funcionalidades que foram testadas contendo os resultados esperados. Se um
caso de teste for executado, e no mesmo foi identificado falhas é possível
vincular os erros depois de registrado em outra ferramenta, anexando aquele
determinado caso de teste. A equipe de teste garante que os requisitos do
software que foi implementado sejam atendidos conforme solicitado pelo
usuário.
Objetivo dos casos de teste é a base para que os testadores possam executar
os testes e cobrir o máximo de situações inesperadas possíveis.
A equipe de teste terá o controle e registros de tudo o que está acontecendo
durante a execução dos testes.
É um documento que contém passos necessários para execução de um ou mais
casos de teste, ou seja, é um documento de nível mais alto que os casos de
testes e que também pode ser elaborado através de especificação juntamente
com o caso de uso. O roteiro de teste é essencial na execução dos testes, pois
ajuda o testador realizar testes mais corretos do sistema. É fundamental
elaborar um roteiro de teste para cada especificação, e cada caso de uso deve
conter roteiro de teste com os seus resultados, para que os testadores fiquem
cientes dos resultados obtidos.
Registro de bugs é uma ferramenta que evidência os bugs, ou seja, ao encontrar
erros nos softwares os mesmos são gravados em forma de vídeos ou prints de
tela. Essa ferramenta é fundamental para ter o controle e detalhamento dos
defeitos, erros ou falhas durante a execução dos testes no software. Ao
registraros bugs na ferramenta o mesmo é encaminhado para o
desenvolvimento ou para uma equipe responsável que ficará ciente dos erros no
software desenvolvido, para que sejam corrigidos. Depois que a equipe
responsável solucionar todos os erros a mesma deve evidenciá-los, e em
seguida devolver o bug a equipe de testes, para que seja verificado se os erros
foram corrigidos. Com o registro de bugs ocliente terá os resultados obtidos com
mais transparência e de acordo com o que ele requisitou.
Este artefato é a apresentação dos resultados obtidos durante a execução dos
testes e cada evolução do ciclo de desenvolvimento do software.
O sumário de teste organiza e apresenta uma análise resumida dos Resultados
de testese as suas principais medidas para revisão e avaliação. Geralmente são
executadas pelos principais envolvidos na questão de qualidade. O sumário de
teste normalmente finaliza os testes.
Fonte: Adaptado de ELIZA; LAGARES, 2012.
Estes artefatos compõem o ciclo de vida do processo de teste, estes são
adaptados por cada organização a fim de atender as suas necessidades e auxiliam
no processo de desenvolvimento para se obter resultados positivos.
5- Estudo de caso
O avanço tecnológico das últimas décadas levou a empresa (A) a ter
necessidade de desenvolver um sistema de gestão hospitalar com a finalidade de
gerenciar redes de hospitais a qual é administradora. Em princípio, o software era só
um prontuário eletrônico para armazenar dados do paciente e histórico de
atendimento. Esses dados ficam armazenados em um servidor onde outra unidade
da rede hospitalar acessava via endereço de rede e os usuários conseguiram
visualizar os dados e históricos do paciente, caso ele fosse encaminhado a outro
hospital da mesma rede. Com a integração do sistema ocorreu grandes ganhos
qualitativos nos programas que passaram a facilitar e agilizar todo atendimento do
paciente desde sua entrada na unidade, como fazer a ficha, até ao acesso do
prontuário eletrônico, e a visão do histórico do paciente.
Com o tempo, os diretores de cada hospital perceberam a importância e a
necessidade de todos os hospitais fazerem parte da mesma rede para oferecer um
melhor atendimento e acompanhamento, mais concreto de seus pacientes. Mesmo
tendo só a parte de prontuário eletrônico funcionando, os responsáveis de cada
unidade da rede começaram a questionar porque não desenvolver um sistema
integrado que atendesse todo processo de um hospital, desde uma simples abertura
de chamado para manutenção até as tarefas mais complexas da medicina. Seria um
sistema que controlaria toda rotina de um hospital. E que pudesse gerar relatórios
gerenciais, fazer estatística, entre outras funções.
Diante deste cenário a equipe de desenvolvimento passou a estudar todo o
processo e a rotina de um hospital para desenvolver o sistema. O cenário se pôs
complexo, pois deveria atender vários hospitais com características diferentes e
necessidades particulares de cada um deles. Com isso, o sistema deixava de ser um
simples prontuário eletrônico, e passava a ser um software complexo.
Existiam também outras dificuldades para dar continuidade no desenvolvimento
do software: falta de ambiente adequado e profissionais qualificados para testar o
software. O próprio desenvolvedor era quem testava a aplicação que ele desenvolvia
e, sem conhecimento profundo em testes de software, às aplicações eram liberadas
para o uso com falhas e defeitos, o que gerava muitas reclamações dos hospitais.
Daí a necessidade de se criar uma equipe de testes, que ficará responsável por
organizar, gerenciar, executar e acompanhar todo o processo de testes. Para que
isto fosse possível, a equipe de testes deveria participar desde os primeiros
levantamentos dos requisitos para o sistema, seu desenvolvimento, homologação
até a entrega final do sistema em produção. No início definiu-se a participação de
um gerente de projeto com o objetivo de auxiliar nesse processo de adaptação, este
gerente ficou responsável por montar a equipe de testes que começou a funcionar
com poucos membros, conforme listado no quadro abaixo:
Quadro 3 – Equipe de testes:
Quantidade
Cargo
1
Gerente de Teste
1
Líder de Teste
1
Analista de Teste
2
Testadores
Função
Responsável por atender as necessidades do projeto, das
tarefas, do time e dos indivíduos, auxiliar na composição da
equipe de testes.
Responsável pela organização dos testes é ele quem estima os
esforços, os recursos e o tempo de teste. É também quem cria e
mantém o Plano de Teste e atribui as tarefas para os demais
membros da equipe.
Responsável por elaborar casos de teste que serão executados
pelo testador.
Responsáveis por homologar e testar as funcionalidades do
aplicativo. É o profissional que tem a responsabilidade principal
de executar os testes planejados pelo Analista de testes e
também de registrar os erros encontrados.
Fonte: Adaptado de ELIZA; LAGARES, 2012.
Coma definição clara de papéis e a autonomia da equipe de testes,organização
permitiu-se então que a equipe foque mais em suas tarefas e com isso não perca
em nenhum âmbito qualitativo e quantitativo. Isso significa ter um produto de
qualidade e com maior garantia de venda dentro do mercado. Para a empresa o
processo de teste tornou-se de certa forma vital e indispensável, pois, não só serviu
para definir metas a se cumprir, mas também melhorar a qualidade do software que
estava sendo desenvolvido. A elaboração e revisão do plano de teste passaram a
ser acompanhado pelo gerente de projeto que projetou um cronograma para estimar
o esforço gasto para executar cada tarefa, desde o desenvolvimento até o processo
de teste e a entrega do produto final.
Documentar esse processo de teste de software tornou-se essencial para
garantir que os novos sistemas criados estivessem de acordo com o que foi
solicitado pelo cliente e garantisse de fato que o software atendesse todos os
requisitos especificados pelas novas demandas que surgiam a todo o momento no
mercado.
A documentação desse processo de teste serviu com base de conhecimentos e
organização permitiu a criar uma rotina que prioriza as tarefas em testes de mais
urgência, registrando assim com maior velocidade exatidão falhas e defeitos
encontrados, o que reduziu de forma significativa todo o processo de correção. Além
da melhoria nas tarefas que cada profissional executava, a qualidade do software
também melhorou substancialmente, pois o processo rigoroso de testes aumentou
sua qualidade, diminuindo o índice de falhas, que eram as principais queixas dos
clientes.
Sem dúvidas um dos principais benefícios da implantação do processo de teste
foi à redução de custos com o retrabalho, pois se torna mais caro corrigir as falhas
durante o processo de operação que durante o seu desenvolvimento. O processo
que passou a ser feito com um rigoroso acompanhamento levou à redução de falhas
e defeitos que eram antes da implantação da equipe de testes detectados somente
em produção pelo o usuário final.
Os testes são uma das etapas mais importante durante o desenvolvimento do
software, pois é nos testes que se encontram a maioria das falhas que determinam
todo o processo de desempenho do software. Nesta fase é mais fácil corrigir esses
bugs encontrados por testador que por cliente em produção, essas falhas que
aparecem no sistema em produção podem causar prejuízo e danos irreparáveis para
os clientes. As empresas vêm adotando cada vez mais o processo de teste, em seu
ambiente de desenvolvimento, para garantir a qualidade do produto que está sendo
entregue ao cliente.
6 - Considerações e discussões
O principal objetivo da implantação da equipe de teste na empresa (A) é
garantir a qualidade no desenvolvimento do software e reduzir custo com retrabalho
de tornar a melhorar o nível de qualidade do produto entregue ao cliente.
A empresa (A) percebeu a importância de secriar uma equipe de testes no seu
ambiente de desenvolvimento devido à quantidade de reclamações que recebia dos
clientes por causa de falhas e defeitos que eram encontrados pelos usuários no
sistema em produção. Para a empresa (A), a equipe de testes tornou-se parte
integrante do processo de desenvolvimento e hoje é primordial garantir softwares de
alta performance, excelente qualidade, sem falhas e o mais importante que atendem
as expectativas dos clientes.
Pensando na redução de custo e melhorias no seu software a empresa (A)
implantou o processo de teste no seu ambiente de desenvolvimento que pudesse
testar seu software nos mínimos detalhes possíveis para evitar retrabalho e entregar
o cliente um software com o menor índice de falhas possíveis.
A ideia de definir funções na empresa a cada funcionário e suas
responsabilidades permitiu que o funcionário focasse mais na tarefa que estava
desenvolvendo, e assim possibilitando a entrega do software no prazo acordado
com o cliente sem perder na qualidade do produto. A documentação do processo de
testes se mostrou um dos pontos positivos adotados pela empresa durante o
processo de testespois facilitou sobremaneira o desenvolvimento, as correções de
erros e também as funcionalidades que deveriam ser testadas com mais urgência.
Os benefícios alcançados com a implantação da equipe de teste foram muito
produtivos para a empresa A. Reduziu os custos com retrabalho e melhorou a
qualidade do software, atingindo um dos principais objetivos que a empresa buscava
para seu ambiente de desenvolvimento. A empresa conseguiu diminuir as
reclamações dos clientes, e a qualidade do produto melhorou consideravelmente de
forma geral. Segundo (Bastos et al. 2012), para ter um sistema de qualidade é
preciso que desenvolvedor e testador trabalhem juntos para conseguir o resultado
esperado.
Na empresa (A) essa prática adotada em seu processo de desenvolvimento
facilitou a comunicação entre desenvolvedor e testador. Todos passaram a trabalhar
em sintonia, e com um processo de comunicação formal e eficiente. Isso fez com
que as falhas e defeitos fossem corrigidos durante o desenvolvimento, evitando que
fossem liberadas para o cliente, causando insatisfação e descrédito em relação ao
produto.
Além de todos esses benefícios, que a empresa conquistou com a implantação
do processo de testes, os desenvolvedores também obtiveram vantagens com os
mesmos, pois passaram a fazer apenas suas tarefas de desenvolvimento e teste de
unidade. A equipe de testes assumiu os testes funcionais de integração e de
sistema, melhorando a produtividade de toda a equipe e profissionalizando o
trabalho de desenvolvimento.
7 - Conclusão
O presente trabalho apresentou os principais conceitos relacionados aos
processos de testes de software, bem como os benefícios da implantação desta
equipe apontada pelo teórico. Confrontando com a experiência da empresa (A),
onde o principal objetivo era implantar uma equipe de teste no seu ambiente de
desenvolvimento e garantir que o sistema tivesse um nível de qualidade e
segurança, foi possível observar que os apontamentos teóricos são válidos.
Foi possível trabalhar a pesquisa proposta, respondendo o questionamento
proposto e atingindo os objetivos com a metodologia do estudo bibliográfico em
conjunto com o estudo de caso. Assim entende-se que o artigo atingiu o que se
propôs, podendo se pensar em trabalhos futuros, como a verificação de indicadores
de qualidade implantados, a análise dos pontos gargalo existentes nos processos de
desenvolvimento, bem como a proposta de um modelo de implantação de equipe de
testes de software para empresas de pequeno porte.
Os pontos lições aprendidas na elaboração da pesquisa podem se resumir á
falta de estrutura do objeto pesquisado, no caso a empresa (A), que só conseguiu
documentar o projeto de implantação da equipe de testes quando dos
levantamentos e entrevistas realizados para a construção deste trabalho.
Referências
BASTOS, Anderson; RIOS, Emerson; CRISTALLI, Ricardo; MOREIRA, Trayahú.
Base de conhecimento em teste de software. São Paulo. 1ª edição. Editora
Martins fontes. 2012.
ELISA, Renata; LAGARES Vivian. Processo de Teste de Software. Revista Java
Magazine, Belo Horizonte, ano IX, edição 101, p. 70-74, 2012.
MOLINARI, Leonardo. Teste de Software Produzindo Sistemas melhores e mais
confiáveis. São Paulo. 4ª edição. 12 ª Reimpressão. Editora Érica. 2008.
RIOS, Emerson; MOREIRA, Trayahú. Teste de Software. Rio de Janeiro. 3ª edição
revisada e ampliada. Editora Alta Books. 2013.
PMBOK Guide 5a edição – Seção 1.7 – O papel do Gerente de Projeto.
Download

Benefícios da Implantação de uma Equipe de Teste de Software em