Perdeu algum conteúdo ou quer compartilhar com o pessoal? Aqui tem tudo o que aconteceu por lá.
DIA 1 – COMO OTIMIZAR A CRIAÇÃO DE CENÁRIOS COM TÉCNICAS DE TESTES
Muitas vezes nos perguntamos por que existem tantos cenários de testes. Afinal, sabemos que conseguimos testar aplicações com somente alguns poucos. Certos cenários de testes (quando mal escritos, ou mal definidos) não nos dá o resultado esperado, ou apresenta algo superficial, não atendendo às regras de negócio e definições das Histórias de Usuário.
Por que precisamos das técnicas de testes?
Elas ajudam a identificar as condições de teste, casos de teste e os dados de teste. Além disso, faz com que a gente não tente criar testes de forma empírica, ou seja: baseados na nossa experiência.
As Técnicas de testes são aplicadas em cima das regras de negócio. Portanto, são de caixa preta. Diferente dos de caixa branca, onde precisamos conhecer o código para validar as entradas e saídas.
Particionamento de Equivalência
Esta é uma das técnicas mais conhecidas do mercado e também é conhecida como classes de equivalência ou partição de equivalência. Basicamente, ela divide os dados em partições para que os membros sejam processados da mesma maneira e existe para valores válidos e inválidos.
Por exemplo:
Imagine uma aplicação de e-commerce, onde precisamos validar os Itens no Carrinho de compras.
Regras de negócio:
1 – Só é permitido até 20 itens no carrinho;
2 – Quando chegar no item 20 de compra, aparecer uma mensagem que o limite foi atingido;
3 – Sistema não permite passar mais itens e informa uma mensagem de alerta;
Aplicando a partição de equivalência, temos:
Alguns exemplos de Casos de testes:
Deve validar a inserção de 20 itens no carrinho – cenário válido
Deve validar a inserção de 15 itens no carrinho – cenário inválido
Deve validar a inserção 30 itens no carrinho – cenário inválido
Análise de Valor Limite
É uma extensão do particionamento de equivalência citado anteriormente e só pode ser usada quando a partição é ordenada, consistindo em dados numéricos ou sequenciais. Os valores mínimo e máximo (ou primeiro e último valores) de uma partição são seus valores limites.
Por exemplo:
Vamos pensar em uma aplicação onde temos a funcionalidade de Frete Grátis.
Regras de Negócio:
1 – Frete grátis a partir de R$ 79,00;
2 – Somente para produtos na categoria Full;
3 – A soma de outros produtos, junto com o full, não entra na promoção de frete grátis.
Utilizando a Análise de Valor Limite, temos:
Possíveis casos de testes:
Deve validar produtos no valor de R$ 78,99 (neste caso é um valor inválido a regra de negócio)
Deve validar produtos no valor de R$ 79,00
Deve validar produtos no valor de R$ 79,01
Tabela de Decisão
Esta é uma técnica que traz grandes benefícios na identificação dos casos de testes com combinações complexas. A principal característica é a sua eficiência em revelar combinações não identificadas ao descrever o próprio requisito, sendo uma excelente escolha tanto para quem escreve requisitos, quanto para quem valida a solução construída a partir deles.
Também conhecida como técnicas de teste combinatórias ou tabela de causa e efeito, são úteis para testar diferentes condições de combinações que levam à resultados diferentes.
Mas acalme-se, essa técnica também tem suas desvantagens: quando o número de entradas aumenta, a tabela se torna mais complexa.
Por Exemplo:
Um sistema para alguma instituição de ensino possui a seguinte premissa: pessoas matriculadas e maiores de 18 anos ganham um curso de inglês por 3 meses.
Neste caso, temos um total de 4 testes possíveis dado as combinações da regra de negócio do sistema.
Conclusão
A utilização das variadas técnicas pode trazer grandes benefícios na identificação dos casos de testes, como por exemplo a prevenção de omissões ou contradições nos requisitos. Isso gera um aumento de cobertura e qualidade perante os exercícios combinatórios realizados no sistema.
DIA 2 – TESTES DE REGRESSÃO VISUAL COM CYPRESS + PERCY
O processo de teste em desenvolvimento de software é algo importante, pois, através dele, juntamente com algumas outras práticas de qualidade, podemos evitar de forma significativa a introdução de erros. Existem várias técnicas de testes que devem e podem ser aplicadas, mas vamos focar em testes de regressão visual.
Antes de tudo, precisamos entender: o que é um teste de regressão?
É a prática de verificar o comportamento do software depois de atualizações para garantir que as modificações realizadas não impactaram funcionalidades existentes no sistema.
Por que os testes de regressão são importantes?
Eles evitam problemas que julgavam-se resolvidos retornem, assim como também garante que não sejam introduzidos novos problemas por implementações de alterações ou inclusões de novas funcionalidades.
Por que devemos automatizar esse tipo de teste?
Os testes regressivos tendem a aumentar bastante com o tempo e serem executados por diversas vezes em etapas diferentes do desenvolvimento, geralmente durante o deploy.
Portanto, a automação é mais do que indicada no contexto de testes de regressão. Principalmente, quando há uma grande quantidade de testes a serem executados devido aos ganhos de velocidade e fácil repetição dos procedimentos.
O que é um teste de regressão visual?
Também conhecidos como Visual Regression Tests/VRT, são testes de alto nível que conseguem expor qualquer alteração visual de um sistema, seja em uma página específica ou em um determinado fluxo que o usuário irá percorrer. Para que isso seja feito, esse tipo de teste faz uma captura da página que está sendo testada e compara este screenshot com sua versão estável (baseline).
Por que o teste de regressão visual é importante?
Esse tipo de teste é importante, pois garante que os padrões visuais estabelecidos para o software permanecem conforme o esperado. Principalmente, após implementações de alterações no código, evitando alguns erros comuns no processo de desenvolvimento.
Exemplos:
- Atualização de biblioteca que modificam visualmente o Front-End.
- Posições erradas de elementos ocasionados por alterações no código.
- Erros de responsividade ocasionados por alterações no código.
Uma vez entendida a importância, o próximo passo é levantar as ferramentas mais utilizadas no mercado para esse tipo de teste:
- Happo.io
- Cypress.io
- BackstopJS
- Applitools
- Percy
- Screenster
E por que utilizar o cypress + percy?
Escolhemos o cypress e percy por serem de fácil configuração, terem uma baixa curva de aprendizado, por sua ótima documentação e por serem ferramentas de fácil integração. Desta forma, conseguimos rapidamente implementar os testes e ter resultados.
Referências:
- Cypress: https://www.cypress.io/
- Percy: https://percy.io/
Por fim, deixo um breve resumo sobre o que aprendemos neste artigo:
- O que são testes de regressão, qual sua importância e por que os automatizar
- O que são testes de regressão visual e qual a sua importância
- Vimos as principais ferramentas utilizadas no mercado
- Como implementar do zero um teste de regressão visual com cypress + percy
DIA 3 – JMETER NÃO E TUDO QUE VOCÊ PRECISA PARA FAZER TESTES DE PERFORMANCE
Teste de performance é um tipo de teste não funcional. Nele aplicamos carga sobre o nosso sistema e temos como avaliar aspectos como: tempo de resposta, throughput, escalabilidade, utilização de recursos, enfileiramento de requisições e falhas/sucessos.
Por que performance é importante?
Os usuários visualizam as páginas que carregam mais rápido. Mais da metade dos usuários tendem a abandonar o site se a demora para seu carregamento levar mais de 3 segundos. Segundo a Amazon o tempo média de uma página na internet deve ser de 2 segundos.
O processo:
- Identificação e análise do ambiente;
- Identificação dos critérios de aceitação;
- Planejamento dos testes;
- Configuração do Ambiente;
- Implementação dos scripts e configuração dos cenários de carga;
- Execução dos testes;
- Análise dos resultados e elaboração do relatório.
Dentre os conhecimentos fundamentais para que um profissional execute os testes é necessário entender os tipos existentes: Teste de Estresse (Stress Test), Teste de Carga (Load Test), Teste de Pico (Spike Test), Teste de Escalabilidade (Scalability Test), Teste de Volume (Volume Test) e Teste de Longa Duração (Endurance Test). Conhecer os testes ajuda na definição durante a fase de planejamento e qual estratégia melhor se adapta ao contexto do projeto. Além disso, é importante que o profissional também tenha experiência em: Arquitetura de sistemas, Segurança, Sistemas Operacionais, Processos de negócio, entre outros.
Carga de Pico (Peak Load)
A carga sobre o sistema costuma não ser uniforme (nem durante o dia, nem de acordo com as épocas do ano). Carga de Pico refere-se ao período no qual o sistema é submetido à carga de maior intensidade.
Throughput
É utilizado para medir a quantidade de requisições processadas em relação a uma unidade de tempo. Quanto o sistema atinge um limite, as requisições são enfileiradas e processadas de acordo com o processamento.
Think time
Intervalo de tempo entre duas requisições do usuário. Durante este período, o servidor não faz processamentos para o usuário.
Ramp Up
Usado para gradualmente aumentar a carga de usuários acessando a aplicação. Durante este período, o Throughput é crescente e, por esta razão, este não é o melhor período para coletar as métricas de performance.
Steady State
Corresponde ao intervalo de tempo mais importante para análise dos resultados do Teste de Performance. É iniciado após o período de Ramp Up. Trata-se do período no qual a carga é estável, com menores variações do Throughput e as medições melhor representam o uso da aplicação/ambiente.
Como planejar scripts e distribuição de carga nos testes?
Os principais fluxos da aplicação devem compor os cenários que serão testados no script de teste, onde é necessária considerar uma distribuição de carga que simule o mais próximo esperada em produção.
O framework Application Performance Management (APM) fornece uma abordagem sistemática voltada à análise de performance de sistemas.
- Mensura a experiência do usuário.
- Coleta métricas em tempo de execução no sistema.
- Definição de transações de negócio.
- Coleta de métricas de componentes.
- Análise/reporte e tomadas de decisões.
Algumas ferramentas utilizadas no mercado são:
- New Relic
- APP Dynamics
- Dynatrace
Application Performance Index (Apdex)
É um padrão aberto da indústria para medir o desempenho de sistemas através do nível de satisfação do usuário. Para isso, é necessário primeiro definir qual o Threshold desejado para a aplicação a partir do tempo ideal de resposta. Com isso, podemos classificar as transações das aplicações em três níveis: satisfatórias, toleráveis e frustradas.
Satisfatória: se ela possui seu valor menor ou igual a (T).
Tolerada: até o 4*T e sendo classificada como transação.
Frustrada: se possuir valor maior que 4*T.
DIA 4 – SHIFT-LEFT TESTING
Em breve.
DIA 5 – WHAT’S THE NORTH FOR QA IN GAMES?
O mercado de games esta em constante crescimento, com uma previsão de R$ 211.2 bilhões até 2025. E qual é o papel do QA dentro do mercado de games? Apenas joga? O que ele faz? Como funciona sua atuação? É necessário mesmo ter um QA?
Tipos de erro:
- Crashes e freezing: quando o jogo trava.
- In_game purchase bugs: erro no momento de comprar itens nos jogos.
- Visual bugs: problemas na visualização das imagens dos jogos.
- Texture overlap: sobreposição de texturas nos jogos.
- Áudio: problemas na exibição do áudio durante o jogo.
Como testar?
Os games não se diferenciam muito da forma e objetivo tradicional. Em sua maneira mais básica, temos que definir um objetivo, realizar a ação e verificar o resultado esperado da ação realizada. A diferença é em relação ao grau de complexidade da realização daquele teste, já que durante um único teste podemos observar diversos pontos na ação do determinado jogo.
Dentre os tipos de testes nos games, estão:
- Teste funcional.
- Automação de testes.
- Testes de performance.
- Testes de integração.
- Testes de linguagem e localização.
Testes dependem do contexto:
O principal ponto é ter uma boa fundamentação e conhecer os tipos de testes que podemos aplicar. Então, com base no contexto do jogo, definimos as melhores estratégias para a realização dos testes.
Jogos do tipo plataforma podem exigir validações diferentes de um jogo onde seu objetivo principal é a compra. Lembrando um ponto importante: o foco sempre é a experiência do usuário dentro do jogo.
Os maiores desafios da automação de games:
- Testabilidade.
- Ferramental.
- Inteligencia artificial.
- Movimentos (sensores).
- Mundo aberto.
- Multiplayer.
Gostou e bateu aquela vontade de trabalhar em em qualidade?
Temos vagas sempre por aqui. Clique e conheça todas _