Teste está morto parte 2

Como havia prometido, volto hoje ao tema abordado na semana passada. Tentarei destacar os principais pontos abordados no vídeo recomendado na parte 1. E antes de tudo, obrigado a todos pela participação no blog, na DFTestes e no Linkedin. A colaboração de vocês é fundamental para o enriquecimento da discussão.

A primeira grande contribuição do vídeo trata-se da abordagem inicial a evolução das metodologias de desenvolvimento e consequentemente as diferentes formas de atuação dos testadores. O palestrante, Alberto Savoia, a divide em dois grandes momentos: Old Testmentality e New Testmentality. Partindo da dependência completa dos documentos de requisitos, aos ciclos mais curtos das metodologias ágeis associados a uma maior integração entre desenvolvedores e testadores.

Durante a chamada Old Testmentality, as aplicações só eram entregues quando estivessem completamente “prontas”. Enquanto, que na New Testmentality, as entregas passaram a ser frequentes, exigindo uma participação constante do cliente na construção do “produto correto”.

Em seguida, Savoia começa a destacar os pontos que o levam a pensar que o teste tradicional está morto. Começando pelo o que ele chama de Post-Agile, a qual tem como diferencial o fato de apresentar uma postura mais casual e descuidada em relação aos testes ágeis tradicionais.

Segundo Savoia, a questão central cada vez mais é a construção do “produto correto” e não o simples desenvolvimento correto do produto ou das funcionalidades, ou seja, o objetivo é entregar um produto, que em primeiro lugar, atenda às necessidades dos usuários. Não basta ser apenas perfeito funcionalmente.

O palestrante nos lembra que de fato existem diversas aplicações fabulosas construídas utilizando os conceitos tradicionais, mas que a estrutura existente nos dias atuais, como a computação nas nuvens, permitem diminuir o foco da qualidade de software e transferi-lo para garantir que estamos construindo o produto CORRETO.

Um grande exemplo citado é o twitter, que tornou famosa sua baleia com a enormidade de vezes que deixava os usuários na mão, mas mesmo assim eles continuavam voltando, pois o produto era o desejado.

Nesse novo cenário, que se desenha, segundo Savoia, precisamos nos voltar para outro tipo de bug, o chamado idea bug, que podemos traduzir como bugs de conceito ou de idéia do produto.

Um produto errado é muito pior do que um produto com o comportamento errado.

A chave é testar a idéia, ou seja, garantir que estamos desenvolvendo o produto certo.

E como podemos testar a idéia?

A sugestão de Savoia é começarmos utilizando protótipos iniciais (pretotype), os quais ele diferencia dos protótipos tradicionais, por serem desenvolvidos e aplicados em curtos espaços de tempo. É fundamental testar cedo e falhar rápido, segundo o mesmo Bons testes falham rápido, diminuindo o tempo e o capital investido. (BdB – Os bons testes falham)

Alberto cita ainda alguns dos sinais observados, que o levam a crer no fim dos testes tradicionais.

Sinais do Testpocalypse:

– Diminuição no numero de contratações
– Comoditização dos testadores
– Saída dos antigos líderes e ausência de novos
– Mais e mais empresas partindo para o Post-Agile

Acompanhado essa corrente de mudanças existem enormes oportunidades. Savoia enfatiza a crescente necessidade do surgimento de novos líderes na área de testes, com uma mentalidade diferente, e que possam conduzir essa etapa de transição. Onde, como o mesmo aponta, ainda conviveremos por um longo tempo com as diversas formas de teste. (BdB – Imagine um mundo sem Bugs no Software)

Por fim, um dos slides afirma “Test is dead. Don’t take it literally, but take it seriously.”, traduzindo, “Teste está morto. Não leve isso literalmente, mas leve a sério.”. Logo, a palestra é uma alerta e não uma simples afirmação arrogante, que se julga acima de todos nós. Uma apresentação, que vale a pena ser vista com atenção, e que nos deve levar a refletir sobre os caminhos, que estamos seguindo, as oportunidades de aprendizado e de mudança que podemos levar a nossa área. Sejamos o agente dessas mudanças.

P.S. Todas as imagens utilizadas estão nos slides da apresentação, disponível aqui.

#TGIF – Hoje é TGIBF

O TGIF de hoje é especial, principalmente para os americanos e canadenses, que é a sexta seguinte ao dia de Thanksgiving (data criada pelo presidente Abraham Lincoln em 1863, definida como a quarta quinta-feira do mês de novembro).  Nesta quinta feira  a maioria dos americanos definitivamente dedicam o dia para agradecer a Deus pelos bons acontecimentos ocorridos durante o ano.

No dia seguinte, muitos dos americanos e canadenses continuam agradecendo a Deus, mas desta vez por ser o Black Friday, pois isso a data de hoje o TGIF transforma em TGIBF (Thank God is BLACK Friday). Por esta razão muitos correm para as lojas e fazem fila  para  para comprar produtos com descontos realmente agressivos, principalmente os produtos eletrônicos que ganham os maiores descontos.

No Brasil parece que as lojas estão querendo trazer esta ideia para cá, timidamente, mas estão. Muitas lojas se juntam em um único site  e lançam promoções para na tentativa de antecipar as compras de final de ano.  Será que esta moda pega ? O que vocês acham ? Os descontos que as lojas brasileiras estão dando realmente são vantajosos ?

Uma coisa é certa, não dá pra comparar os preços dos produtos lá nos EUA com os do Brasil e dia-a-dia, e no Black Friday muito menos. Caso você esteja pensando em viajar para lá no ano que vem no intuito de passear e comprar, vale a pena se programar para ir na ultima semana de novembro. Veja aqui como se preparar para este dia no qual o comércio vira um verdadeiro carnaval 🙂

A série – Thank God It’s Friday ou #TGIF – aborda sempre um conteúdo mais divertido, mas que ainda assim possa contribuir com o seu crescimento pessoal e profissional.

Leia, também, outros artigos já publicados na série:

–  Como aprender Algoritmos de Ordenação

– Combatendo vírus, defendendo a Internet

Teste está morto parte 1

Não restam dúvidas de que automação de testes é uma atividade fundamental no desenvolvimento de sistemas. Desde os testes unitários até os de aceitação precisamos cada vez mais de uma estrutura que permita a entrega de aplicações de maior qualidade num menor espaço de tempo.

Na internet existem diversos materiais e vídeos, que podem nos ajudar a progredir nesse caminho. A indicação de hoje são os vídeos do Google Testing Automation Conference, conferência do google, que reúne os mais respeitados profissionais. Na página da conferência você encontra os vídeos e os slides das palestras realizadas. Buscando um pouco mais você pode encontrar também os vídeos das edições anteriores.

GTAC 2011 - Logo

A palestra de abertura da edição de 2011, apresentada por Alberto Savoia, têm como título Test is Dead (Teste está morto), ficou curioso? De forma brilhante, o mesmo passeia pelas metodologias de desenvolvimento de software, finalizando com os motivos que o levam a crer que o teste está morto.

São 35 minutos de palestra, somados a 15 minutos de perguntas. Logo, caso não possa parar agora, guarde o link e assista numa melhor oportunidade, vale bastante a pena.

Quer saber mais sobre como o pessoal testa as aplicações no google? Acesse o blog mantido por eles.

Outros vídeos interessantes do pessoal do google podem ser encontrados na página do youtube – Google Tech Talks.

Na próxima semana, publico a parte dois do post, onde comentarei sobre alguns dos pontos discutidos na palestra acima.

#TGIF – Como aprender Algoritmos de Ordenação

Quem já passou por uma universidade onde estudou computação é claro que você já ouviu falar dos algoritmos de ordenação como Quicksort, Mergesort e outros. E muito provavelmente você deve ter tido dificuldades de entender como eles funcionavam.

Seus problemas acabaram! Nunca foi tão fácil aprender esses algoritmos como agora que temos esses algoritmos explicados de forma dançada! O grupo chamado AlgoRythmics criaram vários vídeos com danças demonstrando como funcionando alguns algoritmos de ordenação. Abaixo segue o vídeo do Quicksort, aproveite e aprenda! 🙂

 

A série – Thank God It’s Friday ou #TGIF – aborda sempre um conteúdo mais divertido, mas que ainda assim possa contribuir com o seu crescimento pessoal e profissional.

Leia, também, outros artigos já publicados na série:

– Criando Oportunidades

– Combatendo vírus, defendendo a Internet

Copa do Mundo 2014 e Olimpíadas 2016: Cadê os novos negócios?

A realização de megaeventos esportivos tem sido uma estratégia de diversos países para a atuação de investimentos e de evidência internacional. Investimentos estes na ordem de bilhões de dólares para que a infraestrutura do país de conta do recado da melhor forma possível. Segundo o Ministério do Turismo, aproximadamente 500 mil turistas estrangeiros devem visitar o Brasil durante a Copa do Mundo e mais dezenas de milhões de brasileiros devem movimentar-se entre as cidades-sede.

Comparativamente, existem outros inúmeros eventos que são realizados no Brasil na ordem de milhões de pessoas, no evento e também se deslocando para outras cidades. Alguns exemplos podem ser citados, como o Carnaval de Salvador, Recife e Olinda, o Círio de Belém no Pará, a procissão em Aparecida do Norte, o São João em Campina Grande e Caruaru, as micaretas pelo país à fora, dentro outros eventos. A complexidade de gestão, logística, locomoção/deslocamento via aéreo/terrestre, alimentação, acesso a informações, hospedagem, etc. é comparativamente na ordem de magnitude da complexidade de se trazer uma Copa do Mundo para o país.

Como em qualquer momento de caos, visualiza-se a possibilidade de criação de novos negócios inovadores no país. Todavia, será que o governo ou as escassas ventures capitals ou as aceleradoras no país estão dando suporte para a criação destes negócios de impacto gigantesco? Se sim, quais são os casos de startups que estão sendo criadas para resolver alguns dos diversos problemas que este tipo de evento trás para o país? Se não, o que estamos esperando? Será que, mais uma vez, vamos importar tecnologia de startups de fora do país? Anyway, alguém ai conhece alguma startup que está sendo criada para este segmento? Conte-nos…

#TGIF – Combatendo vírus, defendendo a Internet

Segurança é o assunto da semana, e o #TGIF de hoje apresenta mais um excelente vídeo do TED. Mikko Hypponen, finlandês, um dos mais respeitados especialistas em segurança liderou sua equipe na descoberta de vários dos maiores vírus de computador.

O vídeo mostra alguns vírus em ação, descreve algumas das principais ameaças e as ações que podemos tomar para combater os crimes virtuais. Mikko enfatiza o impacto e a importância de agirmos o quanto antes para garantir o futuro do mundo virtual.

 

A série – Thank God It’s Friday ou #TGIF – aborda sempre um conteúdo menos técnico, mas que ainda assim possa contribuir com o seu crescimento pessoal e profissional.

Leia, também, outros artigos já publicados na série:

– Criando Oportunidades

– Conceitos, protótipos e ficção científica – Os primeiros passos para evolução.

…………………………………………………………………………………………………………………………………………..

Agora você já pode acompanhar as novidades do BdB pelo Facebook, acesse e curta nossa página.

Como avaliar a segurança do seu sistema com testes ?

             Recentemente temos visto diversos tipos de ataques hackers a sites e sistemas de governo e até em sistemas de umas das mais renomadas instituição de investigação do mundo, FBI.  Lulzsec, um grupo ativista de hackers que, apesar do curto período de 50 dias de existência,  conseguiu cumprir o seu principal objetivo: Mostrar o quão vulnerável são os sistemas ao nosso redor, inclusive sistemas de pagamentos digitais bastante usados pelo mundo.

Após ler várias reportagens sobre ataques hackers pelo mundo, fiquei curioso sobre o estado da arte de teste na área de segurança e encontrei um organização chamada OWASP, que tem a missão de fazer com que aplicações de segurança sejam visíveis para que pessoas e organizações possam tomar decisões sobre os verdadeiros riscos de segurança de uma aplicação.  A OWASP é uma organização, que qualquer pessoa pode participar e todo material disponibilizado pela mesma esta sob a licença de software aberta.

Como todo bom engenheiro de teste, sabemos que para garantir a qualidade do software, temos que nos preocupar  e procurar se envolver em todas as fases do desenvolvimento do software. Por isso apesar de muitos princípios definidos pela OWASP estarem voltados para as fase iniciais do desenvolvimento dos sistemas, os considero também relevantes para os engenheiros de testes. Estes princípios recomendados pelas OWASP são coleções de propriedades, comportamentos, design e práticas de implementação para reduzir a probabilidade de ataques e também minimizar os impactos quando os ataques acontecem. São eles:

  1. Aplique a defesa-em-profundidade – Este princípio significa a definição de mecanismos de segurança em camadas, ou seja, se em caso de ataque causar uma falha em um mecanismo de segurança, outros mecanismos devem prover a segurança necessária para proteger o sistema.
  2. Utilizar o modelo de segurança positiva – Comumente conhecida com lista branca, pode ser aplicada em diversas áreas de segurança. Em vez de definir uma lista do que é proibido e permitir o resto, o modelo de segurança positiva consiste em definir uma lista do que é permitido e rejeitar qualquer outra coisa.
  3. Falhar com segurança – Como desenvolvedor, você deve considerar que há apenas 3 possibilidades de saídas em um mecanismos de segurança: Permitir a operação;  Não permitir a operação e exceção. E quando um mecanismos de segurança gerar uma exceção, você deve garantir que ela deve seguir o caminho de não permitir a operação, ou seja, métodos comuns como isAutorized(), isAutenticated, e validate() devem retornar sempre falso caso ocorra alguma exceção.
  4. Rodar com privilegio mínimo – Este princípio recomenda que cada conta tenha o mínimo privilegio necessário para realizar seus processos dentro do sistema.
  5. Evitar a segurança por obscuridade – Segurança através da obscuridade é a confiança no sigilo da implementação de um sistema ou componentes de um sistema para mantê-lo seguro.  Um exemplo seria um sistema de criptografia, apenas a chave precisa continuar em segredo, o algoritmo não precisa ficar em segredo.
  6. Mantenha a segurança simples – Modismos de engenharia de software preferem certas abordagens excessivamente complexas para o que seria relativamente simples. Os desenvolvedores devem evitar o uso de negativos duplos e arquiteturas complexas quando uma abordagem mais simples seria mais rápida.
  7. Detecte intrusões – Detectar intrusões requer 3 elementos básicos: Capacidade de registrar eventos relevantes de segurança em logs; Procedimentos que garantem que os logs são monitorados regularmente; Procedimentos para responder adequadamente quando uma intrusão for detectada;
  8. Não confie na infraestrutura – Este principio reforça o primeiro da lista. Cada mecanismo de segurança está sujeito a falhas e por isso não se deve confiar plenamente em alguns desses mecanismos, incluindo os de infraestrutura.
  9. Não confie em serviços – Muitas organizações utilizam capacidade de processamento  de terceiros, que na maioria das vezes possuem políticas de segurança diferentes. Por isso todos os sistemas externos devem ser tratados de forma semelhantes.
  10. Estabeleça padrões de segurança – Há muitas maneiras de entregar uma experiência “fora do comum” para os usuários. No entanto esta experiência deve ser segura, e deve esta nas mãos do usuário decisão de reduzir sua segurança. Por padrão a expiração e complexidade da senha deve estar habilitada. Os usuários poderão ser autorizados a desabilitar estas duas características para simplificar o uso da aplicação e aumentar o seu risco
             Além dos princípios recomendados, a OWASP também desenvolveu um guia de testes de segurança, neste documento ele ensina algumas técnicas e ferramentas mais usadas por hackers para ataques em sistemas web e que devem ser usadas para avaliar a segurança do sistema web em desenvolvimento.  Espero que gostem e aproveitem !!!