terça-feira, 4 de dezembro de 2012

Eventos de Teste de Software

Na lista do DFTestes um dos participantes fez uma pergunta sobre quais eram os principais eventos de teste, dai resolvi listar aqui os eventos que eu conheço e/ou ja participei.
Se você sabe de algum outro, por favor indique nos comentários para que eu possa atualizar o post :-)


TDC - The Developers Conference (Trilha de Teste)
Local: São Paulo, Florianópolis e Goiânia
Site: http://www.thedevelopersconference.com.br/

Encontros Regionais ALATS
Local: São Paulo e Rio de Janeiro
Site: http://www.alats.org.br/portal/brateste-menu-top.html

TestDay
Local: São Paulo
Site: http://www.testday.com.br/

Encontro Amazônico de Teste de Software
Local: Amazonas
Site: http://www.icomp.ufam.edu.br/eats2012/

EBTS - Encontro Brasileiro de Teste de Software
Local: Recife
Site: http://www.gotest.biz/ebts2012/

sábado, 10 de novembro de 2012

Todas as abordagens de teste dentro do agil

No dia 10/11/2012, no Rio de Janeiro eu parcipei do Rio Agile Talks promovido pelo @RioAgile em parceria com o Peixe Urbano.

Na minha apresentação, com título "Todas as abordagens de teste dentro do ágil" eu apresentou um pouco dos problemas em ágil, o que é Agile Testing e algumas ferramentas para que possamos integrar o testador ágil com toda a equipe.


Primeira nota
Num primeiro momento você pode ler "Todas as", mas na verdade eu falo sobre "Algumas". Embora eu tenha colocado o título da palestra como "Todas as abordagens de teste dentro do ágil" o ideal seria "Alguns abordagens de teste dentro do ágil".

Estrutura da apresentação

Resumo
Eu começo falando sobre os dois problemas clássicos enfrentados por equipes de desenvolvimento: uma onde entregamos (fazemos o deploy) o produto e, sem seguida ele falha. A outra é que, quando temos uma equipe de teste não alinhada realmente com o negócio e/ou não alinhada à respostas do time (fator velocidade), os testes podem demorar demais para dar o feedback esperado.
Isso é apresentado nos slides 3 e 4.
Após faço a conceituação do que é Agile Testing apresentando, além dos valores o Quadrande de Teste Ágil (Quadrande de Brian Marick) e a nova abordagem do quadrante pela Elisabeth Hendrickson. Dai começo a palestra em si apresentando a abrdagem (geralmente sempre atual) da Pirâmide de Automação de Teste, plantando a semente que todo agile tester também automatiza (além dos devs é claro).


< Post ainda em atualização :D >


quarta-feira, 11 de julho de 2012

Cursos de Teste - Treinamentos em Teste de Software com baixo custo!

Olá pessoal!
Eu tinha uma idéia de uma startup há um bom tempo... na verdade antes de me mudar para São Paulo eu já pensava em abrir minha própria empresa para consultoria e treinamentos, mas acabei optando por ter a experiência profissional de trabalhar na maior metrópole da américa latina, e não me arrependo.

Bem, depois de mais de 3 anos resolvi tirar do papel uma das minhas idéias: uma empresa de treinamento online para oferecer treinamentos a um baixo custo!

Mas porque um treinamento a baixo custo?
Eu também já fui universitário e via meu dinheiro todo ir pra faculdade (sim, eu trabalhei para pagar a faculdade particular a qual cursei). Sobrava muito pouco dinheiro para fazer um curso. Eu aproveitava o tempo livre + o sem grana pra ir a eventos de custo zero ou baixo custo, porém nunca conseguia fazer os treinamentos que eu sempre quis para me aperfeiçoar mais.

Hoje em dia com correria do dia a dia o nosso tempo está cada vez menor. Eu mesmo fiz uma pós graduação a distância por conta disso e alguns cursos na área (sim, eu ainda faço cursos na área para conhecer sobre novas "coisas" e tecnologias para me manter atualizado)

Mas o que é a Cursos de Teste?
A Cursos de Teste é uma startup que foca em treinamentos sobre o tema Teste de Software, com um baixo custo. Além do baixo custo o foco da Cursos de Teste é oferecer treinamentos focados e não extensos para que o aluno aprenda algo pontual que precisa aplicar.

Mas o que é esse "baixo custo" é "não extenso"?
O baixo custo quer dizer que os valores do curso iniciem em R$ 50, R$ 100 e R$ 150 com pagamento facilitado (parcelado) com duração de 30 min, 1h e 2h.


Estado atual
Hoje existe uma landing page com o conceito de MVP (Minimum Viable Product) ou Menor Produto Viável para que seja possível medir o interesse do público em relação aos serviços oferecidos, que estão no site em forma de "votação".

O que vem depois?
Após essa fase de interesse vou começar a desenvolver os cursos com a maior votacão em uma ordem de prioridade e já oferecê-los de forma online assíncrona (não ao-vivo).

Como acessar a Cursos de Teste?
Você pode acessar o site http://cursosdeteste.com.br e também seguir o twitter e a fan page no Facebook
Twitter: @cursosdeteste
Facebook: Cursos de Teste

Quais são os cursos que serão oferecidos?
Temos uma lista dos cursos no site da Cursos de Teste e também na listagem abaixo:
  • Selenium IDE
  • Mantis
  • Webdriver
  • Testlink
  • Arquitetura de Automação de Teste
  • Planejamento de Teste
  • Como reportar bugs
  • Criando um Caso de Teste na prática
  • Práticas de Execução de Teste
  • Testes sem ou com pouca documentação

Seria de grande ajuda se, você leitor, puder divulgar aos profissionais e colegas.
Abraços!




terça-feira, 12 de junho de 2012

Retrospectiva da Trilha de Teste no TDC 2011 e nova Trilha de Teste no TDC 2012

No ano passado (2011) eu tive o prazer de coordenar a Trilha de Teste do TDC 2011 – The Developers Conference.

Gostaria de apresentar para vocês alguns números desta trilha, algumas escolhas de palestras e também o que estaremos planejando para a Trilha de Teste do TDC 2012.

Porque o TDC tem uma Trilha de Teste?
Sabemos hoje pela crescente, senão essencial melhoria dos sistemas que desenvolvemos. Há várias iniciativas dentro de uma equipe de desenvolvimento para que o produto tenha a qualidade final esperada por seus usuários.

Porém somente testes dentro do time de desenvolvimento não nos garante a qualidade geral do software. Para isso existe uma série de profissionais que focam únicos e exclusivamente em Teste de Software.

Dentro da área de teste possuímos diversas áreas de conhecimento e vertentes diferentes, onde se faz cada vez mais necessário termos este tipo de profissional atuando para garantir a qualidade dos sistemas desenvolvidos pelas empresas.
Um passo muito imponte que podemos observar das três trilhas de teste foi à abordagem de diversos assuntos técnicos dentro da área de Teste de Software, mostrando que teste não é só “testa aí!”.

Trilha de Teste TDC 2011 – São Paulo
Este trilha foi um mix de assuntos bem interessantes com assuntos de nível básico até avançado.
Dois destaques desta trilha foram a palestra sobre Teste de Segurança e sobre Especificação por Exemplos. Nesta mesma trilha tivemos uma palestra sobre Agile Testing que foi apresentada nas outras trilhas de Teste em Florianópolis e Goiânia.

Como última palestra tivemos uma Mesa Redonda com perguntas feitas pelos participantes da Trilha de Teste, o vídeo da Mesa Redonda pode ser visualizado no link abaixo.

Informações Gerais
Esta trilha ocorreu no dia 07/07/2011, quinta-feira
Número de participantes: 129


Trilha de Teste TDC 2011 – Florianópolis
Nesta edição da Trilha de Teste tivemos novas palestras muito interessantes e diferentes. Já virando uma tradição tivemos a palestra de Agile Testing, mas tivemos diferentes assuntos como “Práticas de Testes Manuais e Automáticos para aplicativo de TV Digital em dispositivos móveis” onde foi apresentado como a Nokia testa manualmente e automatiza os testes do software de TVDigital.

Tivemos também a apresentação sobre ATDD – Acceptance Test Driven Development e BDD – Behavior Driven Development apresentando como podemos nor organizer e aplicar estas técnicas em nosso ambiente de trabalho.

Aprendemos também a configurar o Jenkins para a execução de testes automatizados com a palestra “Botando o Jenkins para rodar seus testes”.

Informações Gerais
Esta trilha ocorreu no dia 20/08/2011, sábado
Número de participantes: 134


Trilha de Teste TDC 2011 – Goiânia
Nesta Trilha de Teste tivemos algumas novas palestras onde uma das mais interessantes foi a de “Automação de Teste para iPhone e iPad com Frank”. Tivemos também uma ótima apresentação sobre “Derrubando as barreiras da comunicação testers x desenvolvedor” que nos faz pensar se realmente testers e desenvolvedores são inimigos.

Como nas outras Trilhas tivemos a Mesa Redonda, mas antes dela um hands on de Selenium 2 (Webdriver) com Page Objects, mostrando o quanto o teste automatizado orientado a browser pode ser modular e reutilizável.

Informações Gerais
Esta trilha ocorreu no dia 29/10/2011, sábado
Número de participantes: 40

Agradecimentos da Trilha de Teste
Primeiramente ao Jorge Diz, que foi o coordenador da Trilha de Teste do TDC 2010 e que me ajudou a coordenar a Trilha de São Paulo. Também aos nossos patrocinadores Iterasys e ThoughtWorks.


O que teremos neste ano de 2012?
Os temas ainda são surpresa, mas existe uma novidade muito interessante para todos: a Trilha de Teste está dividida em duas! Isso mesmo!

Trilha de Teste University
Esta trilha tem o foco de trazer todos os assuntos básicos da ára de teste de software, como certificações, como começar, como planejar e executar testes, como iniciar em automação, etc...
É voltada principalmente para o público universitário, iniciante ou curiosos da área.

Coordenadores: Jorge Diz e Elias Nogueira
Data: 05/07 (quinta-feira)

Trilha de Teste RegularVai abordar assuntos intermediários/avançados, sempre trazendo as novidades da área de teste e como aplicar diversas abordagens, como testes de segurança e agile que tivemos no ano passado.
Embora esta trilha tenha assuntos mais avançados que a Trilha de Teste University, esta trilha á aberta para qualquer pessoa.

Coordenadores: Leonardo Oliveira e Elias Nogueira
Data: 06/07 (sexta-feira)

Como submeter uma palestra?
Você pode submeter uma palestra para qualquer trilha, não só para a de teste, mas para isso é necessário o preenchimento do Call4Papers.
São 3 tipos de apresentações: relâmpago (5 min), mini palestra (15 min) e palestra ou debate (45 min)
http://www.thedevelopersconference.com.br/tdc/2012/saopaulo/call4papers

Como me inscrever nas Trilhas de Teste?
Acesso o site do TDC e faça sua inscriação
http://www.thedevelopersconference.com.br/tdc/2012/index.html#saopaulo

quinta-feira, 3 de maio de 2012

Como obter conhecimento técnico em Teste de Software (de forma gratuita)

Olá pessoal!
O intuito deste post é mostrar diversas fontes de conhecimento na internet para aqueles testadores que querem se tornar mais técnicos e não sabem por onde começar.
Nem sempre é preciso correr para cursos pagos (que também é uma boa pedida).

Aqui vou listar diversos links sobre ferramentas, tecnologias e metodologias para estudo.
Um único pont bom (ou ruim para alguns) é que a maioria do material é em inglês (nada que um google translator não resolva se você não souber inglês)

Ponto importante: este post será um post "vivo". Portanto a sugestões de todos vocês sobre cursos e conteudos gratuitos de boa qualidade será ótimo para contribuir com a disseminação de conhecimento.


Diversos

W3Schools
Possui diversos tutoriais para tecnologia web gratuitos.

Fundação Bradesco
A Fundação Bradesco possui diversos cursos de informática, muito deles que podemos aproveitar para o nosos aprendizado.
Tente focar nos cursos dos itens Banco de Dados e Desenvolvimento de Aplicativos. Dento deste último eu não recomendo os seguintes cursos por não ser o foco deste aprendizado: Expression Blend, Ilustração & Design Gráfico para Web e Silverlight.

Qualifico Ensino e Tecnologia
Não estou fazendo propaganda deles, mas eles possuem um mini curso gratuito de Teste Exploratório que vale a pena ser assistido.

SQL Básico

Xpath

Ferramentas de Automação
Lista de ferramentas open source para automação de teste. Leia-se open source por ferramentas de código e conteudo (documentação) aberto.

Selenium

AutoIT

Lógica de Programação

Não fazendo propaganda, mas aqui você encontra muitos cursos básicos por um baixo custo


Linguagem de Programação

Java

Ruby

Colaboradores deste post

Leonardo Galani: do blog keeptesting.com.br sobre xpath
Fernanda Lessa: mandou sua colaboração através da lista guts-rs@googlegroups.com sobre a Fundação Bradesco

segunda-feira, 30 de abril de 2012

Como aprender a programar para teste de software (automação)?

Na lista de emails do DFTestes tivemos uma pergunta, que no meu ponto de vista foi muito bem colocada, que era:
Como vocês aprenderam a programar especificamente para testes?

Eu, particularmente, fui programador comercial no início da minha carreira em TI, porém não há uma diferenciação entre programar para "testes" e programar comercialmente.

Não deixe de ler depois o post Como obter conhecimento técnico em Teste de Software (de forma gratuita)
Em testes, basicamente, precisamos aprender o básico dos dois itens abaixo:
  • Aprender o básico de alguma linguagem de programação
  • Aprender sobre a ferramenta de automação de teste funcional escolhida

Como aprender o básico de alguma linguagem de programação?
Eu sempre falo que para ser um automatizados o profissional de testes não precisa ter grandes skills de desenvolvimento, apenas saber, entender e aplicar o básico de uma linguagem de programação.

Mas Elias, o que é o básico de uma linguagem de programação?
Para ser mais assertivo com essa resposta fiz uma pesquisa nos principais cursos de desenvolvimentos das principais empresas de treinamento do Brasil. Foquei nas linguagens Java, .NET e Ruby por serem as comercialmente mais usadas. Eis o resultado:
  • Sintaxe básica de linguagem
    • Fundamentos da linguagem
    • Variáveis (tipos, escopo)
    • Operadores (aritméticos, comparação e lógicos)
    • Fluxo de controles (if/else, switch, while, do/while, for)
    • Arrays (bidimensionais, multidimensionais)
  • Orientação a Objetos
    • Classes
    • Encapsulamento
    • Associação
    • Herança
    • Polimorfismo

Os itens acima são muito básicos em qualquer linguagem, e especificamente para o item 2 - Orientação a Objetos para as linguagens orientadas a objetos (todas as tres citadas).

Quem fez ou está fazendo faculdade olhe com carinho a lista acima e responda: Há algum destes itens que você não viu na faculdade?

Geralmente todos estes pontos são abordados por qualquer disciplina de programação na faculdade e não nos damos conta da importância dos mesmos :-)

Como aprender sobre uma ferramenta de automação de teste funcional?
Ai vem o segundo ponto. Posso dizer que uma ferramenta tem dois segmntos:

Em uma aplicação estilo IDE a ferramenta é um software capaz de gravar os passos que executamos sobre o sistema. Após podemos editar o código-fonte gerado para melhorar o teste. Este código-fonte pode ser apresentado em diversas linguagens diferentes, porém geralmente uma única é utilizada pela ferramenta. A ferramenta também dispôe de funcionalidades prontas para o uso no script de teste, como checkpoints/asserções automáticas, conexão com banco de dados, etc...
Para o aprendizado desta ferramenta há três caminhos:
  • Leitura da documentação básica da ferramenta (telas, como gravar e executar testes, etc...)
  • Entendimento das principais funcionalidades "prontas" da ferramenta
  • Aprendizado da linguagem de programação adotada pela ferramenta

Exemplos deste tipo de aplicação são: TestComplete, HP QuickTest Professional, IBM Functional Tester entre outras.

Exemplo de uma aplicação estilo IDE - TestComplete
 
Em uma aplicação estilo API um ou vários arquivos (geralmente chamados de bibliotecas) são disponibilizados para que o profissional utilize métodos daquela API, ou seja, um conjunto de métodos/funções para teste são utilizados para que possamos escrever um script de teste.
Neste modelo os profissionais importam esses arquivos (bibliotecas) para uma IDE de Desenvolvimento (diferente da aplicação estilo IDE que mencionei acima) como Eclipse, Visual Studio, Netbeans entre outras.
Durante a programação do script de teste o profissional vai escrevendo os testes, condições e quaisquer tipos de funções que não estejam presentes, como o acesso ao banco de dados.
Para o aprendizado desta ferramenta há três caminhos:
  • Leitura da documentação básica da ferramenta
  • Leitura de sua API
  • Exercitar as funções da API na utilização da ferramenta

Exemplos deste tipo de aplicação são: Selenium, Watir, Robot Framework entre outras.

Estilo de uma aplicação estilo API usando Eclipse IDE - Selenium

Aplicações estilo API exigem uma capacidade/conhecimento de programação maior do que as aplicações estilo IDE

Adendo
É claro que atualmente existem vagas que não exigem somente o básico de programação para trabalhar na área de teste, como as vagas de SDET - Software Developer in Teste que são posições de desenvolvedores que também trabalham em testes com o intuito de criar sistemas (frameworks) para testar aplicações, além de também conhecer desenvolvimento muito bem.
Vamos encontrar este tipo de vaga em grandes empresas como Google, Microsoft, Amazon, Facebook entre outras.
Infelizmente isso não é uma realidade no Brasil, mas isso dá outro post depois...

Dica
Pela internet é faci encontrar diversos materiais sobre como aprender determinada linguagem de programação. Eu recomendo ler os links abaixo para quem quer começar a estudar por conta com um material confiável:

Abraços!

segunda-feira, 16 de abril de 2012

Criptografar senhas em um script automatizado é realmente necessário?

Hoje tive uma conversa com um aluno do curso de Selenium que me fez pensar um pouco...
A pergunta era como criptografar a senha gravada pelo Selenium durante a gravação dos testes e execução do mesmo.

E eu me perguntei: pra que? rs

A pergunta é pertinente, pois há uma preocupação com a segurança dos dados dentro do script.
Vamos a alguns pontos...

Que ganho teriamos em "criptografar" a senha de dentro de um script de teste?
Obviamente o ganho seria em segurança.
Qualquer pessoal má intencionada poderia utilizar aquele usuário e senha para acessar o sistema, principalmente em produção e utilizá-lo de forma indevida. Até mesmo passar o usuário e senha para uam pessoa acessar um sistema em produção para utilização própria (leia-se para não pagar/comprar), e muitas outras ações que podem ser feitas.


Como a grande maioria dos profissionais trabalha com esta questão em automação
Na grande maioria das vezes a codificação de uma senha dentro do script não é levada em consideração porque:
  • Os servidores de testes são conhecidos e possuem acesso apenas aos colaboradores da empresa
  • Usuários específicos são criados (ou deveriam) para diversos testes
  • Mesmo em ambiente produtivo (servidor de produção) o acesso é controlado através de usuários apenas para testes especificos, onde estes usuários são desativados no sistema em produção e, obviamente, possuem uma senha mais "segura"
Pense no trabalho que dará você codificar uma senha e, no momento da execução do script, ter que decodificar a mesma para que a aplicação execute. No mínimo um desenvolvimento usando reflexão terá de ser criado. E como diria na minha terra "é muita mão de obra" (dá muito trabalho) fazer isso.

Uma possivel solução rápida se simples
A solução não exclui o fato de segurança de acesso, etc... Porém pode tornar as coisas mais simples e tranquilas e na verdade vai te ajudar a criar "melhor" os testes scripts: colocar este dado em um arquivo externo!

Obviamente tu continua tendo um acesso a senha daquela, mas não diretemente no arquivo

O que deveríamos fazer então?
O ideal, na minha visão, é:
  • Criar usuários especificamente para rodar os scripts automatizados
  • Sempre possuir um processo/automação para desativar os usuários quando não estiverem em uso, principalmente em ambiente produtivo
Bom, estas são as minhas pequenas considerações em relação a este tema.
E como vocês costumam fazer?
Essa mesma idéia de "criptografar" os dados já passou na cabela de vocês?

Abraços!