Livros recomendados #1: Agile Testing – A Practical Guide for Testers and Agile Teams

Estou começando com esse post, uma série de posts que vão falar sobre a livros técnicos que no meu ponto de vista influenciaram muito no meu conhecimento. Nesta série estão previstos vários livros além deste, como Lessons Learned in Software Testing, Specification by Example, Continuous Delivery: Reliable Software Releases Through Build, Test, and Deployment Automation , The Art of Software Testing, Exploratory Software Testing, Test Driven Development: By Example, Pragmatic Software Testing: Becoming an Effective and Efficient Test Professional,  Handbook of Usability Testing, Capacity Planning for Web Performance: Metrics, Models, and Methods entre vários outros livros importantes para quem trabalha com teste de software.

Essa série de posts é uma forma de ajudar a popularizar a leitura técnica entre os testadores do Brasil, visto que muitas vezes não lemos tantos livros técnicos quanto developers ou project managers por exemplo, o que acaba nos tornando muito dependentes das mesmas terminologias e conceitos distribuídos por uma ou outra certificação, em muitos casos, estando em desacordo com as novas tendências ou com aplicabilidade contestada pelo estado da arte, descrito nesses livros.

Outra motivação para esses posts, é demonstrar como estamos desatualizados em comparação com os livros internacionais no Brasil. Nossos principais livros ainda se baseiam inteiramente em modelos ultrapassados como cascata, modelo de desenvolvimento em V e documentação IEEE829, o que é extremamente prejudicial a qualidade dos nossos profissionais, visto que a maioria deles se atualiza por esses livros. Isso faz com que a maioria desses profissionais acabem optando por metodologias antigas em contramão ao mercado internacional, deixando de lado conceitos “mais recentes” como TDD, BDD, ATDD, Continuos Integration, xUnit Test Patterns, BDD, DDT, Continuous Integration entre vários outros, além de criar dependência de modelos tradicionais de desenvolvimento de software, comprometendo a adaptação desses profissionais em empresas com desenvolvimento ágil e enfraquecendo o profissional brasileiro no mercado exterior.

O primeiro livro da série é o “Agile Testing – A Practical Guide for Testers and Agile Teams” da Lisa Crispin e Janet Gregory, um clássico do teste de sotware no mundo inteiro, com a assinatura do Mike Cohn e publicado pela grande editora Addison Wesley.

Agile Testing - A Practical Guide for Testers and Agile Teams

O livro é relativamente novo, foi escrito em 2008 e aborda o tema “Agile Software Development” focando em times com ou sem testers, mas falando sobre o teste de software no contexto ágil. Em outras palavras, originalmente muitas pessoas acreditam que times ágeis não precisam de profissionais especialistas em teste de software, o que em muitos times não deixa de ser verdade, mas como visto no foreworks do próprio Mike Cohn e do Brian Marick e em relatos como o do Jonathan Rasmusson apresentado no primeiro capitulo, esses profissionais fazem uma diferença muito grande no time. De qualquer modo, o livro não discorda desse ponto de vista, mas várias vezes afirma que os profissionais de teste de software são essenciais para um melhor aproveitamento em projetos de desenvolvimento ágil.

Lisa Crispin

Sobre as Autoras:

Lisa Crispin é uma das mais respeitadas testers com várias publicações em importantes periódicos da IEEE, da Better Progrmming, da Methods and Tools entre outros, além de ser co-autora do livro também sobre testes ágeis intitulado Testing Extreme Programming também da Addison Wesley (2002) e ter participado no cap “Beautiful Testing as the Cornerstone of Business Success” do livro Beautiful Testing: Leading Professionals Reveal How They Improve Software. Lisa ainda é uma evangelista dos testes ágeis, participando abertamente de comunidades, redes sociais, fóruns, listas de discussão e com e-mail aberto para ajudar a quem pedir. Sem dúvidas uma atitude louvável de uma das pessoas mais importantes quando falamos de teste de software em nível global.

Janet Gregory

Janet Gregory é a fundadora da consultoria de processos ágeis e treinamento DragonFire, Inc. trabalha com testes ágeis desde 1998, implementando processos de teste de software em empresas de todos os tamanhos. Ela também se apresenta em vários seminários e conferencias sobre ágil e sobre teste de software, além de ser considerada a maior colaboradora da comunidade de testes ágeis da américa do norte. Assim como a Lisa, colabora em blogs, fóruns, listas e redes sociais. No ano passado ela participou do Bratestes da ALATS, inclusive ministrando um treinamento sobre automação em times ágeis.

O livro conta com a colaboração de diversos outros grandes nomes da comunidade ágil e com relatos várias ocasiões onde as autoras escrevem sobre suas experiências ou por meio de terceiros comentam alguns casos de sucesso.

A estrutura do livro é dividida da seguinte maneira:
A parte um (Part I – Introduction) contem dois capítulos:

  • 1 – What is Agile Testing, Anyway?
  • 2 – Ten Principles for Agile Testers

Esses capítulos falam basicamente sobre os princípios ágeis e sua ligação com o teste de software. Fala um pouco também sobre como é o impacto para times ágeis ao receber testadores e sobre a migração de um profissional de testes, habituado com modelos tradicionais (chamado no livro de waterfall) para processos ágeis e demonstra a forma como é realizado o teste em ambos os processos. De forma geral, é uma introdução sobre o conteúdo do livro, logo os assuntos abordados aqui serão detalhados em capítulos futuros. E claro, responde a pergunta “O que é um testador ágil”.

Notas pessoais: No capítulo um, as autoras ressaltam o problema vivido por muitos de nós, que é a extensão das atividades de desenvolvimento, que retira tempo da execução dos testes, e como o teste ágil pode mitigar esse problema.

Estes capítulos nos ajudam a entender de uma forma bem simples quem é o testador ágil e quais são os principais valores ou princípios que o guiam.

O primeiro capitulo está disponível na integra on-line: http://www.informit.com/articles/article.aspx?p=1316250

A Parte dois (Part II – Organizational Challenges) contém três capítulos:

  • 3 – Cultural Challenges
  • 4 – Team Logistics
  • 5 – Transitioning Typical Process

Aqui é onde são expostos de forma mais detalhadas os problemas culturais que as empresas enfrentam, tanto pelo preconceito ao ágil, quanto por dificuldades de adaptação, por fatores de mercado, etc., apresenta desafios e propostas de como superá-los e por fim uma proposta também sobre como migrar do tradicional ao ágil na visão das autoras.

Notas pessoais: No cap 3 as autoras descrevem muitos problemas que a cultura da empresa pode causar, desde o uso de hierarquias pesadas até o mindset tradicional dos QAs. Eu vejo muito esses dois problemas sendo relatados nas listas e fóruns de teste no Brasil. O principal problema é que temos esse mindset tão focado em ideias como Modelo V e Early Testing que acabamos esquecendo de conhecer e estudar novas abordagens.

A parte três (Part III – The Agile Testing Quadrants) contém seis capítulos:

  • 6 – The Purpose of Testing
  • 7 – Technology-Facing Tests that Support the Team
  • 8 – Business-Facing Tests that Support the Team
  • 9 – Toolkit for Business-Facing Tests that Support the Team
  • 10 – Business-Facing Tests that Critique the Product
  • 11 – Critiquing the Product Using Technology-Facing Tests
  • 12 – Summary of Testing Quadrants

Essa é a parte mais comentada deste livro e provavelmente o seu core de teste de software técnico. Os quadrantes do teste ágil brilhantemente descritos pelas autoras englobam um conjunto de testes divididos pelos quatro fatores influenciadores dos testes.

No quadro abaixo, é demonstrada a relação entre os testes de negócio e os testes técnicos e como cada um desses testes pode influenciar na avaliação do produto e no time. O quadro abaixo foi retirado do PDF que resume alguns capítulos, e embora esteja um pouco diferente do quatro de mesmo nome apresentado no capitulo 10 do livro, ainda mantem a ideia central que é demonstrar como esses testes são distribuídos em cada quadrante.

Agile Testing Quadrants - Fonte: Summary of Testing Quadrants

Resumo disponível pelas autoras: http://www.agiletester.ca/downloads/Chapter__9x_Quadrant_Summary_v3.pdf

A parte quatro (Part IV – Automation) é composta por dois capítulos:

  • 13 – Why We want to Automate Tests and What Holds Us Back
  • 14 – An Agile Test Automation Test Strategy

Esta parte foca em ajudar o leitor a entender como a automatização pode ajudar a melhorar a eficiência dos testes, quando e porque automatizar testes e como usar automação de testes em ciclos tão pequenos como são por exemplo as iterações e como definir estratégia de testes automatizados.

Essa parte foi muito bem dividida em um primeiro capitulo menor que é muito mais motivacional e informativo, descrevendo os motivos para se automatizar em projetos ágeis e os problemas que devemos superar, e um dos maiores capítulos do livro, que é puramente técnico descrevendo conceitos como integração continua, tipos/níveis de teste, como organizar testes automatizados e o conceito da pirâmide dos testes, que descreve a uma proporção interessante para a maioria dos projetos web entre os diferentes tipos de testes automatizados e manuais.

Como leitura complementar eu recomendo os posts:

  • http://jamescrisp.org/2011/05/30/automated-testing-and-the-test-pyramid/
  • http://watirmelon.com/2011/06/10/yet-another-software-testing-pyramid/
  • http://watirmelon.com/2012/01/31/introducing-the-software-testing-ice-cream-cone/
  • http://www.mountaingoatsoftware.com/blog/the-forgotten-layer-of-the-test-automation-pyramid

A parte cinco (Part V – An Iteration in the Life of a Tester) contem seis capítulos:

  • 15 – Tester Activities in Release or Theme Planning
  • 16 – Hit the Ground Running
  • 17 – Iteration kickoff
  • 18 – Coding and Testing
  • 19 – Wrap Up the Iteration
  • 20 – Successful Delivery

Agora o foco do livro passa a ser em um ciclo prático, mostrando quais são as atividades e decisões tomadas em uma iteração, do planejamento a entrega da iteração, focando em demonstrar como todo o conteúdo estudado até agora pode ser aplicado no dia a dia do tester.

Esse capitulo foca no processo aplicado no dia a dia de um agile tester, e sua leitura é extremamente recomendada para quem ainda não está familiarizado com agile de uma forma geral. Claro que o modelo de desenvolvimento ágil não é uma receita como outros processos baseados em waterfall, e por isso o que as autoras descrevem pode não ser inteiramente verdade (meu dia a dia por exemplo), mas sem dúvidas muitas das atividades descritas pelas autoras podem ser adaptadas e utilizadas no dia a dia de empresas de desenvolvimento ágil e mesmo em empresas que ainda praticam waterfall e suas variações.

Para uma segunda referência ver: Vida de um agile tester – Parte 1

Ultima parte (Part VI – Summary) contendo apenas o capítulo 21 – Key Success Factors, que é apresentado na forma de um motivador para quem está começando a usar ou pretende usar o modelo de desenvolvimento ágil. Este capitulo é indicado para quem não sabe por onde começar a leitura ou os estudos sobre Agile e testes ágeis. Ele apresenta um conjunto de sete fatores de sucesso no desenvolvimento e teste agil e apresenta um conjunto de conceitos que podem ajudar uma pessoa sem conhecimento em testes ágeis a iniciar os seus estudos.

O capitulo 21 está disponível na integra on-line: http://www.infoq.com/resource/articles/agile-testing-book-excerpt/en/resources/CrispinGregoryAgileTesting_Chp21.pdf;jsessionid=6DBCFDA082F25F3BC484C03FADA8F8C3

Como visto, é um livro completo, escrito por profissionais do mais alto nível e focado na prática, o que o torna leitura indispensável para profissionais que assumem o papel de agile tester em organizações que trabalham ou desejam trabalhar com testes ágeis.

A sinopse do livro bem como  os valores de compra podem ser encontrados no link abaixo (Recomendo):
http://www.amazon.com/Agile-Testing-Practical-Guide-Testers/dp/0321534468

Minha opinião sobre o livro:

Com este livro aprendi muito sobre a vida de um testador em uma empresa de desenvolvimento ágil. Claro que simplesmente ler o livro não o torna um testador ágil, assim como cursos e certificações também não, mas este livro fornece de uma forma totalmente diferenciada e bem completa, um conjunto de técnicas, conceitos e características que podem ser perseguidas durante o dia a dia na sua empresa para se tornar um ótimo agile tester. Além disso o livro é uma referência em agile mesmo para não QAs, é de fácil leitura, com exemplos e notas pessoais das autoras e de vários convidados o que torna o livro muito mais didático. Sem dúvidas um dos melhores e mais completos livros técnicos que eu já tive o prazer de ler.

O mindmap de todo o conteúdo acima pode ser baixado no link http://www.agiletester.ca/Download.html, assim como o review das autoras sobre o livro.

Siga as novidades do livro e das autoras:

Siga as autoras no Twitter:

Nota final: Eu poderia reescrever o livro detalhando cada pedaço dele e como ele me ajudou a enfrentara mudança de um tester para um agile tester, mas tentei manter sucinto e pequeno, focando no conteúdo de uma forma bem abstrata evitando cair em detalhes e pontualidades, para tornar esse review mais atrativo e imparcial. Também respeitei os direitos autorais, evitando copiar conteúdo sem autorização das autoras. Infelizmente a minha percepção e memória também são limitados, logo outros leitores podem discordar de alguns pontos aqui presentes ou acrescentar novas notas para completar ou destacar pontos importantes não citados. Todas essas notas são muito bem vindas!

Espero sinceros feedbacks para que os próximos reviews sejam melhores do que esse :)

Leu este livro? Gostaria de adicionar o seu review ou notas sobre ele? Comente ou post no seu blog :D Ficarei muito feliz em compartilhar junto deste review.

Camilo Ribeiro

Test Engineer at Klarna
Desenvolvedor, testador e agilista desde 2005, atualmente trabalhando na Suécia.

3 thoughts on “Livros recomendados #1: Agile Testing – A Practical Guide for Testers and Agile Teams

  1. Fala Camilo,
    Como leitor deste livro asseguro que você sintetizou bem o que o livro disse, gostei do post!

  2. Muito bom! Aqui na empresa tem esse livro na biblioteca, mas sempre dou prioridade para outros livros, e vou deixando esse mais para frente.
    O fato é que, muitas empresas no exterior estão solicitando experiência em metodologias ágeis, e com esse resumo, me deu mais vontade de lê-lo.

    Obrigada pelas dicas ;D

Leave a Reply