Hora de partir

Depois de quase 4 anos desde meu primeiro post, chegou a hora de me despedir do BdB! Nesse tempo foram muitos posts falando sobre testes de software, agilidade e outros assuntos relacionados. Gostaria de agradecer imensamente a todos aqueles que participaram de alguma forma (comentando, curtindo, compartilhando…) e ao grande amigo Thiago Burgos.

QAlab_verde_subtitleNo entanto, não estou me despedindo do mundo dos blogs. A experiência de aprender e compartilhar continua e a partir de 2015 estarei me dedicando a um novo projeto,  e como parte do QALab também teremos o nosso blog, onde pretendo seguir compartilhando conteúdo relacionado a qualidade de software.

Um Abraço a todos! E Feliz 2015!

O que estão falando sobre Testes de Software em Nova York?

Entre os dias 11 e 13 de Agosto aconteceu em Nova York a nona edição do CAST 2014(Conference of the Association of Software Testing). A conferência voltada inteiramente para a área de Testes de Software contou com a participação de diversos palestrantes discutindo e compartilhando informações e experiências referentes aos mais diversos tipos de problemas e práticas aplicadas na indústria.

Os vídeos das palestras já estão disponíveis no canal da associação no youtube. Na lista de palestras várias me parecem bem interessantes, particularmente, optei por começar pelo Keynote realizado pelo James Bach, autor de diversos livros na área, com tema Test Cases are Not Testing: Toward a Performance Culture. Apesar de não ser um tema novo, debater sobre como devemos usar os casos de teste ou mesmo se devemos usá-los, ainda é algo que rende muitas discussões. No vídeo, James faz diversas comparações bem interessantes e que reforçam o erro que é tratar testes de software como uma simples aplicação de passos de um caso de teste.

“We’ve got to stop thinking of testing as a thing and start thinking about testing as a performance, like an actor in a play, in order to get management to appreciate what we do.”

Divirtam-se!

Copa do Mundo de Testes de Software – Etapa América do Sul

A primeira etapa da copa do mundo de testes de software chegou ao seu final, após a realização de cada uma das eliminatórias continentais.

No último dia 19 de julho tive a oportunidade de participar da etapa da América do Sul e compartilho com vocês como foi a experiência.

Preparação:

Começamos nossa preparação através de uma rápida reunião um dia antes do evento, onde definimos nossa estratégia baseando-se nas informações que tínhamos até o momento e preparamos um “template” para o relatório de testes, que deveríamos mandar ao final da competição.

Já no dia do evento, 30 minutos antes do horário previsto para o início da competição recebemos as últimas instruções dos organizadores, que descreviam: 

Utilizamos esse tempo antes do horário de início para instalar o aplicativo, entender suas principais características e utilizando o quadro como apoio identificamos sub-áreas da aplicação e os tipos e técnicas de testes que gostaríamos de aplicar.

As 3 horas de competição:

Com o auxílio das informações no quadro direcionamos o nosso foco para maximizar a execução e identificação de falhas. Ao longo das 3 horas, que passaram voando, exploramos e reportamos diversas falhas de diferentes níveis de severidade, além de itens referentes a usabilidade da aplicação. 

Durante o tempo disponível para execução, priorizamos a comunicação entre os membros da equipe, com o objetivo de:

  1. Evitar duplicação de esforços;
  2. Compartilhar de maneira fácil e rápida informações relevantes e defeitos encontrados;
  3. Trabalharmos em conjunto na investigação e identificação de problemas.

Como nosso time possui 4 integrantes, definimos que 1 trabalharia com maior foco na elaboração do relatório que deveria ser entregue ao final do evento, enquanto os demais permaneceriam voltados para execução. Essa organização nos permitiu continuar com a execução até quase os últimos minutos disponíveis sem comprometer a elaboração e entrega do relatório.

Valeu a pena?

Com certeza! Todos da equipe gostaram da experiência e nos divertimos bastante trabalhando em conjunto para encontrar defeitos relevantes. Ao final das 3 horas podemos dizer que conseguimos atingir uma cobertura interessante das funcionalidades do sistema, mesmo enfrentando situações, como a inexistência de requisitos e a restrição de tempo.

Agora, só nos resta aguardar pelo resultado e por novas edições da competição!

Como capturar um screenshot no Selenium WebDriver

Capturar um screenshot é uma das ações frequentemente desejadas, quando automatizamos um teste com selenium.

A aplicação do screenshot, pode ser útil de diferentes maneiras, como provendo evidências de um problema encontrado ou servindo para análise e comparação do estado da interface, etc.

Abaixo, disponibilizo um exemplo, extremamente simples, utilizando o Selenium WebDriver com Java.

import java.io.File;
import java.io.IOException;
import java.util.Date;

import org.apache.commons.io.FileUtils;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test;
import org.openqa.selenium.OutputType;
import org.openqa.selenium.TakesScreenshot;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;

public class SimpleScreenshot {
	private static WebDriver driver;

	/**
	 * Inicialização do driver do firefox
	 */
	@BeforeClass
	public static void beforeClass() {
		driver = new FirefoxDriver();

	}

	/**
	 * Navega para url do bytes don't bite
	 * Captura o Screenshot
	 */
	@Test
	public void testScreenshot() {
		driver.get("http://www.bytesdontbite.com");
		takeScreenshot("teste");
	}

	/**
	 * Método para capturar screenshot
	 * @param fileName - Nome do arquivo
	 */
	public static void takeScreenshot(String fileName){
		File scrFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
		Date data = new Date();
	    try {
			FileUtils.copyFile(scrFile, new File("D:\\SeleniumScreenShots\\"+fileName+ data.getTime()+".jpeg"),true);
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

	/**
	 * Encerra o driver
	 */
	@AfterClass
	public static void afterClass() {
		driver.quit();
	}

}

Como pudemos ver no código acima, a única coisa que precisamos fazer é implementar o método takesScreenshot, e utilizá-lo nos pontos em que julgarmos necessário. No exemplo, simplesmente iniciamos um FirefoxDriver e o nosso “teste” se resumiu a navegar para a url do bytes don’t bite e em seguida chamar a captura do screenshot.
Ainda não conhece o Selenium?
Uma das mais utilizadas ferramentas para automação de testes em aplicações web. Permite interagir com o navegador e simular as operações comumente encontradas nas páginas web.

Deseja conhecer mais sobre o Selenium?

— UPDATE —

Inscrições abertas

O curso de Automação de Testes Para Web com Selenium está disponível na modalidade de Ensino à distância. Contaremos com um material de vídeo-aulas, apostilas e exercícios, além do acompanhamento de um professor/tutor.

Valor: R$250,00 (Pode ser parcelado no cartão de crédito)

promo_banner

Copa do Mundo de Testes de Software – Inscrições Abertas

No mês passado apresentamos a Copa do Mundo de Testes aqui no blog. E hoje, recebi a notícia que as inscrições para a primeira copa do mundo de testes de software estão oficialmente abertas.  Abaixo, segue o resumo das principais informações.

Equipes:

Podem possuir de 1 a 4 integrantes. Não há limite de equipes por empresa.

Fase de Qualificação Continental:

Na primeira etapa, as disputas serão realizadas online. E apenas uma equipe será classificada por continente.

Fase Final:

Realizada presencialmente, durante o evento Agile Testing Days.

Critérios de Pontuação:

Os critérios não foram modificados, mantendo as informações do post anterior:

Diferentes aspectos levados em consideração, como: melhor bug report, melhor report de testes, bug mais valioso, etc.

O foco principal será o aspecto funcional de determinadas aplicações indicadas pelos avaliadores no início de cada etapa, podendo existir um tempo adicional alocado para aspectos não-funcionais.

O tempo para validação da aplicação sugerida será de aproximadamente 3 horas, podendo haver tempo adicional para aspectos não-funcionais.

Premiação:

Na etapa de classificação os vencedores continentais receberão:

– Entradas para os 3 dias do Agile Testing Days

– Passagens aéreas

– Shuttle aeroporto/hotel

– Hospedagem de 5 diárias

– Cópias autografadas do novo livro de Lisa Crispin e Janet Gregory 

Por fim, os grandes vencedores da etapa final receberão:

2014-03-11_0805

Link – Episódio de True Detective derruba HBO GO

Link – Episódio de True Detective derruba HBO GO

Sabemos ou pelo menos deveríamos saber, da importância dos testes de performance quando tratamos de aplicações Web. O tema que inclusive já abordamos aqui (Entendendo os testes de performance) é frequentemente deixado em segundo plano, o que acaba causando problemas graves, como o que vi nas notícias publicadas ontem e hoje sobre o HBO GO.

HBO GO Crashes

É impressionante a quantidade de aplicações web disponíveis, que continuam decepcionando seus usuários, pois de nada adianta estarem “funcionalmente” corretas se a medida que a quantidade de acessos cresce o serviço deixa de responder a tempo ou mesmo não responde. No exemplo do link sobre a HBO GO, como pode um serviço que custa o dobro do Netflix nos Estados Unidos conseguir apresentar tal nível de qualidade aos consumidores? Quanto irá custar a HBO essa publicidade negativa?

Copa do Mundo de Testes de Software

A copa do mundo está chegando! E em 2014 não há dúvidas que esse será um dos principais tópicos discutidos em todos os lugares e mídias. Mas não é esse o tema desse post, afinal esse não é um blog sobre futebol.

Fiquei sabendo nesse final de semana a respeito da Copa do Mundo de Testes de Software. Isso mesmo que você acabou de ler, em 2014 teremos uma competição para descobrir os melhores testadores do mundo.

Ainda não temos as informações completas sobre como o evento vai funcionar, abaixo destaco alguns dos pontos já divulgados na página oficial.

Quem pode participar?

Testadores de qualquer localidade, formando equipes de 2 a 5 pessoas.

Como irá funcionar?

A competição será realizada em 2 etapas:

  • Fase de Classificação: Conduzida online e por continente, onde apenas o time vencedor de cada continente estará classificado para a etapa final.
  • Etapa Final: Realizada durante o evento Agile Testing Days 2014.

O que será analisado? 

Os critérios de pontuação durante todas as etapas levarão diferentes aspectos em consideração, como: melhor bug report, melhor report de testes, bug mais valioso, etc.

O foco principal será o aspecto funcional de determinadas aplicações indicadas pelos avaliadores no início de cada etapa, podendo existir um tempo adicional alocado para aspectos não-funcionais.

Inscrições:

Na página do evento há um formulário com nome e e-mail para os interessados no evento.

##UPDATE##

Prêmios:

Premiação da competição já foi divulgada, e a equipe vencedora levará 3.000,00 EUR.

 

Com certeza parece uma boa oportunidade para praticar suas habilidades como analista de testes e conhecer outros profissionais da área. Já solicitei mais detalhes para a inscrição de minha equipe na página do evento, e você?

Estatisticas do BdB no ano de 2013 (Antes tarde do que nunca :P)

Se você está curioso por algumas estatisticas sobre o ano de 2013, aqui está, basta clicar na figura abaixo e seguir o link 😉

Estatisticas do BdB no ano de 2013 (Antes tarde do que nunca :P)

Pedacinho de texto das estatisticas:

The concert hall at the Sydney Opera House holds 2,700 people. This blog was viewed about 22,000 times in 2013. If it were a concert at Sydney Opera House, it would take about 8 sold-out performances for that many people to see it.

Click here to see the complete report.

Onde encontrar material sobre testes de software?

No primeiro post de 2014, compartilho com vocês uma lista com alguns dos blogs/sites, perfis do twitter e canais do You Tube, que acompanho (ou tento acompanhar) para me manter atualizado sobre testes de software.

Blogs/Sites:

Software Testing Club      Ministry of testing      Jmeter.com.br

Outros:

  

     

Sentiu falta de algum? Pode adicionar nos comentários =D

Aumentando a Velocidade da Execução dos Testes com Selenium

Quando falamos de automação de testes um dos principais benefícios citados é a possibilidade de obtermos a execução de um ciclo completo de execução num espaço de tempo bem inferior aos testes manuais. No entanto, quando começamos a nos aprofundar no assunto vemos que existem diversas práticas que podem ser utilizadas na codificação dos testes para permitir uma eficiência ainda maior.

Uma das possibilidades para o aumento da velocidade de execução é a utilização dos Headless Browsers, tema que inclusive foi abordado pelo Elias Nogueira, do excelente blog Sem Bugs, em sua apresentação sobre CasperJS. Resumindo numa única frase o Headless Browser é um navegador sem a interface gráfica.

Estudando sobre o assunto vi que já existe uma implementação do WebDriver para Selenium, que utiliza o PhantomJS e de maneira bem simples permite que possamos nos beneficiar da utilização de um headless browser. O projeto chamado Ghost Driver funciona perfeitamente e sua integração ao seu projeto é extremamente fácil utilizando o Maven.

Para adicioná-lo ao seu projeto basta seguir as orientações do projeto no github e se ainda tiver dúvidas basta seguir as orientações do post no blog Assert Selenium do Manoj Kumar. Além disso, a excelente apresentação abaixo, realizada pelo Ivan de Marino, um dos responsáveis pelo projeto, resume bem os benefícios da utilização e as orientações básicas.

 

Fiz um teste rápido num dos meus projetos e o ganho de velocidade foi significativo, como exemplificado pela imagem abaixo:

Comparação

Ainda não conhece o Selenium? Em outubro estarei ministrando um curso presencial no CESAR.EDU, onde abordaremos os conceitos básicos para utilização do Selenium WebDriver apoiado por diversas práticas em sala, segue o link para mais informações:

banner_curso2