Primeiramente para entender Agile Testing temos que dar uma olhada no Manifesto Ágil
Em um grande resumo o manifesto coloca que temos entregas de valor em um curto espaço de tempo.
Muitas práticas são utilizadas por um time ágil referente a teste. Programadores utilizam TDD (Test Driven Development) para desenvolver código com uma maior qualidade. Com ele os programadores escrevem testes para um pequeno pedaço de uma funcionalidade no ciclo do TDD (falha na primeira vez, é refatorado até possuir o comportamento esperado. Sempre que é alterado ou melhorado passa por este processo).
Esta prática não é somente usada exclusivamente por equipes ágeis, mas como uma forma inteligente de pensar no design de software e agir de forma a prevenir os defeitos futuros.
Mas TDD não é teste. É uma maneira que temos de pensar no design do software e garantir que este, se alterado, continuará a funcionar. Se alguma inconsistência for encontrada frente a alguma modificação, facilmente com um conjunto de testes que asseguram o comportamento do software, podemos detectar e alterar/refatorar o ponto de inconsistência.
Alguns acham que TDD é aplicar Agile Testing, mas ele é muito mais que isso….
Times
Dentro de uma equipe ágil possuímos, basicamente, dois times:
Time do Cliente: todos que estão do lado do negócio no projeto (product owner, business experts, business analyts). Este time escreve histórias e funcionalidades que o time de desenvolvimento entrega.
Time de Desenvolvimento: todos que entregam código são parte integrante deste time, onde o papel de cada um por ser misto ou variado. Eles transformam todas as histórias do time do cliente em software.
Estes dois times trabalham próximos uma grande parte do tempo e se transformam em um único time com um objetivo em comum: entregar valor para a organização.
E o testador?
Falando do conceito de time para o Time do Cliente, os testadores são membros parciais do negócio, ajudando-os a descobrir requisitos e exemplos e também ajudando o time a expressar requisitos como testes.
Testadores também são parte do Time de Desenvolvimento advogando por qualidade à favor do cliente e ajudando o time a entregar o máximo de valor ao negócio.
Muitos times não possuem membros se intitulando testadores. Entretanto o time precisa de alguém que ajude o Time do Cliente a escrever histórias e características, a escrever testes para elas, garantir que elas estão atendendo as necessidades e, automatizar os testes de regressão (para termos um feedback rápido e contínuo sobre a qualidade/saúde do software).
O que é então Agile Testing?
Agile Testing é um conjunto de práticas, seguindo o Manifesto Ágil, que incorpora todas as técnicas de teste comumente utilizadas por profissionais de teste, tendo um grande foco em automação. A principal função é de criticar o produto, ou seja, constantemente garantir que o que está sendo especificado e desenvolvido realmente atende as necessidades do cliente e irá entregar valor ao negócio.
O que é um Testador Ágil?
Um Testador Ágil é 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.
Ele 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 a procura de comportamentos, testes e problemas.
Ser um testador ágil está ligado muito mais a atitude e comportamento do que conhecimento técnico. Ele olha para o produto como um todo, com uma visão de usuário e/ou cliente, que é o fator mais importante. Assim ele consegue tanto interrogar o Time do Cliente quanto a requisitos e funcionalidades como guiar o desenvolvimento, através de testes, exemplos e ferramentas, para que o Time de Desenvolvimento tenha também a visão do valor que cada um destes itens tem para o produto final.
Sobre o autor:
Embora vários títulos já exercidos no mercado (Arquiteto de Teste, Engenheiro de Teste, Analista de Teste) Elias Nogueira é essencialmente um testador: alguém com uma grande curiosidade de como o software comporta através de diversas situações/contextos.
É consultor e instrutor em qualidade de software, blogueiro e palestrante já tendo trabalhado nas mais diferentes segmentos como bancos, telecos, governo, varejo, qualidade de dado e geoprocessamento. Elias também é instrutor associado na Adaptworks no curso de Agile Testing.
Acredita que a qualidade do software é dever de todos e, quando há um papel especifico para isso, que este deve saber sobre os dois mundos do desenvolvimento de software: técnico e negócio.
Bem sucinto, mas completamente inteligível. De uma maneira mais ampla aborda o papel de um testador suas principais resposabilidades e conhecimentos prévios, bem como sua interação entre as equipes. Parabéns Elias, concordo contigo. PS: Vc é blogueiro e não “bogueiro” 😉
Bacana, Elias.
Muito esclarecedor.
Abraços.
Muito bom o texto!
Instigou a curiosidade e “deixou um gosto de quero mais”.
E concordo contigo, qualidade de software é dever de todos.
Entendi – agile teste são ferramentas utilizadas para trabalhar de maneira mais eficiente, porém ainda “não é um conceito” Rex Black(ISTQB) não introduziu ou desenvolveu um conceito para teste ágil ou agile testing. Trabalho com teste de software há muito tempo e vejo muita pessoas falando no assunto sem almenos conhecer. parabéns pela sua explicação Elias é esclarecedor realmente.