O documento apresenta uma agenda para uma reunião do GUTS-RS, grupo de usuários de testes de software do Rio Grande do Sul. A agenda inclui uma apresentação do grupo, conceitos básicos de teste de software, tendências de teste e sugestões de leitura. Os principais pontos discutidos são o objetivo do grupo de compartilhar conhecimento sobre teste de software, os canais de comunicação utilizados e eventos futuros planejados como jogos e workshops sobre teste.
2. Agenda
• Apresentação do GUTS-RS
• Conceitos básicos de Teste de Software
• Tendências de Teste
• Sugestões de Leitura
3. Sobre o GUTS-RS
• GUTS-RS: Grupo de Usuários de Testes de Software do RS
• Criado em: agosto/2008
• Objetivo: compartilhar o uso de métodos, processos e
ferramentas de Teste de Software e promover discussões
sobre a aplicação das melhores práticas de teste e
qualidade utilizadas no mercado
• Público Alvo: Gerentes, Analistas de Testes, Testadores,
Desenvolvedores e demais profissionais e estudantes
interessados na área
• Coordenação: Diraci Júnior, Eduardo Oliveira, Gabriel
Oliveira e Moisés Ramírez
9. O que é Teste de Software?
“Teste de software é um processo, ou uma série
de processos, concebido para garantir que o
código de computador faça o que foi projetado
para fazer e, por outro lado, que não faça nada
não intencional” (MYERS, 1979)
10. Causa dos defeitos
• O ser humano está sujeito a cometer um erro
(engano), que produz um defeito (falha, bug),
no código, em um software ou sistema ou em
um documento.
• Se um defeito no código for executado, o
sistema falhará ao tentar fazer o que deveria
(ou, em algumas vezes, o que não deveria),
causando uma falha.
• Defeitos no software, sistemas ou
documentos resultam em falhas, mas nem
todos os defeitos causam falhas (ISTQB, 2011)
11. Exemplificando
• Especificação: "O formulário só pode ser submetido por
pessoas maiores de 18 anos"
• Código do desenvolvedor
if (idade < 18)
enviar_formulário();
else
print ("Operação autorizada somente para maiores de 18 anos");
• O usuário maior de 18 anos clica no botão submeter e...
"Operação autorizada somente para maiores de 18 anos"
Erro (engano)
Defeito: Usuários menores de 18
anos podem enviar o formulário
Falha: Usuários maiores de 18 anos
NÃO podem enviar o formulário
12. Por que testar?
• Para achar defeitos nas aplicações
• Para melhorar o produto
• Para melhorar o código
• Para garantir a satisfação do cliente
• Para não prejudicar a imagem da empresa
13. Objetivos dos gerentes
executivos com QA e Teste
Fonte: World Quality Report 2015-16
6.1
Proteger a
imagem da
corporação
6.0
Aumentar a
consciência de
qualidade entre
todas as disciplinas
6.0
Garantir a
satisfação do
usuário final
5.9
Aumentar a
qualidade
do software
5.9
Encontrar
defeitos antes
do go-live
5.8
Implementar
controle de
qualidade no início
do desenvolvimento
14. Agile Testing
“Prática de teste para um projeto que utiliza
metodologias ágeis de desenvolvimento de
software incorporando técnicas e métodos como
Extreme Programming (XP), que trata o
processo de desenvolvimento como o cliente de
teste e enfatiza o paradigma "test-first design".
(ISTQB, 2011)
16. Alguns desafios...
Isso não é problema
meu, é do testador! O desenvolvimento
levou mais tempo.
Vamos ter que reduzir
o tempo de testes
A diretoria solicitou um
relatório detalhado
sobre o número de
defeitos encontrados
Eu não preciso saber
programar. Eu só testo!
18. Top 5 Aspectos mais
importantes da estratégia de TI
Fonte: World Quality Report 2015-16
Segurança Experiência do
Usuário
Otimização do
Custo de TI
Soluções de
Software com
maior qualidade
Maior capacidade
de resposta para as
demandas do
negócio
19. Top 5 Aspectos mais
importantes da estratégia de TI
Fonte: World Quality Report 2015-16
Segurança Experiência do
Usuário
Otimização do
Custo de TI
Soluções de
Software com
maior qualidade
Maior capacidade
de resposta para as
demandas do
negócio
Aumentar o nível de automação
de testes dinâmicos
20. Top 5 Aspectos mais
importantes da estratégia de TI
Fonte: World Quality Report 2015-16
Segurança Experiência do
Usuário
Otimização do
Custo de TI
Soluções de
Software com
maior qualidade
Maior capacidade
de resposta para as
demandas do
negócio
Definir cenários de teste de acordo com
padrões de uso dos consumidores
Identificar riscos e resultados com
implicações para o negócio
Big Data Analysis
21. Top 5 Aspectos mais
importantes da estratégia de TI
Fonte: World Quality Report 2015-16
Segurança Experiência do
Usuário
Otimização do
Custo de TI
Soluções de
Software com
maior qualidade
Maior capacidade
de resposta para as
demandas do
negócio
Análise
Preditiva
22. Top 5 Aspectos mais
importantes da estratégia de TI
Fonte: World Quality Report 2015-16
Segurança Experiência do
Usuário
Otimização do
Custo de TI
Soluções de
Software com
maior qualidade
Maior capacidade
de resposta para as
demandas do
negócio
DevOps & Continuous Delivery
Feedback contínuo
Provisionamento de ambientes
Definir o Minimum
Viable Product (MVP)
Virtualização &
Pataformas na Nuvem
23. Tendências de Teste
• Transformação Digital
– Customer Experince Testing
– Mobile
– Cloud Testing
– Big Data
• IoT (Internet of Things)
• Segurança
• DevOps (Development and Operations)
24. Transformação Digital
Customer-Experience-Driven testing
– Como obter a cobertura correta dos requisitos e
das expectativas do usuário final nos cenários de
teste?
– Quais ferramentas de teste utilizar?
– Como criar casos de testes?
– Como configurar ambientes de teste para
diferente tipos de usuários?
25. Transformação Digital
Fonte: World Quality Report 2015-16
Segurança
Eficiência / Performance
Funcionalidade
User Interface
Compatibilidade / Testes
de Regressão
Foco do teste em dispositivos móveis
27. Transformação Digital
Principais desafios no mobile testing
2. Não tem tempo suficiente para testar
– Estabelecer um time de especialistas?
– Contratar uma empresa externa?
– Crowd Testing?
3. Falta de especialistas
– Baixa remuneração?
– Poucas vagas no mercado?
28. Transformação Digital
Cloud Testing
• Adoção de soluções baseadas na nuvem
– 43% utilizam nuvem privada
– 28% nuvem híbrida
– 27% nuvem pública
• 76% adotaram uma estratégia específica para
testes de serviços baseados na nuvem
Fonte: World Quality Report 2015-16
29. Transformação Digital
Big Data
• Tendências para o uso de Big Data nas empresas
segundo a Oracle
Fonte: http://computerworld.com.br/oracle-lista-sua-visao-sobre-o-futuro-do-big-data
http://openstartups.stefanini.com/bigdata/tendencias-2016-big-data/
1. O surgimento de um mindset
de “Cientista de Dados”
2. Elimine o “Faça você mesmo” e
considere novas soluções
3. A integração entre Nuvem e
Internet das Coisas (IoT)
30. Transformação Digital
• Mudança de habilidades e conhecimentos
– Testes exploratórios baseados na experiência do
cliente
– Testes de usabilidade
– Análise/Cientistas de dados
– Especialistas de análise preditiva
– Segurança e performance
– Especialistas em mobile testing
31. IoT (Internet of Things)
• Número de dispositivos
da IoT vai crescer 30%,
para 6,4 bilhões, em
2016 (Gartner)
• Cidades inteligentes vão
implementar 1,6 bilhão
de dispositivos
conectados em 2016
(Gartner)
33. IoT (Internet of Things)
Novos modelos
de negócio
Falhas de
segurança
Novos modelo de
interação com o
consumidor
Experiência
do usuário?
Smart Cities
Temos
infraestrutura?
34. Segurança
Fonte: World Quality Report 2015-16
Atividades de teste de segurança mais comuns
57%
Teste de segurança
dinâmico
52%
Revisão manual de
código
52%
Teste de segurança
estático
39%
Teste de
penetração
35. DevOps
• DevOps desmonta os silos de ciclo de vida de
aplicação tradicionais, e ajuda as organizações
na transição de implantações de releases
tradicionais para um processo contínuo de
atualização das suas aplicações de TI.
• Os desafios cruciais para QA e Teste em
DevOps são:
– como alcançar a automação de testes máxima?
– como mover de testes e validação antes do go-live
para formas mais preditivas de testes e
monitoramento da qualidade em tempo real?
37. DevOps
Implementação de práticas de DevOps
Utilizam
atualmente
Não utilizam, mas
possuem planos
Sem planos/
Não sabem
“Quebram” esforços grandes
em tarefas menores
Utilizam testes contínuos
Criam o delivery pipeline
Fazem entregas mais rápidas para
conduzir a estratégia de negócio
Automatizam o delivery pipeline
Tratam a infraestrutura como
código
Fonte: World Quality Report 2015-16
38. Utilizam
atualmente
Não utilizam, mas
possuem planos
Sem planos/
Não sabem
“Quebram” esforços grandes
em tarefas menores
Utilizam testes contínuos
Criam o delivery pipeline
Fazem entregas mais rápidas para
conduzir a estratégia de negócio
Automatizam o delivery pipeline
Tratam a infraestrutura como
código
DevOps
Implementação de práticas de DevOps
Fonte: World Quality Report 2015-16
67% utilizam
princípios ágeis
51% possuem
ambiente de testes
virtualizados
51% combinam TDD e
BDD com continuous
improvment testing
41. Temas Variados
Smart Cities
Open data, inovação
pública, apps, IoT,
conectividade em
serviços públicos,
economia de
abundância... O
futuro chegou e
tornou as cidades
mais criativas e
inteligentes.
Digital
Transformation
A nova era de
serviços e
integração digital.
Dos novos tipos de
APIs, Containers e
Devops, até a
estratégias de
transformação
digital das
companhias.
Internet das Coisas
Temas como:
Arduino, Robótica,
Eletrônica,
Computação
Embarcada, etc.
Fonte: The Developers Conference (TDC)
Antes de iniciar a falar sobre testes, perguntar quantos trabalham como desenvolvedor, testador, etc.
A análise dinâmica atua no complemento da estática, considerando o código como uma caixa preta (abordagem “blackbox”), e se preocupando apenas com os dados inseridos na rotina, se a saída de dados inseridos é a esperada, o tempo de resposta, o comportamento funcional e a performance da aplicação como um todo.
Aumentar a Receita
Reter clientes
Image corporativa
Oportunidades de Inovação
Analisar dados históricos de projetos, releases e builds
Entender os impactos das mudanças ao durante todo o ciclo de desenvolvimento
Identificar a cobertura de teste necessária para atingir o MVP
Identificar o esforço e skills de testes necessárias
*A análise preditiva é o uso de dados, algoritmos estatísticos e técnicas de machine learning para identificar a probabilidade de resultados futuros com base em dados históricos.
DevOps – Mudança Cultural, colaboração entre times, automação de processos
Continuous Delivery – Toda mudança pode ser promovida para produção, mas talvez não seja habilitada. É um conjunto de práticas e princípios com o objetivo de compilar, testar e liberar software de forma mais rápida e frequente
Continuous Deployment – Toda mudança é automaticamente promovida para produção
Significa a combinação de mais Behavior Driven Testing (onde o foco é determinado ao entender ou analisar o real uso do usuário final de diferentes aplicações) e mais testes exploratórios baseados em cenários do usuário
Segurança e performance continuam sendo o principal foco dos testes das aplicações
A partir do ano que vem a tendência começará a dar dor de cabeça, diz o IDC, já que poderá responder por falhas de segurança em 90% das redes de TIC de todo o mundo até o fim de 2016.
Outra boa nova da Internet das coisas é que ela trará consigo um novo ciclo de mercado, gerando novos modelos de negócio que, se bem utilizados, poderão gerar várias oportunidades de competitividade às empresas que aproveitarem o filão.
Até pouco tempo atrás a segurança das aplicações era vista como baixo risco porque as aplicações eram utilizadas apenas internamente. Logo, proteger a infraestrutura era suficiente contra riscos de segurança.
A transformação digital tem aumentado consideravelmente o número de vulnerabilidades: múltiplas plataformas, dados sensíveis de clientes e de empresas.
Testes de Segurança Dinâmico: teste manual rodando a aplicação
Testes de Segurança Estático: inspeção de código, analisadores de vulnerabilidade estáticos
Teste de Penetração: uma simulação de um ataque malicioso em um sistema de computador, rede ou organização a partir de uma perspectiva interna ou externa, realizado em condições do tipo "na vida real".
O pipeline quebra o processo de entrega de software em estágios.
Cada estágio tem como objetivo verificar a qualidade das novas implementações de um ângulo diferente para validar a nova funcionalidade e evitar que erros afetem seus usuários. O pipeline deve fornecer feedback para a equipe e visibilidade no fluxo de mudanças para todos os envolvidos na entrega de novas implementações
Continuous improvment testing = PCDA: Plan > Do > Check > Act