Pular para o conteúdo principal

SCRUM e Testes

Hoje vou abordar um assunto que vem sendo muito comentado no mercado de TI: SCRUM. Porém, a abordagem será voltada para testes. Vamos lá!

O que é SCRUM?

Scrum é uma metodologia ágil para gestão e planejamento de projetos de software. (NE.: Lembram do nosso post em que indicamos uma leitura sobre Metodologia Ágil?)

No Scrum, os projetos são dividos em ciclos que variam de 2 a 4 semanas e são chamados de Sprints.

Sprint

Um Sprint representa um período de tempo dentro do qual um conjunto de atividades deve ser executado. Ou seja, os Sprints são as iterações no Scrum. Para ilustrar melhor como funciona a metodologia Scrum. Veja a seguinte imagem:




Vamos destrinchar a imagem acima:

Product Backlog

É um arquivo que contém as funcionalidades a serem implementadas durante o ciclo de vida do software (do produto).


Sprint Backlog

Por analogia, nota-se que são as funcionalidades a serem implementadas no Sprint corrente.


Daily Scrum Meeting

Reuniões diárias de, no máximo, 15 minutos, que servirão para alinhar o que está ocorrendo durante o sprint (onde os desenvolvedores estão trabalhando, problemas, mudanças, etc).


Potentially shippable product increment

É o produto pronto para ser entregue.


Com a breve explicação acima, já podemos ter uma ideia de como funciona o Scrum. E agora?

Agora, vamos falar mais sobre o Scrum mas com o foco em Testes. Preparados?


Como testar e garatir qualidade em um projeto que utiliza metodologia SCRUM?

Uma vez testador em um projeto que utiliza a metodologia SCRUM, o profissional deve atentar-se a duas características básicas da metodologia: ciclo-de-vida iterativo e comunicação frequente entre os componentes do time. Logo, a adaptação do testador convencional para um time SCRUM deve ser baseada em mudanças de comportamento, como por exemplo:

  • Testar dentro de cada iteração (Sprint), em vez de testar ao final do desenvolvimento;
  • Decidir o que testar enquanto o produto ainda não está pronto;
  • Colaborar com os membros da equipe, em vez de trabalhar isoladamente;
  • Participar das reuniões diárias com todo o time (Daily Scrum Meeting);
  • Procurar informações sobre produto durante os testes e com os outros membros do time, para verificar o que testar; ao invés de buscar informações em documentos de requerimentos.


SCRUM X RUP: Qual metodologia adotar? São realmente opostos?

Não podemos dizer que SCRUM é melhor que RUP, ou que RUP é melhor que SCRUM. A escolha da metodologia vai depender de diversos fatores, tais como, tamanho do time, tamanho do projeto, proximidade do cliente, entre muitos outros fatores. Nesse caso, a escolha é baseada numa análise prévia.

Por exemplo: utilizar e tentar aplicar em um projeto toda a suite do RUP com um time de 5 pessoas é, na certa um tiro no pé. Para adotar o RUP é necessário um time numeroso, pois são diversos os roles em RUP. (Se Você deseja entender como funcionam os roles em RUP, acesse o seguinte artigo:
http://www.ibm.com/developerworks/rational/library/apr05/crain/index.html)

Outro ponto: RUP e SCRUM não são metodologias opostas, ou rivais. Percebe-se muita picuinha entre adeptos de SCRUM (e Agile em geral) com adeptos do RUP.

RUP e SCRUM podem ser perfeitamente complementares. Existe a possibilidade de utilizarmos RUP com iterações, de por exemplo 3 meses. Assim como podemos adotar práticas de RUP para pontos que a metodologia SCRUM deixa sem nó.

Esse assunto é muito vasto e necessita de um estudo bem aprofundado de engenharia de software. Como o nosso foco é voltado para testes, vou deixar alguns links ao final do post para quem deseja saber mais sobre o assunto.

A lição que fica é: não existe metodologia perfeita e infalível. Existe sim, aquela metodologia que melhor se adequa a determinada situação.


SCRUM: modismo ou tendência?

Pois é, ponto delicado. 'Os dois' seria a minha resposta. Explico: modismo porque a metodologia SCRUM tomou uma proporção que não deveria; parece aquela história de "chegou a solução para todos os seus problemas"; e tendência porque realmente funciona quando aplicada corretamente e, dependendo da situação, é extremamente eficiente e prática.


Links

Para mais informações sobre SCRUM, indico os seguintes links:

Excelente pdf em português explicando o funcionamento do desenvolvimento de um produto utilizando a metodologia SCRUM - http://www.mountaingoatsoftware.com/system/hidden_asset/file/52/PortugueseScrum.pdf

Overview muito bem condensado sobre a metodologia SCRUM; os links no decorrer do texto dão uma noção mais aprofundada dos elementos que compoem a metodologia - http://improveit.com.br/scrum

Boa e velha - não tão velha assim - Wikipedia; bons links na seção 'Ligações externas' - http://pt.wikipedia.org/wiki/Scrum

Artigo que me inspirou a escrever esse post - http://www.informit.com/articles/article.aspx?p=415981


Para mais informações sobre as metodologias e engenharia de software:

SCRUM and RUP - A Comparison Doesn't Go on All Fours - http://www.rupopmaat.nl/AgileRecord_01_Scrum_and_RUP.pdf

Testes no RUP - Parte 1 - http://qahouse.blogspot.com/2009/12/testes-no-rup.html

Testes no RUP - Parte 2 - http://qahouse.blogspot.com/2010/04/testes-no-rup-parte-2.html

Comentários

Postagens mais visitadas deste blog

Testes no RUP (Parte 2)

Em muitas organizações, os testes começam muito tarde no processo de desenvolvimento de um software. Muitas vezes, começam tão tarde que o produto é lançado com uma quantidade irrisória de testes executados. Para solucionar esse problema, muitas empresas estão começando a adotar testes como um 'mal necessário'. Como contraste a esse panorama, o RUP modifica a abordagem de testes, distribuindo a mesma no decorrer do ciclo de desenvolvimento do software, agregando valor ao invés de arcar com custos excessivos decorrentes da ausência de testes. No post anterior , justificamos a pergunta 'por que testar cedo e com frequência?' com o gráfico de custos. A seguir vocês podem ver um gráfico similar, retirado do site da IBM (detentora da metodologia RUP): Muitas pessoas ainda veem a disciplina de Testes como algo secundário, por que isso acontece? Talvez porque não esteja diretamente ligado ao desenvolvimento do software e por isso é muitas vezes deixado para o final, depois do

O + do FURPS+

Segue a continuação do assunto FURPS: Posteriormente à definição do modelo FURPS, notou-se a necessidade da inclusão de mais atributos para encorpar e aumentar a cobertura do modelo. A partir dessa extensão, o acrônimo passou a ser mais comumente chamado de FURPS+ . Quais são os atributos do “+”? O + do FURPS refere-se a especificação de restrições que definirão determinados limites que deverão ser atendidos quando construímos um sistema. O + é composto dos seguintes requisitos não-funcionais: Design constraints – restrições de design: design nesse caso refere-se ao projeto, diretrizes e não a layout. A definição da utilização um banco de dados relacional no projeto é uma restrição de design, por exemplo. Implementation constraints – restrições de implementação: relacionado a limites impostos a código e construções. Como exemplo podemos citar a linguagem de programação que será utilizada para a codificação de um sistema. Interface constraints – restrições de interface: diretamente l

FURPS

Olá! Nesse post, pretendo falar um pouco sobre o modelo FURPS para ilustrar atributos que estão envolvidos em Qualidade de Software : Vamos começar pela sigla FURPS: o que significa cada uma dessas letras? Do F temos Functionality, traduzimos como Funcionalidade: Representa basicamente os requisitos funcionais do sistema. Do U temos Usability, traduzimos como Usabilidade: Representa basicamente a interface sistema-usuário. Do R temos Reliability, traduzimos como Confiabilidade: Representa basicamente a eficiência e o índice de falhas do sistema. Do P temos Performance, traduzimos como Desempenho: Representa basicamente tempos de resposta e capacidade de processamento do sistema. Do S temos Supportability, traduzimos como Suportabilidade: Representa basicamente esforços necessários para manutenção e configuração do sistema. As definições acima representam o básico de cada uma das letras que compõem a sigla FURPS. A seguir entraremos em detalhes sobre cada uma das categorias, não ante