Métodos ágeis e testes de software
A modelagem ágil é uma realidade para as empresas que
necessitam de desenvolvimento eficiente. Os métodos ágeis estabelecem um
conjunto de práticas no desenvolvimento de software que está cada vez
mais se tornando habitual. Mas, diferente do que muitos pensam, não
existe um modelo predefinido ou um conjunto de regras a serem adotadas.
Fonte: Trueffelpix / shutterstock
Na
modelagem ágil, cada equipe, dentro de suas atribuições e de acordo com
as características dos projetos da empresa, adota uma forma ágil mais
adequada para atender suas demandas. Isto quer dizer que, em modelagem
ágil, apenas é mostrado o caminho, e a equipe adota as práticas mais
adequadas dentro do conceito ágil. Não há procedimentos ideais
preestabelecidos apenas princípios adotados a partir da necessidade
particular do negócio.
Segundo Highsmith e Cockburn (2001), a novidade nos modelos
ágeis não está nos métodos ágeis, mas no envolvimento de pessoas que
participam no sucesso do projeto e que estão focadas na capacidade de
gestão do negócio.
A modelagem ágil visa colocar em prática o conjunto de valores que o negócio já possui. Vamos imaginar um brainstorm
no qual todas as ideias são apresentadas e depois colocadas em uma
desafiadora sequência de ações e procedimentos. A modelagem ágil começa a
ser aplicada desta forma. Durante este processo é que definimos os
procedimentos relacionados aos testes de software.
Vamos voltar a um conceito antigo relacionado à lógica de
programação. Os mais experientes se lembram de que, muito antes de
começar a desenvolver um programa, o programador desenhava um diagrama
de fluxo de dados estruturado do sistema e somente depois começava a
programação em si. Estes profissionais mais experientes entendiam que,
se você soubesse passar por esta fase antes da programação, a linguagem
de programação seria apenas um detalhe. Assim, você poderia escolher
qualquer linguagem, pois a lógica de funcionamento seria a mesma. Na
modelagem ágil ocorre o mesmo: a linguagem é um detalhe que pode ser
pensado e adotado depois do entendimento dos requisitos que o software
precisa atender.
Em teste de software, encontramos a figura do testador, que
atua junto com a equipe de desenvolvimento estabelecendo técnicas ou
definindo conceitos que serão aplicados durante o desenvolvimento para
testar a integridade e validar os resultados.
De acordo com Nogueira (2016), uma equipe ágil reúne basicamente dois times:
- o time do cliente, que representa os que
estão do lado do negócio no projeto e tem a responsabilidade de escrever
histórias e funcionalidades que fornecem os requisitos que o time de
desenvolvimento utiliza para a criação do produto;
- o time de desenvolvimento, que reúne todos
os programadores, com papeis que variam conforme as necessidades do
projeto, responsáveis por transformar as histórias do time do cliente em
software.
Seguindo as práticas ágeis, esses dois times trabalham
próximos na maior parte do tempo e colaboram para que o resultado do
trabalho resulte em um produto que agregue valor para a organização.
Muitos times ágeis não possuem membros com a função de testadores.
Entretanto, o time de desenvolvimento precisa de alguém que ajude na
tarefa de escrever testes, verificar se as histórias estão de acordo com
os requisitos e automatizar os testes de regressão, que são essenciais
para que haja um feedback rápido e contínuo sobre a qualidade do produto sendo desenvolvido.
Assim, Nogueira (2016, s/p) define o testador ágil como
[...] aquele profissional que abraça as
mudanças, colabora com pessoas técnicas e de negócio e entende o
conceito de usar testes para documentar requisitos e guiar o
desenvolvimento. Esse profissional tende a ter bons conhecimentos
técnicos para colaborar com o time de desenvolvimento a automatizar os
testes e também para explorar o sistema à procura de comportamentos,
erros e problemas.
O testador não precisa ser um componente externo, pois,
dependendo das definições prévias das funções do time, ele poderá ser um
dos integrantes de dentro do time de desenvolvimento. Este testador
será um membro valioso e, como tal, participará ativamente no apoio para
as entregas consecutivas que ocorrem no método ágil de desenvolvimento.
“Equipes de
desenvolvimento ágil trabalham com testes automatizados. Ter agilidade e
não contar com as atividades específicas automatizadas não condiz com o
mundo real. O que aconteceria se todos os testes tivessem que ser
aplicados manualmente pela equipe a cada incremento de código? Acredito
que você saiba a resposta: desperdício de tempo, retrabalho e falta de
qualidade.”
Fonte: Vidal (2017, p. 220).
O Manifesto ágil (BECK et al., 2001, s/p, tradução nossa) diz que:
Estamos descobrindo maneiras melhores de
desenvolver software fazendo-o nós mesmos e ajudando outros a fazê-lo.
Através deste trabalho, passamos a valorizar:
- Indivíduos e interação entre eles, mais do que processos e ferramentas
- Software em funcionamento, mais do que documentação abrangente
- Colaboração com o cliente, mais do que negociação de contratos
- Responder a mudanças, mais do que seguir um plano
Seguindo os princípios ágeis, em intervalos regulares, o time
deve refletir sobre como se tornar mais eficaz e então refinar e
ajustar seu comportamento de acordo. Portanto, podemos perfeitamente
concluir que as condições ideais existentes que levam um negócio a
implantar o modelo ágil também são ideais para se implantar os testes de
software de forma muito eficiente.
Assim, o mesmo princípio de modelo ágil se aplica em teste de software: não
existe uma fórmula mágica padronizada e ideal, cada empresa, de acordo
com suas necessidades específicas, adotará o procedimento ideal. E se este modelo não existir, deve ser criado um que atenda as suas necessidades.
Desta forma, exposto o cenário em que os métodos ágeis se aplicam, podemos chegar à definição do que são os testes ágeis.
Nenhum comentário:
Postar um comentário